شبكة عصبونية التفافية

الشبكات العصبونية الالتفافية نوع خاص من أنواع الشبكات العصبونية بالتغذية الأمامية Feed forward neural network  و تستمد إلهامها من العمليات البيولوجية الحاصلة في الفص البصري بالتحديد في دماغ الكائنات الحية, وتعتبر حلاً للكثير من مشاكل الرؤية الحاسوبية في الذكاء الاصطناعي مثل معالجة الصور و الفيديوهات, يوجد لبنيتها عدة تصاميم ولكن Le-Net 5  يعتبر النموذج الأكثر شهرة و تطبيقاً عملياً و قد قدمه Yann LeCun   عام 1998 .

مقدمة

تعتبر الشبكات العصبونية الالتفافية (بالإنجليزية
أو اختصاراً CNN ) نوعاً خاصاً و هاماً من أنواع الشبكات العصبونية و لكن قبل البدء فيها من الضروري أن تتعرف على المفاهيم الأساسية في الشبكات العصبونية الصناعية Artificial Neural Network .

الشبكات العصبونية متعددة الطبقات

تتركب الشبكة العصبونية من مجموعة من العصبونات المرتبة ضمن طبقات تتألف بشكل أساسي من طبقة دخل و طبقة خرج و واحدة أو أكثر من الطبقات المخفية .
تعد الشبكات العصبونية بالدخل الأمامي Feed forward neural network   من أهم أنواع الشبكات العصبونية متعددة الطبقات , وسميت بذلك لأنها تعتمد مبدأ الانتشار الأمامي حيث يكون خرج جميع عصبونات الطبقة m دخلاً لكل عصبون في الطبقة الموجودة أمامها m+1 .

التعلم و التدريب

تشكل مرحلة تدريب الشبكة العصبونية مرحلة أساسية و هامة تأتي بعد مرحلة تصميمها, حيث يجري تدريبها على مجموعة من الأمثلة لتعطي الشبكة نتائج صحيحة على كل الأمثلة التي قمنا بتدريبها عليها, ولكن عملية التدريب لا تتوقف عند هذا الهدف المحدود بل يأتي امتياز فكرة الشبكات العصبونية بعملية التعميم أي قدرة الشبكة على إيجاد المخرج الصحيح لأمثلة جديدة لم يسبق لها التدريب عليها .
الخوارزمية الأكثر شيوعاً لتدريب الشبكات العصبونية هي الانتشار نحو الخلف  Back propagation 
و هي عملية تكرارية تبدأ من الطبقة الأخيرة و تحسب الخطأ الحاصل على الخرج عبر إيجاد الفرق الحاصل بين قيمته و قيمة الخرج المطلوب,ثم تحاول تخفيض قيمة هذا الخطأ باستخدام خوارزمية تخفيض الميل العشوائي Stochastic gradient descent أو خوارزميات استمثال أخرى و التي تقوم بتعديل قيم أوزان طبقة الخرج بشكل يخفف من الخطأ الحاصل, ثم تكرر هذه العملية على الطبقة قبل الأخيرة و هكذا باتجاه الوراء وصولاً للطبقة الأولى, ثم قد تكرر جميع ما سبق على جميع الطبقات وصولاً للأوزان المثلى التي تحقق القيمة الأدنى المقبولة لخطأ الشبكة .

بنية الشبكة العصبونية الالتفافية

تترتب عصبونات هذا النوع من الشبكات ضمن طبقات من أنواع مختلفة :

الطبقات الالتفافية Convolutional layers

تأتي تسمية هذا النوع من الطبقات من عملية الطي أو الالتفاف الرياضية وهي عملية تطبق على تابعين f, g و تنتج التابع o وهو نسخة معدلة عن التابعين ويعطي المنطقة المتداخلة بينهما ,  لهذه العملية أثر كبير في معالجة الصور   
تنتج إذاً هذه الطبقات عن تطبيق عملية الطي أو الالتفاف الرياضية على عناصر الدخل (عصبونات الطبقة السابقة أو بيكسلات الصورة المدخلة ) مع عدد من المرشحات filters  أو نوى الالتفاف Convolution kernels  
وتكرر عملية الالتفاف السابقة على كل مجموعة عناصر من الدخل بحجم المرشح الواحد, لتنتج لدينا قيم واحدة من خرائط الميزات أو feature map , ثم نكرر كامل العمليات السابقة من أجل كل مرشح فينتج خريطة ميزات أخرى وهكذا...,تعبر قيم هذه المرشحات عن أوزان الشبكة weights .
نلاحظ ما يلي في هذه الطبقات:

الأوزان المشتركة shared weights

تكرار تطبيق عملية التفاف المرشح على كامل عناصر الدخل سيحسن الأداء بشكل كبير لأنه سيؤدي إلى وجود عدد كبير من الوصلات و لكن بأوزان مشتركة فيما بينها shared weights وهذه إحدى أهم ميزات هذا النوع من الشبكات لأنها تزيد فاعلية التعلم و تجعل الشبكة مؤهلة لتحقيق نتائج أفضل في التعميم, فمثلاً سيتصل كل عصبون ناتج في خريطة الميزات بوصلات بعدد عناصر المرشح ولكن أوزان هذه الوصلات ستكون ذاتها أوزان العصبون المجاور له في نفس خريطة الميزات, كما ستؤمن هذه العملية التعرف على ميزات الصورة بالنظر إلى موقعها في الصورة الأساسية لأنها تربط النقاط المتجاورة مع بعضها وتسمح أيضاً بتمثيل المناطق المتداخلة .

مضاعفة المرشحات

وجود عدة مرشحات تطبق عليها عملية الطي مع نفس الدخل سيسمح بالتعرف على مجموعات مختلفة من الميزات في الصورة بما أن كل منها سينتج خريطة ميزات فريدة, ولكن عددها يجب أن يوضع بشكل لا يتغاضى عن تعقيد العمليات الحسابية الحاصلة كما أنه يعتمد على عدد الأمثلة المتوفرة للتدريب و تعقيد المهمة و تباين وأبعاد الصورة المدخلة, بينما يعتمد حجم المرشح الواحد أي أبعاده بشكل أساسي على البيانات الموجودة في مجموعة أمثلة التدريب .

طبقات الاتصال الكامل fully connected

بعد عدة طبقات من النوعين السابقين تأتي هذه الطبقات لتربط كل عصبونات الطبقة السابقة (مهما كان نوعها) و تجعلها دخل لكل عصبون فيها كما في الشبكات العصبونية العادية, لا يشترط كونها بعدد معين و لكن غالباً يوجد منها طبقتان متتاليتان كطبقات أخيرة في الشبكة إذ لا يمكن أن تأتي قبل طبقة من النوع الالتفافي

البرمجة

هناك العديد من المكتبات المساعدة في نمذجة الشبكات العصبونية الالتفافية أهمها : 
Theano, caffe, cuda-convent