摘要:在計(jì)算機(jī)視覺領(lǐng)域,對(duì)卷積神經(jīng)網(wǎng)絡(luò)簡稱為的研究和應(yīng)用都取得了顯著的成果。文章討論了在卷積神經(jīng)網(wǎng)絡(luò)中,該如何調(diào)整超參數(shù)以及可視化卷積層。卷積神經(jīng)網(wǎng)絡(luò)可以完成這項(xiàng)任務(wù)。
在深度學(xué)習(xí)中,有許多不同的深度網(wǎng)絡(luò)結(jié)構(gòu),包括卷積神經(jīng)網(wǎng)絡(luò)(CNN或convnet)、長短期記憶網(wǎng)絡(luò)(LSTM)和生成對(duì)抗網(wǎng)絡(luò)(GAN)等。
在計(jì)算機(jī)視覺領(lǐng)域,對(duì)卷積神經(jīng)網(wǎng)絡(luò)(簡稱為CNN)的研究和應(yīng)用都取得了顯著的成果。CNN網(wǎng)絡(luò)最初的誕生收到了動(dòng)物視覺神經(jīng)機(jī)制的啟發(fā),目前已成功用于機(jī)器視覺等領(lǐng)域中。
技術(shù)博客Towards Data Science最近發(fā)布了一篇文章,作者Suki Lau。文章討論了在卷積神經(jīng)網(wǎng)絡(luò)中,該如何調(diào)整超參數(shù)以及可視化卷積層。
為什么用卷積神經(jīng)網(wǎng)絡(luò)?
首先,我們想要計(jì)算機(jī)具有什么能力呢?
當(dāng)我們看到一只貓?zhí)洗芭_(tái)或在沙發(fā)上睡覺時(shí),我們的潛意識(shí)會(huì)認(rèn)出它是一只貓。
我們希望計(jì)算機(jī)也能完成這項(xiàng)任務(wù),即將圖像輸入后,找出其獨(dú)有的特征,最終輸出該圖像的類別信息。
卷積神經(jīng)網(wǎng)絡(luò)可以完成這項(xiàng)任務(wù)。
何為卷積神經(jīng)網(wǎng)絡(luò)?
先談定義,卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的神經(jīng)網(wǎng)絡(luò),其中至少包含一個(gè)卷積層。在典型的CNN網(wǎng)絡(luò)結(jié)構(gòu)中,輸入一張圖像,經(jīng)由一系列卷積層、非線性激活層、池化層和全連接層后,可輸出相應(yīng)的類別標(biāo)簽。
卷積神經(jīng)網(wǎng)絡(luò)的特別之處在于加入了卷積層。
在經(jīng)典的神經(jīng)網(wǎng)絡(luò)中,整張圖片會(huì)被傳入網(wǎng)絡(luò)中來訓(xùn)練各網(wǎng)絡(luò)層權(quán)值。當(dāng)輸入為簡單居中的圖像時(shí),如Mnist手寫數(shù)字圖,網(wǎng)絡(luò)識(shí)別效果較優(yōu),但是當(dāng)輸入變?yōu)楦鼮閺?fù)雜多變的圖像時(shí),如跳上窗戶的小貓,此時(shí)網(wǎng)絡(luò)識(shí)別效果不佳甚至無法辨識(shí)。
加入更多隱含層學(xué)習(xí)輸入圖像的抽象特征,可能會(huì)有所幫助,但是這樣會(huì)增加神經(jīng)元的數(shù)目,大大增加訓(xùn)練所需的計(jì)算資源和占用過多的內(nèi)存,這是不切實(shí)際的。
而CNN識(shí)別目標(biāo)的過程,是先尋找諸如邊緣、線段和曲線等相關(guān)低級(jí)特征,然后使用多個(gè)卷積層來構(gòu)建更多抽象的高級(jí)特征。
在卷積層的學(xué)習(xí)過程中,CNN網(wǎng)絡(luò)通過共享多個(gè)卷積核(或特征檢測器)的權(quán)值,來學(xué)習(xí)每張圖片的局部信息,并用于構(gòu)建抽象特征圖譜。卷積核共享特性大大降低了訓(xùn)練網(wǎng)絡(luò)所需的參數(shù)量。
由于經(jīng)過訓(xùn)練的檢測器可以通過卷積層重復(fù)用來組合地檢測圖片中的抽象特征,因此卷積神經(jīng)網(wǎng)絡(luò)更適用于復(fù)雜的圖像識(shí)別任務(wù)。
超參數(shù)調(diào)整
在深度神經(jīng)網(wǎng)絡(luò)中,調(diào)整超參數(shù)組合并非易事,因?yàn)橛?xùn)練深層神經(jīng)網(wǎng)絡(luò)十分耗時(shí),且需要配置多個(gè)參數(shù)。
接下來,我們簡單列舉幾個(gè)影響CNN網(wǎng)絡(luò)的關(guān)鍵超參數(shù)。
學(xué)習(xí)率
學(xué)習(xí)率是指在優(yōu)化算法中更新網(wǎng)絡(luò)權(quán)重的幅度大小。
學(xué)習(xí)率可以是恒定的、逐漸降低的、基于動(dòng)量的或者是自適應(yīng)的,采用哪種學(xué)習(xí)率取決于所選擇優(yōu)化算法的類型,如SGD、Adam、Adagrad、AdaDelta或RMSProp等算法。
優(yōu)化策略這方面的內(nèi)容可參閱量子位之前編譯過的“一文看懂各種神經(jīng)網(wǎng)絡(luò)優(yōu)化算法:從梯度下降到Adam方法”。
迭代次數(shù)
迭代次數(shù)是指整個(gè)訓(xùn)練集輸入到神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的次數(shù)。當(dāng)測試錯(cuò)誤率和訓(xùn)練錯(cuò)誤率相差較小時(shí),可認(rèn)為當(dāng)前的迭代次數(shù)是合適的,否則需繼續(xù)增大迭代次數(shù),或調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)。
批次大小
在卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程中,小批次會(huì)表現(xiàn)得更好,選取范圍一般位于區(qū)間[16,128]內(nèi)。
還需要注意的是,CNN網(wǎng)絡(luò)對(duì)批次大小的調(diào)整十分敏感。
激活函數(shù)
激活函數(shù)具有非線性,理論上可以使模型擬合出任何函數(shù)。通常情況下,rectifier函數(shù)在CNN網(wǎng)絡(luò)中的效果較好。當(dāng)然,可以根據(jù)實(shí)際任務(wù),選擇其他類型的激活函數(shù),如Sigmoid和Tanh等等。
隱含層的數(shù)目和單元數(shù)
增加隱含層數(shù)目以加深網(wǎng)絡(luò)深度,會(huì)在一定程度上改善網(wǎng)絡(luò)性能,但是當(dāng)測試錯(cuò)誤率不再下降時(shí),就需要尋求其他的改良方法。增加隱含層數(shù)目也帶來一個(gè)問題,即提高了訓(xùn)練該網(wǎng)絡(luò)的計(jì)算成本。
當(dāng)網(wǎng)絡(luò)的單元數(shù)設(shè)置過少時(shí),可能會(huì)導(dǎo)致欠擬合,而單元數(shù)設(shè)置過多時(shí),只要采取合適的正則化方式,就不會(huì)產(chǎn)生不良影響。
權(quán)重初始化
在網(wǎng)絡(luò)中,通常會(huì)使用小隨機(jī)數(shù)來初始化各網(wǎng)絡(luò)層的權(quán)重,以防止產(chǎn)生不活躍的神經(jīng)元,但是設(shè)置過小的隨機(jī)數(shù)可能生成零梯度網(wǎng)絡(luò)。一般來說,均勻分布方法效果較好。
Dropout方法
作為一種常用的正則化方式,加入Dropout層可以減弱深層神經(jīng)網(wǎng)絡(luò)的過擬合效應(yīng)。該方法會(huì)按照所設(shè)定的概率參數(shù),在每次訓(xùn)練中隨機(jī)地不激活一定比例的神經(jīng)單元。該參數(shù)的默認(rèn)值為0.5。
手動(dòng)調(diào)整超參數(shù)是十分費(fèi)時(shí)也不切實(shí)際。接下來介紹兩種搜索最優(yōu)超參數(shù)的常用方法。
網(wǎng)格搜索和隨機(jī)搜索
網(wǎng)格搜索是通過窮舉法列出不同的參數(shù)組合,確定性能最優(yōu)的結(jié)構(gòu)。隨機(jī)搜索是從具有特定分布的參數(shù)空間中抽取出一定數(shù)量的候選組合。
網(wǎng)格搜索方法也需要制定策略,在初始階段較好先確定各超參數(shù)值的大概范圍。可以先嘗試在較小迭代次數(shù)或較小規(guī)模的訓(xùn)練集上進(jìn)行大步幅的網(wǎng)格搜索。然后在下個(gè)階段中,設(shè)置更大的迭代次數(shù),或是使用整個(gè)訓(xùn)練集,實(shí)現(xiàn)小幅較精確定位。
雖然在許多機(jī)器學(xué)習(xí)算法中,通常會(huì)使用網(wǎng)格搜索來確定超參數(shù)組合,但是隨著參數(shù)量的增大,訓(xùn)練網(wǎng)絡(luò)所需的計(jì)算量呈指數(shù)型增長,這種方法在深層神經(jīng)網(wǎng)絡(luò)的超參數(shù)調(diào)整時(shí)效果并不是很好。
有研究指出,在深度神經(jīng)網(wǎng)絡(luò)的超參數(shù)調(diào)整中,隨機(jī)搜索方法比網(wǎng)格搜索的效率更高,具體可參考文末中的“隨機(jī)搜索在超參數(shù)優(yōu)化中的應(yīng)用”。
當(dāng)然,可根據(jù)神經(jīng)網(wǎng)絡(luò)的理論經(jīng)驗(yàn),進(jìn)行超參數(shù)的手動(dòng)調(diào)整在一些場景下也是可行的。
可視化
我們可以通過可視化各個(gè)卷積層,來更好地了解CNN網(wǎng)絡(luò)是如何學(xué)習(xí)輸入圖像的特征。
可視化有兩種直接方式,分別是可視化激活程度和可視化相關(guān)權(quán)重。在網(wǎng)絡(luò)訓(xùn)練過程中,卷積層的激活情況通常會(huì)變得更為稀疏和具有局部特性。當(dāng)不同輸入圖像的激活圖都存在大片未激活的區(qū)域,那么可能是設(shè)置了過高的學(xué)習(xí)率使得卷積核不起作用,導(dǎo)致產(chǎn)生零激活圖像。
性能優(yōu)良的神經(jīng)網(wǎng)絡(luò)通常含有多個(gè)明顯而平滑的卷積器,且沒有任何干擾特征。若在權(quán)重中觀察到相關(guān)干擾特征,可能原因是網(wǎng)絡(luò)未被充分訓(xùn)練,或是正則化強(qiáng)度較低導(dǎo)致了過擬合效應(yīng)。
相關(guān)鏈接
1.在深度結(jié)構(gòu)中關(guān)于梯度方法的幾個(gè)實(shí)用建議(Yoshua Bengio):
https://arxiv.org/abs/1206.5533
2.隨機(jī)搜索在超參數(shù)優(yōu)化中的應(yīng)用:
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
3.CS231n課程中理解和可視化卷積神經(jīng)網(wǎng)絡(luò):
https://cs231n.github.io/understanding-cnn/
4.如何使用網(wǎng)格搜索來優(yōu)化深度學(xué)習(xí)模型中的超參數(shù)(Keras):
http://machinelearningmastery.com/grid-search-hyperparameters-deep-learning-models-python-keras/
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/4604.html
摘要:這一切始于年的一篇論文,其使用了稱為的算法用來提取感興趣候選區(qū)域,并用一個(gè)標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)去分類和調(diào)整這些區(qū)域。 本文詳細(xì)解釋了 Faster R-CNN 的網(wǎng)絡(luò)架構(gòu)和工作流,一步步帶領(lǐng)讀者理解目標(biāo)檢測的工作原理,作者本人也提供了 Luminoth 實(shí)現(xiàn),供大家參考。Luminoth 實(shí)現(xiàn):https://github.com/tryolabs/luminoth/tree/master/l...
摘要:下面介紹一些值得注意的部分,有些簡單解釋原理,具體細(xì)節(jié)不能面面俱到,請(qǐng)參考專業(yè)文章主要來源實(shí)戰(zhàn)那我們直接從拿到一個(gè)問題決定用神經(jīng)網(wǎng)絡(luò)說起。當(dāng)你使用時(shí)可以適當(dāng)減小學(xué)習(xí)率,跑過神經(jīng)網(wǎng)絡(luò)的都知道這個(gè)影響還蠻大。 神經(jīng)網(wǎng)絡(luò)構(gòu)建好,訓(xùn)練不出好的效果怎么辦?明明說好的擬合任意函數(shù)(一般連續(xù))(為什么?可以參考http://neuralnetworksanddeeplearning.com/),說好的足夠...
閱讀 3477·2021-11-08 13:30
閱讀 3584·2019-08-30 15:55
閱讀 688·2019-08-29 15:16
閱讀 1750·2019-08-26 13:57
閱讀 2090·2019-08-26 12:18
閱讀 788·2019-08-26 11:36
閱讀 1733·2019-08-26 11:30
閱讀 3017·2019-08-23 16:46