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






