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

المؤلف: عمر الصنهاجي الغازي *
*مهندس في المعلوميات و الرياضيات التطبيقية، مدير مشاريع و مهتم بميدان الذكاء الاصطناعي و سلاسل الكتل
صفحة لنكد إن

آخر تحديث: Dec. 18, 2022, 5:49 p.m.

سوف نرى في هذا المقال تعريفا لتعلم الآلة (Machine Learning)، العصبون الاصطناعي (Artifical Neuron)، الشبكات العصبية (Neural Networks)، التعلم العميق (Deep Learning)، و كذلك سوف نقدم نبذه عن عملية تدريب الشبكات العصبية للقيام بوظائف تحاكي بعض مهارات البشر



الحمد لله و الصلاة و السلام على سيدنا رسول الله و على آله و صحبه و من والاه
في هذا المقال، سوف نحاول توضيح المفاهيم التالية بإذن الله:
ما معنى الذكاء الاصطناعي ؟
ما معنى تعلم الآلة ؟
ما معنى التعلم العميق ؟
كيف يعمل العصبون الاصطناعي ؟
كيف يتم تدريب الشبكات العصبية الاصطناعية على التعلم ؟

ما معنى الذكاء الاصطناعي ؟
الذكاء الاصطناعي هو محاكاة الذكاء البشري عن طريق برمجة الآلات للقيام بتحليلات مشابهة لتحليلات البشر و تقليد أفعالهم
مجالات تطبيق الذكاء الاصطناعي:
التعرف على الصور
السيارات ذاتية القيادة
التنبؤ بالأعطاب الصناعية داخل المصانع قبل حدوثها
توليد صور وفيديوهات واقعية: إضافة اللون والحركة العادية إلى الأفلام القديمة ، التزييف العميق (DeepFake)،….
تقليص حجم الوسائط السمعية البصرية وترميزها
أنظمة التوصية و الاقتراحات في الشبكات الاجتماعية (مثال: اقتراحات يوتوب)
كشف الاحتيال (المعاملات المصرفية المشبوهة ، غسيل الأموال ،….)
معالجة اللغة الطبيعية: فهم معنى الجمل + تحليل النغمة (الحالة العاطفية التي يعبر عنها المتحدث: الغضب ، الخوف ، التوتر ، ...)
تحويل الكلام إلى نص وتحويل النص إلى كلام
الترجمة الآلية (ترجمة جوجل ، ...)
روبوتات المحادثة (Chatbots)
برمجة لاعبين افتراضيين (الشطرنج، لعبة الغو، ...) ، و هم أفضل بكثير من اللاعبين البشريين!
والعديد من المجالات الأخرى!

ما معنى تعلم الآلة Machine Learning ؟
تعلم الآلة هو فرع من فروع الذكاء الاصطناعي يعتمد على فكرة أن الأنظمة يمكن أن تتعلم من البيانات ، وتتعرف على الأنماط وتتخذ القرارات دون أن تتم برمجتها بشكل صريح.
الشبكات العصبية الاصطناعية هي استراتيجية تعلم شائعة يستخدمها تعلم الآلة ، بناءً على محاكاة الشبكات العصبية الطبيعية التي يستخدمها الدماغ البشري


الشبكة العصبية الاصطناعية:
الشبكة العصبية هي شبكة تتكون من طبقة واحدة أو عدة طبقات من الخلايا العصبية (أو العصبونات)، تحقق وظيفة بين المداخل و المخارج


ما هو التعلم العميق ؟ Deep Learning
التعلم العميق هو جزء من ميدان تعلم الآلة
يتمثل التعلم العميق في استخدام شبكات عصبية عميقة (مكونة من طبقتين من الخلايا العصبية، أو أكثر) في التعلم و التدرب على مجموعة كبيرة من البيانات

الشبكات العصبية: عملية التدريب
يتم تدريب الشبكة العصبية باستعمال مجموعة من البيانات تسمى بيانات التدريب، و ذلك من أجل إنجاز وظيفة محددة

كيف يعمل العصبون ?
العصبون هو دالة رياضية تقوم باحتساب المخرج انطلاقا من المداخل
Z = W1.x1 + W2.x2 + b1
w1 و w2 تسمى الأوزان
b1 يسمى الميل
على مستوى المخرج، يتم تطبيق دالة تفعيل من أجل حصر المخرج دائما في المجال [0، 1]


مثال لدالة التفعيل: دالة سيغمويد Sigmoid function


بالنسبة لشبكة عصبية كاملة، سوف تكون وظيفة المخرج هي دالة متعلقة بجميع الأوزان و الأميال المكونة للشبكة


تفاصيل عملية تدريب الشبكة العصبية
في الشبكة العصبية ، تكمن الفكرة في توفير مجموعة من البيانات تسمى "مجموعة التدريب" (X1 إلى Xn) مع مجموعة النتائج المتوقعة المقابلة (Z1 إلى Zn).
بالنسبة للشبكة العصبية ، نحدد "دالة الخسارة" Loss Function التي يتم حسابها كالفرق بين النتائج المتوقعة (Z1 إلى Zn) من ناحية ، ودالة الإخراج f (Xi، Wi، bi) المطبقة على المدخلات من ناحية أخرى. تقيس دالة الخسارة هذه الفرق بين النتيجة الفعلية التي قدمتها الشبكة العصبية والنتيجة المتوقعة
مثال على دالة الخسارة (دالة الخطأ التربيعي المتوسط - Mean Squared function):


سيتم "تدريب" الشبكة العصبية بناءً على مجموعة التدريب هذه ، لتقليل وظيفة الخسارة ، عن طريق ضبط الأوزان (Wi) و الأميال (Bi)
للقيام بذلك ، نستخدم خوارزمية تكرارية تسمى "الانحدار المتدرج" Gradient Descent
في كل دورة تدريب ، سيتم تعديل الأوزان (W1 ،…. Wn) و الأميال (b1 ،… .bn) وفقًا لهذه الخوارزمية ، وسيتم تنفيذ هذه العملية للعديد من الدورات بناءً على مجموعة التدريب ، حتى يتم تقليل وظيفة الخسارة إلى حد مناسب.
بمجرد أن تصل الأوزان والأميال إلى القيم التي تسمح بهذه القيمة الدنيا المرضية لوظيفة الخسارة ، يمكننا حينئذٍ القول إن الشبكة العصبية الآن "مدربة" بأوزان وقيم أميال مناسبة ، وهي الآن جاهزة لعمل "تنبؤات"

لا داعي للدخول في تعقيدات رياضية !!
لتبسيط الأمر ، تذكر الأفكار الأربعة التالية:
- تطبق الشبكة العصبية دالة من الأوزان والأميال على مجموعة من المدخلات للحصول على مجموعة من النتائج
- لتدريب شبكة عصبية على وظيفة معينة ، نقوم بتزويدها بمجموعة من البيانات تسمى مجموعة التدريب (مجموعة من المدخلات + النتائج المتوقعة)
- باستخدام مجموعة التدريب هذه ، نستخدم خوارزمية تكرارية (الانحدار المتدرج) لضبط الأوزان و الأميال حتى يتم تقليل دالة الخسارة إلى الحد الأدنى
- بمجرد تحسين الأوزان و الأميال و وصولنا لأدنى حد ممكن من الخسارة ، تكون الشبكة العصبية جاهزة للتنبؤ بالنتيجة انطلاقا من بيانات جديدة (حتى لو لم يتم التدرب عليها في مجموعة التدريب الأصلية)

من المفيد معرفة كيفية عمل الشبكة العصبية وكيفية تدريبها ، ولكن تنفيذ خوارزمية التدريب هو أمر مبرمج سلفا داخل مكتبات التعلم العميق الحالية (KERAS ، TensorFlow ، PyTorch ،….) ، تدير هذه المكتبات عملية التدريب بشفافية من أجلك بدون أن تحتاج الدخول في هذه التفاصيل

الصورة التالية تقدم ملخصا لعملية تدريب الشبكات العصبية:




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

الرجوع إلى الصفحة الرئيسية