作者clansoda (小笨)
看板DataScience
標題Re: [問題] 深度學習實踐問題
時間Tue Nov 13 06:13:34 2018
各位前輩好,我蒐羅了各位的建議之後對learning rate做了調整
確實就是learning rate太大,導致沒辦法學習的問題
我也對我的code做了修改,避免使用vectorize
想請問為什麼層數太低不能用relu呢
還有為什麼weights initialization要用N(0, 0.01)呢?
我現在還有一個新問題是我發現我的squred error會隨著hidden layer nodes
越多,他的error就越大。隨著我一直把node的數量減低,我發現降到一的時候
,error的值是最低的,請問這種情況象徵什麼問題呢?
這是我的training set跟training label
https://goo.gl/GRUrS8
https://goo.gl/auz1xt
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 128.153.164.187
※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1542060819.A.611.html
※ 編輯: clansoda (128.153.164.187), 11/13/2018 06:20:51
推 st1009: 權重應該是擔心隨機分佈選擇不當吧,這會讓你每次實驗結果 11/13 11:55
→ st1009: 不穩定,可能gradient太小之類的,我是用Xavier initializ 11/13 11:57
推 yoyololicon: 因為relu有一半的部份gradient是0 11/13 12:05
→ yoyololicon: 如果 1) model不夠複雜,例如只有一層 2) 資料不夠多 11/13 12:06
→ yoyololicon: 多樣性不足 3) learning rate太大,例如你的0.5 11/13 12:07
→ yoyololicon: 如果不小心讓hidden layer都輸出0,gradient就無法傳 11/13 12:07
→ yoyololicon: 遞回去,然後model就卡住惹 11/13 12:08
→ yoyololicon: 這是我之前自己寫back propagation的經驗喇 11/13 12:09
→ yoyololicon: 當然用relu也不是不可能,只是weight initialize要做 11/13 12:10
→ yoyololicon: 好,然後用很小的learning rate避免衝過頭 11/13 12:10