مدونة سالم العلياني
  • الرئيسية

  • تعريف

  • التواصل

  • المدونة

  • قناتي التعليمية

في الذكاء الاصطناعي وتعلم الآلة وعلوم البيانات وشذرات أخرى

  • الرئيسية

  • تعريف

  • التواصل

  • المدونة

  • قناتي التعليمية

103 views

البيانات وعلاقتها بالذكاء الإصطناعي 2

مشاركة المنشور

في مدونة اليوم سأعرض لكم برنامجا عمليا تطبيقيا عن البيانات وعلاقتها بالذكاء الإصطناعي. يوجد لدي مئة صورة تحوي وجوها (انظر الشكل الأول).

Screen Shot 1439-02-15 at 4.16.04 PM.png

الشكل الأول

بعض هذه الوجوه هي وجوه بشرية وبعضها الآخر أفيتار Avatar (غير حقيقية). والهدف من هذا البرنامج أن نقوم بتصنيف الصورة هل هي وجها بشريا أم أفيتار. وهذا النوع من البرامج يسمى تصنيف Classification.

نبدأ بجمع الصور والحصول عليها في شكلها الأصلي (انظر الشكل الثاني).

وبعد أن تكون الصورة لدينا نقوم بعمل تمييز للوجه الذي في الصورة Face detection. وهنا يوجد عدة خوارزميات للقيام بهذه المهمة منها على سبيل المثال لا الحصر: PCA, LDA, KLT, Neural Nets… الخ. علما أن هذه الخوارزميات ليست حصرا على مشكلة تمييز الوجوه، أو مشكلة التمييز في الصور فقط بل تتعداها لكثير من أنواع التمييز وتعلم الآلة.

بعد أن استخدمنا KLT لتمييز الوجوه في الصور التي لدينا، قمنا بقص صور الوجوه فقط بحجم 100 في 37 بيكسل. ثم قمنا بإزالة الألوان من كل صورة والاحتفاظ بدرجات اللون الرمادي gray scale (انظر الشكل الثالث). وذلك لتوحيد المقاس وازالة تأثيرات الألوان على تمييز الصور وتقليل حجمها وكلها مهمة عند عمل أي برنامج ذكاء اصطناعي.

Loom-team.jpg

الشكل الثاني (الصورتين على اليسار بشرية والصورتين على اليمين أفيتار)

Screen Shot 1439-02-15 at 6.41.59 PM.png

الشكل الثالث

الآن نقوم بوضع جميع الصور في مصفوفة مقاسها 100 في 3700 حيث أن كل صف يحوي معلومات صورة واحدة. ولأن لدينا 100 صورة فكان عندنا 100 صف في المصفوفة. دعونا نسمي هذه المصفوفة X. وفي مجال أبحاث الكمبيوتر نسميها مجموعة البيانات Data Set. طبعا صورة الوجه مخزنة في X عبارة عن أرقام بين الصفر و 265. وذلك يمثل لون كل بيكسل في الصورة.

الآن بما أن عدد الصور محدود لدينا فنقوم بشكل يدوي Manual بتصنيف الصور الى بشري وأفيتار. طبعا قد يقول قائل، مالفائدة إذا كنت سأقوم بتصنيف الصور بشكل يدوي؟ أين الذكاء في هذا؟ ولكن عند معرفة السبب يبطل العجب. نحن نقوم بتصنيف عدد 100 صورة بشكل يدوي لنقوم بتدريب البرنامج على هذه الصور، وعندما يتدرب على هذه الصور فإننا عندما ندخل عليه صورة جديدة لانعرف تصنيفها فإنه يقوم هو بتصنيفها بشكل تلقائي. فقد ندرب البرنامج على مئة صورة أو ألف صورة لكن يقوم هو بتصنيف ملايين الصور بشكل تلقائي. وهذا النوع من التدريب الذي نحتاج فيه لتصنيف مسبق لتدريب الخوارزمية يسمى Supervised Learning.

في هذا المثال التوضيحي البسيط قمنا باستخدام خوارزمية اسمها ReliefF باختيار عدد 30 بيكسل وجدنا أنها تستطيع أن تميز الصور بكفاءة عالية وهذه المرحلة تسمى Feature Selection. وفيها يتم اختيار خصائص الصورة التي تستطيع أن تعطينا أفضل النتائج عند التصنيف.

وفي نفس المرحلة قمنا بتقسيم الصور لدينا لمجموعتين المجموعة الأولى تحوي 90 صورة لتدريب الخوارزمية Training set والعشر الصور الباقية لاختبار النتائج Test Set. وكررنا ذلك عشر مرات كل مرة نغير صور التدريب، وهذا يسمى k-fold Cross Validation، و k=10 في هذه الحالة.

وبعد هذا التدريب على التصنيف باستخدام خوارزمية سهله جدا اسمها K-Nearest Neighbor أو KNN اختصارا، حصلنا على نموذج Model بسيط جدا يستطيع أن يصنف لنا الصورة بشكل دقيق جدا (في هذه الحالة نسبة الدقة 99%). الشكل الرابع يوضح الشكل النهائي للبرنامج.

Screen Shot 1439-02-15 at 6.33.54 PM.pngScreen Shot 1439-02-15 at 6.34.17 PM.png

الشكل الرابع (البرنامج، وتظهر النتيجة في المستطيل البرتقالي)

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

سالم العلياني

متخصص في الذكاء الاصطناعي وتعلم الالة وعلوم البيانات.. حاصل على الدكتوراة من جامعة ولاية أريزونا بالولايات المتحدة الأمريكية. رئيس مركز الذكاء الاصطناعي بجامعة الملك خالد.. هنا أكتب في فلسفة العقل البشري وعلوم الذكاء الإصطناعي والمستقبل.

التعليقات 2

  1. ابو مشعل
    ابو مشعل بتاريخ 5 نوفمبر، 2017 - 4:53 ص

    شكرا لك دكتور سالم ،
    شكرا لك على ماتقدمه من معلومات قيمة وجميله
    سؤالي لك دكتور هل هذه الخوارزميات يمكن أن تدخل في عالم الالكترونيات والميكرو كنترول
    وعند تدريبها وإدخال لها البيانات المطلوبة تقوم بعمل اي شي جديد يطرأ عليها

    شكرا لك مرة اخرى

    الرد
    • salelyani
      salelyani بتاريخ 5 نوفمبر، 2017 - 10:38 ص

      العفو أخي أبو مشعل.. سؤالك جميل .. والجواب نعم بكل تأكيد.. وهناك مثلا
      Arduino
      لها مكتبة خاصة لتطبيق neural nets
      اسم المكتبة Neuroduino
      لكن لا أنصح بذلك لأن استخداماتها تستطيع أن تقوم بها باستخدام السوفت وير فقط بدون الحاجة لتطبيقها على هاردوير.. ويبقى الهاردوير اليوم لعمل الأمور الميكانيكية البحته..

      الرد

شارك بتعليقك إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

افضل المقالات

  • ماهو التعلم العميق Deep Learning ؟
    22 يناير، 2018
  • وحدة الذكاء الاصطناعي بجامعة الملك خالد
    7 أبريل، 2018
  • مدخل للبيانات: أنواع البيانات
    2 فبراير، 2018
  • كيف أتعلم الذكاء الإصطناعي (للمبتدئين)
    19 ديسمبر، 2017
© 2025 مدونة سالم العلياني