التعلم الالي. الشبكات العصبية (الجزء 1): عملية التعلم المدرك

أريد أن أشير مقدمًا إلى أن أولئك الذين يعرفون كيف يتعلم المستوعب لن يجدوا شيئًا جديدًا في هذه المقالة. يمكنك تخطيه بأمان. لماذا قررت كتابة هذا - أود أن أكتب سلسلة من المقالات المتعلقة بالشبكات العصبية واستخدام TensorFlow.js ، لذلك لا يمكنني حذف المقتطفات النظرية العامة. لذلك أطلب منكم التعامل مع الفكرة النهائية بصبر وتفهم كبيرين.



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



على سبيل المثال ، يمكن برمجة إستراتيجية لعب tic-tac-toe والشطرنج والمزيد (الشكل 1).





الشكل 1 - النهج الكلاسيكي لحل المشكلات في



حين أن خوارزميات التعلم الآلي يمكن أن تحدد مجموعة من القواعد لحل المشكلات دون مشاركة المطور ، ولكن بناءً على توفر مجموعة بيانات تدريبية فقط.

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





الشكل 2 - التعلم الآلي



الشبكات العصبية



لفترة طويلة ، حاول العلماء ، بإلهام من العمليات التي تحدث في دماغنا ، إعادة هندسة الجهاز العصبي المركزي ومحاولة تقليد عمل الدماغ البشري. بفضل هذا ، وُلد اتجاه كامل في التعلم الآلي - الشبكات العصبية.



في الشكل 3 ، يمكنك رؤية أوجه التشابه بين تصميم الخلايا العصبية البيولوجية والتمثيل الرياضي للخلايا العصبية المستخدمة في التعلم الآلي.





الشكل 3 - التمثيل الرياضي للخلايا العصبية



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



بيرسبترون



نموذج رياضي لشبكة عصبية تتكون من خلية عصبية واحدة تقوم بعمليتين متتاليتين (الشكل 4):



  • يحسب مجموع إشارات الإدخال مع مراعاة أوزانها (التوصيل أو المقاومة) للاتصال

    sum= XTW+B=i=1nxiwi+b

  • يطبق وظيفة التنشيط على المجموع الكلي لإشارات الدخل.

    out=φ(sum)







الشكل 4 - نموذج رياضي للإدراك الحسي



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

المذكرة



– , ReLU , .

1 -
Linear function

φ(x)=x

.

Sigmoid function

φ(x)=11+ex



Softmax function

φ(xj)=exjiexi

φ([1.20.90.4])=[0.460.340.20]



( 2)

Hyperbolic Tangent function

φ(x)=exexexex





[-1, 1]. , ,

Rectified Linear Unit (ReLU)

φ(x)=max(0,x)





, , sigmoid tanh

Leaky ReLU

φ(x)=max(0.01x,x)





ReLU , 0







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





الشكل 5 - مجموعة بيانات التدريب وحالة الشبكة العصبية في الخطوة السابقة من التدريب



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



لذلك ، دعونا نتخيل أن لدينا مجموعة من بيانات التدريب ، يتم تمثيل قيم كل عنصر من المجموعة بواسطة ناقل بيانات الإدخال (بيانات الإدخال) ، تحتوي على معلمتين (ميزة) x1,x2... تحتx1,x2في النموذج ، اعتمادًا على مجال الموضوع قيد الدراسة ، يمكن الإشارة إلى أي شيء: عدد الغرف في المنزل ، أو المسافة بين المنزل والبحر ، أو أننا نحاول فقط تدريب الشبكة العصبية على العملية المنطقية AND ، أو OR.



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



الخطوة 1 - عملية التغذية إلى الأمام

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

ypredicted=i=1nxiwi=10.1+0.50.2=0.2







الشكل 6 - الانتشار الأمامي للخطأ



يرجى ملاحظة أن الصيغة أعلاه هي معادلة رياضية مبسطة للحالة الخاصة لعمليات التنسور.



الموتر هو في الأساس حاوية بيانات يمكن أن تحتوي على محاور N وعدد عشوائي من العناصر على طول كل محور. معظم الموترات على دراية بالرياضيات - المتجهات (موتر بمحور واحد) ، المصفوفات (موتر بمحورين - صفوف ، أعمدة).

يمكن كتابة الصيغة بالشكل التالي ، حيث سترى المصفوفات المألوفة (الموترات) ومضاعفتها ، وأيضًا فهم نوع التبسيط الذي تمت مناقشته أعلاه:



Ypredicted= XTW=[x1x2]T[w1w2]=[x1x2][w1w2]=[x1w1+x2w2]





الخطوة 2 - حساب

دالة الخطأ وظيفة الخطأ هي مقياس يعكس التناقض بين المخرجات المتوقعة والمستلمة. يتم استخدام وظائف الخطأ التالية بشكل شائع:

- متوسط ​​الخطأ التربيعي (MSE) - وظيفة الخطأ هذه حساسة بشكل خاص للقيم المتطرفة في مجموعة التدريب ، نظرًا لأنها تستخدم مربع الاختلاف بين القيم الفعلية والمتوقعة (القيمة الخارجية هي قيمة بعيدة جدًا عن القيم الأخرى في مجموعة البيانات ، والتي يمكن أن تظهر أحيانًا بسبب أخطاء البيانات ، مثل خلط البيانات مع وحدات قياس مختلفة أو قراءات أجهزة استشعار رديئة):

L=1Ni=1N(ypredicted(i)yexpected(i))2



- انحراف جذر متوسط ​​التربيع (Root MSE) - في الواقع هو نفس جذر متوسط ​​الخطأ التربيعي في سياق الشبكات العصبية ، ولكنه يمكن أن يعكس وحدة قياس فيزيائية حقيقية ، على سبيل المثال ، إذا كانت معلمات الإخراج للشبكة العصبية في الشبكة العصبية هي سعر المنزل بالدولار ، فإن وحدة القياس سيكون متوسط ​​الخطأ المربع هو الدولار المربع ($2) ، وبالنسبة للانحراف المعياري فهو الدولار ($) ، الذي يبسط بشكل طفيف مهمة التحليل البشري:



L=1Ni=1N(ypredicted(i)yexpected(i))2



- متوسط ​​الانحراف (متوسط ​​الخطأ المطلق ، MAE) - على عكس القيمتين المذكورتين أعلاه ، ليس حساسًا جدًا للانبعاثات:

L=1Ni=1N|ypredicted(i)yexpected(i)|



- الانتروبيا المتقاطعة (الانتروبيا المتقاطعة) - الاستخدامات لمهام التصنيف:

L=i=1Nj=1Myexpected(ij)log(ypredicted(ij))



أين

N - عدد النسخ في مجموعة التدريب

M - عدد الفصول عند حل مسائل التصنيف

yexpected - قيمة الانتاج المتوقعة

ypredicted- قيمة المخرجات الفعلية للنموذج المدرب



بالنسبة لحالتنا الخاصة ، سوف نستخدم MSE:

L=1Ni=1N(ypredicted(i)yexpected(i))2=(0.21)2=0.64





الخطوة 3 - Backpropagation

الهدف من تدريب الشبكة العصبية بسيط - إنه لتقليل وظيفة الخطأ:

Lmin



تتمثل إحدى طرق العثور على الحد الأدنى لوظيفة ما في تعديل أوزان الاتصال في الاتجاه المعاكس لمتجه التدرج في كل خطوة تالية من التعلم - طريقة نزول التدرج ، ويبدو الأمر هكذا رياضيًا:

w(k+1)=wkμL(wk)



أين k - التكرار k-th لتدريب الشبكة العصبية ؛

μ- يتم تحديد معدل التعلم من قبل المهندس ، وعادة ما يكون 0.1 ؛ 0.01 (حول كيفية تأثير خطوة التعلم على عملية تقارب التعلم ، لاحظ بعد ذلك بقليل)

L- انحدار دالة الخطأ

لإيجاد التدرج اللوني ، نستخدم المشتقات الجزئية فيما يتعلق بالوسيطات المخصصةw1,w2:

L(w)=[Lw1LwN]



في حالتنا الخاصة ، مع الأخذ في الاعتبار جميع التبسيطات ، تأخذ وظيفة الخطأ الشكل:

L(w1,w2)=(ypredictedyexpected)2=(x1w1+x2w2yexpected)2=

=(1w1+0.5w21)2



مذكرة الصيغ المشتقة
,

ddxc=0;c=const

ddx[cf(x)]=cf(x); c=const

ddxxn=nxn1

ddx[f(x)±g(x)]=f(x)±g(x)

ddx[f(x)g(x)]=f(x)g(x)+g(x)f(x)

ddxf(g(x))=f(g(x))g(x)





لنجد المشتقات الجزئية التالية:

w1(w1+0.5w21)2=2(w1+0.5w21)w1(w1+0.5w21)=

=2(w1+0.5w21)1=2(0.1+0.50.21)=1.6



w2(w1+0.5w21)2=2(w1+0.5w21)w2(w1+0.5w21)=

=2(w1+0.5w21)0.5=2(0.1+0.50.21)0.5=0.8





ثم تكون عملية الانتشار العكسي للخطأ عبارة عن حركة على طول النموذج من المخرجات باتجاه المدخلات مع تعديل أوزان النموذج في الاتجاه المعاكس لمتجه التدرج. تحديد خطوة التعلم 0.1 (معدل التعلم) لدينا (الشكل 7):

w1(k+1)=w1(k)μL(w1,w2)w1=0.10.1(1.6)=0.26



w2(k+1)=w2(k)μL(w1,w2)w2=0.20.1(0.8)=0.28





الشكل 7 - الانتشار العكسي للخطأ

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

ypredicted=x1w1+x2w2=10.26+0.50.28=0.4



كما ترى ، زادت قيمة المخرجات بمقدار 0.2 وحدة في الاتجاه الصحيح نحو النتيجة المتوقعة - واحد (1). سيكون الخطأ بعد ذلك:

L=(0.41)2=0.36



كما ترى ، في خطوة التدريب السابقة ، كان الخطأ 0.64 ، ومع الأوزان الجديدة - 0.36 ، قمنا بتعديل النموذج في الاتجاه الصحيح.



الجزء التالي من المقالة:

التعلم الآلي. الشبكات العصبية (الجزء 2): النمذجة OR ؛ XOR مع التعلم الآلي TensorFlow.js

. الشبكات العصبية (الجزء 3) - الشبكة التلافيفية تحت المجهر. استكشاف Tensorflow.js API



All Articles