成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

調(diào)試神經(jīng)網(wǎng)絡(luò)讓人抓狂?這有16條錦囊妙計(jì)送給你

Scorpion / 1387人閱讀

摘要:即便對于行家來說,調(diào)試神經(jīng)網(wǎng)絡(luò)也是一項(xiàng)艱巨的任務(wù)。神經(jīng)網(wǎng)絡(luò)對于所有失真應(yīng)該具有不變性,你需要特別訓(xùn)練這一點(diǎn)。對于負(fù)數(shù),會給出,這意味著函數(shù)沒有激活。換句話說,神經(jīng)元有一部分從未被使用過。這是因?yàn)樵黾痈嗟膶訒尵W(wǎng)絡(luò)的精度降低。

即便對于行家來說,調(diào)試神經(jīng)網(wǎng)絡(luò)也是一項(xiàng)艱巨的任務(wù)。數(shù)百萬個(gè)參數(shù)擠在一起,一個(gè)微小的變化就能毀掉所有辛勤工作的成果。然而不進(jìn)行調(diào)試以及可視化,一切就只能靠運(yùn)氣,最后可能浪費(fèi)掉大把的青春歲月。

怎么辦?這里是我總結(jié)的一些方法,希望對你有所幫助。

數(shù)據(jù)集問題

嘗試用小數(shù)據(jù)集來過擬合你的模型

一般來說,幾百次迭代后神經(jīng)網(wǎng)絡(luò)就會對數(shù)據(jù)過擬合。如果損失還不下降,那么問題可能就深了。

使用迭代邏輯來解決問題

先建立一個(gè)最小的網(wǎng)絡(luò)來解決核心問題,然后一步一步擴(kuò)展到全局問題。比方構(gòu)建一個(gè)風(fēng)格遷移網(wǎng)絡(luò),應(yīng)該首先在一張圖片上訓(xùn)練。成功之后,再構(gòu)建一個(gè)可以對任意圖片實(shí)現(xiàn)風(fēng)格遷移的模型。

使用帶有失真的平衡數(shù)據(jù)集

以訓(xùn)練模型進(jìn)行數(shù)據(jù)分類為例,每一類的輸入訓(xùn)練數(shù)據(jù)量應(yīng)該一致。不然會出現(xiàn)某一類的過擬合。神經(jīng)網(wǎng)絡(luò)對于所有失真應(yīng)該具有不變性,你需要特別訓(xùn)練這一點(diǎn)。所以輸入一些失真數(shù)據(jù),有助于提高網(wǎng)絡(luò)的準(zhǔn)確率。

網(wǎng)絡(luò)容量與數(shù)據(jù)大小

數(shù)據(jù)集應(yīng)該足以讓網(wǎng)絡(luò)完成學(xué)習(xí)。如果大網(wǎng)絡(luò)配上小數(shù)據(jù)集,學(xué)習(xí)過程就會停止,有可能一大堆輸入都得出同樣的輸出。如果小網(wǎng)絡(luò)配上大數(shù)據(jù)集,你會遇見損失的跳躍,因?yàn)榫W(wǎng)絡(luò)容量存儲不了這么多信息。

使用平均中心化

這有助于從網(wǎng)絡(luò)中去除噪音數(shù)據(jù),并且提高訓(xùn)練效果,在某些情況下還有助于解決NaN問題。不過切記對于時(shí)間序列數(shù)據(jù),應(yīng)該使用批量中心化而不是全局。

神經(jīng)網(wǎng)絡(luò)問題

首先嘗試簡單的模型

我看到太多人一上來就嘗試ResNet-50、VGG19等標(biāo)準(zhǔn)的大型網(wǎng)絡(luò),結(jié)果發(fā)現(xiàn)他們的問題其實(shí)只要幾層網(wǎng)絡(luò)就能解決。所以如果不是有什么戀大的情結(jié),麻煩你從小型網(wǎng)絡(luò)開始著手。

增加的東西越多,越難訓(xùn)練出一個(gè)解決問題的模型。從小網(wǎng)絡(luò)開始訓(xùn)練,可以節(jié)省更多的時(shí)間。以及,大網(wǎng)絡(luò)會占用更多的內(nèi)存和運(yùn)算。

必須可視化

如果用TensorFlow,那就必須用Tensorboard。否則,請為你的框架找到別的可視化工具,或者自己寫一個(gè)。因?yàn)檫@有助于你在訓(xùn)練早期階段發(fā)現(xiàn)問題。你應(yīng)該明確的看到這些數(shù)據(jù):損失、權(quán)重直方圖、變量和梯度。

如果是處理計(jì)算機(jī)視覺方面的工作,始終要對過濾器進(jìn)行可視化,這樣才能清楚的了解網(wǎng)絡(luò)正在看到的是什么內(nèi)容。

權(quán)重初始化

如果不能正確的設(shè)置權(quán)重,你的網(wǎng)絡(luò)可能會因?yàn)樘荻认У仍蜃兊脽o法學(xué)習(xí)。以及你要知道權(quán)重和學(xué)習(xí)率互相結(jié)合,大學(xué)習(xí)率和大權(quán)重可能導(dǎo)致NaN問題。

對于小型網(wǎng)絡(luò),在1e-2~1e-3附近使用一些高斯分布初始化器就夠了。

對于深層網(wǎng)絡(luò)這沒什么用,因?yàn)闄?quán)重將相乘多次,這會帶來非常小的數(shù)字,幾乎可以消除反向傳播那步的梯度。多虧了Ioffe和Szegedy,我們現(xiàn)在有了Batch-Normalization(批量歸一化),這能減少好多麻煩。

標(biāo)準(zhǔn)問題使用標(biāo)準(zhǔn)網(wǎng)絡(luò)

有很多你立馬就能用的預(yù)訓(xùn)練模型。在某些情況下,你可以直接使用這些模型,也可以進(jìn)行微調(diào)節(jié)省訓(xùn)練時(shí)間。核心思想是,對于不同的問題,大多數(shù)網(wǎng)絡(luò)的容量是一樣的。比方,搞計(jì)算機(jī)視覺,那么網(wǎng)絡(luò)的第一層就是由簡單的過濾器構(gòu)成,例如線、點(diǎn)等等,所有的圖片都是如此,根本不需要重新訓(xùn)練。

使用學(xué)習(xí)率衰減

這總能對你有所幫助。TensorFlow里面有很多可以用的衰減調(diào)度器。

使用網(wǎng)格搜索或隨機(jī)搜索或配置文件來調(diào)整超參數(shù)

不要手動檢查所有的參數(shù),這樣耗時(shí)而且低效。我通常對所有參數(shù)使用全局配置,檢查運(yùn)行結(jié)果之后,我回進(jìn)一步研究改進(jìn)的方向。如果這種方法沒有幫助,那么你可以使用隨機(jī)搜索或者網(wǎng)格搜索。

關(guān)于激活函數(shù)

1、關(guān)于梯度消失的問題

例如Sigmoid以及Tanh等激活函數(shù)存在飽和問題,也就是在函數(shù)的一端,激活函數(shù)的導(dǎo)數(shù)會趨近于零,這會“殺死”梯度和學(xué)習(xí)過程。所以換用不同的激活函數(shù)是個(gè)好主意。現(xiàn)在標(biāo)準(zhǔn)的激活函數(shù)是ReLU。

此外這個(gè)問題也可能出現(xiàn)在非常深或者循環(huán)網(wǎng)絡(luò)中,例如對于一個(gè)150層的網(wǎng)絡(luò),所有的激活函數(shù)都給定為0.9,那么0.91?? = 0,000000137。正如我上面提到的,批量歸一化有助于解決這個(gè)問題。

2、非零中心激活函數(shù)

Sigmoid、ReLU都不是以零為中心的激活函數(shù)。這意味著在訓(xùn)練期間,所有的梯度都將是正(或者負(fù))的,這會導(dǎo)致學(xué)習(xí)過程中出現(xiàn)問題。這也是為什么我們使用零中心化的輸入數(shù)據(jù)。

3、無效ReLU

標(biāo)準(zhǔn)的ReLU函數(shù)也不完美。對于負(fù)數(shù),ReLU會給出0,這意味著函數(shù)沒有激活。換句話說,神經(jīng)元有一部分從未被使用過。發(fā)生這種情況的原因,主要是使用了大學(xué)習(xí)率以及錯誤的權(quán)重初始化。如果參數(shù)調(diào)整不能幫你解決這個(gè)問題,可以嘗試Leaky ReLU、PReLU、ELU或者M(jìn)axout等函數(shù)。

4、梯度爆炸

這個(gè)問題與梯度消失差不多,只不過是每一步梯度越來越大。一個(gè)解決的方案是使用梯度裁剪,也就是給梯度下了一個(gè)硬限制。

深層網(wǎng)絡(luò)的網(wǎng)絡(luò)精度退化

非常深層的網(wǎng)絡(luò)有個(gè)問題,就是會從某些點(diǎn)開始表現(xiàn)就完全崩了。這是因?yàn)樵黾痈嗟膶訒尵W(wǎng)絡(luò)的精度降低。解決的辦法是使用殘差層,保證部分輸入可以穿過所有層。殘差網(wǎng)絡(luò)如下圖所示。

如果上述種種沒有提到你遇見的問題,你可以聯(lián)系作者進(jìn)一步討論,作者在推特上的ID是:creotiv。

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4619.html

相關(guān)文章

  • 利用聯(lián)網(wǎng)工具M(jìn)atchvs在Unity中創(chuàng)建多人聯(lián)網(wǎng)游戲

    摘要:眾所周知,利用本身內(nèi)置的多人聯(lián)網(wǎng)功能與高級應(yīng)用程序接口可以實(shí)現(xiàn)創(chuàng)建多人工程。本次我們教大家的就是利用國內(nèi)一個(gè)名叫的第三方插件工具來實(shí)現(xiàn)多人聯(lián)網(wǎng),實(shí)現(xiàn)過程十分簡單且支持自定義拓展。具體教程如下新建游戲使用游戲云需要,通過官網(wǎng)創(chuàng)建游戲獲取。 通常而言,對于不少開發(fā)人員而言,開發(fā)一款多人在線游戲通常是一件麻煩事,復(fù)雜的測試,繁瑣的調(diào)試過程,還會時(shí)不時(shí)會出現(xiàn)一些幾乎無法復(fù)現(xiàn)的BUG。另外,更讓...

    jsliang 評論0 收藏0
  • 利用聯(lián)網(wǎng)工具M(jìn)atchvs在Unity中創(chuàng)建多人聯(lián)網(wǎng)游戲

    摘要:眾所周知,利用本身內(nèi)置的多人聯(lián)網(wǎng)功能與高級應(yīng)用程序接口可以實(shí)現(xiàn)創(chuàng)建多人工程。本次我們教大家的就是利用國內(nèi)一個(gè)名叫的第三方插件工具來實(shí)現(xiàn)多人聯(lián)網(wǎng),實(shí)現(xiàn)過程十分簡單且支持自定義拓展。具體教程如下新建游戲使用游戲云需要,通過官網(wǎng)創(chuàng)建游戲獲取。 通常而言,對于不少開發(fā)人員而言,開發(fā)一款多人在線游戲通常是一件麻煩事,復(fù)雜的測試,繁瑣的調(diào)試過程,還會時(shí)不時(shí)會出現(xiàn)一些幾乎無法復(fù)現(xiàn)的BUG。另外,更讓...

    masturbator 評論0 收藏0
  • mongo索引構(gòu)建

    摘要:在生產(chǎn)環(huán)境里,這簡直就是夢魘,因?yàn)闆]辦法中止索引構(gòu)建。最明智的建議是將索引構(gòu)建當(dāng)做某類數(shù)據(jù)庫遷移來看待,確保應(yīng)用程序的代碼不會自動聲明索引。索引的構(gòu)建分為兩步。如果發(fā)生在生產(chǎn)環(huán)境里,這無疑是很糟糕的,這也是長時(shí)間索引構(gòu)建讓人抓狂的原因。 聲明索引時(shí)要小心 由于這個(gè)步驟太容易了,所以也很容易在無意間觸發(fā)索引構(gòu)建。如果數(shù)據(jù)集很大,構(gòu)建會花很長時(shí)間。在生產(chǎn)環(huán)境里,這簡直就是夢魘,因?yàn)闆]辦法中...

    Salamander 評論0 收藏0
  • 猿猿有責(zé),維持整潔的 Git 提交記錄,三個(gè)錦囊送給

    摘要:背景背景大家都有學(xué)習(xí)如何規(guī)范簡潔的編寫代碼,但卻很少學(xué)習(xí)如何規(guī)范簡潔的提交代碼。背景 大家都有學(xué)習(xí)如何規(guī)范簡潔的編寫代碼,但卻很少學(xué)習(xí)如何規(guī)范簡潔的提交代碼?,F(xiàn)在大家基本上都用 Git 作為源碼管理的工具,Git 提供了極大的靈活性,我們按照各種 workflow 來提交/合并 code,這種靈活性把控不好,也會帶來很多問題 最常見的問題就是亂成一團(tuán)的 git log histo...

    wendux 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<