經過昨天統整後,今天在思考要使用哪幾個Pytorch 預訓練模型(pretrained model)做為該影像分類競賽的訓練模型。目前已經有介紹Alexnet,今天將先統整網路上各模型的資訊和Pytorch官方有提供的預訓練模型,決定後續要選哪兩個模型來介紹並進行後續實作(transfer learning from pretrained models)。
1.比較著名的影像辨識模型
2.ResNet解決的問題
3.ResNet模型介紹
為了選擇後續要實作的影像辨識模型,將同時比較各個模型預測表現和Pytorch有提供的預訓練模型清單,將於以下說明:
比較項目 | ResNet-34 | Inception_V3 | MobileNet_V3_LARGE | EfficientNet_V2_L |
---|---|---|---|---|
Paper Link | Deep Residual Learning for Image Recognition | Rethinking the Inception Architecture for Computer Vision | Searching for MobileNetV3 | EfficientNetV2: Smaller Models and Faster Training |
Year | 2015 | 2015 | 2019 | 2021 |
acc@1 (on ImageNet-1K) | 73.3% | 77.3% | 74% | 85.8% |
acc@5 (on ImageNet-1K) | 91.4% | 93.5% | 91.34% | 97.8% |
Num of params | 21797672 (2179萬) | 27161264 (2716萬) | 5483032 (548萬) | 118515272 (1.1億) |
min size(heightxwidth) | 1x1 | 75x75 | 1x1 | 33x33 |
光找到上面這個表格&整理數據就快一小時了(暈),別問為什麼沒放VGG、SqueezeNet等模型,實在時間不夠對這幾個又沒特別feeling(好任性:D,加上若太多欄位會很難比較XD
經過上方表格數據統整後,決定要學習和實作的預訓練模型如下:
1.早期具有準確率突破性進展的模型: ResNet-34
2.準確率最高的模型: EfficientNet_V2_L
(如果有時間,想研究MobileNet_V3_LARGE,因為模型參數數量明顯少很多
ResNet為2015年多項競賽的冠軍(ILSVRC、ImageNet detection, ImageNet localization,
COCO detection, and COCO segmentation in ILSVRC & COCO),該模型以VGG模型為基礎做擴展,透過新的網路設計(殘差學習,Residual Learning)能成功實踐過去研究者想要增加神經網路層深度以提升預測表現的目標。由ResNet提出的residual learning設計使深層網路更容易訓練,進而開啟超深層網路模型的時代。
在該模型發表前,若直接加深神經網路層數,往往會造成訓練上的困難: 退化(degradation)
隨著層數增加,預測誤差反而升高:深層神經網路模型「退化問題」,
針對這個問題,ResNet發明者有在論文中有進行實驗,在採用Batch Normalization、drop out等常見有效防止過擬合、梯度消失或爆炸的技巧後,仍存誤差升高的問題,對此作者定義為「退化」。
由上圖可知,在ImageNet dataset預測表現上,ResNet相較過去VGG(19層)的多了8倍的深度(152層),且能有效收斂深層模型運算,提升預測準確率。
圖片來源[輸入:F(x)] 在ResNet轉變成 [輸入 + 殘差:F(x) + x],
若某一層的殘差為0,代表該層並沒有學習到新特徵,僅是複製前一層輸出資料作為該層的輸出資料,此情況則稱為「恆等映射」(identity mapping),這樣情況下就能讓深層模型類似淺層模型,避免發生退化現象。
圖片來源
根據上圖共有兩種殘差單元分別採用在較淺層模型(ResNet-34)和較深層的模型(ResNet-50/101/152),分別稱為building block和bottleneck building block(bottleneck)。在深層模型中容易遇到高維度輸入輸出層串接,若直接用building block,將會導致運算量過大。透過bottleneck設計,將一個3x3卷積核拆分成一組(1x1,3x3,1x1)卷積核,能有效減少模型參數使用量。
完成ResNet模型架構學習,後續將使用該模型的Pytorch預訓練模型在競賽資料上操作。
學習EfficientNet_V2_L模型架構。
參考:
心得小語:
凌晨3:00起床真滴累,主要是每天都習慣凌晨1:00睡,昨天拖到22:00才上床休息,還是翻滾好久睡不著XDD 但今天的表演很讚,非常難得得經驗呢~~ 下午補完眠後就開始跟論文奮鬥,終於有點頭緒了,明天繼續學習囉!
今日工時: 50mins*4
成功是每個微小努力的加總,並每天不斷地重覆
Success is the sum of small efforts, repeated day-in and day-out.