正则化Regularization
正则化方法:防止过拟合,提高泛化能力
training data少的时候,或者overtraining时,常常会导致overfitting(过拟合)(即在training上的结果好,但是在testing上的结果却很差)。
通常我们会将数据集分为training data、validation data、testing data
如下图,一般取得最好的training效果时的testing效果都不是最好的,因此我们需要提前stopping training
validation data是用来确定early stopping的,以及确定learning rate 的
避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。
L1regularization:
L1正则化就是在代价函数后面再加上一个正则化项:
这里可以不用1/2
上图,L1。当w为正时,更新后的w变小。当w为负时,更新后的w变大。这样使得w接近0
当w等于0时,|W|是不可导的,
所以我们可以规定sgn(0)=0,这样就把w=0的情况也统一进来了。
(在编程的时候,令sgn(0)=0,sgn(w>0)=1,sgn(w<0)=-1)