iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0
AI & Data

花甲老頭學 AI系列 第 10

[鐵人12:Day 10] EfficientNet 2:簡介

  • 分享至 

  • xImage
  •  

為了解決更複雜的問題,或是提高 AI 系統的精確度,放大 (Scaling Up) ConvNets (作者習慣用 ConvNet 稱呼 CNN,以下依作者的習慣)是設計模型時常用的手法,一般使用的方法是調整深度、寬度、或者輸入解析度來達到目的。 雖然這三個維度是可以同時調整的,過去的研究中,大家通常只調整其中一個維度,這那麼做的原因可能是因為模型調整的過程中,三個維度變化的複雜程度較高,而且沒有一個可供參考的原則,只好使用試誤法 (try-and-error) 來進行,非常耗費時間及資源,所以只好將就於一兩個維度的調整。這樣做出來的結果想必不是效率最好的模型結構。

針對這個維度調整的問題,這篇論文有以下的發現:

Our empirical study shows that it is critical to balance all dimensions of network width/depth/resolution, and surprisingly such balance can be achieved by simply scaling each of them with constant ratio.

也就是說,依照一個固定的比例來調整這三個維度,可以獲得一個有效率的模型。作者稱這種調整方法為「複合式模型縮放 (compound model scaling)」,它的公式是:

深度:https://chart.googleapis.com/chart?cht=tx&chl=(1.2)%5EN
寬度:https://chart.googleapis.com/chart?cht=tx&chl=(1.1)%5EN
解析度:https://chart.googleapis.com/chart?cht=tx&chl=(1.15)%5EN
模型所需計算資源:https://chart.googleapis.com/chart?cht=tx&chl=2%5EN

N ∈ {0, 1, 2, 3, …}

N是自然數的集合,N = 0 時代表 Baseline Model 的比例:

深度:1
寬度:1
解析度:1
模型所需計算資源:1

N = 1 時:

深度:https://chart.googleapis.com/chart?cht=tx&chl=(1.2)%5E1%20%3D%201.2
寬度:https://chart.googleapis.com/chart?cht=tx&chl=(1.1)%5E1%20%3D%201.1
解析度:https://chart.googleapis.com/chart?cht=tx&chl=(1.15)%5E1%20%3D%201.15
模型所需計算資源:https://chart.googleapis.com/chart?cht=tx&chl=2%5E1%20%3D%202

表示我們應將 Baseline Model 的深度,擴充為原來的 1.2 倍,寬度擴充為 1.1 倍,而輸入解析度則擴充為 1.15 倍。此時新的模型所需的計算資源大約是原來的 2 倍(所謂計算資源,稍後論文有詳細的定義)。

找到了「複合式模型縮放」這個公式後,論文作者們更進一步利用這個公式設計出一系列的 ConvNets,這一系列的模型,即是 EfficientNets 。

在設計 EfficientNets 之初,必須找到一個 Baseline Model ,這個模型非常重要,因為它必須是有效率的模型,否則由一個沒有效率的模型擴充出來的新模型,就算用再好的擴充方法,出來的結果也是不理想的。

作者使用「自動化模型結構搜尋法 (Neural Architecture Search; 註一)」,產生了一個 Baseline Model ,稱之為 EfficientNet-B0 (B 代表 Baseline, 0 代表 N = 0),接著使用「複合式模型縮放」,以 N = 1 到 7 分別產生了 7 個擴充模型,命名為 EfficientNet-B1 到 EfficientNet-B7 ,之後將它們和一些著名的 CNN 模型做了效能比較,如下圖:

https://ithelp.ithome.com.tw/upload/images/20200924/20129616sBD8ceLmUK.png

和當時 ImageNet Top 1 排行前茅的 GPipe 相比,EfficientNet-B7 可以達到與其相當的精確度,但是模型大小只有它的 12%!相較於知名的 ResNet-50,EfficientNet-B4 與其模型規模相當,效能則提升了 6.7% (Top 1 精確度由 76.3% 提升至 83.0%)。

到此,我們概略了介紹了 EfficientNet,接下來,我們將深入探討論文的技術細節。

(註一:作者參考了 
Zoph, B. and Le, Q. V. Neural architecture search with reinforcement learning. ICLR, 2017;
Tan, M., Chen, B., Pang, R., Vasudevan, V., Sandler, M., Howard, A., and Le, Q. V. MnasNet: Platform-aware neural architecture search for mobile. CVPR, 2019.)


上一篇
[鐵人12:Day 09] EfficientNet 1:源起
下一篇
[鐵人12:Day 11] EfficientNet 3:複合式模型縮放 (Compound Model Scaling)
系列文
花甲老頭學 AI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言