معماريات الشبكات الالتفافية
CNN Architectures
من LeNet وAlexNet إلى VGG وInception وResNet وEfficientNet: الأفكار التي دفعت الأداء.
خط زمني مختصر
| المعمارية | السنة | الفكرة المميزة |
|---|---|---|
| LeNet-5 | 1998 | التفاف + تجميع لتمييز الأرقام |
| AlexNet | 2012 | ReLU، Dropout، تدريب على GPU، فوز ImageNet |
| VGG | 2014 | مرشحات 3×3 متراكمة بعمق 16–19 طبقة |
| GoogLeNet / Inception | 2014 | مرشحات متوازية والتفاف 1×1 |
| ResNet | 2015 | الوصلات المتبقية، شبكات بـ 50–152 طبقة وأكثر |
| MobileNet | 2017 | التفاف منفصل عمقياً للأجهزة المحمولة |
| EfficientNet | 2019 | تحجيم مركب للعمق والعرض والدقة |
الكتلة المتبقية
$$\mathbf{y} = \mathcal{F}(\mathbf{x}, \{W_i\}) + \mathbf{x}$$
import torch.nn as nn
class BasicBlock(nn.Module):
def __init__(self, ch):
super().__init__()
self.f = nn.Sequential(
nn.Conv2d(ch, ch, 3, padding=1, bias=False), nn.BatchNorm2d(ch), nn.ReLU(),
nn.Conv2d(ch, ch, 3, padding=1, bias=False), nn.BatchNorm2d(ch))
self.act = nn.ReLU()
def forward(self, x):
return self.act(self.f(x) + x)إذا كانت الطبقات الإضافية غير مفيدة، يكفي أن تتعلم \(\mathcal{F} \approx 0\) لتصبح الكتلة دالة هوية، وهذا أسهل من تعلم الهوية مباشرة.
اختيار المعمارية عملياً
from torchvision import models
m1 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
m2 = models.efficientnet_b0(weights=models.EfficientNet_B0_Weights.DEFAULT)
m3 = models.mobilenet_v3_small(weights=models.MobileNet_V3_Small_Weights.DEFAULT)- ResNet: خط أساس قوي وموثوق.
- EfficientNet: دقة جيدة لكل معامل.
- MobileNet: للأجهزة محدودة الموارد.
قارن دائماً على بياناتك، فترتيب الأداء على ImageNet لا ينتقل بالضرورة إلى مجالات أخرى.
مصطلحات الدرس
- الالتفاف 1×1 1x1 Convolution
- التفاف بمرشح بحجم بكسل واحد يغير عدد القنوات ويمزجها بتكلفة منخفضة.
- التحجيم المركب Compound Scaling
- زيادة عمق الشبكة وعرضها ودقة مدخلاتها معاً بنسب متوازنة، كما في EfficientNet.
- الوصلة المتبقية Residual Connection
- مسار يضيف مدخل الكتلة إلى مخرجها مباشرة (y = F(x) + x)، فيسهل تدفق التدرج وتدريب الشبكات العميقة جداً.
الملخص
تطورت معماريات CNN عبر أفكار رئيسة: LeNet أثبتت الفكرة على الأرقام، وAlexNet (2012) استخدمت ReLU وDropout وGPU فتفوقت في ImageNet، وVGG بينت قوة المرشحات الصغيرة 3×3 المتراكمة، وInception استخدمت مرشحات متوازية بأحجام مختلفة، وResNet أدخلت الوصلات المتبقية فسمحت بشبكات عميقة جداً، وEfficientNet وازنت بين العمق والعرض والدقة. تتوفر جميعها مدربة مسبقاً في torchvision.
أسئلة مراجعة
-
لماذا يكافئ مرشحان 3×3 متتاليان مرشحاً 5×5؟
لهما المجال الاستقبالي نفسه (5×5) لكن بمعاملات أقل ولاخطية إضافية بينهما.
-
ما المشكلة التي عالجتها ResNet؟
صعوبة تدريب الشبكات العميقة جداً، إذ كان الأداء يتدهور مع زيادة العمق حتى على بيانات التدريب.
المصادر والمراجع
- Krizhevsky, Sutskever & Hinton (2017) ImageNet classification with deep convolutional neural networks — Communications of the ACM
- Simonyan & Zisserman (2014) Very Deep Convolutional Networks (VGG) — arXiv
- Szegedy et al. (2014) Going Deeper with Convolutions — arXiv
- He et al. (2015) Deep Residual Learning for Image Recognition — arXiv
- Tan & Le (2019) EfficientNet — arXiv
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة