You are on page 1of 37

‫الشبكاتـ العصبيـــــــــــــة‬

‫‪Neural Networks‬‬

‫الفرقة الرابعـــــــة (حاسب آلي)‬

‫أستاذ المقرر‬
‫د‪ /‬جمال محمد بحيري‬
‫المحاضرة الرابعـــــة‬

‫الشبكات العصبية المبسطة‬


‫المستخدمة في تصنيف العينات‬

‫‪Simple Neural Nets for Pattern‬‬


‫‪Classification‬‬
PERCEPTRON
Networks
‫‪PERCEPTRON Networks‬‬
‫• تستخدم هذه الشبكة في التطبيقـــــــــات التي تحتاج إلى‬
‫تصـــــــــنيف األنمــــــاط ‪ Pattern Classification‬إلى‬
‫فئتين فقط‪ .‬أي التي يمكن فصل األنماط بها بيانيا ً بواسطة خط‬
‫مستقيم وتسمى هذه النوعية من األنماط‪ :‬األنماط القابلة‬
‫للفصــــــل خطيــــــا ً ‪. Linear separability patterns‬‬
‫• وتتكون هذه الشبكة من طبقة المدخالت وطبقة واحدة أو طبقتين‬
‫من طبقة المعالجة بحيث ال تزيد طبقة المعالجة عن طبقتين‪،‬‬
‫باإلضافة إلى أنه يتم ضبط األوزان لطبقة واحدة فقط من طبقات‬
‫الوصالت البينية التي ترـبط بين الطبقات السابقة‪ ،‬لتبقى الطبقة‬
‫األخرى (إن وجدت) ثابتة األوزان‪ .‬و هذه الشبكة تتعلم عن‬
‫طريق معلم ‪.‬‬
‫‪PERCEPTRON Networks‬‬
‫• ولهذه الشبكة مميزات وعيوب‪ ،‬من مميزاتها أن بناء برنامج‬
‫لها سهل جداً‪.‬‬
‫• ومن عيوبها‪:‬‬
‫‪ .1‬أنها ال تستطيع أن تصنف األنماط ألكثر من فئتين‪.‬‬
‫‪ .2‬عدد طبقات المعالجة فيها محدد بطبقة واحدة أو طبقتين فقط‪.‬‬
‫‪ .3‬ضبط أوزان الوصالت البينية فيها يتم على طبقة واحدة فقط‬
‫من طبقات الوصالت البينية‪.‬‬
‫• يمر تعليم هذه الشبكات العصبية بمرحلتين وهما‪:‬‬
‫• مرحلة التعليم‬
‫• مرحلة االختبار‬
‫‪PERCEPTRON Networks‬‬
‫• مرحلة التعليم ‪:‬‬
‫هي المرحلة التي يتم فيها ضبط أوزـان الوصالت البينية حتى‬
‫تصل إلى أوزان قادرـة على إعطاء إجابات صحيحة‪.‬‬
‫• ويتم ذلك عن طريق قيام وحدات المعالجة بثالث عمليات‬
‫رئيسية‪:‬‬
‫‪ .1‬عملية جمع األوزان ‪Weighted Sum‬‬
‫‪ .2‬عملية التحويل ‪Transformation‬‬
‫‪ .3‬عملية ضبط أوزان الشبكة ‪weights adjustment‬‬
‫‪PERCEPTRON Networks‬‬
‫أوالً‪ :‬عملية جمع األوزان ‪: Weighted Sum‬‬
‫• تقوم كل وحدة معالجة بعملية الجمع لكل وزن مدخل لها و‬
‫الملحق بالوصلة البينية التي تربط بينها وبين الوحدة الموجودة‬
‫في الطبقة التي تسبقها‪ ،‬مضروبا ً في القيمة الخارجة من تلك‬
‫‪s j   ai w ji‬‬ ‫الوحدة‪ ،‬وهو على الصيغة‪:‬‬
‫• حيث ‪  wji‬هو الوزن الملحق بالوصلة البينية التي تربط وحدة‬
‫المعالجة ‪ j‬بالوحدة ‪ i‬الموجودة في الطبقة التي تسبقها‪.‬‬
‫• و ‪ ai‬هي القيمة الخارجة من الوحدة ‪i‬‬
‫و ‪ sj‬هي ناتج عملية الجمع لكل وحدة معالجة ‪.j‬‬ ‫•‬
‫‪PERCEPTRON Networks‬‬
‫ثانياً‪ :‬عملية التحويل ‪: Transformation‬‬
‫• تتم هذه العملية في الطبقة األخيرة من طبقات المعالجة حيث يتم تحويل‬
‫ناتج عملية الجمع المذكور في العملية السابقة إلى أحد القيم التي يفترض‬
‫أن تكون ضمن نواتج الشبكة المرغوب بها‪ .‬فمثالً لو كانت الشبكة‬
‫ستتعلم كيف تصنف األعداد إلى فردي وزوجي‪ ،‬على أن تعطي كل‬
‫عدد فردي القيمة ‪ 0‬و كل عدد زوجي القيمة ‪. 1‬‬
‫• فإن قيمة ‪ sj‬وهو ناتج عملية الجمع لن يعطي القيمة ‪ 0‬أو ‪ 1‬غالباً‪ ،‬لذا ال‬
‫بد من تحويل هذا الناتج إلى أحد هذه القيمتين‪ ،‬وذلك عن طريق قاعدة‬
‫التحويل والتي يحددها المبرمج‪ .‬فمثالً تكون القاعدة كالتالي‪:‬‬
‫‪if‬‬ ‫‪sj  0‬‬ ‫‪then‬‬ ‫‪xj 1‬‬
‫‪if‬‬ ‫‪sj  0‬‬ ‫‪then‬‬ ‫‪xj  0‬‬

‫حيث ‪ xj‬هي القيمة الخارجة من وحدة المعالجة ‪j‬‬ ‫•‬


‫‪PERCEPTRON Networks‬‬
‫ثالثاً‪ :‬عملية ضبط أوزان الشبكة ‪: weights adjustment‬‬
‫• بعد إتمام عملية التحويل يتم مقارنة الناتج الذي تعطيه الشبكة مع الناتج‬
‫الصحيح الذي يفترض أن تعطيه الشبكة وذلك عن طريقة طرح الناتج‬
‫الهدف(الصحيح) من ناتج الشبكة‪ ،‬فإذا كان ناتج الطرح مساويا ً للصفر‬
‫فهذا يعني أن الشبكة أخرجت ناتجا ً صحيح‪ ،‬أما إن كان غير ذلك‬
‫فالشبكة تحتاج لضبط أوزانها‪ ،‬وذلك من خالل قاعدة التعليم ‪learning‬‬
‫‪ rule‬التالية‪:‬‬
‫‪w ji (new )  w ji (old)  ( t j  x j )a i‬‬
‫حيث )‪wji(old‬هي قيمة الوزن الجديد الملحق بالوصلة البينية بين‬ ‫•‬
‫الوحدة ‪ j‬والوحدة ‪ i‬و )‪wji(new‬هي قيمة الوزن القديم الملحق بالوصلة‬
‫البينية بين الوحدة ‪ j‬والوحدة ‪ i‬و ‪ α‬هو معدل التعلم ‪learning rate‬‬
‫وهي قيمة ثابتة عادة ما تكون قيمة أقل من ‪ 1‬و ‪ tj‬هي القيمة الهدف‬
‫للشبكة و ‪xj‬هي القيمة التي أنتجتها الشبكة و هي المخرج من الوحدة ‪i‬‬
‫البنية الهندسية (‪)Architecture‬‬
‫شبكة ‪ Perceptron‬بسيطة لتصنيف العينات‬

‫سوف نشرح شبكة وحيدة الطبقة‪ .‬هدفها هو تصنيف‬ ‫•‬


‫كل عينة دخل إن كان تابعا ً لصنف من عينات تدريب‬
‫أو ال‪.‬‬
‫تعتبر قيمة استجابة وحدة الخرج (‪ )1+‬إذا كان‬ ‫•‬
‫الصنف يتبع أحد عينات التدريب‪.‬‬
‫تعتبر قيمة استجابة وحدة الخرج (‪ )1-‬إذا كان‬ ‫•‬
‫الصنف ال يتبع أحد عينات التدريب‪.‬‬
‫انظر الشكل التالي‪.‬‬ ‫•‬
)Architecture( ‫البنية الهندسية‬
‫ إلنجازـ تصنيف وجيد‬Perceptron ‫شبكة‬

1
b
X1
w1
Y
Xi wi

wn
Xn
‫الخوارزميـــــــة‬
‫هذه الخوارزمية ليست حساسة لقيم ابتدائية للألوزان أو‬ ‫•‬
‫لقيمة معدل التعلم ‪ .α‬و ها هي الخطوات‪-:‬‬
‫تهيئة األوزان و االنحياز (إجعلها صفرية) ‪ ،‬ضع‬ ‫‪.1‬‬
‫معدل التعلم بقيمة (‪( )α ≤ 1 < 0‬اجعلها ‪1‬‬
‫للتبسيط)‪.‬‬
‫طالما أن شرط التوقف لم يتحقق نفذ الخطوات‬ ‫‪.2‬‬
‫من ‪.7-3‬‬
‫من أجل كل زوج تدريب (‪ )s : t‬نفذ الخطوات‬ ‫‪.3‬‬
‫من ‪.6-4‬‬
‫ضع فعاليات وحدات الدخل بالشكل‬ ‫‪.4‬‬
‫)‪xi = si , (i = 1, 2, …, n‬‬
‫تابع الخوارزميـــــــة‬
‫‪ .5‬احسب استجابة وحدة الخرج بالعالقة‪:‬‬

‫‪y _ in  b   x i .w i‬‬
‫‪i‬‬
‫‪1 if‬‬ ‫‪y _ in  ‬‬
‫‪‬‬
‫‪y  0 if‬‬ ‫‪   y _ in  ‬‬
‫‪ 1 if‬‬ ‫‪y _ in   ‬‬
‫‪‬‬
‫تابع الخوارزميـــــــة‬
‫‪ .6‬حسن األوزان و االنحياز في حالة حدوث خطأ‬
‫ما لهذه العينة كما يلي‪:‬‬
‫إذا كان ‪( y≠t‬الخرج المحسوب ≠ الخرج المرغوب‪)a‬‬
‫)‪(desired output ≠actual output‬‬
‫‪w i  new   w i  old   t.x i‬‬ ‫عندئذ‪:‬‬
‫‪b i  new   b i  old   t‬‬
‫‪Else‬‬
‫‪w i  new   w i  old ‬‬
‫‪b i  new   b i  old ‬‬
‫تابع الخوارزميـــــــة‬
‫‪ .7‬اختبر شرط التوقف‪ .‬إذا لم تتغير األوزان التي‬
‫تم تهيئتها في الخطوة ‪ 3‬توقف و إال أعد‬
‫الخطوات‪ a‬من ‪.7→3‬‬
‫الحظ البد من وجود خط فصل‪.‬‬
‫‪ -‬لدينا خط يفصل منطقة االستجابة الموجبة عن منطقة‬
‫االستجابة الصفرية يسمى بالخط التي تحددة المتباينة‪:‬‬
‫‪w1.x1 + w2.x2 + b > θ‬‬
‫الخط الذي يفصل مجال االستجابة السالبة عن مجال االستجابة‬
‫الصفرية يعرف بالمتباينة‪:‬‬
‫‪w1.x1 + w2.x2 + b <-θ‬‬
‫تطبيق‬
‫التوابع المنطقية‬
‫مثال‪ :‬شبكة الـ ‪ Perceptron‬من أجل التابع ‪ AND‬بدخل ثنائي و‬
‫خرج ثنائي لقطبية‬
‫بفرض (‪ )α=1‬و االنحياز = صفر و ‪w=0‬‬
‫الدخل األول‬
‫‪Input‬‬ ‫‪Net Out Tar‬‬ ‫‪Weight‬‬ ‫‪Weight‬‬
‫‪get‬‬ ‫‪change‬‬
‫‪X1 X2 1‬‬ ‫‪w1 w2 b‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1 1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫من الجدول السابق نستنتج أن خطوط الفصل‬
‫معطاة بالعالقة‪:‬‬
‫‪x1 + x2 +1 = 0.2, and‬‬
‫‪x1 + x2 +1 = - 0.2‬‬
‫الدخل الثاني‬
‫‪Input‬‬ ‫‪Net Out Tar‬‬ ‫‪Weight‬‬ ‫‪Weight‬‬
‫‪get‬‬ ‫‪change‬‬
‫‪X1 X2 1‬‬ ‫‪w1 w2 b‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪-1‬‬ ‫‪-1 0‬‬ ‫‪-1 0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫من الجدول السابق نستنتج أن خطوط الفصل‬
‫معطاة بالعالقة‪:‬‬
‫‪x2 = 0.2, and x2 = - 0.2‬‬
‫ألن ‪ w1, b‬تساوي صفر‬
‫الدخل الثالث‬
‫‪Input‬‬ ‫‪Net Out Tar‬‬ ‫‪Weight‬‬ ‫‪Weight‬‬
‫‪get‬‬ ‫‪change‬‬
‫‪X1 X2 1‬‬ ‫‪w1 w2 b‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪-1‬‬ ‫‪0‬‬ ‫‪-1 -1 0‬‬ ‫‪0‬‬ ‫‪-1‬‬
‫الدخل الرابع‬

Input Net Out Tar Weight Weight


get change
X1 X2 1 w1 w2 b
0 0 -1
0 0 1 -1 -1 -1 0 0 0 0 0 -1
‫الدخل األول‬
‫من‬
‫اـلتكرار الثانـــــــي‬

Input Net Out Tar Weight Weight


get change
X1 X2 1 w1 w2 b
0 0 -1
1 1 1 -1 -1 1 1 1 1 1 1 0
‫اـلدخل الثاني‬
‫من‬
‫التكرار الثانـــــــي‬

Input Net Out Tar Weight Weight


get change
X1 X2 1 w1 w2 b
1 1 0
1 0 1 1 1 -1 -1 0 -1 0 1 -1
‫الدخل الثالث‬
‫من‬
‫التكرار الثانـــــــي‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b
0 1 -1
0 1 1 0 0 -1 0 -1 -1 0 0 -2
0 0 1 -2 -1 -1 0 0 0 0 0 -2
‫التكرار الثالـــــــــــث‬

Input Net Out Tar Weight Weight


get change
X1 X2 1 w1 w2 b
0 0 -2
1 1 1 -2 -1 +1 1 1 1 1 1 -1
1 0 1 0 0 -1 -1 0 -1 0 1 -2
0 1 1 -1 -1 -1 0 0 0 0 1 -2
0 0 1 -2 -1 -1 0 0 0 0 1 -2
‫التكرار الرابـــــــــع‬

Input Net Out Tar Weight Weight


get change
X1 X2 1 w1 w2 b
0 1 -2
1 1 1 -1 -1 1 1 1 1 1 2 -1
1 0 1 0 0 -1 -1 0 -1 0 2 -2
0 1 1 0 -1 -1 0 -1 -1 0 1 -3
0 0 1 -3 -1 -1 0 0 0 0 1 -3
‫التكرار الخامس‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

0 1 -3
1 1 1 -2 -1 1 1 1 1 1 2 -2
1 0 1 -1 -1 -1 0 0 0 1 2 -2
0 1 1 0 0 -1 0 -1 -1 1 1 -3
0 0 1 -3 -1 -1 0 0 0 1 1 -3
‫التكرار السادس‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

1 1 -3
1 1 1 -1 -1 1 1 1 1 2 2 -2
1 0 1 0 0 -1 -1 0 -1 1 2 -3
0 1 1 -1 -1 -1 0 0 0 1 2 -3
0 0 1 -3 -1 -1 0 0 0 1 2 -3
‫التكـرار السابع‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

1 2 -3
1 1 1 0 0 1 1 1 1 2 3 -2
1 0 1 0 0 -1 -1 0 -1 1 3 -3
0 1 1 0 0 -1 0 -1 -1 1 2 -4
0 0 1 -4 -1 -1 0 0 0 1 2 -4
‫التكـرار الثامـــــــن‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

1 2 -4
1 1 1 -1 -1 1 1 1 1 2 3 -3
1 0 1 -1 -1 -1 0 0 0 2 3 -3
0 1 1 0 0 -1 0 -1 -1 2 2 -4
0 0 1 -4 -1 -1 0 0 0 2 2 -4
‫التكرار التاســــع‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

2 2 -4
1 1 1 0 0 1 1 1 1 3 3 -3
1 0 1 0 0 -1 -1 0 -1 2 3 -4
0 1 1 -1 -1 -1 0 0 0 2 3 -4
0 0 1 -4 -1 -1 0 0 0 2 3 -4
‫أخيراً التكرار العاشر‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

2 3 -4
1 1 1 1 1 1 0 0 0 2 3 -4
1 0 1 -2 -1 -1 0 0 0 2 3 -4
0 1 1 -1 -1 -1 0 0 0 2 3 -4
0 0 1 -4 -1 -1 0 0 0 2 3 -4
‫• مما سبق نجد أن االستجـابة الموجبة‬
‫تعطى بكل النقاط التي تحقق العالقة ‪-:‬‬
‫‪2. x1 + 3.x2 -4 > 0.2‬‬
‫• و بالنسبة لخط الفصل يعطى بالعالقة‪-:‬‬
‫‪X2 = -(2/3)x1 + 7/5‬‬
‫أما االستجـابة السالبة للشبكة فتمثل‬
‫بالنقاط التي تحقق العالقة‪-:‬‬
‫‪2. x1 + 3.x2 -4 < - 0.2‬‬
‫انظر الشكل التالي‪:‬‬
‫حدود القرار النهائية للتابع (‪ )AND‬في تعلم‬
‫‪Perceptron‬‬
‫‪X2‬‬

‫‪+‬‬
‫‪-‬‬

‫‪-‬‬ ‫‪-‬‬ ‫‪X1‬‬


‫مثال‪ :‬شبكة ‪ Perceptron‬من التابع ‪AND‬‬
‫بمداخل و مخارج ثنائية القطبية‬
‫• سوف نعيد نفس عملية التدريب و‬
‫لكن من أجل دخل ثنائي القطبية و‬
‫معدل تعلم (‪ )α=1‬وجهد عتبة و أوزان‬
‫بدائية صفرية‪.‬‬
‫• و كانت النتائج كما يلي‪:‬‬
‫التكـرار األول‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

0 0 0
1 1 1 0 0 1 1 1 1 1 1 1
1 -1 1 1 1 -1 -1 1 -1 0 2 0
-1 1 1 2 1 -1 1 -1 -1 1 1 -1
-1 -1 1 -3 -1 -1 0 0 0 1 1 -1
‫التكرار الثاني و األخير‬
Input Net Out Tar Weight Weight
get change
X1 X2 1 w1 w2 b

0 0 0
1 1 1 1 1 1 0 0 0 1 1 -1
1 -1 1 -1 -1 -1 0 0 0 1 1 -1
-1 1 1 -1 -1 -1 0 0 0 1 1 -1
-1 -1 1 -3 -1 -1 0 0 0 1 1 -1
‫شبكة ‪ Perceptron‬من التابع ‪ AND‬بمداخل‬
‫و مخارج ثنائية القطبية‬
‫• بما أن تغير األوزان يساوي الصفر‬
‫فإن عملية التدريب تكون قد‬
‫انتهت عند هذه المرحلة‪.‬‬
‫• من هذه النتائج نالحظ أن التمثيل‬
‫ثنائي القطبية إلشارات الدخل قد‬
‫حسن قدرة التعلم للشبطة‬
‫بشكل ملحوظ‪.‬‬
‫تمت بحمد هللا تعالى و‬
‫فضله‬

You might also like