如何防止过拟合

防止过拟合

可以通过

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里面保留或者删除

原文地址:https://www.cnblogs.com/lllcccddd/p/10560787.html