Regularization:在现有Features不变情况下,降低部分不重要Features的影响力。这个方法有助于有很多Features且每个Features都有贡献的Neural Network避免Overfitting。
Regularization不是新鲜的词,我这里主要记录其在神经网络中的应用。
![1829c6fac57ea08df3f37f89a3a5dfdf.png](https://i-blog.csdnimg.cn/blog_migrate/1626e7d620b67a18f3c85232944239af.jpeg)
复杂模型的overfitting问题
第一次听Regularization的时候,总会和正则表达联系在一起,如
@Star Folding
所说,Regularization就是向你的模型加入某些规则,加入先验,缩小解空间,减小求出错误解的可能性。而正则化这个词,的确让初学者不知道这个是什么。原理是这样的:
在cost function后面加一个惩罚项(对某些参数做限制),如果一个权重太大,将导致Cost过大,因此在反向传播后就会对这个权重进行惩罚,使保持在一个较小的值。
![78c3af8a482fb57cf3ec3b8bc94fe9bd.png](https://i-blog.csdnimg.cn/blog_migrate/4cf3b786f70efec33aec1fa452e040a5.jpeg)
常见的是L1 Regularization 和 L2 Regularization
原谅我还是得用李宏毅老师的PPT
![cdbef363707c8fbea1f7bbdc2c698e7b.png](https://i-blog.csdnimg.cn/blog_migrate/306971ca8e63f62ac21af112a47dcbfe.jpeg)
在用L1 Regularization后的Cost function经过微分后
用L1 Regularization的话,相当于每次在更新权重的时候,如果原来的
![d43009d7a4991d674933c62cbc8e7b7d.png](https://i-blog.csdnimg.cn/blog_migrate/46c92e583d75a4885d884b4c007e188b.jpeg)
是正的,就减去上图划线的项,如果是负的,就加上划线的项,于此一来就相当于每次更新都在减小权重。
![c070b059407cb84fdc855e7b53b6fe69.png](https://i-blog.csdnimg.cn/blog_migrate/b356142d4f15642429604d9737a3c469.jpeg)
在用L2 Regularization后的Cost function经过微分后
也就是对于L2 Regularization,相当于每次在权重更新的时候,都先将上一次的权重先乘
![0ea23d9468dd27f6fe46c54ae5091191.png](https://i-blog.csdnimg.cn/blog_migrate/acfe5dca37b2176b8325eacb8dec4db9.jpeg)
,类似于0.999之类的,所以每次都会越来越靠近0(但不会真的都变成0,因为还有后面的微分)。
这样每次都减一点减一点的方式,就是Weight Decay了。
最后,来看一个在Regression中的Regularization视频,讲得不错。
Regularization
参考资料:
[1]:Machine Learning學習日記 — Coursera篇 (Week 3.4):The Problem of Overfitting, Cost Function, Regularized Linear Regression, Regularized Logistic Regression
[2]:机器学习中常常提到的正则化到底是什么意思?
[3]:Difference between L1 and L2 regularization, implementation and visualization in Tensorflow
[4]:https://murphymind.blogspot.com/2017/05/machine.learning.regularization.html