pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)
推薦守門員應該將球踢到哪個位置,才能讓自己的隊員用頭擊中。
1.無正則化模型
判別是否有正則化與調用其他計算函數。
準確率:0.948/0.915
明顯過擬合overfiting了。
2.L2正則化
公式如下,在原有cost函數基礎上增加L2項,L2為參數w的均方根
根據公式書寫代碼:
增加正則項后,反向傳播的導數也會對應改變,其余參數不變。
準確率:0.938/0.93,相比沒有正則化變好了一些,并且過擬合現象消失。
增加超參數
,越大越平滑。L2正則認為權重越小的函數越簡單,越平滑,因此在cost成本函數中增加L2項。
需要改的只有成本函數與反向傳播的導數計算公式。
3.Dropout
在深度網絡中,每次迭代都以1-keep_prob的概率關閉一些神經元。keep_prob保留神經元的概率。Dropout每次迭代關閉的神經元都不同,因此每次訓練的模型其實是不同的,這相當于是另一種神經網絡的集成。
步驟:
(1)建立隨機數矩陣D,其維度和A輸出一樣。
(2)將隨機數矩陣轉化為0,1矩陣,隨機數大于keep_prob轉換為0,小于keep_prob轉換為1。
(3)讓矩陣D與矩陣A相乘(對應位置相乘而不是矩陣相乘),得到新的矩陣A,相乘后為0的那些神經元被關閉。
(4)新的矩陣A除以keep_prob,為了使期望值不變。
前向傳播+dropout,記得最后計算得到的A要除以keep_prob哦!
反向傳播+dropout
反向傳播時,對A求導數dA需要乘上同一層的D,在得到新的dA后,還需要除以keep_prob。
準確率:0.929/0.95,比之前效果更好。
dropout是一種正則化技術;
dropout只在訓練時使用,不在測試中使用;
dropout在前向傳播與反向傳播中均需要參與,切記除以keep_prob;
小結:
正則化幫助處理過擬合問題;
正則化會減小參數,簡化模型;
L2、dropout是一種很好的正則化手段。
總結
以上是生活随笔為你收集整理的pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spark中dataframe解析_Sp
- 下一篇: 批发电脑配件_2019年10月电脑配件表