الشبكات العصبونية الاصطناعية (بالإنجليزية: Artificial Neural Network ANN) أو ما يدعى أيضا بالشبكات العصبونية المحاكية simulated neural network أو SNN : مجموعة مترابطة من عصبونات افتراضية تنشئها برامجٌ حاسوبيَّةُ لتشابه عمل العصبون البيولوجي أو بنى إلكترونية (شيبات إلكترونية مصممة لمحاكاة عمل العصبونات) تستخدم النموذج الرياضي لمعالجة المعلومات بناء على الطريقة الاتصالية في الحوسبة.[2][3][4] تتألف الشبكات العصبونية بشكل عام عناصر معالجة بسيطة تقوم بعمل بسيط لكن السلوك الكلي للشبكة يتحدد من خلال الاتصالات بين مختلف هذه العناصر التي تدعى هنا بالعصبونات ومؤشرات هذه العناصر element parameters. الإيحاء الأول بفكرة الشبكات العصبونية أتى من آلية عمل العصبونات الدماغية التي يمكن تشبيهها بشبكات بيولوجية كهربائية لمعالجة المعلومات الواردة إلى الدماغ. في هذه الشبكات اقترح دونالد هب أن المشبك العصبي يلعب دورا أساسيا في توجيه عملية المعالجة وهذا ما دفع للتفكير في فكرة الاتصالية والشبكات العصبونية الاصطناعية. تتالف الشبكات العصبونية الاصطناعية من عقد أو ما قد ذكرنا مسبقا انه عصبونات neurons أو وحدات معالجة processing elements، متصلة معا لتشكل شبكة من العقد، وكل اتصال بين هذه العقد يملك مجموعة من القيم تدعى الأوزان تسهم في تحديد القيم الناتجة عن كل عنصر معالجة بناء على القيم الداخلة لهذا العنصر.
مقدمة
يمكننا تعريف الشبكات العصبية بأنها محاولة رياضية برمجية لمحاكاة طريقة عمل المخ البشري. حيث أن العلماء قد اكتشفوا تقريبا طريقة عمل المخ البشري من حيث قابلية التعلم وقابلية التذكر والقدرة على تمييز الأشياء والقدرة على اتخاذ القرارات. والمخ كما تعلمون يتكون من مليارات الخلايا العصبية المتشابكة فيما بينها بطريقة معقدة جدا عن طريق الزوائد العصبية لكل خلية، مما يشكل شبكة هائلة من الخلايا العصبية المرتبطة فيما بينها عن طريق هذه الزوائد.
هذه الترابط فيما بين الخلايا العصبية يتيح لها القدرة على تخزين المعلومات والصور والصوت وخلافه من الإشارات التي تصلها عبر الحواس الخمسة، ومن ثم تتيح لها أيضا التعلم عن طريق التكرار والخطأ.
فمثلا لو أتينا بطفل صغير وعرضنا عليه مجموعة من صور الحيوانات المختلفة فيها مثلا فيل وزرافة وببغاء؛ تعلم الآن الطفل الصغير هذه الحيوانات وأسمائها. لو عرضنا عليه الآن صورة لطير لم يره من قبل ولنفرض أنه الكناري وقلنا له ما هذا الحيوان فإنه بناء على تعلمه سابقا فإنه سيقول أنه ليس فيلا وليس زرافة ولكنه يشبه إلى حد كبير الببغاء. سنقول له صحيح، هذا يشبه الببغاء ولكنه ليس ببغاء وإنما هو كناري.
الآن ما الذي حصل؟
لقد استطاع هذا الطفل الصغير التعلم بناء على النماذج الثلاثة الأولية التي تدرب عليها، استطاع أيضا اتخاذ قرار صحيح مع الطير الجديد.
أخيرا تدرب على الكناري بحيث أنه في المرات القادمة سوف يستطيع أن يفرق بين الببغاء والكناري مع التشابه بينهما. كل ما سبق حصل مع هذا الطفل الصغير لأن الدماغ البشري يعمل بطريقة تؤهله للتعلم والتذكر واتخاذ القرارات عندما يحتاج لذلك، وذلك بسبب تركيبة الدماغ التي تكلمنا عليها سابقا. عندما اكتشف العلماء طريقة عمل الدماغ حاول العلماء الرياضيون أن يحاكوا طريقة عمل الدماغ بواسطة نماذج رياضية. نشأ عن هذا العلم الجديد ما يسمى بالذكاء الصناعي وأحد أنواع هذا الذكاء الصناعي هو الشبكات العصبية والذي هو أساس موضوعنا الآن. رأينا سابقا أن الطفل الصغير خصص جزءا من خلايا دماغه لتكوين شبكة عصبية تعلم بها التمييز بين الصور التي عرضت عليه. وأن هذه الشبكة يمكن أن تتطور وتتعلم وتنمو أكثر فأكثر وتصبح قادرة أكثر على اتخاذ القرارات الصحيحة.
وهكذا فإن أي شيء يتعلمه الطفل يتم تخصيص شبكة عصبية خاصة بهذا العلم؛ ولكن بكثير من التعقيد والربط المعقد بين هذه الشبكات المختلفة.الآن نأتي لأبسط شكل لهذه الشبكات العصبية والذي قام علماء الرياضيات بمحاكاته برمجيا وصنع نموذج رياضي له.
يتكون هذا النموذج الرياضي من خلايا عصبية اصطناعية.
تتكون كل خلية عصبية اصطناعية من ثلاثة أقسام رئيسية هي:
- الوزن: وهو وزن أو عامل تثقيل لكل خلية عصبية اصطناعية وهو عبارة عن رقم مجرد.
- الجامع: وهو عبارة عن حاصل جمع وزن كل خلية مضروبة بالدخل.
- تابع التفعيل: وهو عبارة عن علاقة أسية لمعالجة إشارة الخرج بحيث تمر هذه الإشارة من خلال هذا التابع ومنه تنتج القيمة النهائية المطلوبة.
يكمن أحد أسباب تفوق الدماغ البشري في قدرته على معالجة المعطيات في شكل هيكلي بمعني ان كل جزء من المخ له وظيفه ويشرف علي عمله جزء اخر يدير عمله ويستطيع ان يغير عمل الاجزاء ويسمي ذلك Plasticity كما أن كل جزء من المخ يعمل بصفه منفصله عن الآخر كما لو كان جهازاً حاسوبياً به عدد كبير جدا من المعالجات (Processors)، أجهزة الحاسوبِ اليوم تقوم بمحاكاة هذه العملية في ما يسمى حوسبة متوازية، Parallel Computing، وبالرغم من السرعة العالية الناتجة عن هذه التقنية إلا أنها تفتقر إلى القدرة على الاستقلال بحل المشكلة، وذلك لان الحاسب الإلكتروني يقوم بارسال بيانات كثيرة جدا في صورة رقمية بين كل من أجزائه أما المخ فيقوم بعمل ذلك في صورة رقميه في بعض الأماكن وفي أماكن أخري في صورة أنالوج كما أن الحَاسُوبَ يرسل عددًا كبيرًا من البيانات المتكررة ولكن المخ لايرسل بيانات متكررة ومثال علي ذلك الكاميرا فهي ترسل حالة كل نقطة تصورها وإذا لم تتغير الحالة ترسلها كما هي أيضا أما العقل فيرسل التغيير فقط وذلك على شكل Spikes أو إشارات عصبية.
دونالد هيب،Hebb في كتابه منظمة السلوك1949م، أشار إلى أنّ المشابك العصبية الروابط (العصبونات) بين الخلايا العصبية تقوى كلما تم استعمالها أكثر بمعني أنه لو وجد عدد من الخلايا بجانب بعضها ولكن اثنان منهم يقومان بنقل بينات بصورة كثيفة فتقوى الوصلة بينهما وتصبح عملية معالجتها للعمليات أسرع مع تكرار إثارتها بنفس المعطيات.
كانت هذه بداية التفكير لما يسمى بالمعالجات العصبية أو الشبكات العصبية والتي كانت مطروحة في وقتها على صورة خلايا وليس شبكات مترابطة. في الخمسينات من القرن العشرين قامت شركة أي بي إم بأول محاولة لمحاكاة الخلية العصبية، ونجح ذلك بعد عدة محاولات فاشلة، ولكن كان علم الحَاسُوبِ في ذلك الوقت يتجه ناحية الحساب المتسلسل مما أدى إلى إهمال موضوع الخلايا العصبية ووضعه في الأدراج.
بشكل عام يمكننا أن نقول أن كل شبكة عصبية ترتب بشكل طبقات من الخلايا الاصطناعية: طبقة داخلية وطبقة خارجية وطبقات بينهم أو مخفية تتواجد بين طبقتي الدخل وطبقة الخارج. كل خلية في إحدى هذه الطبقات يتصل بكافة العصبونات الموجودة في الطبقة التي تليه وكافة العصبونات في الطبقة التي تسبقه.
حينما فكروا في البداية وجدوا أن الخلايا العصبية تقوم بعملية جمع الإشارات بمعني أنه توجد وصلتين لخلية عصبية مثلا وكل وصلة عليها إشارة تكون النتيجة هي محصلة الإشارات بالجمع العادي ومن ثم وجدوا أن كل عصبون يستطيع أن يقوم بعمل تكبير أو تصغير فتم إضافة عامل اسمه (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.
الآفاق
إن محاولة بناء شبكات عصبونية عن طريق البرمجة (أي أن الشبكة العصبونية هي عبارة عن برنامجٍ حَاسُوبيٍّ) تضع حدًّا لعدد النورونات التي نريد استعمالها لحل مشكلة معينة فاليوم يمكن بهذه الطريقة استعمال بضعة مئات من العصبونات فحسب وذلك لصعوبة تعليم الشبكات العصبونية.
أما الشبكات العصبونية المبنية على أسس عتادية (أي أن الشبكة النورونية هي عبارة عن وصلات كهربائية أو شيب) فإن عدد العصبونات المستعملة يصل إلى 30.000 وللمقارنة فإن الحلزون يمتلك 20.000 خلية مخية أو ما يسمى عصبونا.
كما أنه قد نجح بعض العلماء في تصنيع بعض الخلايا المخية انطلاقًا من بعض خلايا دماغ الفئران ثم استعمال هذه العصبونات البيولوجية في تسيير برنامج لمحاكات الطيران وهذه خطوة قد تتيح استعمال العصبونات البيولوجية لحل المسائل.