التعلم العميق: مقدمة

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

مقدمة

_config.yml

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

_config.yml

فبنفس الطريقة التي تعمل بها الخلايا العصبية في المخ، كل خلية في خوارزميات التعلم العميق 1) تأخذ مٌدخل عددي، 2) تعمل بعض العمليات على المدخل، ثم 3) ترسل المخرج الذي إما أن يرسل لخلايا أخرى لعمليات إضافية، أو يكون هو المخرج النهائي.

_config.yml

وتكون هذه الخلايا موجودة على ثلاث طبقات أو أكثر. الخلايا الموجودة في الطبقة الأولى تأخذ المدخلات، والطبقة الأخيرة تخرج المخرجات، وما بينهما تسمى الطبقات الخفيّة والتي تستقبل المعلومات من الطبقة السابقة وتعالجها ثم تمررها للطبقة التالية.

_config.yml

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

_config.yml

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

مثال

غالباً ما تستخدم خوارزميات التعلم العميق لتصنيف الصور، لكونها تستخرج خصائص دقيقة من الصور بشكل تلقائي، كما في الصورة التالية.

_config.yml

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

_config.yml

الأوزان

ذكرنا سابقاً بأن كل خلية تعالج المدخلات لها من الطبقة السابقة، فأول ما تقوم به الخلية هو ضرب قيمة المدخل بوزن معين يتم تحديده عشوائياً في البداية.

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

فمثلاً لو كان المدخل a، وقيمة الوزن هي W. فإن المدخل بعد العملية يساوي a*W1

الانحياز

بالإضافة إلى الأوزان، يتم إضافة قيمة ثابتة إلى المدخل. بعد ضرب قيمة المدخل في الوزن، يتم إضافة عدد ثابت يسمى الانحياز ويرمز له بالحرف b. فتصبح المعادلة كالتالي:

aW1+b

عودة إلى المثال السابق، فإن أول خطوة هي توليد أوزان عشوائية (.2 ، .6 ، .1 ، .8 ، .3 ، .7).

ثم يتم ضرب كل مدخل x (9، 2) بالوزن المقابل له w من (.2 ، .6 ، .1 ، .8 ، .3 ، .7). وفي الأخير، يتم إضافة العدد الثابت b -صفر في هذا المثال- لكل ناتج. ثم يتم حساب مجموع هذه النواتج ولنرمز له بالحرف u.

u=∑w*x+b

فقيمة u للخلية الأولى في الطبقة الخفيّة هي 7.6، نتيجةً لجمع (2 * .2) و (9 * .8). وبنفس الطريقة تم حساب قيمة u الخليتين الأخرى.

(2 * .2) + (9 * .8) = 7.6 
(2 * .6) + (9 * .3) = 7.5 
(2 * .1) + (9 * .7) = 6.5

_config.yml

دالة التفعيل

حتى تتم ترجمة المدخلات إلى مخرجات، يتم تطبيق دالة تفعيل على المعادلة السابقة. وناتج الدالة f(x) يكون مدخل للخلايا في الطبقة التالية، أو مخرج نهائي.

_config.yml

مثال على دالة تفعيل

هناك الكثير من دوال التفعيل، ودالة سيجمويد من أكثرها استخداماً.

_config.yml

تم تطبيق دالة سيجمويد في المثال السابق، لترجمة الناتج حتى يكون مدخل للخلية النهائية. فعلى سبيل المثال، قيمة الخلية الأولى 0.9994 هي نتيجة حساب سيجمويد لـ 7.6. وبنفس الطريقة تم حساب قيم بقية الخلايا.

S(7.6) = 0.999499799
S(7.5) = 1.000553084
S(6.5) = 0.998498818

والآن يمكننا حساب الناتج النهائي عبر جمع نتيجة ضرب كل خلية بالوزن المقابل

(.9994 * .4) + (1.000 * .5) + (.9984 * .9) = 1.79832

ومن ثم تطبيق دالة سيجمويد على الناتج السابق

S(1.79832) = .8579443067

وبذلك تكون النسبة المتوقع أن يحصل عليها الطالب هي 85 من 100

شكراً لوقتك

أتمنى أن تكون المقالة أفادتك، وأختم بتعريف ليبينق يانق للشبكات العصبية:

الشبكات العصبية تتكون من عدد كبير من الخلايا العصبية الاصطناعية، والمرتبطة ببعضها البعض، حيث تمرر البيانات فيما بينها، وترتبط كل خلية بوزن يتم ضبطه استنادًا إلى خبرة الشبكة.

قاموس

الذكاء الاصطناعي: Artificial Intelligence

التعلم العميق: Deep Learning

الأوزان: Weights

الانحياز: Bias

دالة التفعيل: Activation Function

مراجع

25 Must Know Terms & concepts for Beginners in Deep Learning Build a flexible Neural Network with Backpropagation in Python

Written on October 28, 2018