المعلوماتية > برمجيات

Infer.NET مكتبة مايكروسوفت لتعلم الآلة مفتوحة المصدر!

ما المقصود بـ Infer.NET؟

إطار عمل لإدارة الاستدلال البايزي Bayesian inference (نسبة إلى عالم الرياضيات Bayes صاحب النظرية الشهيرة في الاحتمالات الشرطية؛ أي احتمال حدوث حدث علمًا بأن حدثًا آخر قد وقع) في النماذج البيانية، ويمكن استخدامه أيضًا في البرمجة الاحتمالية.

يستخدام Infer.NET لحل أنواع مختلفة من مشكلات تعلم الآلة؛ بدءًا من المشكلات القياسية العامة مثل التصنيف Classification أو التوصية Recommendation أو التجميع (العنقدة) Clustering، إلى حلول مخصصة للمشكلات المتعلقة بمجال معين، وقد استخدم Infer.NET في مجموعة واسعة من المجالات؛ بما في ذلك استرجاع المعلومات، والمعلوماتية الحيوية، وعلم الأوبئة، والرؤية، وغيرها الكثير.

يُنشر Infer.NET الآن مصدرًا مفتوحًا على GitHub بموجب ترخيص من معهد ماساتشوستس للتكنولوجيا ويتوفر أيضًا على هيئة حزم NuGet.

إن جعل Infer.NET مفتوح المصدر يمثل تتويجًا لرحلة طويلة وطموحة؛ إذ شرع فريق Microsoft Research في كامبريدج في المملكة المتحدة تطوير منصة العمل هذه في عام 2004، وقد تعلّموا الكثير في سبيل إنشاء حلول تعلم الآلة قابلة للتوسع والفهم.

وضِع تصوّر مسبق لـ Infer.NET في البداية على أنّه أداة بحث نشرت للاستخدام الأكاديمي في عام 2008، ونتيجة لذلك؛ كانت هناك مئات من الأوراق المنشورة باستخدام المنصة في مجموعة متنوعة من المجالات؛ من استرجاع المعلومات إلى الرعاية الصحية. وفي عام 2012؛ فاز Infer.NET ببراءة اختراع في المجال الإنساني لمساعدته على البحث في علم الأوبئة، والأسباب الجينية للمرض، والربو.

تطورت المكتبة بمرور الوقت من أداة للبحث إلى كونها محرك تعلم الآلي في العديد من منتجات مايكروسوفت Office و Xbox و Azure، وأحد الأمثلة الحديثة هو TrueSkill 2، وهو نظام يطابق اللاعبين في ألعاب الفيديو عبر الإنترنت، ونُفذ باستخدام Infer.NET، يُشغَّل مباشرة في الألعاب الأكثر مبيعا مثل Halo 5 و Gears of War 4 لمعالجة الملايين من المباريات.

ولكن في عصر وفرة مكتبات تعلم الآلة، ما الذي يميز Infer.NET عن منافسيه؟

يتيح Infer.NET أسلوبًا قائمًا على أنموذج تعلم الآلة Model-based approach، ويتيح لك ذلك دمج معلومات في الأنموذج الخاص بك، ومن ثم يمكن للمنصة بناء خوارزمية تعلم آلية مباشرة عن طريق هذا الأنموذج، وهذا يعني أنه بدلًا من الاضطرار إلى إسقاط مشكلتك على خوارزمية تعلم موجودة مسبقًا، ينشئ Infer.NET خوارزمية تعلم خاصة بالأنموذج الذي قدمته.

ويحوي تعلم الآلة القائم على النمذجة ميزة إضافية، وهي إمكانية التفسير (توفير توضيحات على طول العملية؛ مما يسمح للبشر باتباع خطوات المعالجة وفهم منطق الآلة). فإذا صممت الأنموذج بنفسك وكانت خوارزمية التعلم تتبع ذلك الأنموذج؛ فستتمكن من فهم سبب تصرف النظام بطريقة معينة أو سبب تنبئه ببعض الأشياء؛ ذلك لأنه ومع دخول تطبيقات تعلم الآلة إلى حياتنا تدريجيًّا يصبح فهم سلوكهم وتفسيره أكثر أهمية.

وينطبق تعلم الآلة القائم على الأنموذج على نحوٍ طبيعي أيضًا على المشكلات المتعلقة بسمات معينة للبيانات؛ مثل البيانات في الزمن الحقيقي Real-time Data، والبيانات غير المتجانسة Heterogeneous data، والبيانات غير الكافية Insufficient data، والبيانات غير المعنونة Unlabelled data، والبيانات التي تحتوي على أجزاء مفقودة، والبيانات التي تُجمع مع التحيزات المعروفة (أي لم تُجمع بأسلوب حيادي).

في Infer.NET، توصف النماذج باستخدام برنامج احتمالي، وقد يبدو هذا وكأنه تناقض مع المفهوم القائم على أنموذج تعلم الآلة، ولكنه في الواقع مفهوم قوي يُستخدم لوصف عمليات العالم الحقيقي بلغة تفهمها الآلات، ويترجم Infer.NET البرنامج الاحتمالي إلى شفرة برمجية عالية الأداء لتنفيذ ما يسمى في عالم التشفير بالاستدلال البايزي التقديري التقريبي Deterministic Approximate Bayesian inference، ويتيح هذا النهج إمكانية  تطوير كبير، فعلى سبيل المثال؛ نستخدمها في نظام يستخرج المعرفة "Knowledge" تلقائيًّا من مليارات صفحات الويب، والتي تضم بيتابايتات "Petabytes" من البيانات.

استخدام خوارزميات الاستدلال الحتمي مكمل للطرائق التي تستخدمها معظم مكتبات البرمجة الاحتمالية الأخرى، والتي تعتمد في الغالب على أخذ العينات. تتمثل إحدى الإمكانيات الرئيسة لهذا النهج في دعم الاستدلال الإحصائي وقدرة النظام على التعلم عند وصول بيانات جديدة. وقد لوحظ أن هذا أمر ضروري في مجال الأعمال والمنتجات الاستهلاكية التي تتفاعل مع المستخدمين في الوقت الحقيقي. وعلى سبيل المثال؛ في نظام TrueSkill 2 المذكور أعلاه، من أجل الحصول على تطابق لاعبين بطريقة تنافسية، نحتاج إلى تحديث مهارات اللاعبين مباشرة بعد كل جولة، وهذا يحدث في غضون جزء من الثانية.

خلاصة القول؛ قد ترغب في استخدام Infer.NET عندما يكون لديك معرفة واسعة في النطاق الذي تحل مشكلة فيه، أو إذا كان تفسير سلوك النظام له أهمية بالنسبة إليك، أو إذا كان لديك نظام إنتاج يحتاج إلى التعلم حالما تصل بيانات جديدة.

ويتطلع فريق Infer.NET إلى الانخراط مع مجتمع المصادر المفتوحة في تطوير منصة العمل وتوسيعها منصة العمل. وسوف يصبح Infer.NET جزءًا من ML.NET وهو مكتبة تعلم الآلة لمطوري NET. وقد اتخذت بالفعل عدة خطوات نحو التكامل مع ML.NET؛ مثل إعداد المستودع ليكون تحت معايير NET Foundation، ونقل الحزمة ونطاقات الأسماء إلى Microsoft.ML.Probabilistic.

سوف يُوسّع Infer.NET  مكتبة ML.NET لتصبح قادرة على النمذجة الإحصائية والتعلم عبر الإنترنت.

يمكنكم تحميل إطار العمل Infer.NET من هنا وهو يدعم أنظمة التشغيل: ويندوز، ولينكس، وماكنتوش

ويمكنكم المساهمة مع المطورين من هنا

ويمكنكم رؤية كيفية عمله من هنا

المصادر:

هنا

هنا