神經(jīng)網(wǎng)絡(luò)有哪些初始化網(wǎng)絡(luò)的方法 如何更好地調(diào)試神經(jīng)網(wǎng)絡(luò)?
如何更好地調(diào)試神經(jīng)網(wǎng)絡(luò)?謝謝邀請我。以下是一些經(jīng)驗。深度學(xué)習(xí)在幾個方面很棘手。數(shù)學(xué)和理論不僅能快速引出梯度公式和更新方程的毛團(tuán),而且深度學(xué)習(xí)模型非常復(fù)雜。TensorFlow開發(fā)TensorBoard
如何更好地調(diào)試神經(jīng)網(wǎng)絡(luò)?
謝謝邀請我。以下是一些經(jīng)驗。深度學(xué)習(xí)在幾個方面很棘手。數(shù)學(xué)和理論不僅能快速引出梯度公式和更新方程的毛團(tuán),而且深度學(xué)習(xí)模型非常復(fù)雜。TensorFlow開發(fā)TensorBoard后,神經(jīng)網(wǎng)絡(luò)的在線可視化和控制訓(xùn)練有了很大的進(jìn)步,幫助開發(fā)者診斷無效的神經(jīng)網(wǎng)絡(luò)層。
從一小步開始,最先進(jìn)的深度學(xué)習(xí)架構(gòu)只會越做越大。作為一個試圖實現(xiàn)這些架構(gòu)的程序員,如果你確切地知道你在做什么,這不是一個問題。如果你的知識不完善,那么事情就會出錯。無論是 it'他試圖模仿別人。;結(jié)果或超越已經(jīng)做的事情。特別是在你剛開始一個新的深度學(xué)習(xí)項目的時候,我發(fā)現(xiàn)了兩個特別有用的措施:用虛假數(shù)據(jù)來驗證你的數(shù)據(jù)模型,在構(gòu)建架構(gòu)的時候一步一步來做。
偽造你的數(shù)據(jù),得到你想要的結(jié)果。我的第一個建議主要出現(xiàn)在 "正如我所說,從最簡單的架構(gòu)開始,并確定您的數(shù)據(jù)表示。對于問題的某些版本,實現(xiàn)一個小的全連接前饋網(wǎng)絡(luò)(即使只是邏輯回歸)。創(chuàng)建一個模擬數(shù)據(jù)流,其形狀和尺寸與您通過網(wǎng)絡(luò)推送的數(shù)據(jù)相同。嘗試輸入輸出關(guān)系確定且容易學(xué)習(xí)的數(shù)據(jù),和輸入輸出沒有關(guān)系的數(shù)據(jù),比較算法的性能:
這些示例如下所示。你覺得哪些關(guān)系比較容易學(xué)?
這種方法叫做單元測試。假數(shù)據(jù)可以檢驗?zāi)阕罱K實現(xiàn)的算法的魯棒性。
當(dāng)我們構(gòu)建一個九層的RNN時,引用是在Torch中實現(xiàn)的。我和我的同事最初開始在Th
簡述神經(jīng)網(wǎng)絡(luò)權(quán)值調(diào)整的通用規(guī)則?
神經(jīng)網(wǎng)絡(luò)的權(quán)值是通過訓(xùn)練網(wǎng)絡(luò)獲得的。如果你使用MATLAB,唐 不要自己設(shè)置。newff稍后會自動賦值。也可以手動:net。IW { };{}。一般來說,輸入是歸一化的,所以W和B是0-1的隨機(jī)數(shù)。確定神經(jīng)網(wǎng)絡(luò)權(quán)值的目的是使神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中學(xué)習(xí)到有用的信息,也就是說參數(shù)梯度不應(yīng)為0。
參數(shù)初始化必須滿足兩個必要條件:
1.在每個激活層中不會有飽和現(xiàn)象。例如,對于sigmoid激活函數(shù),初始化值不能太大或太小,導(dǎo)致落入其飽和區(qū)。
2.每個激活值不為零。如果激活層的輸出為零,即下一個卷積層的輸入為零,那么這個卷積層將權(quán)重微分為零,從而導(dǎo)致梯度為零。