深度學習網路調試技巧_01

來源:互聯網
上載者:User

轉自煉丹實驗室 :https://zhuanlan.zhihu.com/p/20792837

神經網路的代碼,比一般的代碼要難調試不少,和編譯錯誤以及運行時程式崩潰相比,神經網路比較棘手的地方,往往在於程式運行正常,但是結果無法收斂,這個檢查起來可要麻煩多了。下面是根據我平時調試神經網路的經驗,總結的一些比較通用的調試技巧,後續會再寫一篇文章,專門介紹一下theano如何進行調試,希望能對大家調試神經網路有所協助。 遇到Nan怎麼辦。

Nan問題,我相信大部分人都遇到過,一般可能是下面幾個原因造成的: 除0問題。這裡實際上有兩種可能,一種是被除數的值是無窮大,即Nan,另一種就是除數的值是0。之前產生的Nan或者0,有可能會被傳遞下去,造成後面都是Nan。請先檢查一下神經網路中有可能會有除法的地方,例如softmax層,再認真的檢查一下資料。我有一次幫別人調試代碼,甚至還遇到過,訓練資料檔案中,有些值就是Nan。。。這樣讀進來以後,開始訓練,只要遇到Nan的資料,後面也就Nan了。可以嘗試加一些日誌,把神經網路的中間結果輸出出來,看看哪一步開始出現Nan。後面會介紹Theano的處理辦法。 梯度過大,造成更新後的值為Nan。特別是RNN,在序列比較長的時候,很容易出現梯度爆炸的問題。一般有以下幾個解決辦法。 對梯度做clip(梯度裁剪),限制最大梯度,其實是value = sqrt(w1^2+w2^2….),如果value超過了閾值,就算一個衰減系係數,讓value的值等於閾值: 5,10,15。 減少學習率。初始學習率過大,也有可能造成這個問題。需要注意的是,即使使用adam之類的適應性學習率演算法進行訓練,也有可能遇到學習率過大問題,而這類演算法,一般也有一個學習率的超參,可以把這個參數改的小一些。 初始參數值過大,也有可能出現Nan問題。輸入和輸出的值,最好也做一下歸一化。具體方法可以參考我之前的一篇文章:深度學習個人煉丹心得 - 煉丹實驗室 - 知乎專欄
神經網路學不出東西怎麼辦。

可能我們並沒有遇到,或者解決了Nan等問題,網路一直在正常的訓練,但是cost降不下來,預測的時候,結果不正常。 請列印出訓練集的cost值和測試集上cost值的變化趨勢,正常情況應該是訓練集的cost值不斷下降,最後趨於平緩,或者小範圍震蕩,測試集的cost值先下降,然後開始震蕩或者慢慢上升。如果訓練集cost值不下降,有可能是代碼有bug,有可能是資料有問題(本身有問題,資料處理有問題等等),有可能是超參(網路大小,層數,學習率等)設定的不合理。
請人工構造10條資料,用神經網路反覆訓練,看看cost是否下降,如果還不下降,那麼可能網路的代碼有bug,需要認真檢查了。如果cost值下降,在這10條資料上做預測,看看結果是不是符合預期。那麼很大可能網路本身是正常的。那麼可以試著檢查一下超參和資料是不是有問題。 如果神經網路代碼,全部是自己實現的,那麼強烈建議做梯度檢查。確保梯度計算沒有錯誤。 先從最簡單的網路開始實驗,不要僅僅看cost值,還要看一看神經網路的預測輸出是什麼樣子,確保能跑出預期結果。例如做語言模型實驗的時候,先用一層RNN,如果一層RNN正常,再嘗試LSTM,再進一步嘗試多層LSTM。 如果可能的話,可以輸入一條指定資料,然後自己計算出每一步正確的輸出結果,再檢查一下神經網路每一步的結果,是不是一樣的。 參考資料

http://russellsstewart.com/notes/0.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.