看板 DataScience 關於我們 聯絡資訊
各位前輩好,我蒐羅了各位的建議之後對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