عمليات التفكير و الذكاء الاصطناعي

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

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

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

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

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

** الوزن والرؤية

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

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

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


** أخطاء الإدراك

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

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

د1 د2 إشارة خارجة

صفر صفر لا توجد إشارات

1 1 لا توجد إشارات

صفر 1 إطلاق إشارة

1 صفر إطلاق إشارة

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

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

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

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


** طريقة اللوغاريتم

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

يطلق على لوغاريتم التعلم اسم المنحنى الكبير وهو عبارة عن تطبيق لبعض طرق التحسين القياسية standard optimization methods, والفكرة الأساسية هي نفس الفكرة المستخدمة لتعديل أوزان الخلية العصبية الفردية أي أنك تغير الأوزان حتى تجعل النتاتج تتحرك نحو القيمة المطلوبة, وفي حالة الشبكة العصبية لابد أن تحدد الأوزان وخلاياها العصبية وكذلك الأوزان التي ينبغي تعديلها.

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

وعندما تستخدم الخلية العصبية من هذا النوع يمكنك تطبيق لوغاريتم التعلم بغض النظر عن تعقيد الشبكة أو بساطتها وذلك عبر الخطوات التالية:

1- تطبيق الناتج بالنتيجة المطلوبة (مخرجات البيانات).

2- حساب ناتج الخلية العصبية وحساب الخطأ الحالي.

3- نقل قيمة إجمالي الخطأ إلى كل خلية عصبية في الشبكة بالتناسب مع أوزانها الحالية, وتوصيل هذه الخلية بخلية الناتج .

4- استخدام الخطأ المحدد لكل خلية عصبية في تدريبها بالطريقة المعتادة والتفاصيل الخاصة بهذه الإجراءات أو الخطوات معقدة جدا , لأن مقدار الخطأ المنقول إلى كل خلية يعتمد على شكل وظيفة الحد الأدنى, وهذه هي الفكرة العامة في هذه الخطوات, ومن أكثر الأسماء شيوعا التي تطلق على هذه العملية "التفاعل العكسي" لأن الأخطاء تعود من خلال الشبكة بنفس الطريقة وعبر نفس الخطوات إلى الخلايا تماما مثلما تتطور البيانات الداخلة وتتفاعل باتجاه الناتج أو البيانات الخارجة.

** التفاعل العكسي

تتعلم الشبكة العصبية باستخدام التفاعل العكسي أي شيء ترغب في تعلمها إياه, حيث يمكنها أن تعرف الفرق بين صفر وواحد وواحد وصفر بدون مساعدة خارجية, وفي هذه النقطة تبدو كل مشاكل الذكاء الإصطناعي محلولة, وإذا أردت من نظام ذكاء إصطناعي أن يستجيب للأوامر باللغة الإنجليزية, فكل ما عليك هو أن تحصل على شبكة عصبية كبيرة وتقوم بتدريبها على تمييز الكلمات والألفاظ, وكانت هذه هي الضجة التي تلت إعادة اكتشاف الشبكات العصبية متعددة المستويات أو الطبقات, ولكن الحقيقة لا تبعث على التفاؤل على الإطلاق, فالشبكة العصبية يمكنها أن تتعلم أي شيء تريده ولكنها تستغرق دهرا كاملا حتى تفعل ذلك, كما أننا ليس لدينا أي فكرة عن التعميم, فإذا تعلمت الشبكة كيف تتعرف على إبريق معين للشاي, فهل ستتعرف على إبريق شاي آخر مشابه للإبريق الأول ولم تكن قد رأته من قبل?

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

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

رجوع