如何防止过拟合
防止过拟合
可以通过
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里面保留或者删除