Residual Networks (ResNet)
استكشف قوة الشبكات المتبقية (ResNet). تعلّم كيف تحل الوصلات التخطيّة مشكلة تلاشي التدرجات لتمكين التعلّم العميق في الرؤية الحاسوبية.
الشبكات المتبقية، المعروفة على نطاق واسع باسم ResNets، هي نوع محدد من بنية الشبكة العصبية الاصطناعية (ANN) صُمم لتمكين تدريب الشبكات فائقة العمق. وقدّم باحثون في Microsoft هذه الشبكات في عام 2015، وحلّت ResNet عنق زجاجة حرجًا في التعلم العميق يُعرف باسم مشكلة تلاشي التدرج. في الشبكات التقليدية، غالبًا ما أدت إضافة المزيد من الطبقات إلى تشبع الأداء أو تدهوره، لأن الإشارة المطلوبة لتحديث أوزان النموذج كانت تتلاشى أثناء انتشارها عكسيًا عبر الطبقات. قدّمت ResNet «وصلات التخطي» (أو الوصلات المتبقية)، التي تسمح للبيانات بتجاوز طبقة واحدة أو أكثر والتدفق مباشرةً إلى مراحل المعالجة اللاحقة. وأثبت هذا الابتكار إمكانية تدريب الشبكات الأعمق بفعالية، مما أدى إلى إنجازات كبيرة في الرؤية الحاسوبية (CV) وأصبح مفهومًا أساسيًا في البنى الحديثة.
المفهوم الأساسي: التعلم المتبقي#
السمة المميزة لـ ResNet هي «الكتلة المتبقية». في الشبكة العصبية الالتفافية (CNN) القياسية، تحاول كل طبقة تعلم تحويل مباشر من المدخلات إلى المخرجات. ومع ازدياد عمق الشبكات، يصبح تعلم هذا التحويل المباشر أكثر صعوبةً.
تغيّر ResNet هذا النهج من خلال صياغة هدف التعلم بطريقة مختلفة. فبدلًا من افتراض أن كل مجموعة من الطبقات ستتعلم التحويل الأساسي بأكمله، تُجبر الكتلة المتبقية الطبقات على تعلم «المتبقي» — أي الفرق — بين المدخلات والمخرجات المطلوبة. ثم تُضاف المدخلات الأصلية مجددًا إلى المتبقي المتعلَّم من خلال وصلة تخطٍّ. ويعني هذا التغيير البنيوي أنه إذا كان تحويل الهوية (تمرير المدخلات دون تغيير) هو الأمثل، فيمكن للشبكة بسهولة تعلم دفع المتبقيات إلى الصفر. وهذا يجعل نماذج التعلم العميق (DL) أسهل بكثير في التحسين، مما يسمح بتوسيع نطاقها من عشرات الطبقات إلى مئات الطبقات أو حتى آلافها.
أهم تنويعات البنية#
منذ ظهورها، أصبحت عدة تنويعات من ResNet معايير قياسية مرجعية في مجتمع الذكاء الاصطناعي.
- ResNet-50: إصدار مؤلف من 50 طبقة يستخدم تصميم «عنق الزجاجة». ويستخدم هذا التصميم التفافات 1x1 لتقليل الأبعاد ثم استعادتها، مما يجعل الشبكة فعّالة حسابيًا مع الحفاظ على دقة عالية.
- ResNet-101 وResNet-152: تنويعات أعمق تتكون من 101 و152 طبقة على التوالي. وغالبًا ما تُستخدم عندما تسمح الموارد الحسابية بدرجة أعلى من التعقيد لالتقاط خرائط سمات أكثر دقة وتفصيلًا.
- ResNeXt: تطور لـ ResNet يضيف بُعد «التعددية»، إذ يقسم الكتلة المتبقية إلى مسارات متوازية متعددة، مما يحسّن الكفاءة والأداء.
التطبيقات الواقعية#
جعلت متانة بُنى ResNet منها خيارًا مفضلًا لمجموعة واسعة من المهام المرئية.
- تحليل الصور الطبية: في قطاع الرعاية الصحية، يُعد تحديد الحالات الشاذة الدقيقة في عمليات المسح عالية الدقة أمرًا بالغ الأهمية. وتُستخدم النماذج المعتمدة على ResNet كثيرًا لاكتشاف حالات مثل اكتشاف الأورام في التصوير الطبي، حيث يساعد عمق الشبكة على تمييز الأنماط الدقيقة في بيانات MRI أو CT.
- المركبات ذاتية القيادة: تحتاج السيارات ذاتية القيادة إلى استخراج موثوق للسمات من تدفقات الكاميرات لتحديد المشاة والإشارات والعوائق. وغالبًا ما تعمل ResNets بمثابة العمود الفقري لأنظمة اكتشاف الأجسام في تطبيقات الذكاء الاصطناعي في قطاع السيارات، إذ توفر السمات المرئية الغنية اللازمة للملاحة الآمنة.
مقارنة ResNet بالبنى الأخرى#
من المفيد تمييز ResNet عن البنى الشائعة الأخرى لفهم فائدتها المحددة.
- ResNet مقارنةً بـ VGG: شبكات VGG (مجموعة الهندسة البصرية) هي أيضًا شبكات CNN عميقة، لكنها تفتقر إلى الوصلات المتبقية. وبالتالي، يصعب تدريبها بدرجات عمق مماثلة لـ ResNet، كما أنها عمومًا أكثر تكلفة حسابيًا بسبب طبقاتها الكبيرة كاملة الاتصال.
- ResNet مقارنةً بـ Inception: تركّز شبكات Inception على العرض، إذ تستخدم مرشحات متعددة الأحجام ضمن الطبقة نفسها لالتقاط السمات بمقاييس مختلفة. أما ResNet فتركّز على العمق. وتجمع البنى الحديثة مثل Inception-ResNet بين المفهومين.
- ResNet مقارنةً بـ محوّل الرؤية (ViT): في حين تستخدم نماذج ViT آليات الانتباه الذاتي لمعالجة الصور على مستوى شامل، تعتمد ResNets على الالتفافات المحلية. ومع ذلك، تظل ResNets خط أساس قويًا، وغالبًا ما تكون أسرع مع مجموعات البيانات الأصغر أو الاستدلال في الوقت الفعلي.
مثال على التنفيذ#
تسهّل مكتبات التعلم العميق الحديثة مثل PyTorch الوصول إلى نماذج ResNet المدرَّبة مسبقًا. وتُعد هذه النماذج ذات قيمة كبيرة في التعلم بالنقل، حيث يُضبط نموذج مُدرَّب على مجموعة بيانات كبيرة مثل ImageNet بدقة لمهمة محددة.
يوضح مقطع Python التالي كيفية تحميل نموذج ResNet-50 مُدرَّب مسبقًا باستخدام torchvision (وهو جزء من منظومة PyTorch) وتنفيذ تمريرة أمامية بسيطة. وبينما قد يستخدم مستخدمو منصة Ultralytics غالبًا YOLO26 للاكتشاف، فإن فهم مفاهيم العمود الفقري الأساسية مثل ResNet أمر بالغ الأهمية للتخصيص المتقدم.
import torch
import torchvision.models as models
# Load a pre-trained ResNet-50 model
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
resnet50.eval() # Set model to evaluation mode
# Create a dummy input tensor (batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 224, 224)
# Perform a forward pass to get predictions
with torch.no_grad():
output = resnet50(input_tensor)
print(f"Output shape: {output.shape}") # Expect [1, 1000] for ImageNet classesالأهمية في الذكاء الاصطناعي الحديث#
على الرغم من أن البنى الأحدث مثل YOLO26 تستخدم هياكل محسّنة للغاية لتحقيق أقصى سرعة ودقة، فإن مبادئ التعلم المتبقي لا تزال منتشرة على نطاق واسع. وأصبح مفهوم وصلات التخطي مكوّنًا قياسيًا في العديد من الشبكات المتقدمة، بما في ذلك Transformer المستخدمة في معالجة اللغة الطبيعية (NLP) وأحدث نماذج اكتشاف الأجسام. ومن خلال تمكين المعلومات من التدفق بحرية أكبر عبر الشبكة، مهدت ResNet الطريق أمام النماذج العميقة والمعقدة التي تشغّل الذكاء الاصطناعي اليوم.









