انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

Example on Error back propagation Neural Network

Share |
الكلية كلية العلوم للبنات     القسم قسم الحاسبات     المرحلة 3
أستاذ المادة علي يعقوب يوسف السلطاني       13/03/2017 05:39:25
متجه الإدخال هو :
Input vector = (1.1, 2.4, 3.2, 5.1, 3.9)
القيمة المرغوبة كالآتي :
Target vector = (0.52, 0.25, 0.75, 0.97)
الأوزان الداخلة للطبقة المخفية كالآتي :
Weights W = - 0.33, 0.07, -0.45, 0.13, 0.37 to H1 node
-0.22, 0.06, -0.35, 0.23, 0.17 to H2 node

الأوزان الداخلة لطبقة المخرجات كالآتي :
-0.13 0.08 to O1 node
Weights V = 0.43 0.28 to O2 node
0.11 0.18 to O3 node
0.31 -0.48 to O4 node
نحسب مخرجات الخلية H1
نقوم بعملية ضرب قيم المدخلات في الأوزان لنحصل على :
The activation will be the quantity:
net(H1) = (-0.33 * 1.1) + (0.07 * 2.4) + (-0.45 * 3.2) + (0.13 * 5.1) +
(0.37 * 3.9) = 0.471
الآن نضيف قيمة المحفز Bias للناتج لنحصل على :
net(H1) = 0.471 + 0.679 = 1.15

عند استخدام دالة التحويل السيجماوية :
Sigmoid Function = 1 / ( 1+ exp(-x) ),
لدينا x= 1.15
نحصل على إخراج الخلية المخفية بعد تطبيق المعادلة السيجماوية :
Output of H1 = 1/(1+ exp(-1.15)) = 0.7595.
نحسب مخرجات الخلية H2
net(H2) = (-0.22 * 1.1) + (0.06 * 2.4) + (-0.35 * 3.2) + (0.23 * 5.1) +
(0.17 * 3.9) = 0.471
net(H2) = 0.618 + 0.679 = 1.297
Output of H2 = 1/(1+ exp(-1.297)) = 0.7853.
Output of Hidden Layer = ( 0.7595 0.7853)

بنفس الطريقة نقوم بحساب مخرجات الخلايا O1 , O2, O3, O4 وكالاتي :
Net(O1) = (0.7595 * -0.13) + (0.7853 * 0.08) = -0.035911+0.53=0.494
Net(O2) = (0.7595 * 0.43) + (0.7853 * 0.28) = 0.5464 + 0.53= 1.0764
Net(O3) = (0.7595 * 0.11) + (0.7853 * 0.18) = 0.2249 + 0.53 = 0.7549
Net(O4) = (0.7595 * 0.31) + (0.7853 * -0.48) = -0.1415 + 0.53 = 0.3885
نطبق دالة التحويل السيجماوية على النتائج السابقة فنحصل على :
Output of O1 = 0.621
Output of O2 = 0.7458
Output of O3 = 0.6802
Output of O4 = 0.6959
نحصل على الاخراج الفعلي للشبكة كالاتي :
Actual Output = ( 0.62, 0.74, 0.68, 0.69 ),
Desired = ( 0.52, 0.25, 0.75, 0.97 )
نقوم بحساب متجه الخطأ :
Error = Desired - Actual = (-0.1, -0.49, 0.07, 0.28).
نستخدم متجه الخطأ لنحصل على متجه جديد كل عنصر فيه عبارة عن حاصل ضرب
نموذج الإخراج × المكمل لنموذج الإخراج (بالنسبة للقيمة 1) × الخطأ وكالاتي :
Actual * Complement * Error
0.62 * 0.38 * -0.1 = -0.023
0.74 * 0.26 * -0.49 = -0.094
0.68 * 0.32 * 0.07 = 0.015
0.69 * 0.31 * 0.28 = 0.059
نحصل على المتجه التالي (نطلق عليه متجه الخطأ الثاني) :
we get the vector (–0.023, –0.094, 0.015, 0.059).

ان المتجه (Desired-Actual) والذي هو متجه الخطأ Error ضرب في متجه الإخراج الحقيقي يعطي قيمة الخطأ المنعكس خلفاً لمخرجات الطبقة المخفية.
وتقاس كالآتي (1-output vector) وهو المشتقة الأولى لدالة التنشيط.
نحتاج إلى الأوزان بين الخلية الثانية في الطبقة المخفية وخلايا الإخراج الأخرى.
افرض ان الأوزان هي كالآتي :
-0.13 0.08 to O1 node
Weights V = 0.43 0.28 to O2 node
0.11 0.18 to O3 node
0.31 -0.48 to O4 node
الأوزان الخارجة من الخلية H1 هي :
Weight V (H1) = (-.013 0.43 0.11 0.31)
والآن نحسب الخطأ في الخلية الأولى من الطبقة المخفية باستخدام مخرجات الخلية H1 :
Error = 0.7595 * (1 - 0.7595) * {(-0.13 * -0.023) + (0.43 * -0.094)
+ ( 0.11 * 0.015) + (0.31 * 0.059)} = -0.0042
ومن ثم نحتاج إلى عامل التعلم الخاص بهذه الطبقة .وافرض قيمته 0.2 :
learning rate parameter = 0.2
نقوم بضرب قيمة عامل التعلم بقيمة إخراج الخلية H1 :
0.2 * 0.7595 = 0.1519
ومن ثم كل قيمة في المتجه (–0.023, –0.094, 0.015, 0.059) تضرب بالقيمة (0.1519) لنحصل على المتجه التالي .
(–0.0034, –0.0142, 0.0022, 0.0089)
ان المتجه الناتج يمثل قيمة التعديل على الأوزان بين الطبقة المخفية وطبقة الإخراج.
ثم بعد ذلك نضيف قيم المتجه إلى الأوزان الفعلية (القديمة) لنحصل على الأوزان المعدلة الجديدة.
(-.013 0.43 0.11 0.31)
New weight = (-0.133, 0.415, –0.112, 0.318).
نقوم بنفس الخطوات السابقة لتعديل أوزان الخلية المخفية الثانية H2 ...
عملية تعديل الأوزان بين طبقة الإدخال والطبقة المخفية فهي كالآتي :
نطبق على خلية الإدخال الثالثة :
إن متجه الخطأ الأول المحسوب في الخلية الثانية من الطبقة المخفية:
Desired - Actual = (-0.1, -0.49, 0.07, 0.28).
وكذلك الخطأ النهائي المحسوب الخلية الأولى من الطبقة المخفية (-0.0042) . يجب ان يرسلا خلفاً إلى طبقة الإدخال.
لحساب تعديل الأوزان بين طبقة الإدخال والطبقة المخفية نحتاج إلى عامل التعلم ، على فرض انه يساوي (0.2) .
ملاحظة : يمكن أن نستخدم أكثر من عامل تعلم واحد.
فتصبح قيمة التعديل على الأوزان كالآتي :
0.2 * 3.2 * –0.0042 = -0.0025
ومن ثم تضاف هذه القيمة إلى قيمة الوزن القديمة فنحصل على قيمة الوزن المعدل الجديد :
(-0.45) + (-.0025) = -0.4525
عملية تعديل المحفزات :
لتعديل قيمة المحفزات على طبقة الإخراج كالآتي :
Learning Parameter = 0.2
Error vector = (-0.1, -0.49, 0.07, 0.28).
بعد ضرب قيمة معامل التعلم في متجه الخطأ نحصل على قيم تعديل المحفزات :
0.2 * (–0.023, –0.094, 0.015, 0.059) = (–0.046, –0.0188, 0.03, 0.0118)
هذه القيم تضاف على قيم المحفزات القديمة لنحصل على المحفزات المعدلة.
Old Bias = (0.53 0.53 0.53 0.53)
New Bias = ( 0.484 0.511 0.56 0.541)


أما تعديل المحفزات على الطبقة المخفية فهي كالآتي :
Learning Parameter = 0.2
Final Error = -0.0042
0.2 * -0.0042 = -0.0084
هذه القيمة تمثل قيمة التعديل على المحفز، تضاف هذه القيمة إلى قيمة المحفز القديمة لنحصل على :
0.679 + (-0.0084) = 0.6706


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
الرجوع الى لوحة التحكم