作者:Less Wright
編譯:ronghuaiyang
MixNet-L 比 ResNet-153 的參數少 8 倍,而 MixNet-M 的性能與之完全相同,但參數少 12 倍,FLOPS 少 31 倍。
摘要:
通過將單個卷積核替換為 3x3 - 9x9 混合分組和神經搜索「MixNet」架構,在標準的移動指標下,ImageNet top 1%的準確率達到了最新的 78.9%。MixNet-L 比 ResNet-153 的參數少 8 倍,而 MixNet-M 的性能與之完全相同,但參數少 12 倍,FLOPS 少 31 倍。
和谷歌 Brain 的 Tan 和 Le 最近在他們的論文中展示了一個新的深度卷積卷積核排布(MixConv)和一個新的神經網絡架構,該架構使用 MixConvs 對效率和準確性進行了優化:Mixed depthwise convolutional kernels。
本文將總結 MixConv 的體系結構,MixNet 的核心構建塊,以及 MixNet NN 體系結構本身,為你在自己的深度學習項目中使用做好準備。(就我個人而言,我計劃在我們下一次的 FastAI 排行榜上使用它)。
讓我們從結果開始:
MixNet 能夠超越當前的移動架構套件,如下圖所示,並使用 MixNet-L 創造了新的 top 1%的記錄(State of the Art):
MixNet對比當前深度學習結構套件
也許更令人印象深刻的是計算效率的比較。基於移動的 AI 自然需要最高的計算效率,將 MixNet-M 和 MixNet-L 與 ResNet-153 進行比較……令人大開眼界:
MixNet-M只有5M參數,可以匹配ResNet-153的準確率
在上面的表中,「type」指的是 NN 架構是如何構建的。manual 意思是手工構建,combined 意義是手工構建結合神經結構搜索,auto 指的是完全由神經結構進行搜索。
更重要的是,快速回顧一下性能,你就會發現 MixNet 體系結構的巨大效率。只有 5M 參數的 MixNet-M 與擁有 60M 參數的 ResNet-153 相匹配。此外,與 ResNet-153 的 11B 相比,MixNet-M 的 FLOPS 為 360M。
工作原理:
希望這些結果能讓你相信,MixNet 值得你深入研究和理解,我們從「MixConvs」開始,Tan 和 Le 圍繞卷積核大小對它進行了初始測試。
在一個標準的神經網絡中,深度卷積通常是通過一個固定大小的核來完成的。目前大多數使用 3x3,3x3 的系列被證明比早期的 7x7 結構更有效。
從這項研究中,他們能夠辨別出混合的卷積核大小可能比單一的固定卷積核更有效,同時將最大卷積核大小限制在 9x9。
較小的卷積核(3x3, 5x5)用於捕獲較低解析度的細節,而較大的卷積核(7x7, 9x9)用於捕獲較高解析度的模式。從而最終建立一個更高效的網絡。
MixConvs — 基於上述直覺,開發了將多個卷積核大小混合到單層中的概念,並將其命名為「MixConvs」。
MixConv 將傳入的通道劃分為組,並對這些組運行各種大小的卷積核。論文中的這個例子說明了:
MixConvs將傳入的通道分組,並在所有通道上運行各種大小的卷積核,而不是典型的單一卷積核大小
結果是,通過組合不同大小的卷積核,可以捕獲低解析度和高解析度模式,從而生成更準確、更高效的深度卷積塊。
論文中的一個代碼示例(TensorFlow)有助於理解這個過程:
MixConvs 變為 MixNets:為了將 MixConv 提升到更優的形式,作者必須確定應該使用哪種混合的卷積核大小,即組大小。最終,使用 1-5 個卷積核被認為是最好的標準,通過利用神經結構搜索,最終構建了一個 MixNet-M。MixNet-L 是簡化的 MixNet-M,深度乘了 1.3。下面是 MixNet-M 架構,展示了不同的卷積核組:
MixNet-M架構,MixNet-L只是一個1.3倍深度的-M。
正如你所看到的,一開始使用的小卷積核與現代 ResNets 當前的趨勢類似。然而,當數據流經這些層時,更大的卷積核會被穩定地集成進來。與單個卷積核卷積不同,較大的卷積核通常會降低精度,混合 MixConv 利用 7x7 和 9x9 卷積核有效地捕獲更高的解析度的模式。
簡而言之,最終的 MixNet 架構的性能結果也許可以通過與 ResNet-153 的比較得到最好的總結。除了在移動計算能力(< 600M FLOPS)上創造了 ImageNet 1%精確度的最新記錄外,它還擊敗了一般的 ResNet-153,同時使用的參數和 FLOPS 幾乎少了一個數量級:
MixNet-M和-L與ResNet-153的直接比較
在你的項目中使用 MixNet:對於 TensorFlow 用戶來說,你很幸運,因為 MixNet 已經開源,可以在 github 上找到:
tensorflow/tpu1\\] Mingxing Tan and Quoc V. Le. MixConv: Mixed Depthwise Convolutional Kernels. BMVC 2019…github.com
PyTorch 和 FastAI 用戶:這裡有個非官方的 PyTorch 實現:
romulus0914/MixNet-PytorchA PyTorch implementation of MixNet A PyTorch implementation of MixNet architecture: MixNet: Mixed Depthwise…github.com[
結論: MixNet 通過混合一些卷積核大小和一個新的架構,對提高神經網絡的效率和準確性做出了令人印象深刻的貢獻。MixNet 是用更好的架構推動深度學習向前發展的一個經典例子,而不是僅僅增加計算能力來獲得更好的結果。祝賀研究人員在 AI 方面的進步和 MixNet 架構的開源!
英文原文:https://medium.com/@lessw/meet-mixnet-google-brains-new-state-of-the-art-mobile-ai-architecture-bd6c37abfa3a