Residual Networks (ResNet)
استكشف قوة الشبكات المتبقية (ResNet). تعلم كيف تحل وصلات التخطي (skip connections) مشكلة تلاشي التدرج لتمكين التعلم العميق في رؤية الحاسوب.
تعد الشبكات المتبقية، المعروفة باسم ResNets، نوعاً محدداً من بنية الشبكة العصبية الاصطناعية (ANN) المصممة لتمكين تدريب شبكات عميقة للغاية. قدم باحثون من شركة Microsoft هذه الشبكات في عام 2015، حيث عالجت ResNet عنق زجاجة حرجاً في التعلم العميق يُعرف باسم مشكلة تلاشي التدرج. في الشبكات التقليدية، كان تكديس المزيد من الطبقات يؤدي غالباً إلى تشبع الأداء أو تدهوره لأن الإشارة المطلوبة لتحديث أوزان النموذج تتلاشى أثناء انتقالها للخلف عبر الطبقات. أدخلت ResNet "وصلات التخطي" (أو الوصلات المتبقية)، والتي تسمح للبيانات بتجاوز طبقة واحدة أو أكثر والتدفق مباشرة إلى مراحل المعالجة اللاحقة. أثبت هذا الابتكار أنه يمكن تدريب الشبكات الأعمق بفعالية، مما أدى إلى اختراقات كبيرة في رؤية الحاسوب (CV) وأصبح مفهوماً أساسياً للبنى الحديثة.
Link to this sectionالمفهوم الجوهري: التعلم المتبقي#
الميزة المحددة لشبكة ResNet هي "الكتلة المتبقية". في الشبكة العصبية التلافيفية (CNN) القياسية، تحاول كل طبقة تعلم تعيين مباشر من المدخلات إلى المخرجات. ومع ازدياد عمق الشبكات، يصبح تعلم هذا التعيين المباشر صعباً بشكل متزايد.
تغير ResNet هذا النهج بصياغة هدف التعلم بشكل مختلف. فبدلاً من توقع أن تتعلم كل كومة من الطبقات التعيين الأساسي بالكامل، تجبر الكتلة المتبقية الطبقات على تعلم "المتبقي"—أو الفرق—بين المدخلات والمخرجات المطلوبة. ثم تتم إضافة المدخلات الأصلية مرة أخرى إلى المتبقي المتعلم من خلال وصلة تخطي. يعني هذا التغيير الهيكلي أنه إذا كان تعيين الهوية (تمرير المدخلات دون تغيير) هو الأمثل، يمكن للشبكة بسهولة تعلم دفع المتبقيات إلى الصفر. وهذا يجعل نماذج التعلم العميق (DL) أسهل بكثير في التحسين، مما يسمح لها بالتوسع من عشرات إلى مئات أو حتى آلاف الطبقات.
Link to this sectionمتغيرات البنية الرئيسية#
منذ بدايتها، أصبحت العديد من تنويعات ResNet معايير قياسية في مجتمع الذكاء الاصطناعي.
- ResNet-50: إصدار مكون من 50 طبقة يستخدم تصميماً "عنقودياً" (bottleneck). يستخدم هذا التصميم تلافيف 1x1 لتقليل الأبعاد ثم استعادتها، مما يجعل الشبكة فعالة حاسوبياً مع الحفاظ على دقة عالية.
- ResNet-101 و ResNet-152: متغيرات أعمق تحتوي على 101 و 152 طبقة على التوالي. تُستخدم غالباً عندما تسمح الموارد الحسابية بمزيد من التعقيد لالتقاط خرائط ميزات أكثر دقة.
- ResNeXt: تطور لـ ResNet يقدم بُعد "الأصلية" (cardinality)، حيث يقسم الكتلة المتبقية إلى مسارات متوازية متعددة، مما يحسن الكفاءة والأداء.
Link to this sectionتطبيقات العالم الحقيقي#
جعلت متانة بنى ResNet منها خياراً مفضلاً لمجموعة واسعة من المهام البصرية.
- تحليل الصور الطبية: في الرعاية الصحية، يعد تحديد الشذوذات الطفيفة في عمليات المسح عالية الدقة أمراً بالغ الأهمية. تُستخدم النماذج القائمة على ResNet بشكل متكرر للكشف عن حالات مثل الكشف عن الأورام في التصوير الطبي، حيث يساعد عمق الشبكة في تمييز الأنماط الدقيقة في بيانات التصوير بالرنين المغناطيسي أو التصوير المقطعي المحوسب.
- المركبات ذاتية القيادة: تتطلب السيارات ذاتية القيادة استخراجاً موثوقاً للميزات من تدفقات الكاميرا لتحديد المشاة والإشارات والعقبات. غالباً ما تعمل ResNets كـ عمود فقري لأنظمة كشف الكائنات في تطبيقات الذكاء الاصطناعي في السيارات، مما يوفر الميزات البصرية الغنية اللازمة للملاحة الآمنة.
Link to this sectionResNet مقابل البنى الأخرى#
من المفيد تمييز ResNet عن البنى الشائعة الأخرى لفهم فائدتها المحددة.
- ResNet مقابل VGG: شبكات VGG (مجموعة الهندسة البصرية) هي أيضاً شبكات CNN عميقة ولكنها تفتقر إلى الوصلات المتبقية. ونتيجة لذلك، يصعب تدريبها بشكل أكبر في أعماق مماثلة لـ ResNet، وعادة ما تكون أكثر تكلفة من الناحية الحسابية بسبب طبقاتها المتصلة بالكامل الكبيرة.
- ResNet مقابل Inception: تركز شبكات Inception على العرض، باستخدام مرشحات بأحجام متعددة داخل نفس الطبقة لالتقاط الميزات بمقاييس مختلفة. تركز ResNet على العمق. تجمع البنى الحديثة مثل Inception-ResNet بين كلا المفهومين.
- ResNet مقابل محول الرؤية (ViT): بينما تستخدم ViTs آليات الانتباه الذاتي لمعالجة الصور عالمياً، تعتمد ResNets على التلافيف المحلية. ومع ذلك، تظل ResNets أساساً قوياً وغالباً ما تكون أسرع لمجموعات البيانات الأصغر أو الاستدلال في الوقت الفعلي.
Link to this sectionمثال على التنفيذ#
تسهل مكتبات التعلم العميق الحديثة مثل 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 classesLink to this sectionالأهمية في الذكاء الاصطناعي الحديث#
على الرغم من أن البنى الأحدث مثل YOLO26 توظف هياكل محسنة للغاية لتحقيق أقصى سرعة ودقة، تظل مبادئ التعلم المتبقي منتشرة في كل مكان. أصبح مفهوم وصلات التخطي الآن مكوناً قياسياً في العديد من الشبكات المتقدمة، بما في ذلك المحولات المستخدمة في معالجة اللغات الطبيعية (NLP) وأحدث نماذج كشف الكائنات. من خلال تمكين المعلومات من التدفق بحرية أكبر عبر الشبكة، مهدت ResNet الطريق للنماذج العميقة والمعقدة التي تشغل الذكاء الاصطناعي اليوم.






