LeNet-5، AlexNet، GoogLeNet، VGGNet و آغاز ResNet
LeNet-5، AlexNet، GoogLeNet، VGGNet و آغاز ResNet
معماریهای کلاسیک و برندهٔ ImageNet
بررسی Architectureهای مشهور نشان میدهد CNNها چگونه از شبکههای نسبتاً کوچک به Modelهای بسیار عمیق و کارآمد رسیدند. بسیاری از ایدههای امروزی از LeNet-5، AlexNet، GoogLeNet، VGGNet و ResNet آمدهاند.
LeNet-5
LeNet-5 در سال ۱۹۹۸ توسط Yann LeCun و همکاران معرفی شد و برای تشخیص رقمهای دستنویس کاربرد گسترده پیدا کرد. Structure کلی شامل Convolution، Average Pooling و Fully Connected Layer است. نسخهٔ اصلی از tanh/Sigmoid و Output مبتنی بر RBF استفاده میکرد، در حالی که CNNهای امروزی معمولاً ReLU/Swish، Softmax و Max Pooling یا Strided Convolution دارند.
جدول 14-1. خلاصهٔ LeNet-5| Layer | نوع | Feature Map / Size | Kernel / Stride |
| Input | Image | 1 × 32×32 | - |
| C1 | Convolution | 6 × 28×28 | 5×5 / 1 |
| S2 | Average Pool | 6 × 14×14 | 2×2 / 2 |
| C3 | Convolution | 16 × 10×10 | 5×5 / 1 |
| S4 | Average Pool | 16 × 5×5 | 2×2 / 2 |
| C5/F6/Out | Dense-like | 120 → 84 → 10 | - |
AlexNet
AlexNet برندهٔ ILSVRC 2012 شد و فاصلهٔ زیادی با رقبا ایجاد کرد. Architecture آن عمیقتر و بزرگتر از LeNet بود و چند ایدهٔ مهم را محبوب کرد: ReLU، Training روی GPU، Dropout در Fully Connected Layerها و Data Augmentation برای کاهش Overfitting.
جدول 14-2. ساختار مفهومی AlexNet| بخش | مشخصات اصلی |
| Convolutionهای ابتدایی | Kernel بزرگ در Layer اول، سپس Kernelهای کوچکتر و Feature Mapهای بیشتر |
| Pooling | Max Pooling Strided میان Blockها |
| Dense | دو Hidden Dense بزرگ با Dropout |
| Output | Softmax برای 1000 Class ImageNet |
Data Augmentation از Training Imageها نمونههای جدید میسازد: Crop تصادفی، Flip افقی، تغییر نور/رنگ و Transformationهای کوچک. این کار Dataset مؤثر را بزرگتر و Model را نسبت به Variationهای طبیعی مقاومتر میکند.
شکل 14-13. ساخت نمونههای Training جدید با Data Augmentation
AlexNet همچنین از Local Response Normalization یا LRN استفاده کرد که Feature Mapهای قوی را نسبت به Mapهای مجاور برجسته میکرد. این Technique در Architectureهای مدرن کمتر استفاده میشود و Batch Normalization جایگزین رایجتری است.
GoogLeNet و Inception
GoogLeNet برندهٔ ILSVRC 2014 بود و با Parameterهای بسیار کمتر از AlexNet عملکرد بهتری داشت. عنصر کلیدی آن Inception Module است: Input همزمان از چند Branch عبور میکند، مثلاً Convolutionهای 1×1، 3×3، 5×5 و Max Pooling؛ Output Branchها در Depth Concatenate میشوند.
شکل 14-14. Inception Module
Convolutionهای 1×1 دو نقش مهم دارند: Featureها را در Channel Dimension ترکیب میکنند و پیش از Convolutionهای گران 3×3 یا 5×5، Depth را کاهش میدهند تا Compute کم شود. Inception Module اجازه میدهد Network در یک Scale به چند اندازهٔ Receptive Field نگاه کند.
شکل 14-15. معماری GoogLeNet
GoogLeNet چند Inception Module را Stack میکند و در پایان از Global Average Pooling استفاده میکند. نسخهٔ اصلی Auxiliary Classifierهایی نیز در Layerهای میانی داشت تا Gradient به بخشهای پایین شبکه برسد و Regularization ایجاد شود. نسخههای بعدی Inception این ساختار را بهبود دادند.
VGGNet
VGGNet در ILSVRC 2014 بسیار موفق بود و ایدهٔ سادهای را دنبال کرد: بهجای Kernelهای بزرگ، تعداد زیادی Convolution 3×3 پشت سر هم. این کار Receptive Field بزرگ را با Nonlinearity بیشتر و ساختار منظمتر میسازد. ضعف اصلی VGG تعداد بسیار زیاد Parameterها، مخصوصاً در Dense Layerهای انتهایی، و Memory/Compute بالا است.
ورود به ResNet
با افزایش Depth، صرفاً Stack کردن Layerهای بیشتر همیشه Training را بهتر نمیکند. حتی اگر Overfitting مسئله نباشد، شبکهٔ عمیقتر ممکن است Optimization سختتری داشته باشد و Accuracy Training بدتر شود. ResNet برای حل این مشکل از Residual Learning و Skip Connection استفاده میکند. جزئیات آن در مقالهٔ بعدی ادامه مییابد.