الفصل السادس

التعلُّم العميق

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

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

لفهم مضمون التعلم العميق، ينبغي أن ننطلق من بدايات بسيطة وسهلة. وعلى تلك البدايات سنبني صورةً أكثر تعقيدًا وتفصيلًا؛ إلى أن نتمكَّن، مع نهاية الفصل، من فهم ما تعنيه كلمة «عميق» في مصطلح التعلم العميق.

الخلايا العصبية، الحقيقية والاصطناعية

سنبدأ من حجر الزاوية الأساسي لأنظمة التعلم العميق، القادم من علم الأحياء. الدماغ جزء من الجهاز العصبي، والمكوِّنات الأساسية للجهاز العصبي عبارة عن خلايا تسمَّى الخلايا العصبية. تتميز الخلايا العصبية بشكل خاص؛ فهي تبدو مختلفة في الشكل عن البِنى الكروية التي عادةً ما نربطها بالخلايا. وفيما يلي واحدة من أولى صور الخلايا العصبية، رسمها العالم الإسباني سانتياجو رامون إي كاخال عام ١٨٩٩، أحد مؤسسي علم الأعصاب الحديث.1

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

الدماغ البشري عبارة عن شبكة ضخمة من الخلايا العصبية يبلغ عددها نحو مائة مليار خلية، وكل خلية منها متصلة في المتوسط بآلاف من الخلايا العصبية الأخرى. ليست لدينا الوسائل لبناء شبكة بهذا الحجم، ولكن يمكننا بناء أنظمة مستمَدة من نماذج مبسطة ومثالية من الخلايا العصبية. وفيما يلي نموذج لخلية عصبية اصطناعية:

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

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

في الخلية العصبية الاصطناعية، نُقدِّر مرونة التشابكات العصبية — ودورها المحفز أو المثبط — من خلال «أوزان» نخصصها للمُدخلات. في نموذج الخلية العصبية الاصطناعية، لدينا من المدخلات — ، ، …، . نخصِّص لكل مُدخل منها وزنًا ، ، ، …، . يُضرب كل وزن في المدخل الموازي له. المُدخل الأخير الذي تستقبله الخلية العصبية هو مجموع حواصل ضرب نضيف لهذا المُدخل الموزون الانحياز ، الذي يمكنك اعتباره النزعة الطبيعية لدى الخلية العصبية للاستثارة أو التحفيز؛ وكلما زاد الانحياز، زاد ميلها إلى النشاط، بينما سيؤدي إضافة انحياز سلبي إلى الإدخال الموزون إلى تثبيط الخلية العصبية وعزوفها عن الاستثارة.
تعد قيم الأوزان والانحياز «معاملات» الخلية العصبية لأنها تؤثِّر في سلوكها. ولما كانت مخرجات الخلية العصبية الحيوية تعتمد على مدخلاتها، فإن مخرجات الخلية العصبية الاصطناعية تعتمد على المدخلات التي تستقبلها. وتتم تلك العملية عن طريق تغذية المدخلات في دالة تنشيط خاصة، التي تكون نتيجتها هي مخرجات الخلية العصبية. وهذا ما يحدث، على المستوى البياني، باستخدام الدالة كبديل لدالة التنشيط:

أبسط دالة تنشيط عبارة عن دالة درجية، تعطينا النتيجة ٠ أو ١. تُحفَّز الخلية العصبية وتعطي النتيجة ١ إذا كان المدخل إلى دالة التنشيط أكبر من صفر، أو تبقى النتيجة ثابتة على صفر إذا كان المدخل غير ذلك:

بدلًا من التفكير في الانحياز، من المفيد أن نفكِّر في حدٍّ. تعطي الخلية العصبية النتيجة ١ إذا كانت المدخلات الموزونة أعلى من الحد، وإذا كانت غير ذلك فستكون النتيجة صفرًا. في الحقيقة، إذا كتبنا سلوك الخلية العصبية في شكل صيغة، تكون الحالة الأولى هي أو . وباستخدام ، نحصل على النتيجة ، حيث — معكوس الانحياز — هي الحد الذي تحتاج المدخلات الموزونة إلى تمريره إلى الخلية العصبية لتحفيزها.

عمليًّا، نميل إلى استخدام دوال تنشيط أخرى ذات صلة بدلًا من الدالة الدرجية. ويمكن فيما يلي أن نرى ثلاث دوال شائعة.

تسمَّى الدالة الأولى «الدالة السينية»؛ لأنها تأخذ شكل حرف .2 وتتراوح مخرجاتها من صفر إلى ١. فالمدخلات الكبيرة الموجبة تعطي مخرجات قريبة من ١، والمدخلات الكبيرة السالبة تعطي مخرجات قريبة من صفر. وهذا يقارب خلية عصبية حيوية تُحفَّز مع المدخلات الكبيرة وتبقى ثابتة إذا كانت غير ذلك، كما أنه تقريب سلس إلى الدالة الدرجية. تسمَّى دالة التنشيط الثانية دالة الظل الزائدي.3 إنها تشبه الدالة السينية، ولكنها تختلف في أن مخرجها يتراوح بين −١ و+١؛ إذ تؤدي المدخلات الكبيرة السالبة إلى نتيجة سالبة، محاكية بذلك إشارة تثبيط. الدالة الثالثة تسمَّى دالة المصحح؛ إذ تحول كل المدخلات السالبة إلى صفر، وإلَّا فسيتناسب مخرجها طرديًّا مع مدخلاتها. يوضح الجدول التالي مخرجات دوال التنشيط الثلاث لمدخلات مختلفة.
−٥ −١ ٠ ١ ٥
دالة سينية ٠٫٠١ ٠٫٢٧ ٠٫٥ ٠٫٧٣ ٠٫٩٩
دالة الظل الزائدي −١ −٠٫٧٦ ٠ ٠٫٧٦
دالة المصحح ٠ ٠ ٠ ١ ٥
إذا كنت تتساءل عن سبب انتشار دوال التنشيط (في ظل وجود دوال غيرها)، فالسبب هو أنه ثبت عمليًّا أن بعض دوال التنشيط أنسب في بعض التطبيقات من غيرها. ولما كانت دالة التنشيط بالغة الأهمية بالنسبة إلى الخلية العصبية، فغالبًا ما تسمَّى الخلايا العصبية باسم دوال التنشيط الخاصة بها. فالخلية العصبية التي تستخدم الدالة الدرجية تسمَّى «بيرسيبترون».4 إذن، لدينا الخلية العصبية السينية والخلية العصبية ذات الظل الزائدي. كذلك نطلق على الخلايا العصبية «وحدات»، بينما تسمَّى الخلية العصبية التي تستخدم دالة المصحح الوحدة الخطية المصححة (أو ريلو).
يمكن أن تتعلَّم الخلية العصبية الاصطناعية الفردية التمييز بين مجموعتين من العناصر. على سبيل المثال، لنأخذ البيانات في الصورة الأولى فيما يلي التي تصوِّر مجموعة من الملاحظات بعلامتين، على المحور الأفقي و على المحور الرأسي. نريد أن نبني نظامًا يستطيع التفريق بين مجموعتي النقاط. بناءً على أي عنصر، سيتمكَّن النظام من تحديد إذا ما كان العنصر يقع في إحدى المجموعتين أو الأخرى. في الواقع، سينشئ النظام «حدًّا للقرار»، كما في الشكل الثاني. بالنسبة إلى أي مجموعة مكوَّنة من (، )، سيخبرنا النظام إذا ما كان العنصر ينتمي إلى المجموعة ذات اللون الفاتح أم ذات اللون القاتم.
figure
لن تتضمَّن الخلية العصبية أكثرَ من مدخلين. ستأخذ كل زوج (، ) وتحسب مخرجًا. إذا كنَّا نستخدم دالة التنشيط السينية، فسيتراوح المخرج بين ٠ و١. سنأخذ القيم الأكبر من ٠٫٥ وندرجها في إحدى المجموعتين ونأخذ القيم الباقية وندرجها في المجموعة الأخرى. بهذه الطريقة، سوف تعمل الخلية العصبية كمصنف، يصنف البيانات إلى فئتين مختلفتين. ولكن كيف تفعل ذلك؟ كيف يمكن للخلية العصبية أن تصل إلى مرحلة القدرة على تصنيف البيانات؟

عملية التعلم

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

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

في لحظة إنشاء الخلية العصبية، لا تتمكَّن الخلية من التعرُّف على أي نوع من البيانات؛ بل «تتعلم» التعرُّف على البيانات. ويتم هذا التعلُّم بطريق الأمثلة.

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

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

يتحدَّد سلوك الخلية العصبية تجاه أي مدخل حسب أوزانه وانحيازه. عندما نبدأ، نضع الأوزان والانحياز بقيمٍ عشوائية، دون أن تعلم الخلية العصبية شيئًا عنها، مثل طالب جاهل بلا أي معلومات. ثم نعطي الخلية العصبية مدخلًا واحدًا في شكل مجموعة زوجية (، ). ستُنتِج الخلية العصبية مُخرجًا ما. بما أن لدينا قيمَ أوزان وانحياز عشوائية، ستكون المخرجات أيضًا عشوائية. لكننا نعلم الإجابة الصحيحة التي ينبغي أن تصدر من الخلية العصبية بالنسبة إلى كل ملاحظة من الملاحظات في مجموعة بيانات التدريب. عندئذٍ، يمكننا حساب مدى بُعد مخرجات الخلية العصبية عن المخرجات المطلوبة. ويُطلَق على تلك النتيجة «الخسارة» وهي قياس درجة خطأ الخلية العصبية بالنسبة إلى مُدخل معيَّن.
على سبيل المثال، إذا نتج عن مدخلات الخلية العصبية مخرجًا قيمته ٠٫٢ في حين أن المُخرج المطلوب هو ١٫٠، يمكننا حساب الخسارة عن طريق طرح القيمتين إحداهما من الأخرى. وتجنبًا للاضطرار إلى التعامل مع العلامات، عادةً ما نعتبر الخسارة تربيعَ ناتجِ الطرح؛ وفي هذا المثال ستكون (١٫٠ − ٠٫٢)٢ = ٠٫٦٤. فلو كان المُخرج المطلوب ٠٫٠، عندئذٍ ستصبح الخسارة (٠٫٠ − ٠٫٢)٢ = ٠٫٠٤. أيًّا ما قد يكون الأمر، يمكننا الآن، بعد أن حسبنا الخسارة، تعديل الأوزان والانحياز لتقليلها.

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

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

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

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

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

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

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

إذن، القاعدة واحدة في الحالتين كلتيهما: تحسب الخلية العصبية الميل وتُحدِّث قيمة الوزن في الاتجاه المعاكس للميل. قد يكون كل هذا معروفًا من حساب التفاضل والتكامل. ميل الدالة عند نقطة ما هو «المشتقة» الخاصة بها. ولتقليل الخسارة، ينبغي تغيير الوزن بمقدار ضئيل عكس مشتق الخسارة.

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

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

•••

بالنسبة إلى كل مدخل وكل مُخرج مطلوب في مجموعة بيانات التدريب:
  • (١)

    يُحسب مُخرج الخلية العصبية والخسارة.

  • (٢)

    تُحدَّث قيم الأوزان والانحياز للخلية العصبية لتقليل الخسارة.

بمجرد الانتهاء من التدريب بالاطلاع على كل البيانات المدرجة في مجموعة بيانات التدريب، نقول إننا قد أكملنا «مرحلة». لكننا لا نتوقَّف عند هذا الحد عادةً. فالعملية تُعاد كاملة عدة مرات؛ إن الأمر أشبه بالطالب حينما يعيد مذاكرة المادة كلها من جديد بعد الاطلاع عليها كاملة. ومن المتوقَّع أن يحرز تحسنًا في المرة القادمة؛ لأنه هذه المرة لا يبدأ من الصفر — إذ لم يَعُد جاهلًا بالمادة — لأنه تعلَّم شيئًا بالفعل من المرحلة السابقة.

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

يمكن إثبات أن الخلية العصبية، باتباع هذه الخوارزمية، يمكن أن تتعلَّم تصنيف أي بيانات «يمكن الفصل بينها خطيًّا». إذا كان للبيانات بُعدان (مثل المثال الذي معنا)، فهذا يعني أنه ينبغي الفصل بينها بخط مستقيم. أما إذا كان للبيانات سماتٌ أخرى، وليس فقط (، )، فيُعمَّم المبدأ. بالنسبة إلى البيانات الثلاثية الأبعاد — أي ثلاثة مدخلات (، ، ) — يمكن الفصل بينها خطيًّا إذا كان يمكن الفصل بينها بمستوًى بسيط في الفضاء الثلاثي الأبعاد. أما حال وجود مزيد من الأبعاد، فنطلق على المكافئ للخط والمستوى اسم «المستوى الفائق».

في نهاية التدريب، تكون الخلية العصبية قد تعلَّمت الفصل بين البيانات. وكلمة «تعلَّمت» هنا تعني أن الخلية العصبية وجدت الأوزان والانحياز المناسبين بالطريقة التي ذكرناها؛ أي بدأت بقيم عشوائية ثم حدَّثتها تدريجيًّا؛ ومِن ثَم قلَّت الخسارة. تذكَّر الشكل ذا مجموعتي النقاط حيث تعلَّمت الخلية العصبية الفصل باستخدام حد القرار. انتقلنا من الخلية العصبية جهة اليسار فيما يلي إلى الخلية العصبية جهة اليمين، حيث نرى القيم النهائية لمعاملاتها.

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

الانتقال من الخلايا العصبية إلى الشبكات العصبية

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

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

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

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

للوصول إلى النتائج التي نراها في الشكل السفلي، نبني شبكةَ طبقةٍ تلو الأخرى. ثم نضع خليتين عصبيتين في طبقة المدخلات، خلية لكل إحداثيٍّ للبيانات. نضيف طبقةً من أربع خلايا عصبية كثيفة الاتصال بطبقة المدخلات. ونظرًا لأن هذه الطبقة ليست متصلة بالمدخلات أو المخرجات، فإنها «طبقة مخفية». نضيف طبقةً مخفية من خليتين عصبيتين مكثَّفة الاتصال بالطبقة المخفية الأولى. ننهي بناء الشبكة بطبقة مخرجات مكونة من خلية عصبية واحدة وكثيفة الاتصال بالطبقة المخفية الأخيرة. كل الخلايا العصبية تستخدم دالة التنشيط ذات الظل الزائدي. ستخرج طبقة المخرجات قيمة تتراوح بين −١ و+١، عارضة بذلك اعتقادها بأن البيانات تقع ضمن إحدى المجموعتين أو الأخرى. سنأخذ تلك القيمة ونحوِّلها إلى قرار ثنائي — إجابة تحتمل نعم أو لا — بناءً على إذا ما كانت تتجاوز ٠,٠ أم لا. وفيما يلي شكل الشبكة العصبية:

خوارزمية الانتشار العكسي

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

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

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

figure
طريقة تحديث قيم الأوزان والانحياز للخلايا العصبية مماثلة لطريقة تحديثها في الخلية العصبية المفردة. مرة أخرى، تُحسب التحديثات بناءً على المشتقات الرياضية. يمكن تخيُّل شبكة عصبية كاملة كدالة كبيرة تتألَّف متغيراتها من قيم الأوزان والانحياز لكل الخلايا العصبية. بعد ذلك، يمكن حساب مشتقة كل وزن وانحياز فيما يتعلَّق بالخسارة، واستخدام تلك المشتقة لتحديث الخلية العصبية. وبذلك نصل إلى صميم عملية التعلُّم في الشبكات العصبية ألا وهو: «خوارزمية الانتشار العكسي».6
figure
بالنسبة إلى كل مُدخل والمُخرج المطلوب:
  • (١)

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

  • (٢)

    تُحدَّث قيم الأوزان والانحياز لتقليل الخسارة، بحيث نسير بترتيب عكسي من طبقة المخرجات إلى طبقة المدخلات.

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

التعرُّف على الملابس

لجعل المناقشة أكثر واقعية، لنفترض أننا نريد بناء شبكة عصبية تتعرَّف على قطع ملابس معروضة في صور؛ ومِن ثَم سنسميها مهمة «التعرُّف على الملابس». لقد وُجد أن الشبكات العصبية تجيد تلك المهام على نحوٍ استثنائي.

ستكون كل صورة بحجمٍ صغير أبعادها ٢٨ × ٢٨. تتكوَّن مجموعة بيانات التدريب من ٦٠٠٠٠ صورة وتتكوَّن مجموعة بيانات الاختبار من ١٠٠٠٠ صورة؛ سنستخدم ٦٠٠٠٠ صورة لتدريب الشبكة العصبية و١٠٠٠٠ صورة أخرى لتقييم جودة التعلم. وفيما يلي مثال لصورةٍ أضفنا إليها مَحاور وشبكة كي تفيد في المناقشة فيما يلي:7

تنقسم الصورة إلى أجزاءٍ صغيرة مميزة لأننا نتعامل مع الصور رقميًّا بتلك الطريقة. نعتبر الصورة بأكملها مخطَّطًا مستطيلَ الشكل، ونقسِّمها إلى أجزاءٍ صغيرة بأبعاد ٢٨ × ٢٨ = ٧٨٤ ونعطي كل قطعة قيمة بعدد صحيح من ٠ إلى ٢٥٥، يوازي ظلًّا باللون الرمادي، حيث صفر يشير إلى اللون الأبيض بالكامل و٢٥٥ يشير إلى اللون الأسود بالكامل. الصورة السابقة هي في الواقع المصفوفة الواردة فيما يلي.

figure

في الواقع، تتطلَّب الشبكات العصبية أن نقيس المدخلات على نطاقٍ صغير من القيم — كأن يتراوح بين ٠ و١ — وإلا فقد لا تؤتي ثمارها؛ يمكن أن تفكِّر فيها باعتبارها تتضمَّن قيمَ مدخلات كبيرة تضلل الخلايا العصبية. هذا يعني أنه قبل استخدام هذه المصفوفة، كنَّا سنقسم كل خلية على ٢٥٥، ولكننا سنتجاهل ذلك في باقي المناقشة.

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

التسمية الفئة التسمية الفئة
٠ تي شيرت/ ملابس علوية ٥ صندل
١ سروال ٦ قميص
٢ بلوفر ٧ حذاء رياضي
٣ فستان ٨ حقيبة
٤ معطف ٩ حذاء كاحل

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

figure

مرة أخرى، سنبني الشبكة العصبية في شكل طبقات. الطبقة الأولى — التي تتكوَّن من الخلايا العصبية المدخلة — ستتضمَّن ٧٨٤ خلية عصبية. ستأخذ كل خلية مُدخلًا واحدًا من جزء صغير واحد في الصورة، وببساطة ستخرج القيمة التي تحصل عليها في المُدخل الخاص بها. إذا كانت الصورة هي صورة حذاء الكاحل، فستحصل الخلية العصبية الأولى على القيمة في الجزء الصغير العلوي جهة اليسار — وهي صفر — في المُدخل، ومِن ثَم ستكون قيمة المُخرج صفرًا. ستحصل بقية الخلايا العصبية على قيم الأجزاء الصغيرة التي تسير مع اتجاه الصفوف؛ أي من الأعلى إلى الأسفل ومن اليسار إلى اليمين. الجزء الصغير ذو القيمة ٥٨ في الطرف الأيمن من كعب الحذاء (الصف الرابع من الأسفل والعمود الثالث من اليمين) سيحصل على القيمة ٥٨ وينسخها في قيمة المُخرج الخاص به. بما أن الصفوف والأعمدة في الشبكة العصبية تُعد من الأعلى ومن اليسار، فإن هذه الخلية العصبية تقع في الصف الخامس والعشرين من الأعلى والعمود السادس والعشرين من اليسار، مما يجعلها خلية المُدخل رقم ٢٤ × ٢٨ + ٢٦ = ٦٩٨.

ستتصل الطبقة التالية اتصالًا مكثفًا بطبقة المُدخلات. ستحتوي على ١٢٨ خلية عصبية من خلايا الوحدة الخطية المصحَّحة. هذه الطبقة ليست متصلة مباشرةً بالصور المُدخلة (طبقة المُدخلات) ولن تتصل مباشرةً بالمُخرجات (سنضيف طبقةً أخرى للمُخرجات). لذا فهي طبقة مخفية؛ لأننا لا نستطيع ملاحظتها من خارج الشبكة العصبية. ونظرًا لأنها متصلة اتصالًا مكثفًا، فسيؤدي ذلك إلى عدد كبير من الروابط بين طبقة المدخلات والطبقة المخفية. ستتصل كل خلية عصبية في الطبقة المخفية بمخرجات كل الخلايا العصبية في طبقة المُدخلات. سيبلغ عدد روابط المُدخلات لكل خلية عصبية ٧٨٤، ومِن ثَم يكون الإجمالي ٧٨٤ × ١٢٨ = ١٠٠٣٥٢ رابطة.

سنضيف طبقة أخرى أخيرة ستحتوي على خلايا المُخرجات العصبية التي ستحمل نتائج الشبكة العصبية. ستحتوي هذه الطبقة على ١٠ خلايا عصبية، بمعدل خلية لكل فئة. ستتصل كل خلية عصبية خاصة بالمُخرجات بكل الخلايا العصبية في الطبقة المخفية، وبذلك يصبح إجمالي عدد الروابط ١٠ × ١٢٨ = ١٢٨٠ رابطة. المجموع الكلي لكل الروابط بين جميع الطبقات في الشبكة العصبية يساوي ١٠٠٣٥٢ + ١٢٨٠ = ١٠١٦٣٢. سيبدو شكل الشبكة العصبية الناتجة — بالشكل التخطيطي — كالشكل الموضَّح أدناه. ونظرًا لاستحالة تناسب كل العُقَد والحواف، يمكن أن تُرى مربَّعات منقَّطة تعبِّر عن مجموعة العُقَد في طبقة المُدخلات والطبقة المخفية؛ توجد ٧٨٠ عقدة في المربع الأول، و١٢٤ عقدة في المربع الثاني. أسقطنا كذلك الأسهم المتجهة إلى العُقَد الفردية داخل المربعات.

ستتكوَّن مُخرجات الشبكة العصبية من ١٠ مُخرجات، بمعدل واحد من كل خلية عصبية في الطبقة. ستعبِّر كل خلية عصبية مُخرجة عن فئة واحدة، وسيعبِّر إخراجها عن احتمالية أن تكون الصورة المُدخلة منتمية إلى تلك الفئة؛ ومِن ثَم سيكون مجموع احتمالات كل الخلايا العصبية العشرة ١، كما يجب أن يحدث عند التعامل مع الاحتمالات. يُعَد هذا مثالًا على دالة تنشيط أخرى تسمَّى «سوفت ماكس»، التي تأخذ المُدخلات في صورةِ متجهٍ لأعداد حقيقية وتحوِّلها إلى توزيع للاحتمالية. لننظر المثالين التاليين.

في المثال الأول على اليسار، نحصل على تلك النتيجة في مُخرجات الشبكة:

خلية المُخرجات الفئة الاحتمالية
١ تي شيرت/ملابس علوية ٠٫٠٩
٢ سروال ٠٫٠٣
٣ بلوفر ٠٫٠٠
٤ فستان ٠٫٨٣
٥ معطف ٠٫٠٠
٦ صندل ٠٫٠٠
٧ قميص ٠٫٠٤
٨ حذاء رياضي ٠٫٠٠
٩ حقيبة ٠٫٠١
١٠ حذاء كاحل ٠٫٠٠

هذا يعني أن الشبكة العصبية تخبِرنا بأنها متأكدة من أنها تتعامل مع فستانٍ معطيةً إياه نسبة احتمالية ٨٣ بالمائة، تاركةً نسبةً صغيرة من الاحتمالات جانبًا لأن تكون الصورة المُدخلة تي شيرت/ملابس علوية أو قميصًا أو سروالًا.

في المثال الثاني، على اليمين، تُخرِج لنا الشبكة الجدول التالي:

خلية المخرجات الفئة المخرجات
١ تي شيرت/ملابس علوية ٠٫٠٠
٢ سروال ٠٫٠٠
٣ بلوفر ٠٫٣٣
٤ فستان ٠٫٠٠
٥ معطف ٠٫٢٤
٦ صندل ٠٫٠٠
٧ قميص ٠٫٤٣
٨ حذاء رياضي ٠٫٠٠
٩ حقيبة ٠٫٠٠
١٠ حذاء كاحل ٠٫٠٠

الشبكة العصبية متأكدة بنسبة ٤٣ بالمائة من أنها تتعامل مع قميص، وهذا خطأ؛ فالصورة تعبِّر في الواقع عن بلوفر (في حالة أنك لم تتعرَّف عليها). ولكنها أعطت أفضل ثاني نسبة احتمال، وهي ٣٣ بالمائة، أن تكون الصورة لبلوفر.

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

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

خلية المُخرجات الفئة المخرجات المستهدف
١ تي شيرت/ملابس علوية ٠٫٠٠ ٠٫٠٠
٢ سروال ٠٫٠٠ ٠٫٠٠
٣ بلوفر ٠٫٣٣ ١٫٠٠
٤ فستان ٠٫٠٠ ٠٫٠٠
٥ معطف ٠٫٢٤ ٠٫٠٠
٦ صندل ٠٫٠٠ ٠٫٠٠
٧ قميص ٠٫٤٣ ٠٫٠٠
٨ حذاء رياضي ٠٫٠٠ ٠٫٠٠
٩ حقيبة ٠٫٠٠ ٠٫٠٠
١٠ حذاء كاحل ٠٫٠٠ ٠٫٠٠

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

نخوض العملية نفسها برُمَّتها مع جميع الصور في مجموعة بيانات التدريب؛ أي مع مرحلة كاملة. وعند الانتهاء، نعيد كل ذلك في مرحلة أخرى. نكرِّر العملية مع محاولة تحقيق توازن: أي المرور بما يكفي من المراحل بحيث تكتسب الشبكة العصبية أكبرَ قدرٍ ممكن من مجموعة بيانات التدريب من دون المرور بعدد أكبر من اللازم من المراحل تكتسب فيها الشبكة العصبية قدرًا مفرطًا من مجموعة بيانات التدريب. في أثناء عملية التعلم، ستعدِّل الشبكة قيم أوزان وانحيازات خلاياها العصبية، وهي كثيرة. كلُّ ما تفعله طبقة المدخلات هو نسخ القيم إلى الطبقة المخفية، ومِن ثَم فلا حاجة إلى إجراء تعديلات في خلايا المُدخلات العصبية، ولكن يوجد ١٠٠٣٥٢ وزنًا في الطبقة المخفية و١٢٨٠ وزنًا في طبقة المُخرجات، و١٢٨ انحيازًا في الطبقة المخفية و١٠ انحيازات في طبقة المُخرجات، بمجموع ١٠١٧٧٠ معاملًا.

البدء في التعلم العميق

يمكن إثبات أنه على الرغم من أن الخلية العصبية لا يمكنها إنجاز الكثير بمفردها، فإن الشبكة العصبية يمكنها تنفيذ أي مهمة حسابية توصف لها بالخوارزميات وتشغَّل على جهاز كمبيوتر. ومِن ثَم لا توجد مهمة يستطيع الكمبيوتر فعْلها إلا وتستطيع الشبكة العصبية فعْلها. الفكرة العامة بالطبع هي أننا لا نحتاج إلى إخبار الشبكة العصبية بطريقة تنفيذ المهمة بالضبط. لا نحتاج سوى تغذيتها بأمثلة، وفي الوقت نفسه استخدام خوارزمية تتيح للشبكة العصبية تعلُّم طريقة تنفيذ المهمة. وقد رأينا أن خوارزمية الانتشار العكسي هي الخوارزمية الملائمة لذلك. على الرغم من أننا حصرنا أمثلتنا في التصنيف، يمكن تطبيق الشبكات العصبية على شتى أنواع المهام. فيمكنها التنبؤ بقيم كمية مستهدفة (مثل احتساب نقاط الجدارة الائتمانية) والترجمة بين اللغات وكذلك فهْم الكلام وإنشائه؛ وكذلك التغلُّب على أبطال البشر في لعبة «جو» مع إثارة حيرة الخبراء عن طريق توضيح استراتيجيات جديدة تمامًا لممارسة لعبةٍ مضى على عمرها قرون. بل استطاعت ممارسة لعبة «جو» مبتدئة فقط بمعرفة القواعد دون الوصول إلى مكتبة للمباريات التي جرت من قبل ثم الشروع في التعلم وكأن الشبكة العصبية كانت تلعب المباريات ضد نفسها.8

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

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

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

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

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

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

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

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

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٢