دراسات وأبحاث
التعلم العميق وأنواع البنى فيه ومتطلباته
العدد 156 | كانون اﻷول (ديسمبر)-2020

بقلم وسيم صافي
باحث في المعهد العالي

المقدمة
التعلمُ العميقُ (Deep Learning) مجالٌ حديثٌ نسبيًّا في بحوث التعلم الآلي (Machine Learning) التي تندرج ضمن مجال أوسع هو الذكاء الصنعي (Artificial Intelligence). وكان الغرضُ من تقديم التعلم العميق تقريبَ التعلم الآلي من أحد أهدافه الأصلية وهو إكساب البرمجيات ذكاءً أشدَّ في اتخاذ القرارات؛ أي أن تتخذ البرمجيات قراراتٍ صحيحةً بناءً على معطيات لم تتدرب عليها، أو تدربت على مثيلاتها سابقًا. 
تتمركز فكرة التعلم العميق الأساسية حول تعلم مستويات متعددة من التمثيل والتجريد، التي تساعد على فهم وتحليل المعطيات مثل الصور والصوت والنصوص. يساعد التعلم العميق على حل العديد من المسائل المهمة في كثير من العلوم؛ مثل: المساعدة في علم الروبوتات (Robotics) وخوارزميات توجيهها واكتشافها للعالم المحيط بها وإنجاز مهامها، والرؤية الصنعية (Vision)، ومعالجة اللغات الطبيعية (Natural Language Processing)، والألعاب (Games)، والقيادة الذاتية للعربات (Autonomous Driving)، وغيرها.
عمد الباحثون إلى التطوير المستمر للعديد من النماذج والبنى لشبكات التعلم العميق، فأدى ذلك إلى نجاح كبير ومذهل قدمته نتائج التعلم العميق في كثير من المجالات. يتناول هذا المقال أهم سبع بنى لشبكات التعلم العميق وأبرز مجالات استعمالها. ثم نقدم عرضًا لأهم المتطلبات الحاسوبية العتادية لبرمجيات التعلم العميق. ونتطرق كذلك إلى الخدمات التي تقدمها الشركات الكبرى في مجال التعلم العميق. وننهي المقال بالحديث عن مدونات المعطيات الخاصة بعمليات تدريب واختبار صلاحية وتقييم شبكات التعلم العميق، وأهم معايير اختيارها ووسمها.
 
أهم البنى لتقنيات التعلم العميق
لتسهيل التعامل مع نماذج وبنى شبكات التعلم العميق نقسمها إلى ثلاثة أقسام؛ وهي التصنيفات الأساسية في التعلم الآلي:
1- التعلم الموجَّه أو التعلم بالإشراف (Supervised Learning)
وهو يمثل الغالبية العظمى من نماذج التعلم في مجال التعلم الآلي. ويعتمد على وجود ثنائيات دخل وخرج، حيث يجري تعليم الشبكة أنَّ نموذج دخل X يجب ربطه بنموذج خرج Y استنادًا إلى أمثلة تدريبية. ثم اختبار أداء الشبكة على أمثلة جديدة مغايرة لتلك التي جرى التدريب عليها. فمثلًا تُدرَّب الشبكة على ربط صور مجموعة أشكال بأسماء هذه الأشكال، فإذا عُرض أحد هذه الأشكال بلون مختلف أو بمجموعةِ متغيراتٍ مختلفة تمكنت الشبكة من تعرُّفه. 
يندرج تحت هذا النوع من التعلم النماذج الآتية من الشبكات: 
- الشبكات العصبونية ذات التغذية الأمامية (Feed Forward Neural Networks):  وهي أبسط نماذج الشبكات العصبونية وأقدمها. تنتقل معطيات التدريب أو الاختبار من طبقة الدخل (Input Layer)، إلى الطبقات الداخلية المخفية (Hidden Layers)، ثم إلى طبقة الخرج (Output Layer) في مسار واحد واتجاه واحد ومن دون وجود ما يسمى خلايا "ذاكرة الحالة" (State Memory) التي تفيد في تذكُّر المعطيات المهمة التي يجري التدريب عليها. من الناحية التقنية، يمكن اعتبار معظم الشبكات في التعلم العميق شبكات ذات تغذية أمامية FFNN، ولكن هذا المصطلح يشير عادةً إلى أبسط نماذجها، وهي الشبكات المتعددة الطبقات المتصلة بكثافةa densely-connected multilayer  perceptron أو ما يعرف بترميز MLP. 
تُستعمل هذه الشبكات في تطبيقات التصنيف المتقطع (Discrete Classification)، أو الانكفاء المستمر (Continuous Regression).
 
- الشبكات العصبونية التلافيفية (Convolutional Neural Networks): وهي شبكات عصبونية ذات تغذية أمامية. تستفيد هذه الشبكات من فكرة الثبات المكاني (Spatial Invariance) الموجودة في الأغراض المعروضة عليها لتعلم الأنماط المحلية بكفاءة. وهذا النوع هو الأكثر شيوعًا في تطبيقات الصور المعتمِدة على التعلم العميق. الثبات المكاني يعني أن ميزات جزء من الصورة (وجه شخص مثلًا) في أعلى يسار الصورة هي نفسها لو كانت في أسفل يمين الصورة. وتعني أن ميزات شكل المستطيل ستكون نفسها أيًّا كانت المساحة التي سيشغلها المستطيل في الصورة. تتشارك الشبكات التلافيفية في الأوزان (Weights) ضمن فضاء الصورة لجعل اكتشاف الأغراض والأنماط المختلفة أكثر كفاءةً. حيث تقسم هذه الشبكاتُ الصورةَ إلى مجموعة من الأجزاء وتقوم بنقل ومشاركة الأوزان المعبِّرة عن ميزات جزء ما إلى باقي الأجزاء. تُستعمل هذه الشبكات استعمالًا واسعًا في تصنيف الصور (Image Classification)، واكتشاف الأغراض ضمن الصور (Object Detection)، وتعرُّف الأحداث ضمن مقطع فيديو (Video Action Recognition).
 
- الشبكات العصبونية التكرارية (Recurrent Neural Networks): وهي شبكات تتضمن حلقات لإعادة استعمال الأوزان، ولها "ذاكرة حالة". وكما أن شبكات CNN تشارك في الأوزان ضمن "الفضاء المكاني"، فإن RNNs تشارك في الأوزان ضمن "الزمن"؛ أي تُحسَب الأوزان في مرحلة معالجة معيَّنة، ثم تُستعمل هذه الأوزان الناتجة ضمن مرحلة المعالجة القادمة. وهكذا في الأوزان الناتجة في المراحل التالية. إن المشاركة في الأوزان خلال عدة مراحل يتيح لهذه الشبكات معالجةَ وتمثيلَ الأنماط بكفاءة في البيانات المتسلسلة. وقد طُوِّرت عدة نسخ من هذا النوع من الشبكات؛ منها: شبكات ذات ذاكرة طويلة المدى LSTMs (Long Short-Term Memory)، والشبكات ذات وحدات البوابات المتكررة GRUs (Gated recurrent unit)، وذلك للمساعدة على تعلم الأنماط في تسلسلات طويلة. تشمل التطبيقات المهمة لهذا النوع من الشبكات نمذجة اللغات الطبيعية (Natural Language Modeling)، وتعرُّف الكلام (Speech Recognition)، وتوليد الكلام (Speech Generation)، وغيرها.
 
- الشبكات المعتمدة على بنى الترميز وفك الترميز (Encoder-Decoder Architectures): إن شبكات FFNN وCNN وRNN المذكورة آنفًا هي ببساطة شبكات تقوم بالتعرُّف أو باتخاذ القرار باستعمال مرمِّز كثيف (Dense Encoder) أو مرمِّز تلافيفي (Convolutional Encoder) أو مرمِّز متكرِّر (Recurrent Encoder)، على التوالي. ويمكن دمج أدوات الترميز هذه أو تبديلها بناءً على نوع المعطيات التي يجري تدريب الشبكة عليها من أجل تكوين تمثيل مفيد لها.
 
تعتمد هذه البنية على خطوة الترميز (The Encoding Step) لتوليد مخرجات عالية الأبعاد، وعلى خطوة فك الترميز (The Decoding Step) لاختزال التمثيل المضغوط في الخطوة السابقة. والنتيجة هي تمثيل دقيق للمعطيات ونتائج ذات دقة عالية في العديد من التطبيقات. 
 
من المهم ملاحظة أن بنية المرمِّز ومفكِّك الترميز يمكن أن يكونا مختلفين تمامًا أحدهما عن الآخر حسب التطبيق. على سبيل المثال، في تطبيقات ربط الصور بنصوص تعبِّر عنها، قد تحتوي الشبكة على مرمز تلافيفي (Convolutional Encoder) لتمثيل الصورة، ووحدة فك ترميز متكررة (Recurrent Decoder) لمعالجة النصوص المرتبطة بالصور. 
تشمل التطبيقاتُ أيضاً التجزئةَ الدلاليةَ (Semantic Segmentation) لربط الصور بالمعاني الدلالية الموجودة في النصوص المرتبطة بها، كالترجمة الآلية (Machine Translation) وغيرها من التطبيقات المهمة.
 
2- التعلم غير الموجَّه أو التعلم بدون إشراف (Unsupervised Learning)
في هذا النوع من التعلم، يوجد نماذج دخل فقط، ولا يوجد نماذج خرج. أشهر أنواع هذا النوع من التعلم هو العنقدة Clustering، حيث يجري عرض مجموعة كبيرة من الأغراض (صور، نصوص، فيديوهات...) على نموذج العنقدة، ثم يقوم النموذج بتجميع الأغراض المتشابهة حسب خصائصها. 
يندرج تحت هذا النوع من التعلم النماذج الآتية من الشبكات: 
- شبكات الترميز التلقائي (Autoencoders): تُعَدُّ هذه الشبكات واحدةً من أبسط أنواع شبكات التعلم غير الموجه أو التعلم بدون إشراف، حيث تعتمد بنى الترميز وفك الترميز (Encoder-Decoder Architectures)، وتتعلم إنشاء نسخة دقيقة من معطيات الإدخال. ولما كان حجم التمثيل المرمز في هذه الحالة أصغرَ بكثير من حجم معطيات الإدخال الأساسية، فإن بنيان الشبكة يركِّز على تعلُّم كيفية تمييز المعلومات الأشد أهمية لتمثيلها عن طريق وحدة الترميز.
 
ونظرًا إلى أن معطيات التمثيل الأساسية تأتي من بيانات الإدخال، فلا يلزم بذل أي جهد بشري في مرحلة التمثيل. ومن هنا جاء تصنيف هذه الشبكات ضمن مجال التعلم غير الموجه، وبعبارةٍ أخرى: إنه يخضع للإشراف الذاتي. ومن أهم مجالات استعمال هذا النوع من الشبكات: تطبيقات تقليل التشويش في الصور (Image denoising)، وتطبيقات التضمين غير الخاضع للإشراف (Unsupervised Embeddings)، التي تستعمل بكثرة في معالجة النصوص ومسائل معالجة اللغات الطبيعية، وغيرها من التطبيقات المهمة. ولكن الأهم من ذلك، أن فكرة هذه الشبكات القائمة على التعلم التمثيلي (Representation Learning) تعتبر أساسيةً للنماذج التوليدية الموضحة في القسم التالي.
 
- شبكات الخصومة التوليدية (Generative Adversarial Networks): وهي إطار عمل لتدريب الشبكات بهدف توليد عينات حقيقية جديدة بناءً على تمثيل معيَّن. تتضمن عملية التدريب - في أبسط أشكالها - شبكتين: الأولى (المولِّد Generator) تولِّد حالات بيانات جديدة في محاولةٍ لخداع الشبكة الثانية، والثانية (أداة التمييز Discriminator)، تصنِّف الصور على أنها حقيقية أو مزيفة.
 
على مدى السنوات القليلة الماضية، اقتُرح العديد من التطويرات والتحسينات لشبكات GAN، ومن ذلك القدرة على إنشاء صور من فئة معيَّنة، وزيادة لا تصدق في واقعية الصور المولَّدة. على سبيل المثال، فيما يلي ثلاث عيِّنات جرى توليدها بواسطة هذه الشبكات. هذه الصور ليست حقيقية، وإنما هي مولدة من هذا النوع من الشبكات.
 
3- التعلم المعزز (Reinforcement Learning)
هو تدريب نماذج التعلم الآلي لاتخاذ سلسلة من القرارات عن طريق التعلم بواسطة التفاعل مع البيئة. حيث يتعلم الوكيل Agent (الذي يقوم بمهمة تنفيذ نماذج التعلم) تحقيقَ هدفٍ ما في بيئة غير معروفةِ التفاصيل بدقة ومعقدة في أغلب الأحيان. تَستعمل هذه النماذج مبدأَ التجربة والخطأ للتوصل إلى حلٍّ للمشكلة. تعتمد استراتيجية التعلم المعزز على إعطاء مكافآت عند النجاح في المهمة أو عقوبات عند الإخفاق. تتمثل هذه المكافآت أو العقوبات في ربح الوكيل مجموعةً من النقاط أو خسارتها. والهدف الكلي هو تعظيم المكافأة الإجمالية. 
 
إذا كان هذا التعلم يحصُل عن طريق شبكة عصبونية (Neural Network)، فيشار إليه بالتعلم المعزز العميق (Deep RL).  
 
يتيح التعلمُ المعزز العميق تطبيقَ مفاهيم متقدمة في الشبكات العصبونية ضمن بيئات محاكاة أو بيئات حقيقية عندما يقتضي الأمر اتخاذ سلسلة من القرارات. من أهم تطبيقات هذا النوع من التعلم: ممارسة الألعاب (Game Playing)، وعلم الروبوتات (Robotics). ويندرج تحت هذا النوع من التعلم عدة أنواع من الشبكات، تختلف حسب الأسلوب المتبع في التعلم وفي اتخاذ القرار. ومن أهم هذه الأساليب: 
- الأسلوب المعتمد على السياسة (policy-based)، حيث تتعلم الشبكة تقديم مخرجات محددة عن طريق إعطاء مدخلات معيَّنة. 
- الأسلوب المعتمد على القيمة (value-based)، حيث تقوم الشبكة بتعيين قيمة ما لكل حالة من حالات فضاء التطبيق الذي يجري العمل عليه عن طريق حساب النتيجة التراكمية المتوقعة للحالات الحالية. وكلما حصل الوكيل على المزيد من المكافآت عند وصوله لحالة ما، زادت قيمة هذه الحالة.
 
أهم المتطلبات الحاسوبية العتادية لبرمجيات التعلم العميق
نظرًا إلى أن العمليات الحسابية - التي تلزم لتدريب شبكات التعلم العميق وطبقاتها المتعددة وعصبوناتها الكثيرة - كثيرة ومعقدة، وجب توفير العديد من الإمكانات العتادية الحاسوبية الملائمة لهذه العمليات، ومكاملة هذه العتاديات مع نظام التشغيل أو مجموعة نظم تشغيل تعمل بشكل تفرعي ومتكامل. إن الاختلاف الكبير في أداء وأسعار هذه العتاديات الممكن إضافتها قد يؤدي في بعض الحالات إلى اختيار عتاديات قد تكون أكثر تكلفةً وأقل أداءً لتدريب شبكات التعلم العميق. 
نذكر في هذه الفقرة بعض العتاديات التي يمكن مكاملتها - بشكل إضافي - مع نظام التشغيل أو مجموعة نظم التشغيل العاملة بشكل تفرعي، وذلك للمساعدة على تسريع عمليات التدريب الخاصة بهذه الشبكات، وتقليل الزمن اللازم للحصول على شبكات مدرَّبة تدريبًا جيدًا.
1- وحدة المعالجة البيانية (Graphics processing unit GPU): وحدة متخصصة في معالجة الرسوم والبيانيات الحاسوبية، يمكن استعمالها على نطاق واسع في تحسين أداء شبكات التعلم العميق. عند اختيار وحدات معالجة بيانية إضافية يجب تجنب الأخطاء الثلاثة التالية: 1) عدم ملاءمة التكلفة مع سرعة وحدة المعالجة، 2) طريقة تعامل وحدة المعالجة البيانية مع الذاكرة، 3) تبريد ضعيف لوحدة المعالجة (سواء في ذلك تقنيات التبريد المدمجة مع وحدة المعالجة، أو تقنيات التبريد المنفصلة عن وحدة المعالجة).
2- ذاكرة النفاذ العشوائي (Random Access Memory RAM): من الأخطاء الشائعة عند إضافة وحدة ذاكرة نفاذ عشوائي، اختيار ذاكرة ذات حجم منخفض عند اختبار نماذج شبكات عصبونية صغيرة نسبيًّا (بنى بسيطة أو معطيات تدريب ذات أحجام صغيرة) بغية الاقتصاد في السعر. هذا الاختيار لن يؤدي إلى نتائج جيدة عند تدريب الشبكة ولو كان  حجمها صغيرًا نسبيًّا.  
3- وحدة المعالجة المركزية (Central Processing Unit CPU): من أهم الأخطاء عند إضافة وحدة معالجة مركزية عدم تجانسها مع اللوحة الأم (Motherboard).
4- القرص الصُّلب (Hard Disk): لا يحتلُّ القرصُ الصُّلب الأهميةَ نفسها التي تحتلها وحدات الذاكرة الأخرى، ولكن نظرًا إلى تخزين كميات كبيرة من المعطيات الخاصة بتدريب الشبكة العصبونية فيه (أو في مجموعة متكاملة من الأقراص الصُّلبة) فإن أداء القرص الصُّلب يُعَدُّ من العوامل المؤثرة في أداء عمليات التدريب للشبكات العصبونية.  
 
أهم الشركات الكبرى التي تقدم خدمات سحابية في مجال التعلم العميق
أولت العديد من الشركات الكبرى أهميةً خاصة لتوفير خدمات مميزة في مجال التعلم العميق نظرًا إلى الاهتمام الكبير الذي حظي به هذا المجال سواء في المجال البحثي أو التطبيقي التجاري. نذكر فيما يلي بعض الخدمات المقدمة من عدد من الشركات الكبرى وميزات كل منها.
1- خدمة التعلم العميق المقدمة من شركة أمازون: 
https://aws.amazon.com/deep-learning
تقدم أمازون خدمة استضافة قواعد معطيات ومدونات أيًّا كان حجمها، وخدمة تصميم وتدريب نماذج شبكات التعلم العميق على هذه المعطيات، وذلك بواسطة الخدمات السحابية (Cloud Services) التي تتميز بها أمازون. تتميز خدمة التعلم العميق المقدمة من شركة أمازون بالسرعة في التنفيذ، وذلك بسبب استعمال العديد من وحدات المعالجة البيانية GPU من بُعد. وتتميز كذلك بقابلية التوسع (Salability) وذلك بسبب المرونة الكبيرة في إضافة عدد من المعالجات أو توسيع قواعد المعطيات، إلى جانب إمكان التشغيل من بعد لعدد كبير من البيئات الجاهزة للتعلم العميق مثل: Apache MXNet, TensorFlow, Torch, Keras، وغيرها من البيئات المشهورة والمستعملة بكثرة.
2- خدمات التعلم الآلي المقدمة من مايكروسوفت أزور:
https://azure.microsoft.com/en-us/services/machine-learning
تقدم مايكروسوفت العديد من خدمات التعلم الآلي بواسطة البيئة السحابية مايكروسوفت أزور (Azure cloud platform)، ومن ضمنها خدمات التعلم العميق؛ إذ يمكن استضافة قواعد المعطيات، وتدريب نماذج التعلم العميق عن طريق العديد من البيئات المشهورة مثل: PyTorch، وTensorFlow.
3- خدمات التعلم العميق السحابية المقدمة من آي بي إم:
https://www.ibm.com/cloud/deep-learning
تقدم شركة آي بي إم العديد من الخدمات السحابية المتطورة في مجال التعلم العميق، منها: استضافة قواعد المعطيات، وتدريب نماذج التعلم العميق بواسطة العديد من البيئات المشهورة، والمحاكاة البيانية لهيكلية الشبكة، وأدوات متطورة لاختبار الرماز البرمجي وتصحيح الأخطاء، وغيرها من الخدمات المتطورة.
 
 
مدونات المعطيات الخاصة بشبكات التعلم العميق
تعتبر المدونات مهمة جدًّا في تدريب واختبار نتائج التعلم العميق. تختلف أنواع المدونات حسب طبيعة المسألة المراد معالجتها. فقد تكون المدونة مجموعة من النصوص، أو الصور، أو الفيديوهات، أو المقاطع الصوتية. من الأمور الهامة التي يجب مراعاتها عند تصميم أو اختيار المدونات:
1- حجم المدونة: يجب أن يكون حجم المعطيات في المدونة متناسبًا مع الإمكانات المتاحة لتدريب الشبكة، ولطريقة تصميمها؛ إذ إنَّ المبالغة في كبر حجم المعطيات قد يؤدي إلى عدم تعلم الشبكة التعلُّمَ المناسبَ بعد انتهاء عمليات التدريب، وذلك لعدم القدرة على تعديل الأوزان بما يلائم كلَّ المعطيات المتاحة. وكذلك فإن صغر حجم المعطيات في المدونة، قد يؤدي أيضًا إلى عدم تعلُّم الشبكة التعلُّمَ المناسب، وذلك لانتهاء عملية التدريب بسرعة، ووصول الشبكة إلى أوزان غير ملائمة لطبيعة المسألة. وهذا يتضح مباشرة عند عملية الاختبار، إذ تعطي الشبكةُ نتائجَ خاطئة إذا كانت معطيات الاختبار قليلة نسبيًّا.   
2- وسم المعطيات (Annotation) في المدونة: هو إعطاء ميزات معيَّنة لكل جزء من معطيات المدونة. تختلف هذه الوسوم بحسب طبيعة معطيات المدونة؛ فقد تكون هذه الوسوم توصيفًا للصور ضمن مدونة صور، أو توصيفًا صرفيًّا أو نحويًّا لكل جزء من أجزاء نصٍّ من نصوص المدونة. هذا وإن الوسمَ الصحيح لمعطيات المدونة مهمٌّ جدًّا في إعطاءِ نتائجَ صحيحةٍ سواء في عمليات التدريب، أو في عمليات الاختبار.
3- التقسيم الجيد للمعطيات: تقسم المعطيات الخاصة بمسائل التعلم العميق عادةً إلى ثلاثة أجزاء: جزء التدريب (Training) ويسمَّى مدونة التدريب، وجزء التحقق من صحة نتائج التدريب (Validation) ويسمَّى مدونة التحقق، وجزء الاختبار (Testing) ويسمَّى مدونة الاختبار. إن التقسيم الصحيح للمعطيات يؤثر تأثيرًا كبيرًا في عملية التعلم، وفي تقييم أداء الشبكة. 
 
الخاتمة
قدمنا في هذا المقال أهم البنى الهيكلية لتقنيات التعلم العميق الذي أثبت فعاليته في الكثير من المجالات؛ مثل: معالجة الصور، والنصوص، والفيديوهات. ووجدنا أن جميعَ البنى المعروضة تَعتمد في عملها على أساسيات الشبكات العصبونية، وطريقة تمثيل الخلايا العصبونية فيها، والحصول على الأوزان المناسبة بعد سلسلة طويلة من عمليات التدريب. وتطرقنا إلى أهم خدمات التعلم العميق السحابي المقدمة من الشركات الكبرى، إضافة إلى الكلام عن أهمية الاختيار الصحيح لمعطيات المدونة.
 
المراجع
مجموعة محاضرات عن التعلم العميق من الموقع https://deeplearning.mit.edu
 
قد ترغب كذلك بقراءة
البيانات المظلمة
بحيرة المعطيات