自2011年以來,深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像分類的工作中的表現(xiàn)就明顯優(yōu)于人類,它們已經(jīng)成為在計算機視覺領(lǐng)域的一種標(biāo)準(zhǔn),如圖像分割,對象檢測,場景標(biāo)記,跟蹤,文本檢測等。
但,想要熟練掌握訓(xùn)練神經(jīng)網(wǎng)絡(luò)的能力并不是那么容易。與先前的機器學(xué)習(xí)思維一樣,細(xì)節(jié)決定成敗。但是,訓(xùn)練神經(jīng)網(wǎng)絡(luò)有更多的細(xì)節(jié)需要處理。你的數(shù)據(jù)和硬件有什么限制?你應(yīng)該是從何種網(wǎng)絡(luò)開始?你應(yīng)該建立多少與卷積層相對的密集層?你的激勵函數(shù)怎樣去設(shè)置?即使你使用了最流行的激活函數(shù),你也必須要用常規(guī)激活函數(shù)。
學(xué)習(xí)速率是調(diào)整神經(jīng)網(wǎng)絡(luò)訓(xùn)練最重要的超參數(shù),也是最難優(yōu)化的參數(shù)之一。太小,你可能永遠(yuǎn)不會得到一個解決方案;太大,你可能剛好錯過最優(yōu)解。如果用自適應(yīng)的學(xué)習(xí)速率的方法,這就意味著你要花很多錢在硬件資源上,以此來滿足對計算的需求。
設(shè)計選擇和超參數(shù)的設(shè)置極大地影響了CNN的訓(xùn)練和性能,但對于深度學(xué)習(xí)領(lǐng)域新進入者來說,設(shè)計架構(gòu)直覺的培養(yǎng)可能就需要資源的稀缺性和分散性。
《神經(jīng)網(wǎng)絡(luò):權(quán)衡技巧》是一本主要著重于實際調(diào)優(yōu)的書,出版于2003年,并在2012年再版。而深度學(xué)習(xí)的火爆始于2012年《紐約時報》報道的Geoffrey Hinton 的團隊在 Merck Drug Discovery Challenge 上的驚人成功。然而,最近幾年最先進的研究成果卻消失了。
幸運的是,美國海軍研究室的研究員 Leslie Smith發(fā)表了關(guān)于CNN架構(gòu)改進和技術(shù)提升的系統(tǒng)性研究。下面是他所強調(diào)的最重要的一些設(shè)計模式
14種圖像分類的CNN設(shè)計模式
1) 架構(gòu)遵循應(yīng)用
你也許會被 Google Brain 或者 Deep Mind 這些有想象力的實驗室所發(fā)明的那些耀眼的新模型所吸引,但是其中許多要么是不可能實現(xiàn)的,要么是不實用的對于你的需求。或許你應(yīng)該使用對你的特定應(yīng)用最有意義的模型,這種模型或許非常簡單,但是仍然很強大,例如 VGG。
2) 路徑的激增
每年ImageNet Challenge的贏家都比上一年的冠軍使用更加深層的網(wǎng)絡(luò)。從AlexNet 到Inception到Resnets,Smith和他的團隊也觀察到“網(wǎng)絡(luò)的路徑數(shù)量成倍增長”的趨勢,而且,ResNet可以是不同長度的網(wǎng)絡(luò)的指數(shù)集合。
3) 追求簡約
更大的并不一定是更好的。在名為“Bigger is not necessarily better”的論文中,Springenberg 等人演示了如何用更少的單元實現(xiàn)最先進的結(jié)果。
4)增加對稱性
無論是在建筑上,還是在生物上,對稱性被認(rèn)為是質(zhì)量和工藝的標(biāo)志。Smith 將 FractalNet 的優(yōu)雅歸功于網(wǎng)絡(luò)的對稱性。
5) 金字塔形狀
你總是在表征能力和減少冗余或者無用信息之間權(quán)衡。CNNs通常會降低激活函數(shù)的采樣,并會增加從輸入層到最終層之間的連接通道。
6) 過渡訓(xùn)練
另一個權(quán)衡是訓(xùn)練準(zhǔn)確度和泛化能力。用正則化的方法類似 drop-out 或 drop-path進行提升泛化能力,這是神經(jīng)網(wǎng)絡(luò)的重要優(yōu)勢。用比實際用例更難的問題訓(xùn)練你的網(wǎng)絡(luò),以提高泛化性能。
7) 覆蓋問題的空間
為了擴大你的訓(xùn)練數(shù)據(jù)和提升泛化能力,要使用噪聲和人工增加訓(xùn)練集的大小,例如隨機旋轉(zhuǎn)、裁剪和一些圖像操作。
8) 遞增的功能結(jié)構(gòu)
當(dāng)架構(gòu)變得成功時,它們會簡化每一層的“工作”。在非常深的神經(jīng)網(wǎng)絡(luò)中,每個 層只會遞增地修改輸入。在ResNets中,每一層的輸出可能類似于輸入。所以,在 實踐中,請在ResNet中使用短的跳過長度。
9) 標(biāo)準(zhǔn)化層的輸入
標(biāo)準(zhǔn)化是可以使計算層的工作變得更加容易的一條捷徑,并且在實際中可以提升訓(xùn)練的準(zhǔn)確性。批量標(biāo)準(zhǔn)化的發(fā)明者認(rèn)為標(biāo)準(zhǔn)化發(fā)揮作用的原因在于處理內(nèi)部的協(xié)變量,但Smith 認(rèn)為,“標(biāo)準(zhǔn)化把所有層的輸入樣本放在了一個平等的基礎(chǔ)上(類似于單位轉(zhuǎn)換),這允許反向傳播可以更有效地訓(xùn)練”。
10)輸入變換
研究表明,在Wide ResNets中,性能隨著通道數(shù)量的增加而提升,但是要權(quán)衡訓(xùn)練成本與準(zhǔn)確性。AlexNet,VGG,Inception和ResNets都是在第一層中進行輸入變換,以保證多種方式檢查輸入數(shù)據(jù)。
11)可用的資源決定層寬度
可供選擇的輸出數(shù)量并不明顯,相應(yīng)的是,這取決于您的硬件功能和所需的準(zhǔn)確性。
12)Summation joining
Summation是一種流行的合并分支的方式。在 ResNets 中,使用求和作為連接機制可以讓每一個分支都能計算殘差和整體近似。如果輸入跳躍連接始終存在,那么Summation會讓每一層學(xué)到正確地東西(例如:輸入的差別)。在任何分支都可以被丟棄的網(wǎng)絡(luò)(例如 FractalNet)中,你應(yīng)該使用這種方式保持輸出的平滑。
13)下采樣變換
在匯聚的時候,利用級聯(lián)連接來增加輸出的數(shù)量。當(dāng)使用大于1的步幅時,這會同時處理加入并增加通道的數(shù)量。
14)用于競爭的Maxout
Maxout 用在只需要選擇一個激活函數(shù)的局部競爭網(wǎng)絡(luò)中。用的方法包含所有的激活函數(shù),不同之處在于 maxout 只選擇一個“勝出者”。Maxout 的一個明顯的用例是每個分支具有不同大小的內(nèi)核,而 Maxout 可以尺度不變。
提示&技巧
除了這些設(shè)計模式,還有幾個技巧和訣竅,以減少架構(gòu)復(fù)雜性和培訓(xùn)時間。
1)使用細(xì)調(diào)過的預(yù)訓(xùn)練網(wǎng)絡(luò)
機器學(xué)習(xí)公司 Diffbot 的 CEO Mike Tung 說,“如果你的視覺數(shù)據(jù)和 ImageNet 相似,那么用預(yù)訓(xùn)練網(wǎng)絡(luò)會幫助你學(xué)習(xí)得更快”。低水平的CNN通常可以被重復(fù)使用,因為它們大多能夠檢測到像線條和邊緣這些常見的模式。用你自己的層替換分類層,并且用你特定的數(shù)據(jù)去訓(xùn)練最后的幾個層。
2)使用 freeze-drop-path
Drop-path 會在迭代訓(xùn)練的過程中隨機地刪除一些分支。Smith 測試了一種相反的方法,被稱為 freeze-path,就是一些路徑的權(quán)重是固定的、不可訓(xùn)練的,而不是整體刪除。該網(wǎng)絡(luò)可能會獲得更高的精度,因為下一個分支比以前的分支包含更多的層,并且修正項更容易得到。
3)使用循環(huán)的學(xué)習(xí)率
學(xué)習(xí)率的實驗會消耗大量的時間,并且會讓你遇到錯誤。自適應(yīng)學(xué)習(xí)率在計算上可能是非常昂貴的,但是循環(huán)學(xué)習(xí)率不會。使用循環(huán)學(xué)習(xí)率時,你可以設(shè)置一組最大最小邊界,并且在這個范圍改變它。Smith 在論文中提供了計算學(xué)習(xí)率的最大值和最小值的方法。
4)在有噪聲的標(biāo)簽中使用 bootstrapping
在實踐中,很多數(shù)據(jù)都是混亂的,標(biāo)簽都是主觀性的或是缺失的,而且目標(biāo)有可能是從未遇到過的。Reed 等人在文章中描述了一種給網(wǎng)絡(luò)預(yù)測目標(biāo)注入一致性的方法。直觀地講,這可以實現(xiàn),通過網(wǎng)絡(luò)對環(huán)境的已知表示(隱含在參數(shù)中)來過濾可能具有不一致的訓(xùn)練標(biāo)簽的輸入數(shù)據(jù),并在訓(xùn)練時清理該數(shù)據(jù)。
5)用有 Maxout 的 ELUs,而不是 ReLUs
ELUs是 ReLUs 的一個相對平滑的版本,它能加速收斂并提高準(zhǔn)確度。研究調(diào)查表明,與 ReLUs 不同,ELUs 擁有負(fù)值,這就能允許它們以更低的計算復(fù)雜度將平均單位激活推向更加接近0的值,就像批量標(biāo)準(zhǔn)化一樣。如果您使用具有全連接層的 Maxout,它們是特別有效的。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4797瀏覽量
102311
發(fā)布評論請先 登錄
相關(guān)推薦
卷積神經(jīng)網(wǎng)絡(luò)如何使用
卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用
卷積神經(jīng)網(wǎng)絡(luò)CNN圖解

卷積神經(jīng)網(wǎng)絡(luò)CNN架構(gòu)分析-LeNet

評論