當前位置:
首頁 > 新聞 > 改進卷積神經網路,你需要這14種設計模式

改進卷積神經網路,你需要這14種設計模式

選自Topbots

作者:Mariya Yao

參與:馬亞雄、吳攀


深度學習領域近來已經發展出大量的新架構,而如何選擇使用這些新架構提升卷積神經網路的性能就顯得越發重要了。機器之心之前報道過提交 ICLR 2017 的論文:解析深度卷積神經網路的14種設計模式也正是關注於此。而本文在描述14種設計模式之餘更加註重於闡述構建和訓練卷積網路的小技巧。

改進卷積神經網路,你需要這14種設計模式

自從 2011 年深度卷積神經網路(CNN)在圖像分類任務中優於人類開始,它們就成為了計算機視覺任務中的行業標準,這些任務包括圖像分割、目標檢測、場景標記、跟蹤以及文本檢測等等。

然而,訓練神經網路的技巧並不容易掌握。與之前的機器學習方法一樣,細節是最恐怖的地方,然而在卷積神經網路中有更多的細節需要去管理:你所用的數據和硬體的限制是什麼?你應該以哪種網路作為開始呢?AlexNet、VGG、GoogLeNet 還是 ResNet 呢?甚至 ResNet 裡面還有 ResNet 分支選項。你應當建立多少與卷積層相對應的密集層?你使用哪種激活函數?即使你選擇了廣為流行的 ReLU,你也還要選擇是不是使用普通的 ReLU、Very Leaky ReLU、RReLU、PReLU 或通用版本的 ELU。

最難優化的參數之一就是學習率(learning rate),它是調節神經網路訓練的最重要的超參數。學習率太小,可能導致你永遠不會收斂到一個解決方案,學習率太大,可能導致你剛好跳過了最優解。即便是適應性學習率的方法,也可能在計算上過於昂貴,這取決於你的硬體資源。

設計的選擇和超參數的設定會嚴重地影響 CNN 的訓練和表現,然而對於剛進入深度學習領域的人而言,建立一種設計架構的直覺所需要的資源是稀缺的,而且是分散的。

改進卷積神經網路,你需要這14種設計模式

每個人都知道 VGG 是緩慢而龐大的,但是,倘若你正確地調節它,你仍然可以生成最先進的結果以及高性能的商用應用。圖片來源:Canziani, et al

著重於實際調節的主要書籍是《神經網路:權衡技巧(Neural Networks: Tricks Of The Trade)》,作者:Orr & Muller,最初出版於 2003 年,再版於 2012 年。關於深度學習的熱潮始於 2012 年《紐約時報》報導的 Geoffrey Hinton 的團隊在 Merck Drug Discovery Challenge 上的驚人成功,所以最近幾年先進的研究是缺失的。

幸運的是,美國海軍研究室的研究員 Leslie Smit 等人已經發表了關於卷積神經網路架構改進和技術提升的系統性研究。下面列舉一些他所強調的最重要的一些設計模式。

關於圖像分類的卷積神經網路設計模式

根據 Smith 的觀點,這「14 種原創設計模式可以幫助沒有經驗的研究者去嘗試將深度學習與各種新應用相結合」。儘管高級人工智慧研究員可以依靠直覺、經驗以及針對性的實驗,但這些建議對於剩下的沒有機器學習博士學位的人來說是一個很好的起點。

1)架構要遵循應用

你也許會被 Google Brain 或者 DeepMind 這些奇特的實驗室所發明的那些耀眼的新模型所吸引,但是其中許多在你的用例或者業務環境中要麼是不可能實現,要麼是實現起來非常不現實。你應該使用對你的特定應用最有意義的模型,這種模型或許比較簡單,但是仍然很強大,例如 VGG。

改進卷積神經網路,你需要這14種設計模式

較新的架構可能在學術性的基準測試上會更加準確,但是你應該選擇你自己理解的並且最適合你的應用的架構。圖片來源:Canziani 等。

2)網路路徑的激增

每年的 ImageNet Challenge 的冠軍都會使用比上一屆冠軍更加深層的網路。從 AlexNet 到 Inception,再到 ResNet,Smith 注意到了「網路中路徑數量倍增」的趨勢,並且「ResNet 可以是不同長度的網路的指數集合」。

3)爭取簡單

然而,更大的並不一定是更好的。在名為「Bigger is not necessarily better」的論文中,Springenberg 等人演示了如何用更少的單元實現最先進的結果。參考:https://arxiv.org/pdf/1412.6806.pdf

4)增加對稱性

無論是在建築上,還是在生物上,對稱性被認為是質量和工藝的標誌。Smith 將 FractalNet 的優雅歸功於網路的對稱性。

5)金字塔式的形狀

你也許經常在表徵能力和減少冗餘或者無用信息之間權衡。卷積神經網路通常會降低激活函數的採樣,並會增加從輸入層到最終層之間的連接通道。

6)過度訓練

另一個權衡是訓練準確度和泛化能力。用類似 drop-out 或者 drop-path 的方法進行正則化可以提高泛化能力,這是神經網路的重要優勢。請在比你的實際用例更加苛刻的問題下訓練你的網路,以提高泛化性能。

7)全面覆蓋問題空間

為了擴展你的訓練數據和提升泛化能力,請使用雜訊和數據增強,例如隨機旋轉、裁剪和一些圖像操作。

8)遞增的特徵構造

隨著網路結構越來越成功,它們進一部簡化了每一層的「工作」。在非常深層的神經網路中,每一層僅僅會遞增的修改輸入。在 ResNets 中,每一層的輸出和它的輸入時很相似的,這意味著將兩層加起來就是遞增。實踐中,請在 ResNet 中使用較短的跳變長度。

9)標準化層的輸入

標準化是另一個可以使計算層的工作變得更加容易的方法,在實踐中被證明可以提升訓練和準確率。批量標準化(batch normalization)的發明者認為原因在於處理內部的協變數,但是 Smith 認為,「標準化把所有層的輸入樣本放在了一個平等的基礎上(類似於一種單位轉換),這允許反向傳播可以更有效地訓練」。

10)輸入變換

研究表明,在 Wide ResNets 中,性能會隨著連接通道的增加而增強,但是你需要權衡訓練代價與準確度。AlexNet、VGG、Inception 和 ResNets 都在第一層使用了輸入變換以讓輸入數據能夠以多種方式被檢查。

11)可用的資源決指引著層的寬度

然而,可供選擇的輸出數量並不是顯而易見的,這依賴於你的硬體能力以及期望的準確度。

12)Summation Joining

Summation 是一種常用的合并分支的方式。在 ResNets 中,使用總和作為連接的機制可以讓每一個分支都能計算殘差和整體近似。如果輸入跳躍連接一直存在,那麼 summation 會讓每一層學到正確地東西(例如與輸入的差別)。在任何分支都可以被丟棄的網路(例如 FractalNet)中,你應該使用這種方式類保持輸出的平滑。

13)下採樣變換

在池化的時候,利用級聯連接(concatenation joining)來增加輸出的數量。當使用大於 1 的步長時,這會同時處理連接並增加連接通道的數量。

14)用於競爭的 Maxout

Maxout 被用在你只需要選擇一個激活函數的局部競爭網路中。使用求和以及平均值會包含所有的激活函數,所以不同之處在於 maxout 只選擇一個「勝出者」。Maxout 的一個明顯的用例是每個分支具有不同大小的內核,而 Maxout 可以包含尺度不變性。

提示與技巧

除了這些設計模式之外,還出現了幾個最新的技巧和訣竅,以減少架構的複雜性和訓練時間,並且可以使用有雜訊的標籤。

1)使用調優過的預訓練網路

「如果你的視覺數據和 ImageNet 相似,那麼使用預訓練網路會幫助你學習得更快」,機器學習公司 Diffbot 的 CEO Mike Tung 解釋說。低水平的卷積神經網路通常可以被重複使用,因為它們大多能夠檢測到像線條以及邊緣這些模式。將分類層用你自己的層替換,並且用你特定的數據去訓練最後的幾個層。

2)使用 freeze-drop-path

Drop-path 會在訓練的迭代過程中隨機地刪除一些分支。Smith 測試了一種相反的方法,它被稱為 freeze-path,就是一些路徑的權重是固定的、不可訓練的,而不是整體刪除。因為下一個分支比以前的分支包含更多的層,並且正確的內容更加容易近似得到,所以網路應該會得到更好的準確度。

3)使用循環的學習率

關於學習率的實驗會消耗大量的時間,並且會讓你遇到錯誤。自適應學習率在計算上可能是非常昂貴的,但是循環學習率不會這樣。使用循環學習率(CLR)時,你可以設置一組最大最小邊界,在邊界範圍內改變學習率。Smith 甚至還在論文《Cyclical Learning Rates for Training Neural Networks》中提供了計算學習率的最大值和最小值的方法。參考:https://arxiv.org/pdf/1506.01186.pdf

4)在有雜訊的標籤中使用 bootstrapping

在現實中,很多數據都是混亂的,標籤都是主觀性的或者是缺失的,而且預測的對象可能是訓練的時候未曾遇到過的。Reed 等人在文章《TRAINING DEEP NEURAL NETWORKS ON NOISY LABELS WITH BOOTSTRAPPING》中描述了一種給網路預測目標註入一致性的方法。直觀地講,這可以奏效,通過使網路利用對環境的已知表示(隱含在參數中)來過濾可能具有不一致的訓練標籤的輸入數據,並在訓練時清理該數據。參考:https://arxiv.org/pdf/1412.6596

5)採用有 Maxout 的 ELU,而不是 ReLU

ELU 是 ReLU 的一個相對平滑的版本,它能加速收斂並提高準確度。與 ReLU 不同,ELU 擁有負值,允許它們以更低的計算複雜度將平均單位激活推向更加接近 0 的值,就像批量標準化一樣參考論文《FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS)》,https://arxiv.org/pdf/1511.07289.pdf。如果您使用具有全連接層的 Maxout,它們是特別有效的。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

更偏好白人男性?Science新研究證明人工智慧也能學會偏見
谷歌官方揭秘AutoDraw繪畫工具原理:讓機器學會理解藝術
用對抗網路生成訓練數據:A-Fast-RCNN的實現

TAG:機器之心 |

您可能感興趣

看了這篇文章,了解深度卷積神經網路在目標檢測中的進展
訓練的神經網路不工作?一文帶你跨過這37個坑
神經進化:一種不一樣的深度學習——通過進化演算法來探求神經網路的進化
深度神經網路是否模擬了人類大腦皮層結構?
變形卷積核、可分離卷積?卷積神經網路中十大拍案叫絕的操作
網路售假私下交易 監管模式亟需改進
變形卷積核、可分離卷積?卷積神經網路中十大拍案叫絕的操作。
深度卷積對抗生成網路
7個深度神經網路可視化工具,不可錯過!
2016年度「五個一百」網路正能量精品評選活動正式啟動
26種神經網路激活函數可視化
區塊鏈通過改革網路安全三種方式
卷積深度置信網路工具箱的使用
炸雞褲風靡網路,專家估計,這種褲子可能會成為下一個流行趨勢
蘋果要測試5G網路了,它要幹什麼?
網路裝逼照片的18種套路
一文詳解卷積神經網路的演變歷程!
用 C 語言實現神經網路需要幾步?
基於遞歸注意力模型的卷積神經網路:讓精細化物體分類成為現實