Regularization正则化

    这里只是简单说一下regularization的作用,内部的原理现在还没有完全弄懂,等把内部原理弄懂再回来补充。

    在深度学习网络上,经常会遇到一个问题就是当我们利用样本对网络进行训练的时候,我们可以用很多层在训练样本上做到很好的效果;但是当我们用测试样本的时候,往往测试的结果和训练的效果差别很大。这就是一个overfitting的问题,就相当于在进行函数拟合的时候,本来用2次就能完成,但是我们用了一个6次的也能对数据进行拟合,但是这是一张过拟合,对于训练之外的测试样本,这种网络给出的结果就往往很差。

   针对这种情况,深度学习提出了regularization的方法,regularization的思想就是,在训练的时候,并不要求目标函数达到最小,而是要求目标函数达到相对较小,这样在对测试样本进行处理的时候,能使目标函数的值不会太大,即失真不会太大。

    regularization的方法有很多,主要分为以下几种:

    1,classical regularization: parameter norm penalty.

    这是传统的regularization的做法,就是对目标函数进行修正:在目标函数后面加上norm penalty项:

    

    其中norm penalty有可以分为

    

    和

    

    2,对输入源进行修正:

    产生overfitting的问题本质上还是因为输入源不够丰富,不能涵盖所有的情况,所以这里的做法是对现有的输入源进行扩充,这样就能增加训练的样本,对输入源扩充的方法也有几种,其中一种就是对输入源加上符合一定分布规律的噪声,然后把加上噪声后的输入源当作训练样本对网络进行训练。这样就能实现网络的generalization。

    3,对权值进行修正:

    网络中训练的结果可能对有些权值很敏感,对应权值可能稍微修改一点,训练的结果就会完全不一样,所以为了保证网络的generalization,有必要对权值进行修正,使得最优的权值不会造成训练结果对权值的高敏感性。

    做法就是在网络的权值上加上符合一定分布规律的噪声,然后再重新训练网络,这样得到的最优权值就能保证在权值做微调的情况下,网络的输出结果不会变动很大。

    4,提前终止训练 early stopping:

    在网络训练的过程中,对于训练样本往往可以得到可以是误差达到非常小的权值,但是这些权值在新的样本输入时,输出的结果一般不会太好,这就是overfitting。而在训练的过程中,我们发现,train error 和test error不是同步减小的,在一开始往往是train error 和test error 一起减小;而到最后会出现train error 继续减小,而test error增大的情况,如下图:

    

    所以我们的做法是,可以让网络训练提前终止,这样虽然train error 不是最优,但是能保证test error是最小的。

    5,权值共享parameter sharing:

    这种方法在CNN中会应用到,但是我现在还没有完全搞清为什么它会实现网络的generalization。

    6,sparse representation:

    前面说的方法都是对网络的parameter进行修正,这个方法是对输入源进行修正,就是我通过一定的操作让输入源变为系数矩阵,然后norm penalty也是和修正后的输入源有关系,而和网络的parameter没有关系。

    7,Ensemble methods:

    前面只是对一个网络模型进行修正,这个方法的想法是,我可以用训练样本训练多个网络模型,然后最终网络的输出结果是这几个网络模型的均值,这种做法是很有利于网络的generalization的。但是如果每一个网络都很复杂的话,特别对于深度学习网络,对每个网络都训练显然十分费时费力,不太可取,这时候就需要dropout的方法,这种方法我现在还没有完全弄懂,只是知道它有这方面的作用。

    8,adversarial training:

    在网络的训练中可能会出现一种情况就是,对于一个训练样本,网络给出了正确的结果,但是当对训练样本做稍微改动之后,本来网络再训练得到的结果应该是一样的,但是当改动后的样本输入到网络的时候,得到的结果却是和原来的差别很大,这种样本就称为adversarial example。现在的做法是,网络要特别对这样样本进行训练,使得训练的结果和原来的结果一致。

    上面只是简单介绍了regularization用到的主要方法,具体的实现,还需等到以后总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值