防止過擬合
可以通過
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里面保留或者刪除