تطبيق مثال عملي رقمي
لنفرض أن لدينا شبكة عصبية ونريد تعليمها كيف تطبق الدالة المنطقية AND، و هذه الدالة تعطي القيمة 1 إذا كانت كلاً من قيمة المدخلين مساوية للواحد، وصفر في الحالات الأخرى.
وإليك مجموعة الأمثلة التالية لتدريب الشبكة:
I1 _____ I2 _____ t0.0 _____ 0.0 _____ 1.0
1.0 _____ 0.0 _____ 1.0
0.0 _____ 1.0 _____ 0
0 _____ 0 _____ 1
حيث I1 و I2 ترمز للمدخلات، بينما t ترمز للمخرج أو النتيجة الهدف (المرغوب بها).
وقاعدة التحويل هي:
كود PHP:
[right]if Sj>0 then Xj=1
if Sj<=0 then Xj=0
[/right]
وسنفرض معدل التعلم بالقيمة C=0.5.
لتمثيل هذه الشبكة فإننا نحتاج لوحدتي إدخال لأن هناك مدخلين، ووحدة معالجة واحدة لأن هناك مخرج واحد كالتالي:
من الرسم نجد أن هناك طبقة واحدة من الوصلات البينية وسنفرض لها قيم أوزان مختلفة على أن تكون في المدى من -0.5 إلى 0.5
كود PHP:
[right]w11=0.1
w12=0.3
[/right]
سنبدأ الآن بالمدخل الأول ونطبق أول عميلة وهي عملية الجمع:
كود PHP:
[center]S= 0.1 * 0.0 + 0.3 * 0.0
S=0.0
[/center]
وحيث أن وحدة المعالجة هذه هي آخر وحدة معالجة فيجب تطبيق قاعدة التحويل:
كود PHP:
[center]S=0.0<=0.0
إذاً X=0
[/center]
وبعد ذلك سنطبق عملية ضبط الأوزان، ولكن أولاً نتحقق مما إذا كان هناك حاجة لضبط الأوزان أم لا:
الناتج الهدف للمدخل الأول هو 0 والناتج الذي أخرجته الشبكة هو 0 وحاصل طرح هذين الناتجين هو 0، وهذا يدل على أن أوزان الشبكة ليست بحاجة إلى تعديل.
لننتقل إلى المدخل الثاني مستخدمين نفس الأوزان السابقة لأنه لم يتم تعديلها لعدم الحاجة لذلك:
نبدأ من جديد بتطبيق عملية الجمع:
كود PHP:
[center]Sj=∑ai wji
S= 0.1 * 0.0 + 0.3 * 1.0
S=0.3
[/center]
ثم قاعدة التحويل:
كود PHP:
[center]if Sj>0 then Xj=1
if Sj<=0 then Xj=0
S=0.3>0.0
X=1
[/center]
وبعد ذلك عملية ضبط الأوزان:
الناتج الهدف للمدخل الثاني هو 0 أيضاً، والناتج الذي توصلت له الشبكة هو 1 بطرح ناتج الشبكة من الناتج الهدف يعطي القيمة -1
وهي غير مساوية للصفر لذا لا بد من ضبط جميع أوزان الشبكة.
كود PHP:
[center]wjinew= wjiold+C(tj-Xj)ai
w11new=0.1+ 0.5 * (-1)* 0.0
w11new=0.1
w12new=0.3+ 0.5 * (-1)* 1.0
w12new= -0.2
[/center]
وبذلك نكون قد انتهينا من المدخل الثاني لنبدأ في الثالث مستخدمين الأوزان بعد تعديلها، متبعين نفس الخطوات السابقة:
قاعدة الجمع:
كود PHP:
[center]S= 0.1 * 1.0 +(- 0.2) * 0.0
S=0.1
[/center]
قاعدة التحويل:
كود PHP:
[center]S=0.1>0.0
X=1
[/center]
بعد ذلك عملية ضبط الأوزان:
الناتج الهدف للمدخل الثاني هو 0 أيضاً، والناتج الذي توصلت له الشبكة هو 1 بطرح ناتج الشبكة من الناتج الهدف يعطي القيمة -1
وهي غير مساوية للصفر لذا لا بد من ضبط جميع أوزان الشبكة.
عملية ضبط الأوزان:
كود PHP:
[center]w11new=0.1+ 0.5 * (-1)* 1.0
w11new= -0.4
w12new= -0.2+ 0.5 * (-1)* 0.0
w12new= -0.2
[/center]
ننتقل للمدخل الرابع والأخير مستخدمين الأوزان بعد التعديل:
عملية الجمع:
كود PHP:
[center]S= -0.4 * 1.0 +(- 0.2) * 1.0
S= -0.6
[/center]
قاعدة التحويل:
كود PHP:
[center]S= -0.6<0.0
X=0
[/center]
بعد ذلك عملية ضبط الأوزان:
الناتج الهدف للمدخل الثاني هو 1 أيضاً، والناتج الذي توصلت له الشبكة هو 0 بطرح ناتج الشبكة من الناتج الهدف يعطي القيمة 1
وهي غير مساوية للصفر لذا لا بد من ضبط جميع أوزان الشبكة.
عملية ضبط الأوزان:
كود PHP:
[center]w11new= -0.4+ 0.5 * (1)* 1.0
w11new= 0.1
w12new= -0.2+ 0.5 * (1)* 1.0
w12new= 0.3
[/center]
وبهذا نكون قد انتهينا من عرض جميع الأمثلة (متجهات من الأنماط) على الشبكة وعرض جميع الأمثلة على الشبكة تسمى محاولة، ففي هذه المحاولة أعطت الشبكة نتيجة واحدة فقط صحيحة من أصل 4 نتائج، أي أن الشبكة لم تتعلم بعد وتحتاج لمحاولات أخرى بنفس الطريقة، حتى تستطيع إعطاء إجابات صحيحة لكل الأمثلة، حينها نقول أن الشبكة تعلمت، ويتبقى فقط اختبارها.
مرحلة الاختبار:
اختبار الشبكة مشابه تماماً لعملية التعليم إلا أن الشبكة في هذه المرحلة لا تضبط أوزانها، وإنما فقط تقوم بعمليتي الجمع والتحويل ومقارنة الناتج الذي تنتجه الشبكة بالناتج الهدف. حيث يتم عرض فئة اختبار على الشبكة وتحتوي هذه الفئة على مجموعة من المدخلات والمخرجات المصاحبة لكل مدخل.
ويفضل أن تكون فئة الاختبار مختلفة عن فئة التدريب.
فإذا استطاعت الشبكة اجتياز الاختبار وإعطاء إجابات صحيحة، يكون تعليم الشبكة ناتج، وتصبح الشبكة جاهزة للاستخدام.
أسباب عدم تعلم الشبكة:
قد يتم تصميم الشبكة وتدريبها، ولكنها بالنهاية تفشل! و أسباب فشلها في الواقع متعددة منها:
نوعية الشبكة لا تناسب التطبيق الذي تم تدريبها عليه، وهذا يستلزم اختيار شبكة أخرى.
عدد وحدات المعالجة غير مناسب.
الأوزان التي تبدأ بها الشبكة غير مناسبة.
معدل التعلم غير مناسب.
فئة التدريب لم يتم اختيارها بعناية.
قاعدة التحويل غير مناسبة.