什么是过拟合?
一幅图胜千言万语
![](https://img.haomeiwen.com/i2666154/a44f858312c61ca4.png)
![](https://img.haomeiwen.com/i2666154/ae0087ae1cf20cdf.png)
![](https://img.haomeiwen.com/i2666154/edc338dd3f0b66c9.png)
过拟合(overfitting):就是对数据的过度严格的拟合。这个经常出现在分类问题上。
怎么解决过拟合呢?
L2正则化
逻辑回归 中L2正则化的过程:
L2正则化是最常用的正则化。
我们先求出代价方程J(w,b)为:
![](https://img.haomeiwen.com/i2666154/3a534758fa47003e.png)
L2正则化,就是在代价方程后面加个lambda/(2m)参数W范数的平方,下标2表示L2正则化的意思,2是为了接下来的求导好化简而写的,就是个比值而已:
![](https://img.haomeiwen.com/i2666154/8cc467b1db020d74.png)
其中||w||^2是:
![](https://img.haomeiwen.com/i2666154/170afc5e46a6b4a3.png)
但是为啥参数W都用上了,为啥不+bias b:
![](https://img.haomeiwen.com/i2666154/914d90932648d2ac.png)
因为,b也是一个参数,而且是一个数,而W是很多个参数,感觉少了b也没啥所以一般不写上b。
这里的lambda是超级参数,跟学习率一样,需要我们自己调。
神经网络 L2回归的过程:
神经网络其实就是有大于等于1个隐藏层,也就是比逻辑回归多了参数而已:
![](https://img.haomeiwen.com/i2666154/2d2951c594a8a4a1.png)
其中||W||为:
![](https://img.haomeiwen.com/i2666154/a9e6ebe16b461a5e.png)
注:L-1=上一层的大小,L是当前层的大小
该||W||矩阵范式被称为Frobenius norm 即弗罗贝尼乌斯范数,表示为(||W||_F)^2:
![](https://img.haomeiwen.com/i2666154/4fa61c95bcc79ede.png)
这个矩阵L2范式,也叫弗罗贝尼乌斯范数。
求导:
没有L2正则化以后,导数是这样的,[from backprop: 从反馈传播求得的]:
![](https://img.haomeiwen.com/i2666154/2ea6c8c8c65d5130.png)
而现在有了L2正则以后,就变成了:
![](https://img.haomeiwen.com/i2666154/c59edac9bad07f64.png)
其中可以看出和上面的原本的W^[L]比,缩小成了下面的倍数(其中alpha>1):
![](https://img.haomeiwen.com/i2666154/183632109431523d.png)
这个W的缩小变化使得L2正则化被称为“权重衰退”。
有L2正则化就有L1正则化,但是为啥不用呢?
L1正则化的||W||为:
![](https://img.haomeiwen.com/i2666154/b70b0855e91189bd.png)
L1的正则化的||W||会使得W最终变得稀疏,也就是有很多0出现,有助于压缩参数和减小内存,但这也不是我们用L1正则化的目的,不是为了压缩模型。(这个斜体加粗的话我还没弄懂为啥会出现很多0,知道的小伙伴分享下)
Dropout
Dropout有很多,其中Inverted Dropout 反向随机失活最常用。根据这个翻译的意思,也能大概猜出来Inverted Dropout的意思,也就是从后面随机使一些当前层的神经单元失效。
上图说话:
没Dropout前的网络为:
![](https://img.haomeiwen.com/i2666154/3a79b33e6d19a0fc.png)
开始Dropout操作:
![](https://img.haomeiwen.com/i2666154/a91f8c72337508cd.png)
注释:红叉的单元是被去除的,也就是该单元权重置为0。
这个dropout操作是从每一层开始的,首先需要设置一个值,keep_prob,就是保留多少,范围0-1。这个例子很明显是0.5。然后在从后往前经过每一层,都把当前层随机流线keep_prob的比例,其他的单元的权重置为零。
代码模拟实现为:
![](https://img.haomeiwen.com/i2666154/1f15d93ce4f8e497.png)
感谢Andrew Ng的视频!
欢迎关注深度学习自然语言处理公众号
![](https://img.haomeiwen.com/i2666154/b3108cb8582b31d2.jpg)
网友评论