Receptive Field
مجال الاستقبال هو رقعة الإدخال التي يمكن أن تؤثر في وحدة واحدة من الشبكة العصبية. تعرّف إلى كيفية اتساعه مع العمق والخطوة والتوسيع، مع أمثلة برمجية.
المجال الاستقبالي لوحدة في شبكة عصبية التفافية (CNN) هو منطقة صورة الإدخال التي يمكن أن تؤثر في قيمة تلك الوحدة. ترى وحدة في طبقة التفاف أولى بحجم 3 × 3 في الشبكة رقعةً من البكسلات بحجم 3 × 3، وترى الوحدات في الطبقات الأعمق مناطق أكبر تدريجيًا، لأن كل طبقة تجمع المخرجات المتجاورة للطبقة السابقة. ويحدد المجال الاستقبالي مقدار السياق الذي يمكن للميزة الاستفادة منه: فلا بد أن ترى الوحدة التي تتعرف على حافلة كاملة الحافلة بأكملها. ويعود المصطلح إلى علم الأعصاب، حيث يشير إلى منطقة المجال البصري التي تنشّط عصبونًا واحدًا.
كيف ينمو المجال الاستقبالي#
تضيف كل طبقة (k − 1) × j بكسلًا إلى المجال الاستقبالي، حيث يمثّل k حجم النواة، ويمثّل j، أي خطوة الانتقال، المسافة ببكسلات الإدخال بين الوحدات المتجاورة في مُدخل الطبقة، ويساوي حاصل ضرب جميع قيم الخطوة السابقة. وينتج عن ذلك ثلاث ملاحظات:
- تكديس النوى الصغيرة: ترى ثلاث طبقات بحجم 3 × 3 وخطوة انتقال 1 رقعة بحجم 7 × 7، أي ما تراه طبقة واحدة بحجم 7 × 7، لكن بأوزان 27C² بدلًا من 49C² لقنوات C؛ وهذه هي الحجة التي استندت إليها شبكات VGG في بناء مجموعات عميقة من عمليات الالتفاف بحجم 3 × 3.
- الخطوة والتجميع: تضاعف كل طبقة ذات خطوة انتقال 2 أو خطوة تجميع قيمة الانتقال، لذا تنمو المجالات الاستقبالية في الطبقات اللاحقة بضعف السرعة. وهكذا تصل شبكات CNN إلى مجالات استقبالية بعرض مئات البكسلات، مع تقليص خرائط السمات.
- التوسيع: تباعد عملية الالتفاف الموسّعة (atrous) بحجم 3 × 3 نقاط أخذ العينات بمقدار d بكسلًا عند استخدام معامل توسيع d، وتغطي 2d + 1 بكسلًا. وهذا يوسّع المجال الاستقبالي دون خفض الدقة، ما يناسب المهام الكثيفة على مستوى البكسل مثل التجزئة الدلالية.
يؤكد القياس المباشر للمجال الاستقبالي هذه القواعد: نفّذ الانتشار العكسي انطلاقًا من قيمة خرج واحدة، ولاحظ وحدات بكسل الإدخال التي تتلقى تدرجًا غير صفري.
import torch
from torch import nn
# Three stacked 3x3 convolutions in three configurations: (stride, dilation)
for name, stride, dilation in (("plain", 1, 1), ("strided", 2, 1), ("dilated", 1, 2)):
convs = [nn.Conv2d(1, 1, 3, stride, padding=dilation, dilation=dilation, bias=False) for _ in range(3)]
for conv in convs:
nn.init.ones_(conv.weight) # positive weights, so no input pixel's gradient cancels out
layers = nn.Sequential(*convs)
# Backpropagate from the central output value; input pixels with nonzero gradient form its receptive field
image = torch.zeros(1, 1, 64, 64, requires_grad=True)
output = layers(image)
output[0, 0, output.shape[2] // 2, output.shape[3] // 2].backward()
rows = image.grad[0, 0].sum(dim=1).nonzero()
size = rows.max().item() - rows.min().item() + 1
print(f"{name}: {size}x{size} pixels")يطبع 7 × 7 للمجموعة العادية، و15 × 15 للمجموعة ذات الخطوات، حيث تنمو قيمة الانتقال من 1 إلى 2 إلى 4، و13 × 13 للمجموعة الموسّعة، حيث تضيف كل طبقة 4 بكسلات.
المجال الاستقبالي النظري والفعلي#
تعطي الصيغة المجال الاستقبالي النظري، أي كل بكسل يمكن أن يؤثر في وحدة ما. أما المجال الاستقبالي الفعلي فيقيس مقدار تأثير كل بكسل فعلًا: إذ يكون التأثير ذا شكل غاوسي تقريبًا، يتركز عند الوسط ولا يشغل سوى جزء من المساحة النظرية. وتوسّع النوى الأكبر هذا المجال؛ فقد استخدمت RepLKNet نوى فصلية يصل حجمها إلى 31 × 31، وأفادت بمجالات استقبالية فعلية أكبر بكثير من تلك التي تحققها شبكات CNN ذات النوى الصغيرة. وفي محوّلات الرؤية، يتيح الانتباه الذاتي لكل رقعة في الصورة الاستفادة من جميع الرقع الأخرى منذ الطبقة الأولى، لذا يغطي المجال الاستقبالي النظري الصورة كلها عند كل عمق.
المجال الاستقبالي والمصطلحات ذات الصلة#
- حجم النواة: النافذة التي تقرؤها عملية التفاف واحدة من مدخلاتها، مثل 3 × 3. أما المجال الاستقبالي فهو المساحة المتراكمة في الصورة الأصلية، وتعطي ثلاث نوى مكدسة بحجم 3 × 3 مجالًا بحجم 7 × 7.
- خريطة السمات: شبكة المخرجات لطبقة ما. ويصف المجال الاستقبالي منطقة الإدخال التي تقع خلف موضع واحد على تلك الشبكة.
- نافذة السياق: عدد الرموز التي يقرأها نموذج لغوي دفعة واحدة، وهي النظير التسلسلي للمجال الاستقبالي في شبكة الصور.
المجالات الاستقبالية في كشف الأجسام#
تتنبأ كواشف الأجسام بالأجسام الصغيرة انطلاقًا من خرائط سمات دقيقة، وبالأجسام الكبيرة انطلاقًا من خرائط خشنة وعميقة ذات مجالات استقبالية كبيرة، كما تمزج شبكة هرمية للسمات (FPN) السياق العميق مجددًا في الخرائط الدقيقة. إذا كان المجال الاستقبالي أصغر من الجسم، فلن يرى سوى جزء منه؛ وما زالت الأجسام الصغيرة جدًا تتطلب مستوى دقيقًا، لأن جسمًا عرضه 20 بكسلًا يشغل أقل من خلية شبكية واحدة على خريطة ذات خطوة 32. يتنبأ YOLO26 من خرائط ذات خطوات 8 و16 و32، ويطبّق في نهاية العمود الفقري كتلة SPPF، التي تنفّذ تجميعًا أعظميًا لخريطة الخطوة 32 باستخدام نوافذ تعادل 5 × 5 و9 × 9 و13 × 13 خلية، تتبعها كتلة انتباه ذاتي يمتد مجالها على خريطة الخطوة 32 بأكملها.










