【深度学习理论】正则化方法:L1、L2、数据扩增、Dropout

原文链接:http://blog.csdn.net/u012162613/article/details/44261657
声明:本文在原文的极大参考下,添加部分细节。原文很棒,点个赞!

正则化

在训练数据不够多时,或者过度训练时,常常会导致overfitting(过拟合)。随着训练过程的进行,模型复杂度增加,在train data上的error渐渐减小,但是在验证集上的error却反而渐渐增大。因为训练出来的网络过拟合了训练集,对训练集外的数据却不不好。在大多数的实际情况中,训练集与测试集难以完全符合相同数据分布规律。
这里写图片描述
在实际数据中一般会划分为三个数据集:train datavalidation datatest data。其中train data决定了模型的内部参数(梯度下降),根据validation data确定early stopbatch以及learning date,而test data确定accuracy来判断模型鲁棒性。


L1-norm

在原始的代价函数后面加一个代价项,这个代价项属于一范数,即全部权重w的绝对值的和,然后除以总数n,再乘以系数λ。代价函数是关于权重的,因此通过对权重进行求导,可以得到在权重上的梯度值,根据梯度值去更新权值,使得代价函数找到极小值点。
这里写图片描述

首先对权重求偏导,其中sgn()是符号函数,表示每一个权重项的正负。
这里写图片描述
权重更新过程为:
这里写图片描述
对于第二项 ηλnsgn(w) η λ n s g n ( w ) ,当权值 w w 为负数的时候,第二项会导致式子变大,也就是趋于0;当权值w为正数的时候,第二项会导致式子变小,也就是趋于0。总之使权重的绝对值尽量小。当权值为0的时候, w w 是不可导的,所以会去除第二项然后对权值进行更新,因此只需要使sgn(0)=0即可。L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。原先的费用函数在x=0处导数不为0,那么L2正则项后的导数也不是0。但是L1正则项的系数只要大于原先原先费用函数在0的导数,更新后就会在0处变为极小值,从而使一部分参数的最优值变为0。(简单地说,L1可以惩罚到0)


L2-norm

L2正则化是在原始代价函数后面添加二范数,也叫做惩罚项,对权值进行控制。系数中的1/2是为了抵消在代价函数求导的时候的出现的系数2。
这里写图片描述
首先对上面的代价函数分别对权值 w w b求偏导数:
这里写图片描述
因此L2正则化项只对权值的更新会产生影响。权值更新方程为:
这里写图片描述
如果设置 λ=0 λ = 0 ,也就是不设置正则化项,那么权值系数为1,是没有影响,如果非0,那么 ηλn η λ n 为正,则权重 w w 会变小。因此叫做权重衰减(weight decay)。对于mini-batch,如下:
这里写图片描述
这里写图片描述
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合。

为什么要减小权重来避免过拟合?
更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。过拟合的时候,拟合函数的系数往往非常大,如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
这里写图片描述


Dropout

Dropout是通过修改神经网络本身来实现的,它是在训练网络时用的一种技巧。初始化网络结构如下:
这里写图片描述
然后在隐藏层进行随机遗忘,如下图:
这里写图片描述
运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络(后面简称为“半数网络”),每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响。


数据扩增方案

1.图像旋转对称变换
2.随机添加噪声
3.做弹性畸变
4.GAN生成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值