如何防止過擬合


防止過擬合

可以通過

1 增加augmentation(flip  imgaug)

2     增加pooling(因為沒有參數)

3 增加l2正則化

lr正則化,就是l2范數,所以增加了l2范數loss會變成這樣

loss = L + lmda/2 * ||w||

l2范數就是1**2+2**2+3**2+.....**2

即所有數的平方和

求導就是w1=w1+alpha*(dw1-  lmda / 2 * 2 * w1  )

這樣的好處就是讓每一個節點盡量低,相當於起到刪除節點的作用

 

4 設置droupout

1 想必不用多說了吧,就是通過增加數據

2pooling可以增加泛化效果,有一種說法是因為pooling沒有參數,之所以會導致過擬合不泛化就是因為卷基層很多參數,所以多使用pooling會減少擬合

4droupout是設置一個值keep-prob,來確定每一個layer保留的節點,歸根結底就是刪除節點,

比如保留0.5的點,也就是保留50%,所以每個層要保留一半的點,但是這個是隨機的,每次和每次不一樣,第一次可能保留上面一半的點,下次可能保留下面一半的點,保留上面的時候,就是上面進行forward,下面不動,並且bp也是上面的;而第二次可能forward的是下面那一半的節點,所以會導致下面的bp,上面的保持不變,

這樣的好處:

1,可以保留更少的節點,然后避免過擬合

2,由於是隨機刪除,所以不會對某一個節點特別倚重,而對某個節點基本上不用

卷積的時候同理,

因為卷積核的參數是in* kernel * kernel *out

因為in ,out這兩個參數是肯定不變的,所以肯定也是在kernel里面保留或者刪除

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM