الشبكات العصبونية الإصطناعية Artificial Neural Networks
الشبكات العصبونية الإصطناعية هي إحدى طرق الذكاء الإصطناعي المستعملة كثيرا و القوىة جدا، و خاصة مع تقدم و بروز طرق التعليم العميق (Deep Learning ) و التعليم الإصطناعي (machine learning )، و هي إقتباس من طريقة عمل الدماغ البشري حيث تحاول محاكاة الخلايا العصبية للدماغ و تمثيلها بشكل رياضي أو حسابي، لمزيد من المعلومات حول هذه النقطة يرجى الإطلاع على مقالي السابق، المرجع [1].
ماهي قوة الشبكات العصبونية الإصطناعية؟ قوة الشبكات العصبونية هي في أنها قادرة على إيجاد تصنيف غير خطي (non-linear ) عند إستعمال شبكة متعددة الطبقات (perceptron multilayer ) من أجل تصنيف عناصر متداخلة و صعبة الفصل فيما بينها، مثلا : كيف يستطيع برنامج حاسوبي التميز بين أنواع الفواكه بإستعمال كاميرا فقط، علما أن هناك الكثير من الفواكه متشابهة جدا مثل التفاح الأخضر المائل للأصفر و فاكهة السفرجل و غيرها من الأمثلة، حتى نفهم أكثر نشاهد الصورة 1، حيث نلاحظ كيف إستطاعت الشبكات العصبونية إيجاد معادلة لخط منحني يفصل بين الأشكال الزرقاء و الحمراء بدقة عالية، فلو إستعملنا الرياضيات بمفهومها القديم فإنه من الصعب جدا بل مستحيل إيجاد معادلة هذا المنحنى دون الإعتماد على الحواسب.
الصورة 1 |
كيف تمثل الخلايا العصبية في الشبكات العصبونية الإصطناعية؟ تمثل الخلايا العصبية الإصطناعية كما في الصورة 2، حيث (x1,..., xm) هي عبارة عن خصائص (characteristics) تميز العنصر أو المجال الذي نعمل عليه. مثلا لتقريب المعنى فقط خصائص الفواكه هي اللون، الحجم و الشكل الخارجي. و توجد طرق و أساليب معروفة في الذكاء الإصطناعي لإستخراج هذه الخصائص و على سبيل المثال (geometric moment)، ثم إن كل خلية لديها مجموعة من المداخيل (Wi) شأنها شأن الخلايا العصبية في الدماغ، و من هذه المداخيل تستقبل المعلومات من الخلايا الأخرى، و كل مدخل له وزن أو قيمة (weights)، و لحساب القيمة المدخلة نستعل دالة خاصة (net input function ) حيث تحسب على شكل مجموع جداءات كل معلومة أو قيمة مارة على كل مدخل مع وزنه. ثم لحساب نتيجة معالجة الخلية (output ) نستعل إحدى دوال التفعيل الخاصة و المعرفة في مجال الذكاء الإصطناعي (activation function ) و الموجودة في الصورة 3، يكفي إختيار واحدة و إستعمالها مباشرة. و نقوم بنفس العمل مع كل خلية، و أيضا مخرج كل خلية هو مدخل لخلية أخرى في الطبقات الداخلية.
الصورة 2 |
الصورة 3 |
بعد أن فهمنا كيفية تمثيل الخلية و طريقة عملها و شكلنا شبكة من الخلايا المترابطة، تأتي مرحلة التعليم و التدريب لهذه الشبكة، و عملية التعليم تتركز في الأساس على إيجاد قيم المداخيل (Wi)، بحيث تكون إجابات الشبكة صحيحة مع كل نمادج مجموعة التعليم.
كيفية تعليم الشبكات العصبونية الإصطناعية؟ في عملية التعليم توجد خوارزميات متعددة و مشتقة من بعضها البعض و لكني إخترت الخوارزمية التي في الصورة 4، لأنها الأبسط و هي الحالة العامة. حيث نأتي بمجموعة من نمادج التعليم (D) بحيث كل نمودج مرفق بصنفه و معلوم نتيجته، و نضع جميع الأوزان (Wd) على الحالة الإبتدائية و هي الصفر. أما (b) و يسمى (bias) و هو عبارة عن قيمة تضاف لمدخلات الخلية للتأثير على المدخلات، تماما كما تفعل خلايا الدماغ المحفزة أو المثبطة. و نحدد فترة للتعليم محددة ب (MaxIter) و في كل مرة نأخد نمودجا من مجموعة التعليم و نقوم بحساب النتيجة النهائية لكل خلية كما شرحناه سابقا و تكون في المتغير (a)، في هذا المثال تكون المخارج النهائية إما (1) أو (-1) فإذا كانت النتيجة النهائية لشبكتنا العصبونية (هنا الشبكة لها خلية واحدة في طبقة الخروج و لا تحتوى على طبقات داخلية) مختلفة عن الإجابة التي يجب أن تكون فإننا نقوم بتغير جميع الأوزان الداخلة إلى الخلية وفق معادلة السطر 7، و كذلك تغير (bias). و إذا كانت هي نفسها فلا نفعل شيئا و نختار نمودجا جديدا من مجموعة التعليم. و نستمر بهذا الشكل إلى أن تصبح إجابات شبكتنا العصبونية متوافقة و صحيحة مع جميع نماذج التعليم، أي أننا نستمر في تغير الأوزان (Wi) حتى تصير الشبكة تقدم لنا مخارج كإجابة لنمادج مجموعة التعليم مرغوبة و صحيحة. في النهاية نحتفظ بالشبكة و شكلها (شكلها الهندسي ) مع كل القيم (Wi) و (b).
الصورة 4 |
تم نأتي بمجموعة أخرى من النماذج مرفقة مع تصنيفها و لم تشارك في عملية التعليم. عادة مجموعة التعليم تقسم إلى قسمين مجموعة للتعليم تمثل 80% و مجموعة الإختبار تمثل 20%، و مجموعة الإختبار نعتمد عليها في قياس فعالية شبكتنا العصبونية و فق الخوارزمية 6 في الصورة 4.
في الصورة 5، لدينا مثال بسيط لحل دالة (XOR) من مدخلين و مخرج واحد، لما يكون المدخلين مختلفين (1 و 0) أو (0 و 1) تكون الإجابة 1 و لما يكوننا صفر معا أو بقيمة واحد معا فإن الإجابة تكون 0، إطلع على (xor truth table)، حيث دالة حساب إجابة كل خلية هي (Q) و كل خلية من الخلايا الثلاث أمامها دالة حساب الإجابة التي سوف تكون كمخرج منها. ففي كل سطر أفقي نقوم بحساب مخرج كل خلية من الخلايا الثلاث و هم (h1, h2, y). في السطر 3 و 4 لما كانت قيم x1 و x2 مختلفة (المكتوبة باللون الأخضر ) كانت الإجابات النهائية للخلية المسؤولة عن الإجابة النهائية و هي y كانت إجاباتها صحيحة في العمود 3 على اليمين في السطرين الأخيرين.
كان هذا مثال بسيط عن ( perceptron) الذي يتشكل من طبقة للمداخيل و خلية واحدة في طبقة المخرجات النهائية، و نفس هذه الفكرة و خوارزمية التعليم تعمم على الشبكة العصبونية المتعددة الطبقات (the perceptron multilayer ) طبعا مع بعض التعديلات و لكن جوهر الفكرة هو نفسه. و هناك إشتقاق و تنويع للخوارزميات على حسب الطلب و الحاجة، و كل مجال له شكل عام لخصائصه التي تميز شبكاته عن المجالات الأخرى، لهذا ننصح قبل الشروع في أي عمل لابد من الإطلاع على الأعمال و البحوث التي تمت من قبل في هذا المجال حتى نأخد نظرة عامة على مجال عملنا، و خاصة أن الكثير من الخصائص في الشبكات العصبونية هي تجريبية مثل عدد الطبقات و هناك عوامل أخرى لم نتطرق لها و موجودة في خوارزميات الشبكات المتعددة الطبقات و بمأن قيمها تجريبية فالإطلاع على الأعمال السابقة يسهل علينا أمر تحديدها.
الصورة 5 |
أتمنى أن يكون هذا المقال قد كشف بعض الغموض حول الشبكات العصبونية الإصطناعية و إن شاء الله نلتقي معكم في مقالات أخرى.
الكاتب : #هشام_فلواط - هشام فلواط - hichem felouat
المراجع :
Comments
Post a Comment