الشبكات العصبية (Neural Network)
كيف يتعلم الإنسان؟!
تنتشر في جسم الإنسان ملايين الخلايا العصبية والتي تتفرع بدورها إلى الملايين من الزوائد العصبية، حيث تنقل هذه الخلايا العصبية الإحساس و ردّات الفعل من و إلى العقل البشري بواسطة الحبل الشوكي.
ومن خلال هذه الخلايا العصبية يتم تخزين المعرفة عن العالم الخارجي في العقل البشري، وذلك عن طريق ضبط الأوزان داخل هذه الخلايا.
لو أخذنا مثال بسيط و يحدث دائماً دون أن نشعر بذلك في حياتنا، وهو تعلّم الطفل للتعرف على صور الحيوانات في السنوات الأولى من عمره.
فمثلاً لو عرضنا على طفل في الثالثة من عمره صورة لبقرة ثم عرضنا صورة لقط ثم صورة لدجاجة مع ذكر اسم كل حيوان أمامه. و كررنا هذه الصور لعدة مرات. بعد ذلك تأتي مرحلة الاختبار ويتم فيها عرض الصور السابقة مع صور حيوانات أخرى لنقل صورة عصفور بحيث يطلب منه معرفة اسم الحيوان الظاهر في الصورة، نلاحظ أن الطفل سيتعرف على صور الحيوانات التي تعلمها أثناء مرحلة التعليم ولكن عند عرض صورة العصفور فإن الطفل سيتعرف على الصورة على أساس أنها صورة الدجاجة!
وذلك لأن صورة العصفور مشابهة في كثير من الخصائص الخارجية لصورة الدجاجة والتي تم تخزينها في عقله. ولكن مع تنويع الصور وتكرارها سيتعلم الطفل أكثر في كل مرة.
فكّر العلماء في طريقة يستطيعون من خلالها محاكاة هذه العملية التي تحدث في العقل البشري، وتوصلوا إلى علم الشبكات العصبية Neural Network والذي يندرج تحت علوم الذكاء الصناعي، بحيث يجعلون من أجهزة الحاسوب أجهزة ذكية، بإمكانها أن تكتسب المعرفة بنفس الطريقة التي يكتسب بها الإنسان المعرفة، وهي طريقة ضبط الأوزان أثناء التعلم.
الشبكات العصبية الاصطناعية:
هو جهاز مصمم لمحاكاة الطريقة التي يؤدي بها العقل البشري مهمة معينة، وهو عبارة عن معالج ضخم موزع على التوازي، ومكون من وحدات معالجة بسيطة، بحيث يقوم بتخزين المعرفة العملية ليجعلها متاحة للمستخدم وذلك عن طريق ضبط الأوزان.
طرق المحاكاة:
هناك عدة طرق لمحاكاة الطريقة التي يتعلم بها الإنسان وهي:
عن طريق الورقة والقلم، بحيث يتم إدخال الخصائص كمدخلات ثم القيام بعمليات حسابية معينة تضبط فيها الأوزان لتعطي النتيجة المرغوبة وهذه الطريقة غير عملية وتستخدم عادة لتوضيح المفهوم الذي تعمل به الشبكة العصبية فقط.
عن طريق عدة أشخاص مع كل شخص منهم آلة حسابية بسيطة، بحيث يمثل كل شخص منهم خلية عصبية تقوم بعملية ضبط الأوزان. وهذه الطريقة غير فعالة لنفس الأسباب السابقة.
عن طريق عدد كبير جداً من أجهز الحاسوب المتصلة ببعضها البعض، بحيث يمثل كل جهاز منها خلية عصبية تقوم بعمليات حسابية بسيطة لضبط الأوزان، وهذه الطريقة غير فعالة نظراً للعدد الكبير جداً من الأجهزة والتي تكون في الغالب مكلفة جداً.
عن طريق برنامج يحاكي هذه العملية، وهذه هي الطريقة الأمثل و الأسهل والأقل تكلفة علاوة على كونها الأكثر انتشارا، وهي التي سنعتمدها إن شاء الله في هذا الدرس لبناء شبكة عصبية.
التطبيقات التي تستخدم الشبكات العصبية:
الشبكات العصبية أعطت حلولاً ذات كفاءة عالية للكثير من التطبيقات في العديد من المجالات نذكر منها:
تمييز الأنماط والتعرف على الصور.
القدرة على التعرف على الصور المشوهة.
إكمال الصور التي فقدت جزء منها، مثل الصور المرسلة بواسطة الأقمار الصناعية.
عمليات التصنيف إلى عدد من الفئات. مثل تصنيف الحيوانات إلى أليفة و مفترسة.
لو أخذنا مثلاً على عملية التعرف على الكائنات الحية، و قمنا ببرمجة برنامج بالطريقة التقليدية للتعرف على هذه الحيوانات فإن ذلك سيكون صعب للغاية فضلاً عن كونه محدود القدرات. فالتطبيقات التقليدية تمر بعدة مراحل تتطلب في معضمها وجود الإنسان، و تتطلب برنامج ضخم للتعرف على كل حيوان على حدة!
بينما في الشبكات العصبية فإنه الشبكة تتبع نفس الطريقة التي يتعلم بها الإنسان وذلك عن طريق عرض صور الحيوانات وضبط الأوزان حتى يتم تخزين المعرفة بصورة صحيحة في ذاكرة الحاسوب ومع تكرار الصور و تنوعها تتعلم الشبكة وتصبح قادرة على إعطاء إجابات صحيحة، وكل ذلك لا يتطلب كتابة برنامج ضخم كما في التطبيقات التقليدية.
مكونات الشبكة العصبية:
كما أن للإنسان وحدات إدخال توصله بالعالم الخارجي وهي حواسه الخمس، فكذلك الشبكات العصبية تحتاج لوحدات إدخال، ووحدات معالجة يتم فيها عمليات حسابية تضبط بها الأوزان و تحصل من خلالها على ردة الفعل المناسبة لكل مدخل من المدخلات للشبكة.
فوحدات الإدخال تكوّن طبقة تسمى طبقة المدخلات، و وحدات المعالجة تكوّن طبقة المعالجة وهي التي تخرج نواتج الشبكة. وبين كل طبقة من هذه الطبقات هناك طبقة من الوصلات البينية التي تربط كل طبقة بالطبقة التي تليها والتي يتم ضبط الأوزان الخاصة بكل وصلة بينية، وتحتوي الشبكة على طبقة واحدة فقط من وحدات الإدخال ولكنها قد تحتوي على أكثر من طبقة من طبقات المعالجة.
طرق تعليم شبكة عصبية:
تتعلم الشبكة عن طريق إعطائها مجموعة من الأمثلة، التي يجب أن تكون مختارة بعناية، لأن ذلك سيساهم في سرعة تعلم الشبكة. ومجموعة الأمثلة هذه تسمى فئة التدريب.
وتنقسم طرق تعليم شبكة عصبية إلى قسمين حسب فئة التدريب التي تعرض على الشبكة. وهما:
في هذه الطريقة تكون فئة التدريب التي تعرض على الشبكة عبارة عن زوجين من المتجهات، متجه المدخلات وهو عبارة عن القيم المدخلة للشبكة، ومتجه المخرجات وهو عبارة عن القيم التي يجب أن تخرجها الشبكة.
مثال:
Input0 1 0 1 0 0 0 1)
Output0 1 1)
في هذه الطريقة تكون فئة التدريب عبارة عن متجه المدخلات فقط دون عرض المخرجات على الشبكة.
في الدرس التالي سنعرف على أول شبكة تتعلم بواسطة معلم وهي Perceptron Network.