شبكة عصبونية اصطناعية
الشبكات العصبونية الاصطناعية أو ما يدعى أيضا بالشبكات العصبونية المحاكية simulated neural network أو SNN : مجموعة مترابطة من عصبونات افتراضية تنشئها برامج حاسوبية لتشابه عمل العصبون البيولوجي أو بنى إلكترونية (شيبات إلكترونية مصممة لمحاكاة عمل العصبونات) تستخدم النموذج الرياضي لمعالجة المعلومات بناء على الطريقة الاتصالية في الحوسبة. تتألف الشبكات العصبونية بشكل عام عناصر معالجة بسيطة تقوم بعمل بسيط لكن السلوك الكلي للشبكة يتحدد من خلال الاتصالات بين مختلف هذه العناصر التي تدعى هنا بالعصبونات ومؤشرات هذه العناصر element parameters. الإيحاء الأول بفكرة الشبكات العصبونية أتى من آلية عمل العصبونات الدماغية التي يمكن تشبيهها بشبكات بيولوجية كهربائية لمعالجة المعلومات الواردة إلى الدماغ. في هذه الشبكات اقترح دونالد هب أن المشبك العصبي يلعب دورا أساسيا في توجيه عملية المعالجة وهذا ما دفع للتفكير في فكرة الاتصالية والشبكات العصبونية الاصطناعية. تتالف الشبكات العصبونية الاصطناعية من عقد أو ما قد ذكرنا مسبقا انه عصبونات neurons أو وحدات معالجة processing elements، متصلة معا لتشكل شبكة من العقد، وكل اتصال بين هذه العقد يملك مجموعة من القيم تدعى الأوزان تسهم في تحديد القيم الناتجة عن كل عنصر معالجة بناء على القيم الداخلة لهذا العنصر.
يمكننا تعريف الشبكات العصبية بأنها محاولة رياضية برمجية لمحاكاة طريقة عمل المخ البشري. حيث أن العلماء قد اكتشفوا تقريبا طريقة عمل المخ البشري من حيث قابلية التعلم وقابلية التذكر والقدرة على تمييز الأشياء والقدرة على اتخاذ القرارات. والمخ كما تعلمون يتكون من مليارات الخلايا العصبية المتشابكة فيما بينها بطريقة معقدة جدا عن طريق الزوائد العصبية لكل خلية، مما يشكل شبكة هائلة من الخلايا العصبية المرتبطة فيما بينها عن طريق هذه الزوائد.
هذه الترابط فيما بين الخلايا العصبية يتيح لها القدرة على تخزين المعلومات والصور والصوت وخلافه من الإشارات التي تصلها عبر الحواس الخمسة، ومن ثم تتيح لها أيضا التعلم عن طريق التكرار والخطأ.
فمثلا لو أتينا بطفل صغير وعرضنا عليه مجموعة من صور الحيوانات المختلفة فيها مثلا فيل وزرافة وببغاء؛ تعلم الآن الطفل الصغير هذه الحيوانات وأسمائها. لو عرضنا عليه الآن صورة لطير لم يره من قبل ولنفرض أنه الكناري وقلنا له ما هذا الحيوان فإنه بناء على تعلمه سابقا فإنه سيقول أنه ليس فيلا وليس زرافة ولكنه يشبه إلى حد كبير الببغاء. سنقول له صحيح، هذا يشبه الببغاء ولكنه ليس ببغاء وإنما هو كناري.
الآن ما الذي حصل ؟
لقد استطاع هذا الطفل الصغير التعلم بناء على النماذج الثلاثة الأولية التي تدرب عليها،استطاع أيضا اتخاذ قرار صحيح مع الطير الجديد.
أخيرا تدرب على الكناري بحيث أنه في المرات القادمة سوف يستطيع أن يفرق بين الببغاء والكناري مع التشابه بينهما. كل ما سبق حصل مع هذا الطفل الصغير لأن الدماغ البشري يعمل بطريقة تؤهله للتعلم والتذكر واتخاذ القرارات عندما يحتاج لذلك، وذلك بسبب تركيبة الدماغ التي تكلمنا عليها سابقا. عندما اكتشف العلماء طريقة عمل الدماغ حاول العلماء الرياضيون أن يحاكوا طريقة عمل الدماغ بواسطة نماذج رياضية. نشأ عن هذا العلم الجديد ما يسمى بالذكاء الصناعي وأحد أنواع هذا الذكاء الصناعي هو الشبكات العصبية والذي هو أساس موضوعنا الآن. رأينا سابقا أن الطفل الصغير خصص جزءا من خلايا دماغه لتكوين شبكة عصبية تعلم بها التمييز بين الصور التي عرضت عليه. وأن هذه الشبكة يمكن أن تتطور وتتعلم وتنمو أكثر فأكثر وتصبح قادرة أكثر على اتخاذ القرارات الصحيحة.
وهكذا فإن أي شيء يتعلمه الطفل يتم تخصيص شبكة عصبية خاصة بهذا العلم؛ ولكن بكثير من التعقيد والربط المعقد بين هذه الشبكات المختلفة.الآن نأتي لأبسط شكل لهذه الشبكات العصبية والذي قام علماء الرياضيات بمحاكاته برمجيا وصنع نموذج رياضي له.
يتكون هذا النموذج الرياضي من خلايا عصبية اصطناعية.
تتكون كل خلية عصبية اصطناعية من ثلاثة أقسام رئيسية هي :
- الوزن: وهو وزن أو عامل تثقيل لكل خلية عصبية اصطناعية وهو عبارة عن رقم مجرد.
- الجامع: وهو عبارة عن حاصل جمع وزن كل خلية مضروبة بالدخل.
- تابع التفعيل: وهو عبارة عن علاقة أسية لمعالجة إشارة الخرج بحيث تمر هذه الإشارة من خلال هذا التابع ومنه تنتج القيمة النهائية المطلوبة.
يكمن أحد أسباب تفوق الدماغ البشري في قدرته على معالجة المعطيات في شكل هيكلي بمعني ان كل جزء من المخ له وظيفه ويشرف علي عمله جزء اخر يدير عمله ويستطيع ان يغير عمل الاجزاء ويسمي ذلك Plasticity كما أن كل جزء من المخ يعمل بصفه منفصله عن الاخر كما لو كان جهاز كمبيوتر به عدد كبير جدا من المعالجات(Processors)، أجهزة الحاسوب اليوم تقوم بمحاكاة هذه العملية في ما يسمى حوسبة متوازية، Parallel Computing، وبالرغم من السرعة العالية الناتجة عن هذه التقنية إلا أنها تفتقر إلى القدرة على الاستقلال بحل المشكلة، وذلك لان الحاسب الإلكتروني يقوم بارسال بيانات كثيرة جدا في صورة رقمية بينه كل من اجزائه اما المخ فيقوم بعمل ذلك في صورة رقميه في بعض الأماكن وفي أماكن اخري في صورة انالوج كما أن الكمبيوتر يرسل عدد كبير من البيانات المتكرره ولكن المخ لايرسل بيانات متكرره ومثال علي ذلك الكاميرا فهي ترسل حالة كل نقطه تصورها واذا لم تتغير الحالة ترسلها كما هي أيضا اما العقل فيرسل التغيير فقط وذلك علي شكل Spikes أو إشارات عصبية.
دونالد هيب،Hebb في كتابه منظمة السلوك 1949م، أشار إلى أنّ المشابك العصبية الروابط (العصبونات) بين الخلايا العصبية تقوى كلما تم استعمالها أكثر بمعني ان إذا يوجد عدد من الخلايا بجانب بعض ولكن اثنين منهم يقومان بنقل بينات بصورة كثيفه فتقوي الوصله بينهما وتصبح عملية معالجتها للعمليات أسرع مع تكرار إثارتها بنفس المعطيات. كانت هذه بداية التفكير لما يسمى بالمعالجات العصبية أو الشبكات العصبية والتي كانت مطروحة في وقتها على صورة خلايا وليس شبكات مترابطة. في الخمسينات من القرن العشرين قامت شركة أي بي إم بأول محاولة لمحاكاة الخلية العصبية، ونجح ذلك بعد عدة محاولات فاشلة.و لكن كان علم الكمبيوتر في ذلك الوقت يتجه ناحية الحساب المتسلسل مما أدى إلى إهمال موضوع الخلايا العصبية ووضعه في الأدراج.
في نهاية الخمسينيات، بدأ فرانك روزنبلات بالعمل على ما يدعى اليوم بالبيرسيبترون، Perceptron، حيث كان قادرا على فصل النقاط القابلة للفصل خطيّا دون النقاط غير القابلة للفصل خطيا. وهذا ما اعتبر عيبا ضخما في البيرسبترون. في عام 1959م قام برنارد فيدرو وماركيان هووف ببناء نموذجي عنصر تكيفي خطي آدالاين ADAptive LINear Element ومجموعة عناصر تكيفية خطية مادالاين Many ADALINE. كان هذا هو أول ظهور للشبكات العصبية بشكلها الحالي. كانت تستخدم كفلاتر أو مرشحات قابلة للتكيف (Adaptive Filter) لإلغاء الصدى من خطوط الهاتف. وما تزال تستعمل تجاريا حتى هذا الوقت.
بشكل عام يمكننا ان نقول أن كل شبكة عصبية ترتب بشكل طبقات من الخلايا الاصطناعية : طبقة داخلية وطبقة خارجية وطبقات بينهم أو مخفية تتواجد بين طبقتي الدخل وطبقة الخارج. كل خلية في إحدى هذه الطبقات يتصل بكافة العصبونات الموجودة في الطبقة التي تليه وكافة العصبونات في الطبقة التي تسبقه.
حينما فكروا في البداية وجدوا ان الخلايا العصبية تقوم بعملية جمع لإشارات بمعني انه يوجد وصلتين لخلية عصبية مثلا وكل وصلة عليها إشارة تكون النتيجة هي محصلة الإشارات بالجمع العادي ومن ثم وجدوا ان كل عصبون يستطيع ان يقوم بعمل تكبير أو تصغير فتم إضافة عامل اسمه (Weighting Factor) بمعني انه إذا كان هناك خلية مثلا ولها مدخلان فيتم ضرب الإشارة الأولي في المعامل الخاص بالعصبون هذا وكذا للمدخل الثاني ومن ثم يتم جمعهم وعلي ذلك تم بناء النظام الهندسي للخلايا الصناعية مع الاخذ في الاعتبار انه ليس صحيح 100% بالنسبة للخلايا العصبية البيولوجية كما سيوضح لاحقا.
كل اتصال بين عصبون وآخر يتميز بارتباطه بقيمة تدعى الوزن (Weighting) وهي تشكل مدى أهمية الارتباط بين هذين العنصرين، يقوم العصبون بضرب كل قيمة دخل واردة من عصبونات الطبقة السابقة بأوزان الاتصالات مع هذه العصبونات، من ثم جمع نواتج الضرب جميعا، ثم إخضاع النتيجة لتابع تحويل يختلف حسب نوع العصبون، ناتج تابع التحويل يعتبر خرج العصبون الذي ينقل إلى عصبونات الطبقة اللاحقة.
الخلايا العصبية البيولوجيه هي اعقد كثيرا فيوجد مثلا ثلاثة أنواع للخلايا اما خلايا متواجدة داخل مكان واحد (Local Network Cell) وفي الغالب تكون مستقبلة excitatory أو محدثه inhibitory للإشارة Spike أو خلايا (long Range connection) وهي خلايا تربط بين أماكن مختلفه من المخ وفي الغالب تكون مستقبلة أو خلايا حساب المجموع.
يوجد شيء اسمه Dendrite أو العصبون وهذا في النموذج الهندسي عبارة عن سلكة ليس لها تاثير علي الإشارة الداخله للخلية اما في الحقيقة فان ذلك الجزء تعتبر مجموعة من الدوائر الإلكترونية القادرة علي أحداث الإشارة ذاتيا وهي تعامل معاملة المكثفات والملفات Active Component كما أنه وجد ان هذة العصبونات لها تأثير علي بعض فمثلا إذا تواجدت العصبونات بجانب بعض فتجمع الإشارة بجمع غير خطي nonlinear اما إذا كان العصبونات بعيدة عن بعض فتجمع جمع خطي عادي.
الخلايا العصبية البيولوجية قادرة علي تغيير معاملات العصبونات Plasticity وهذا معناه انها قادرة علي تغيير تشكيلها لمناسبة اقصي مجهود مطلوب باقل الوصلات. وتقوم بعملية التغيير هذة بطريقتين اما طريقة اسمها Long Term Plasticity وهذا معناه تغيير معاملات العصبونات وذلك أيضا معناه تغيير وظيفة الخلايا الصناعية وهذا معروف فمثلا خلايا النظر في الكفيف تغير وظيفتها بعد زمن معين من عدم العمل الي وظيفة خلايا سمعية وذلك يتم عن طريق تغيير المعاملات والطريقة الاخري هي Short Term Plasticity وهذا معناه ان الخلايا العصبية قادرة علي تغيير حجم الإشارة الخارجه منها حسب الوقت والظروف بمعني انه في بعض الأحيان يكون الخارج منها مكبر بصورة كبيرة وبعض الأحيان الاخري يكون الخارج مصغر ولا زال الأسباب غير معروفه حتي الآن.
تعتبر الشبكات العصبونية الاصطناعية، أو اختصارا الشبكات العصبونية، مجموعة متوازية من وحدات المعالجة الصغيرة والبسيطة التي تدعى بالعقد أو العصبونات، في حين تكتسب الاتصالات البينية بين مختلف هذه الوحدات أهمية خاصة وتقوم بدور كبير في خلق ذكاء الشبكة. لكن على العموم، ورغم أن الفكرة أساسا مستوحاة من آلية عمل العصبونات الدماغية فلا يجب أن نخلط كثيرا أو نشابه بين الدماغ والشبكات العصبونية فالشبكات العصبونية أصغر وأبسط من العصبونات البيولوجية وقد تكون مجرد وحدات افتراضية تنشأها برامج الحاسب، كما إن آلية عمل العصبونات الاصطناعية تقتبس بعض ميزات العصبون البيولوجي ولا تشابهه تماما، بالمقابل أضيفت العديد من الميزات وتقنيات المعالجة إلى العصبونات الاصطناعية بناء على أفكار رياضية أو هندسية، وهذه الإضافات أو أساليب العمل الجديدة (بعضها مقتبس من الإحصاء أو من نظرية المعلومات) لا ترتبط بالعصبونات البيولوجية أبدا. بالمقابل تبدي الشبكات العصبونية ميزة مهمة كان الدماغ يتفرد بها إلا وهي التعلم وهذا ما يمنح هذه الشبكات أهمية خاصة في الذكاء الصنعي.
اقرأ أيضا : عصبون اصطناعي, بيرسيبترون
تم استيحاء آلية عمل العصبون الاصطناعي من عصبونات الدماغ : ففي العصبونات الحيوية، يمكن ان ننسب لكل مشبك اتصال قادم incoming synapse (أي مشابك التفرعات العصبية dendrite) قيمة تدعى وزن المشبك weight تساعد هذه القيمة في نمذجة المشبك (عن طريق تحديد قيمته وأهميته) فالوزن يحدد قوة هذا المشبك وأثره في العصبون. يضرب وزن كل مشبك بالدخل القادم، ومن ثم تجمع نواتج الضرب لكل المشابك القادمة. عادة ما تكون العصبونات البيولوجية تابعة لقاعدة قيمة العتبة 'threshold value' فإذا كان المجموع الموزون weighted Sum لقيم الدخل أكبر من قيمة معينة تدعى العتبة threshold، يضطرم العصبون أو لنقل انه يتفعّل مرسلا إشارة كهربائية تدعى كمون الفعل على طول المحور العصبي axon ومن ثم تصل هذه الإشارة عن طريق تفرعات المحور إلى كل المشابك الخارجة outgoing synapses التي تتصل بعصبونات أخرى في الدماغ
الشبكات العصبونية النموذجية تحاول أن تقلد هذا السلوك، فكل عقدة عصبونية تتلقى مجموعة من المدخلات عن طريق اتصالاتها بالعصبونات القبلية وكل عقدة لها تابع تفعيل activation function أو تابع تحويل transfer function، يحدد للعقدة متى وكيف تعمل أي لحظة وقيمة الخرج التي يجب أن تعطيها تماما كما العصبون البيولوجي.
أبسط توابع التحويل هو تابع قيمة العتبة الذي يعمل العصبون على أساسه : معطيا قيمة 1 إذا كان المجموع الموزون لقيم الداخلي أكبر من قيمة معينة تدعى العتبة و 0 إذا كان المجموع الموزون اقل من العتبة. لكن توابع التحويل يمكن لها ان تأخذ أشكالا أخرى أكثر تعقيدا أهمها تابع السيغمويد (التابع الأسي), ولا تخلو شبكة من بعض عقد عصبية تملك تابع تحويل أسي، بشكل عام معظم توابع التحويل تحول قيمة المجموع الموزون لقيم الدخل إلى قيمة وحيدة محصورة في المجال [0-1].
واحدة من أهم أنواع الشبكات العصبونية : الشبكة العصبونية أمامية التغذية وهي مجموعة عقد عصبونية مرتبة بشكل طبقات. ترتبط هذه العصبونات مع بعضها عادة بحيث يرتبط كل عصبون في طبقة ما بجميع العصبونات في الطبقة التالية (لا ترتبط عصبونات نفس الطبقة مع بعضها).
الشكل النموذجي لهذه الشبكات هو ثلاث طبقات عصبونية على الأقل تدعى (طبقة دخل input layer، طبقة مخفية hidden layer، طبقة خرج output layer) طبقة الدخل لا تقوم بأي عملية معالجة فهي ببساطة مكان تغذية الشبكة بشعاع البيانات، تقوم طبقة الدخل بعد ذلك بتغذية (نقل المعلومات) الطبقة المخفية ومن ثم تقوم الطبقة المخفية بتغذية طبقة الخرج. المعالجة الفعلية للبيانات Data تتم في الطبقة المخفية وطبقة الخرج أساسا.
عندما يكون هناك عدد كاف من العصبونات، تكون الشبكة قادرة على التدرب training للقيام بأشياء مفيدة بالاستعانة بخوارزميات التدريب training algorithm، تعتبر الشبكات أمامية التغذية مهمة جدا خاصة في استخدامات التصنيف الذكي والتمييز الذكي لبيانات غير مألوفة مسبقا.تعتمد الشبكات العصبية على تقليد عمل أعصاب الدماغ.
الشباكات العصبونية لا تبرمج بل إنها تقوم بالتعلم وهنالك العديد من خوارزميات التعلم منها Back Propagation algorithm (وهي خوارزمية تعتمد انتشار الأخطاء من الخلف إلى الأمام لضبط أوزان الشبكة) وطريقة هيب Hebb Rule.