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

مكتمل

في حين يمكنك استخدام نماذج التعلم العميق لأي نوع من التعلم الآلي، فهي مفيدة بشكل خاص للتعامل مع البيانات التي تتكون من صفائف كبيرة من القيم الرقمية - مثل الصور. نماذج التعلم الآلي التي تعمل مع الصور هي الأساس لمنطقة الذكاء الاصطناعي تسمى رؤية الكمبيوتر، وقد كانت تقنيات التعلم العميق مسؤولة عن قيادة التقدمات المذهلة في هذا المجال على مدى السنوات الأخيرة.

في صميم نجاح التعلم العميق في هذا المجال هو نوع من نموذج يسمى الشبكة العصبية الالتفافية، أو CNN. تعمل الشبكة العصبية الالتفافية عادة عن طريق استخراج الميزات من الصور، ومن ثم تغذية تلك الميزات في شبكة عصبية متصلة تمامًا لإنشاء توقع. طبقات استخراج الميزات في الشبكة لها تأثير على تقليل عدد الميزات من مجموعة كبيرة محتملة من قيم البكسل الفردية إلى مجموعة ميزات أصغر تدعم توقع التسمية.

الطبقات في الشبكة العصبية الالتفافية

تتكون الشبكات العصبية الالتفافية من طبقات متعددة، كل منها يؤدي مهمة محددة في استخراج الميزات أو توقع التسميات.

طبقات الالتفاف

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

على سبيل المثال، قد يتم تحديد عامل تصفية 3x3 كما يلي:

 1  -1   1
-1   0  -1
 1  -1   1

الصورة هي أيضًا مجرد مصفوفة من قيم البكسل. لتطبيق عامل التصفية، يمكنك "تركيبها" على صورة وحساب مجموع مرجح من قيم بكسل الصورة المقابلة ضمن نواة التصفية. ثم يتم تعيين النتيجة إلى الخلية المركزية لتصحيح 3x3 المكافئ في مصفوفة جديدة من القيم التي هي بنفس حجم الصورة. على سبيل المثال، افترض أن صورة 6 × 6 تحتوي على قيم البكسل التالية:

255 255 255 255 255 255 
255 255 100 255 255 255
255 100 100 100 255 255
100 100 100 100 100 255
255 255 255 255 255 255
255 255 255 255 255 255

تطبيق عامل التصفية على أعلى اليسار تصحيح 3x3 من الصورة سوف يعمل على هذا المدى:

255 255 255      1  -1   1    (255 x 1)+(255 x -1)+(255 x 1) +
255 255 100  x  -1   0  -1  = (255 x -1)+(255 x 0)+(100 x -1) +   = 155
255 100 100      1  -1   1    (255 x1 )+(100 x -1)+(100 x 1)

يتم تعيين النتيجة إلى قيمة البكسل المقابلة في المصفوفة الجديدة كما يلي:

 ?   ?   ?   ?   ?   ?  
 ?  155  ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?

الآن يتم نقل عامل التصفية بالجانب (ملتفة)، وعادة باستخدام حجم خطوة من 1 (حتى تنتقل بجانب بكسل واحد إلى اليمين)، ويتم حساب قيمة البكسل التالي

255 255 255      1  -1   1    (255 x 1)+(255 x -1)+(255 x 1) +
255 100 255  x  -1   0  -1  = (255 x -1)+(100 x 0)+(255 x -1) +   = -155
100 100 100      1  -1   1    (100 x1 )+(100 x -1)+(100 x 1)

يمكننا الآن تعبئة القيمة التالية للمصفوفة الجديدة.

 ?   ?   ?   ?   ?   ?  
 ?  155 -155 ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?

تتكرر العملية حتى نقوم بتطبيق عامل التصفية عبر جميع تصحيحات 3x3 من الصورة لإنتاج مصفوفة جديدة من القيم مثل هذه:

?   ?   ?    ?    ?   ?
?  155 -155 155 -155  ?
? -155 310 -155  155  ?
?  310 155  310   0   ?
? -155 -155 -155  0   ?
?   ?   ?    ?    ?   ?

بسبب حجم نواة التصفية، لا يمكننا حساب قيم عدد البكسل عند الحافة؛ لذلك نحن عادة نطبق فقط قيمة ترك مساحة (غالبًا 0):

0   0   0    0    0   0
0  155 -155 155 -155  0
0 -155 310 -155  155  0
0  310 155  310   0   0
0 -155 -155 -155  0   0
0   0   0    0    0   0

يتم تمرير إخراج الالتفاف عادةً إلى دالة التنشيط، والتي غالبًا تكون دالة وحدة التصحيح الخطي (ReLU) تضمن تعيين القيم السالبة إلى 0:

0   0   0    0    0   0
0  155  0   155   0   0
0   0  310   0   155  0
0  310 155  310   0   0
0   0   0    0    0   0
0   0   0    0    0   0

المصفوفة الناتجة هي مخطط ميزات لقيم الميزات التي يمكن استخدامها لتدريب نموذج التعلم الآلي.

Note: يمكن أن تكون القيم في مخطط الميزات أكبر من القيمة القصوى لـ (255) بيكسل، لذا إذا أردت تصور مخطط ميزات كصورة، ستحتاج إلى تقليل التكرار قيم الميزات بين 0 و255.

تظهر عملية الالتفاف في الرسوم المتحركة أدناه.

A filter kernel is convolved across an image of a triangle, extracting features that emphasize the three edges and corners

  1. يتم تمرير صورة إلى طبقة التفاف. في هذه الحالة، الصورة هي شكل هندسي بسيط.
  2. تتكون الصورة من مجموعة من وحدات البكسل التي تتراوح قيمها بين 0 و255 (بالنسبة إلى الصور الملونة، عادة تكون هذا صفيفًا ثلاثي الأبعاد مع قيم للقنوات الحمراء والخضراء والزرقاء).
  3. تتم تهيئة نواة التصفية بشكل عام باستخدام أوزان عشوائية (في هذا المثال، لقد اخترنا قيمًا لتسليط الضوء على تأثير قد يكون على عامل تصفية قيم البكسل؛ ولكن في شبكة عصبية التفافية حقيقية، وعادةً يتم إنشاء الأوزان الأولية من توزيع طبيعي عشوائي). سيتم استخدام عامل التصفية هذا لاستخراج مخطط الميزات من بيانات الصورة.
  4. يتم إجراء التفاف التصفية عبر الصورة، مع حساب قيم الميزات بتطبيق مجموع الأوزان مضروبًا في قيم البكسل المقابلة لها في كل موضع. يتم تطبيق وظيفة تنشيط وحدة التصحيح الخطي (ReLU) لضمان تعيين القيم السالبة إلى 0.
  5. بعد الالتفاف، سيحتوي مخطط الميزات على قيم الميزات المستخرجة، والتي غالبًا تؤكد على السمات البصرية الرئيسية للصورة. في هذه الحالة، يوضح مخطط الميزات حواف وزوايا المثلث في الصورة.

عادة، طبقة الالتفاف تطبق نوى تصفية متعددة. ينتج كل عامل تصفية مخطط ميزات مختلفة، ويتم تمرير كل مخططات الميزات إلى الطبقة التالية من الشبكة.

تجميع الطبقات

بعد استخراج قيم المعالم من الصور، يتم استخدام طبقات التجميع (أو خفض الدقة) لتقليل عدد قيم الميزات مع الاحتفاظ بميزات التمييز الرئيسية التي تم استخراجها.

أحد أنواع التجميع الأكثر شيوعًا هو أقصى تجميع حيث يتم تطبيق عامل تصفية على الصورة، ويتم الاحتفاظ فقط بقيمة البكسل القصوى ضمن منطقة التصفية. على سبيل المثال، تطبيق نواة تجميع 2x2 على التصحيح التالي لصورة من شأنه أن ينتج النتيجة 155.

0   0
0  155

لاحظ أن تأثير عامل تصفية تجميع 2x2 هو تقليل عدد القيم من 4 إلى 1.

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

A filter kernel is convolved across an image of a triangle, extracting features that emphasize the three edges and corners, max pooling for an image map.

  1. يحتوي مخطط الميزات المستخرج بواسطة عامل تصفية في طبقة التفاف على مجموعة من قيم الميزات.
  2. يتم استخدام نواة تجميع لتقليل عدد قيم الميزات. في هذه الحالة، حجم النواة هو 2x2، لذلك سوف تنتج صفيف بربع عدد قيم الميزات.
  3. تم التفاف نواة التجميع عبر مخطط الميزات، مع الاحتفاظ فقط بأعلى قيمة بكسل في كل موضع.

إسقاط الطبقات

واحدة من أصعب التحديات في الشبكة العصبية الالتفافية هو تجنب فرط التخصيص، حيث النموذج الناتج يؤدي بشكل جيد مع بيانات التدريب ولكن لا يعمم بشكل جيد على البيانات الجديدة التي لم يتم تدريبها. أحد التقنيات التي يمكنك استخدامها للتخفيف من فرط التخصيص هو تضمين الطبقات التي تقوم فيها بإلغاء عملية التدريب (أو "إسقاطها") لمخطط الميزات بشكل عشوائي. قد يبدو هذا غير بديهي، ولكنه طريقة فعالة لضمان عدم معرفة النموذج أن يكون مفرطًا في الاعتماد على صور التدريب.

وتشمل التقنيات الأخرى التي يمكنك استخدامها للتخفيف من فرط التخصيص هي التأرجح أو النسخ المتطابق أو الانحراف العشوائي لصور التدريب لإنشاء البيانات التي تتباين بين فترات التدريب.

تبسيط الطبقات

بعد استخدام طبقات الالتفاف والتجميع لاستخراج الميزات البارزة في الصور، مخططات الميزات الناتجة هي صفائف متعددة الأبعاد من قيم البكسل. يتم استخدام طبقة التبسيط لتبسيط مخططات الميزات في خط متجه من القيم التي يمكن استخدامها كمدخلات لطبقة متصلة بالكامل.

طبقات متصلة بالكامل

عادةً تنتهي الشبكة العصبية الالتفافية بشبكة متصلة بالكامل يتم فيها تمرير قيم الميزات إلى طبقة إدخال، من خلال طبقة أو أكثر مخفية، وتنشئ قيم متوقعة في طبقة إخراج.

قد تبدو بنية الشبكة العصبية الالتفافية الأساسية مشابهة لهذا:

A CNN consisting of a convolutional layer, a pooling layer, a dropping layer, a flattening layer, and a fully connected layer

  1. تتم تغذية الصور في طبقة التفافية. في هذه الحالة، هناك اثنين من عوامل التصفية، لذلك كل صورة تنتج اثنين من مخططات الميزات.
  2. يتم تمرير مخططات الميزات إلى طبقة تجميع، حيث تقوم نواة تجميع 2x2 بتقليل حجم مخططات الميزات.
  3. تسقط طبقة الإسقاط عشوائيًا بعض مخططات الميزات للمساعدة في منع فرط التخصيص.
  4. تأخذ طبقة التبسيط صفائف مخططات الميزات المتبقية وتبسطها في خط متجه.
  5. تتم تغذية عناصر خطوط المتجه في شبكة متصلة بالكامل، ما يولد التوقعات. في هذه الحالة، الشبكة هي نموذج تصنيف يتوقع الاحتمالات لفئات الصور المحتملة الثلاث (المثلث، المربع، والدائرة).

تدريب نموذج الشبكة العصبية الالتفافية

كما هو الحال مع أي شبكة عصبية عميقة، يتم تدريب الشبكة العصبية الالتفافية عن طريق تمرير دفعات من بيانات التدريب من خلال ذلك عبر فترات متعددة، وتعديل الأوزان وقيم الانحراف على أساس الفاقد المحسوب لكل فترة. في حالة الشبكة العصبية الالتفافية، تشمل عملية النشر الخلفي للأوزان المعدلة أوزان نواة التصفية المستخدمة في الطبقات الالتفافية وكذلك الأوزان المستخدمة في الطبقات المتصلة بالكامل.