日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
神經(jīng)網(wǎng)絡(luò)調(diào)試手冊(cè):從數(shù)據(jù)集與神經(jīng)網(wǎng)絡(luò)說(shuō)起

近日,hackernoon 上出現(xiàn)了一篇題為《How to debug neural networks. Manual.》的文章,從數(shù)據(jù)集與神經(jīng)網(wǎng)絡(luò)兩個(gè)方面分享了作者 Andrey Nikishaev 在調(diào)試神經(jīng)網(wǎng)絡(luò)方面的實(shí)踐心得。

創(chuàng)新互聯(lián)主營(yíng)猇亭網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),猇亭h5微信小程序定制開(kāi)發(fā)搭建,猇亭網(wǎng)站營(yíng)銷(xiāo)推廣歡迎猇亭等地區(qū)企業(yè)咨詢

調(diào)試神經(jīng)網(wǎng)絡(luò)是一項(xiàng)艱難的工作,專(zhuān)家也不例外。面對(duì)數(shù)百萬(wàn)的參數(shù),任何一個(gè)小變動(dòng)都可能使你前功盡棄。沒(méi)有調(diào)試和可視化,所有你的行動(dòng)就像拋硬幣,而且更糟糕的是還浪費(fèi)時(shí)間。下面是我搜集的實(shí)踐匯總,希望有助于你提早發(fā)現(xiàn)問(wèn)題。

一、數(shù)據(jù)集問(wèn)題

1. 嘗試使用小數(shù)據(jù)集過(guò)擬合你的模型

一般來(lái)說(shuō)神經(jīng)網(wǎng)絡(luò)應(yīng)該在數(shù)百次迭代中過(guò)擬合你的數(shù)據(jù)。如果你的損失值不下降,那問(wèn)題存在于更深層次。

2. 使用迭代邏輯解決問(wèn)題

嘗試構(gòu)建最簡(jiǎn)單的網(wǎng)絡(luò)解決你的主要問(wèn)題,接著一步一步擴(kuò)展到全局問(wèn)題。比如,你正在創(chuàng)建風(fēng)格遷移網(wǎng)絡(luò),首先在一張圖像上訓(xùn)練你的腳本遷移風(fēng)格。如果奏效,再接著創(chuàng)建用于任何圖像的風(fēng)格遷移模型。

3. 使用具有扭曲的平衡數(shù)據(jù)集

比如訓(xùn)練分類(lèi)數(shù)據(jù)的網(wǎng)絡(luò),你的訓(xùn)練數(shù)據(jù)應(yīng)該對(duì)每一分類(lèi)具有相同數(shù)量的輸入。其他情況下則存在分類(lèi)過(guò)擬合的可能性。神經(jīng)網(wǎng)絡(luò)對(duì)于所有的扭曲并非恒定不變,因此需要你對(duì)它們進(jìn)行專(zhuān)門(mén)訓(xùn)練。制造輸入扭曲將會(huì)提升網(wǎng)絡(luò)準(zhǔn)確度。

4. 網(wǎng)絡(luò)容量 vs 數(shù)據(jù)集大小

你的數(shù)據(jù)集應(yīng)足夠大,以便網(wǎng)絡(luò)用來(lái)學(xué)習(xí)。如果你的數(shù)據(jù)集小,而網(wǎng)絡(luò)很大,那么它會(huì)停止學(xué)習(xí)(某些情況下也會(huì)為大量的不同輸入輸出相同結(jié)果)。如果你有大數(shù)據(jù),而網(wǎng)絡(luò)很小,那么你將會(huì)看到損失值的跳躍,因?yàn)榫W(wǎng)絡(luò)容量無(wú)法存儲(chǔ)如此多的信息。

5. 使用均值中心化(mean centering)

這將會(huì)從你的網(wǎng)絡(luò)中移除噪音數(shù)據(jù),提升訓(xùn)練性能,同時(shí)某些情況下有助于解決 NaN 問(wèn)題。但是記住,如果你有時(shí)序數(shù)據(jù),那么你應(yīng)該使用批而不是全局中心化。

二、神經(jīng)網(wǎng)絡(luò)問(wèn)題

1. 首先嘗試較簡(jiǎn)單的模型

我在很多案例中看到人們首先嘗試一些標(biāo)準(zhǔn)的大型網(wǎng)絡(luò),比如 ResNet-50、VGG19 等,但是接著發(fā)現(xiàn)他們的問(wèn)題通過(guò)僅有若干層的網(wǎng)絡(luò)也能解決。因此如果你沒(méi)有標(biāo)準(zhǔn)問(wèn)題,首先從小網(wǎng)絡(luò)開(kāi)始吧。你添加的數(shù)據(jù)越多,模型就越難訓(xùn)練,因此從小網(wǎng)絡(luò)開(kāi)始會(huì)更省時(shí)。你也應(yīng)該記住,大網(wǎng)絡(luò)需要更大的內(nèi)存與更多的操作。

2. 可視化是必須的

如果你正使用 TensorFlow,一定要從 TensorBoard 開(kāi)始。如果沒(méi)有,嘗試為你的框架尋找一些可視化工具,或者自己動(dòng)手編寫(xiě)。這將對(duì)于你發(fā)現(xiàn)訓(xùn)練早期階段的問(wèn)題非常有幫助。你必須可視化的事情有:損失值、權(quán)重直方圖、變量和梯度。如果你正在做計(jì)算機(jī)視覺(jué),那要一直可視化過(guò)濾器從而理解網(wǎng)絡(luò)實(shí)際上看到了什么。

3. 權(quán)重初始化

如果你錯(cuò)誤設(shè)置權(quán)重,由于零梯度,或者所有神經(jīng)元的類(lèi)似更新等,你的網(wǎng)絡(luò)將變得無(wú)法訓(xùn)練。同樣你也應(yīng)該記住權(quán)重與學(xué)習(xí)率是成對(duì)的,因此高學(xué)習(xí)率和大權(quán)重可以導(dǎo)致 NaN 問(wèn)題。

對(duì)于一些網(wǎng)絡(luò)使用 1e-2–1e-3 左右的高斯分布初始化軟件已經(jīng)足夠。

對(duì)于深度網(wǎng)絡(luò)這毫無(wú)用處,因?yàn)槟愕臋?quán)重彼此相乘了很多次,將會(huì)產(chǎn)生幾乎消除反向傳播上的梯度的非常小的數(shù)值。多虧了 Ioffe 和 Szegedy,現(xiàn)在我們有了批歸一化,緩解了令人頭疼的大量問(wèn)題。

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

存在大量的預(yù)訓(xùn)練模型,你可以正確使用它們。在一些情況中是這樣,或者你可以使用調(diào)整技術(shù)節(jié)約訓(xùn)練時(shí)間。主要的想法是絕大多數(shù)網(wǎng)絡(luò)容量對(duì)于不同問(wèn)題是相同的。比如,如果我們討論計(jì)算機(jī)視覺(jué),它將會(huì)包含對(duì)于所有圖像一樣的線、點(diǎn)、角,并且你不需要再訓(xùn)練它們。

5. 把衰減用于學(xué)習(xí)率

這幾乎每次都會(huì)給你一個(gè)提升。TensorFlow 中有大量的不同衰減調(diào)度器

(https://www.tensorflow.org/versions/r0.12/api_docs/python/train/decaying_the_learning_rate)。

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

不要試圖手動(dòng)調(diào)整所有參數(shù),這很耗時(shí),效率低下。我經(jīng)常使用全局配置調(diào)整所有參數(shù),并在運(yùn)行完檢查結(jié)果后看看在哪個(gè)方向上應(yīng)該進(jìn)一步調(diào)查。如果這個(gè)方法沒(méi)有幫助,你可以試一下隨機(jī)搜索或網(wǎng)格搜索。

7. 激活函數(shù)

(1) 梯度消失問(wèn)題

一些激活函數(shù),比如 Sigmoid 和 Tanh 正在遭受飽和問(wèn)題。在其極限時(shí),它們的導(dǎo)數(shù)接近于零,這將會(huì)消除梯度和學(xué)習(xí)過(guò)程。因此檢查不同的函數(shù)比較好?,F(xiàn)在標(biāo)準(zhǔn)的激活函數(shù)是 ReLU。同樣這一問(wèn)題也出現(xiàn)在一個(gè)非常深度或者循環(huán)的網(wǎng)絡(luò)中,比如你有 150 層,所有的激活值是 0.9,那么 0.91?? = 0,000000137。但是正如上文所說(shuō),批歸一化將有助于解決這一問(wèn)題,殘差層也是。

(2) 不是零均值的激活值

比如 Sigmoid、ReLU 函數(shù)就不是零均值的。這意味著訓(xùn)練期間所有你的梯度將全部是正或負(fù),并會(huì)引發(fā)學(xué)習(xí)問(wèn)題。這就是為什么我們使用零均值的輸入數(shù)據(jù)。

(3) Dead ReLUs

標(biāo)準(zhǔn)的 ReLU 函數(shù)也不完美。對(duì)于負(fù)數(shù) ReLU 給出零的問(wèn)題意味著它們將不會(huì)被激活,因此你的神經(jīng)元的某些部分將會(huì)死掉并永不再用。這之所以能發(fā)生是因?yàn)楦邔W(xué)習(xí)率和錯(cuò)誤的權(quán)重初始化。如果參數(shù)調(diào)整沒(méi)有幫助,那么你可以試一下 Leaky ReLU、PReLU、ELU 或 Maxout,它們沒(méi)有這一問(wèn)題。

(4) 梯度爆炸

這一問(wèn)題與梯度消失相同,除卻每一步梯度變的越來(lái)越大。一個(gè)主要的解決辦法是使用梯度剪裁,為梯度設(shè)置基本的硬限制。

8. 深度網(wǎng)絡(luò)的精確度降級(jí)

從一些點(diǎn)上真正深化網(wǎng)絡(luò)的問(wèn)題開(kāi)始表現(xiàn)為一個(gè)壞手機(jī),因此增加更多層降低了網(wǎng)絡(luò)精確度。解決辦法是使用殘差層把輸入的一些部分傳遞到所有層。

原文:https://hackernoon.com/how-to-debug-neural-networks-manual-dc2a200f10f2

【本文是專(zhuān)欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】


文章題目:神經(jīng)網(wǎng)絡(luò)調(diào)試手冊(cè):從數(shù)據(jù)集與神經(jīng)網(wǎng)絡(luò)說(shuō)起
本文URL:http://www.dlmjj.cn/article/djhsjpj.html