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

نمذِج كما يقول لك حدسك… إنها لغة Picture الاحتمالية!

طور باحثون من معهد ماساتشوستس للتكنولوجيا، من قسم الدماغ والعلوم الإدراكية، لغةً برمجة احتمالية أطلقوا عليها اسم "Picture"، وهي امتداد للغة "Julia" المطوَّرة في المعهد نفسه أيضاً.سيقوم هؤلاء الباحثون بعرض بعض مهام الرؤية الحاسوبية القياسية في مؤتمر «الرؤية الحاسوبية والتعرف على الأنماط» المنعقد في شهر حزيران القادم. برامج قصيرة، أقل من خمسين سطراً برمجياً، مكتوبة بلغة البرمجة الاحتمالية قادرة على منافسة أنظمة تقليدية من آلاف الأسطر البرمجية.

قبل الحديث عن لغة Picture، دعونا نتعرف على البرمجة الاحتمالية.

يقول البروفيسور Vikash Mansinghka، وهو باحث في معهد ماساتشوستس:

" نودُّ أن نبني آلاتِ حوسبة يُمكنها أن تفسر وتتعلم من خبراتها الحسية وأن تتصرف بفعالية في الزمن الحقيقي، وفي نهاية المطاف أن تتمكن من تصميم وبرمجة أنفسها."

يتزايد حجم المعلومات هذه الأيام بشكل أُسيّ، كما وتتزايد العلاقات والتفاعلات بين هذه المعلومات. فمثلاً ماذا يمكن لدرجات الحرارة المحلية أن تخبرنا عن نظام المناخ العالمي؟ أو ماذا يمكن لتصفح الويب ومعلومات الشراء الإلكتروني أن تخبرنا عن المستهلك؟ أو كيف يمكن أن تُستخدم البيانات الوراثية لتشخيص العلاجات الطبية؟

تبدو كل هذه المشاكل مختلفة عن بعضها البعض، لكن في الحقيقة هي متشابهة، فجميعها بحاجةٍ إلى تعميمٍ استدلاليٍّ استقرائي من المشاهدات الملتقطة.

تستخدم الحواسيب طريقتين لتفسير أو فهم البيانات: المحاكاة والاستدلال.

في برنامج المحاكاة التقليدي كمثال: تأخذ الآلة الشروط البدئية كدرجاتِ حرارة تاريخية لمنطقة ما، وتقديرات الطاقة المنبعثة من الشمس، حيث يُعتبر هذا دخلاً. ومن ثم تستخدم الآلة افتراضاتِ المبرمج حول تفاعل هذه المتحولات مع بعضها، هذه الافتراضات المعبَّر عنها بمعادلاتٍ رياضية والتي تقدم لنا تنبؤاتٍ حول المناخ في المستقبل.

أما في برنامج الاستدلال الاحتمالي: يُقدَّم للآلة كل التفاعلات والعلاقات الممكنة بين مختلف عناصر النظام المناخي ومجموعة من البيانات المُلاحَظة. يقوم البرنامج وبشكل تلقائيٍّ بتعلم أي التفاعلات أكثر فاعلية وتأثيراً في شرح البيانات المُلاحَظة، حتى وإن كانت هذه التفاعلات معقدة جداً.

تتَّـسمُ المحاكاة أنها تُـنـفَّـذ في اتجاه واحدٍ، من الأسباب إلى الآثار المفترضة. في حين أن الاستدلال الاحتمالي ينفذ في كلا الاتجاهين!

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

تطبيقات البرمجة الاحتمالية واسعة مثل الرؤية الحاسوبية والعلم الإدراكي والتعلم التلقائي ومعالجة اللغات الطبيعية. وقد طُّورت العديد من لغات البرمجة الاحتمالية والتي هي امتداد للغات برمجة تقليدية معروفة مثل لغة ProbLog (امتداد لـProlog)، ولغة Infer.NET (امتداد لـNET Framework.)، ولغة BLOG (امتداد لـJava)، وآخرها لغة Picture (امتداد لـJulia).

لغة Picture:

Picture هي لغة برمجة احتمالية لفهم المشهد*، تهدف إلى توفير لغة تمثيل عامة ومحرك استدلال مناسب لفئة واسعة من مشاكل إدراك المشهد التوليدية. حيث تسمح للباحثين أن يعبروا عن نماذج الرؤية المعقدة، والتي يتم حلها تلقائياً باستخدام محرك الاستدلال هذا.

حيث أن العمل الجديد يُحيي فكرة معروفة بالرسومات العكسية، والتي يرجع تاريخها إلى بدايات أبحاث الذكاء الاصطناعي. فعلى الرغم من أن الحواسيب آنذاك كانت بطيئة جداً مقارنة بمعايير اليوم، إلا أن رواد الذكاء الاصطناعي كانوا قادرين على تركيب صورٍ واقعية عن طريق حساب الطريقة التي ينعكس فيها الضوء عن أغراض افتراضية.

يقول أحد المشاركين في هذا البحث أن استدلال الأشكال ثلاثية الأبعاد للأغراض من معلومات بصرية هو ببساطة نفس المشكلة السابقة لكن بشكل معاكس، حيث أن اللون المُعطى في الصورة البصرية- من حيث المبدأ- يمكن أن ينتج باستخدام ضوء من أي لون قادم من أي اتجاه، مما يعكس على السطح اللون الصحيح مع التوجه الصحيح.

يتطلَّبُ حساب قيمة لون البكسل في إطار واحد من فلم "Toy Story" حساباتٍ ضخمة! لكنه حتميّ؛ كل المتحولات معروفة. والشكل المستنتَج من جهة أخرى هو احتمالي؛ هذا يعني وجود عدة احتمالات، يتمُّ اختيار الأكثر ترجيحاً منها.

التعليم لتحسين الاستدلال:

في لغات البرمجة الاحتمالية، يقعُ الحمل الأكبر على عاتق خوارزمية الاستدلال، الخوارزمية التي تعيد وبشكل مستمر تنظيم الاحتمالات اعتماداً على معطيات الدخل. وفي هذا الصدد استفاد الباحثون من عقود من أبحاث التعلم التلقائي، فمن الممكن تضمين عدة خوارزمياتِ استدلالٍ لتحقق نجاحاً جيداً في تطبيقات الرؤية الحاسوبية في لغة البرمجة الاحتمالية Picture. حيث يمكن اختبار هذه الخوارزميات على أي مشكلة معطاة لمعرفة الأفضل منها.

وأكثر من ذلك يقول الباحثون أن لغة Picture صُمِّمت بحيث تسطيع خوارزميات الاستدلال الاستفادة من عملية التعلم التلقائي! من خلال تعديل أنفسها لتناسب استراتيجياتٍ تحقق نتائج جيدة!

"استخدام التعليم لتحسين الاستدلال سيكون مهمة خاصة، لكن البرمجة الاحتمالية ربما تقلل من إعادة كتابة الكود البرمجي عبر مشاكل مختلفة. حيث يمكن أن يكون الكود البرمجي عام إذا كانت آلية التعلم تملك من القوة مايكفي لتعلم استراتيجيات مختلفة لمهام مختلفة".

قام الباحثون باستعراض لغة Picture في ثلاثٍ من مشاكل الرؤية الحاسوبية الصعبة وهي:

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

تأخد التعابير في Picture قيماً حتمية أو عشوائية، وتتم ترجمتها بالزمن الحقيقي، مما يُسرع من تنفيذ البرنامج.

أي إجرائية مكتوبة بلغة Picture مكونة من ثلاثة أجزاء رئيسية:

1- معمارية المشكلة: هنا يتم توصيفُ المشاهد البصرية ثنائية وثلاثية الأبعاد وكل المعلومات المتعلقة بإظهارها وبإظهار خرج الإجرائية.

2- محرك الاستدلال: هنا يتم تفسير صورة الدخل، حيث يُولِّد المحرك مجموعة متنوعة من المقترحات والتي يقوم بتطويرها بشكل تكراري للوصول إلى المقترح الأعلى احتمالاً والأكثر تمثيلاً لصورة الدخل.

3-تمثيل الخرج: هنا يتم تمثيل المشاهد المولَّدة ثلاثية الأبعاد من قبل هذا البرنامج الرسومي الاحتمالي.

في ختام الحديث، تؤمِّن لغة Picture إطارَ عمل يساعد تقريباً على حل كل مهام الرؤية الحاسوبية ويحاول الإجابة على واحد من أكثر الأسئلة الأساسية في الرؤية الحاسوبية، "ماهو التمثيل الصحيح للمَشاهد البصرية؟". إنها ببساطة بداية إعادة النظر الحديثة لاستدلال الرسومات العكسية.

فهم المشهد*: التعرف على محتوى المشهد وتمييز الأغراض الموجودة فيه وتحديد نوع هذه الأغراض والعلاقات النسبية فيما بينها!

-------------------------

مصادر المقال:

البحث:

هنا

مصادر أخرى:

هنا

هنا

هنا

هنا

هنا

مصادرالصور:

هنا

هنا