الشبكة العصبية Perceptron
(Perceptron Network)
Perceptron Neural Network:
بعد أن تعرفنا على ماهية الشبكات العصبية وما هو الهدف منها سنتعرف على أحد الطرق التي يتم فيها بناء شبكة عصبية، وهي Perceptron.
الـ Perceptron Network تستخدم في التطبيقات التي تحتاج إلى تصنيف الأنماط Pattern Classification إلى فئتين فقط. أي التي يمكن فصل الأنماط بها بيانياً بواسطة خط مستقيم وتسمى هذه النوعية من الأنماط: الأنماط القابلة للفصل خطياً Linear separability patterns.
وتتكون هذه الشبكة من طبقة المدخلات وطبقة واحدة أو طبقتين من طبقة المعالجة بحيث لا تزيد طبقة المعالجة عن طبقتين، بالإضافة إلى أنه يتم ضبط الأوزان لطبقة واحدة فقط من طبقات الوصلات البينية التي تربط بين الطبقات السابقة، لتبقى الطبقة الأخرى (إن وجدت) ثابتة الأوزان. و هذه الشبكة تتعلم عن طريق معلم.
ولهذه الشبكة مميزات وعيوب، من مميزاتها أن بناء برنامج لها سهل جداً.
ومن عيوبها:
أنها لا تستطيع أن تصنف الأنماط لأكثر من فئتين.
عدد طبقات المعالجة فيها محدد بطبقة واحدة أو طبقتين فقط.
ضبط أوزان الوصلات البينية فيها يتم على طبقة واحدة فقط من طبقات الوصلات البينية.
يمر تعليم هذه الشبكات العصبية بمرحلتين وهما:
مرحلة التعليم
مرحلة الاختبار
مرحلة التعليم :
هي المرحلة التي يتم فيها ضبط أوزان الوصلات البينية حتى تصل إلى أوزان قادرة على إعطاء إجابات صحيحة.
ويتم ذلك عن طريق قيام وحدات المعالجة بثلاث عمليات رئيسية:
عملية جمع الأوزان Weighted Sum:
تقوم كل وحدة معالجة بعملية الجمع لكل وزن مدخل لها و الملحق بالوصلة البينية التي تربط بينها وبين الوحدة الموجودة في الطبقة التي تسبقها، مضروباً في القيمة الخارجة من تلك الوحدة، وهو على الصيغة:
Sj=∑ai wji
حيث wjiهو الوزن الملحق بالوصلة البينية التي تربط وحدة المعالجة j بالوحدة i الموجودة في الطبقة التي تسبقها.
و aiهي القيمة الخارجة من الوحدة i
و Sj هي ناتج عملية الجمع لكل وحدة معالجة j.
عملية التحويل Transformation:
تتم هذه العملية في الطبقة الأخيرة من طبقات المعالجة حيث يتم تحويل ناتج عملية الجمع المذكور في العملية السابقة إلى أحد القيم التي يفترض أن تكون ضمن نواتج الشبكة المرغوب بها. فمثلاً لو كانت الشبكة ستتعلم كيف تصنف الأعداد إلى فردي وزوجي، على أن تعطي كل عدد فردي القيمة 0 و كل عدد زوجي القيمة 1.
فإن قيمة Sj وهو ناتج عملية الجمع لن يعطي القيمة 0 أو 1 غالباً، لذا لا بد من تحويل هذا الناتج إلى أحد هذه القيمتين، وذلك عن طريق قاعدة التحويل والتي يحددها المبرمج. فمثلاً تكون القاعدة كالتالي:
if Sj>0 then Xj=1
if Sj<=0 then Xj=0
حيث Xj هي القيمة الخارجة من وحدة المعالجة j
عملية ضبط أوزان الشبكة weights adjustment:
بعد إتمام عملية التحويل يتم مقارنة الناتج الذي تعطيه الشبكة مع الناتج الصحيح الذي يفترض أن تعطيه الشبكة وذلك عن طريقة طرح الناتج الهدف(الصحيح) من ناتج الشبكة، فإذا كان ناتج الطرح مساوياً للصفر فهذا يعني أن الشبكة أخرجت ناتجاً صحيح، أما إن كان غير ذلك فالشبكة تحتاج لضبط أوزانها، وذلك من خلال قاعدة التعليم learning rule:
wjinew= wjiold+C(tj-Xj)ai
حيث wjinew هي قيمة الوزن الجديد الملحق بالوصلة البينية بين الوحدة j والوحدة i
و wjiold هي قيمة الوزن القديم الملحق بالوصلة البينية بين الوحدة j والوحدة i
و C هو معدل التعلم learning rate وهي قيمة ثابتة عادة ما تكون قيمة أقل من 1
و tj هي القيمة الهدف للشبكة
و Xj هي القيمة التي أنتجتها الشبكة
و ai هي المخرج من الوحدة i إذا لم تفهم كل هذه العمليات من خلال القراءة، فهذا أمر طبيعي، سنحتاج أولاً لتطبيق عملية المحاكاة بواسطة الورقة والقلم أولاً حتى نفهم عملية التعليم ثم نصمم برنامج مناسب لها كما سنرى في الدرس القادم.