深度学习系列三:Overfitting问题与L1、L2正则化和Dropout

概述

神经网络训练中的过拟合问题是指训练出来的网络对于训练数据集有很好的预测准确率,但对于测试数据集的预测准确率却远低于训练数据集,用一张关于分类问题的图能很明显看出这个问题:
深度学习系列三:Overfitting问题与L1、L2正则化和Dropout_第1张图片在此不深究其中原因了,有一种基本的理解是当网络复杂程度很高时,其描述能力是很强的,因此在针对某一部分数据集集中高强度训练后,能够高度拟合该数据集中的规律,可以认为将训练集中的数据噪声也完美拟合了,因此其在训练集上准确度很高,但缺点是扩展能力会下降(如图3),但数据出现其他不同噪声时,就难以准确预测。
以上这个理论并没有得到非常严谨的论证,在次不予纠结,只是从众多学者的研究中发现过拟合这个现象确实大规模存在,因此提出正则化和dropout方法予以抑制。

正则化

  • L2正则化
    ·深度学习系列二:反向传播算法解析与简单示例详细讲到了网络参数的更新方法,这里不再赘述,那么令 C 0 = l o s s C_0=loss C0=loss,采用L2正则化后的损失函数为:
    C = C 0 + λ 2 n ∑ w 2 C=C_0+\frac{\lambda}{2n}\sum w^2 C=C0+2nλw2
    于是参数更新变为了:
    w ′ = w − Δ w − η λ n w = ( 1 − η λ n ) w − Δ w w'=w-\Delta w-\frac{\eta \lambda}{n}w=(1-\frac{\eta \lambda}{n})w-\Delta w w=wΔwnηλw=(1nηλ)wΔw
  • L1正则化
    同L2正则化,L1正则化表达式如下:
    C = C 0 + λ n ∑ ∣ w ∣ C=C_0+\frac{\lambda}{n}\sum |w| C=C0+nλw
    于是参数更新变为了:
    w ′ = w − Δ w − η λ n s g n ( w ) = w − η λ n s g n ( w ) − Δ w w'=w-\Delta w-\frac{\eta \lambda}{n}sgn(w)=w-\frac{\eta \lambda}{n}sgn(w)-\Delta w w=wΔwnηλsgn(w)=wnηλsgn(w)Δw
  • 正则化的作用
    可见,正则化的主要作用在于使参数逐步趋于0,当然,由于训练过程中input会不断变化,因此 Δ w \Delta w Δw也会不断变化, w w w值同时受正则化与 Δ w \Delta w Δw两者的作用,它不一定会真的完全趋于0,L2正则化更多的,只是增加了一种趋势而已。
    至于为什么正则化能够抑制过拟合,有理论提到,当某些权重参数过大时,会使得该神经元所接受的input的变化对结果的变化影响增强,从直观上来感受,就是输入中某些特征对结果的影响加强,而造成过拟合问题,而正则化能够使过大权重参数适当减小,即减小此类影响,来抑制过拟合。

Dropout

Dropout也是一种抑制过拟合的方法,用一张图说明:
深度学习系列三:Overfitting问题与L1、L2正则化和Dropout_第2张图片即在每一轮训练过程中,随机的将部分神经元删除(仅在训练过程删除)掉,删除神经元的数量比例可以自行定制,当训练完成后开始推理时,则启用全部的神经元。

  • Dropout的作用
    关于Dropout的作用,仍然是没有完全明确的理论论证,更多的是实践的证明,它确实能够有效抑制过拟合,从理论分析来说,可以认为Dropou训练的过程中,似乎是训练了多个网络,因此在训练过程中部分神经元被删除,剩下的神经元构成了新的网络,当多个网络对同样的input进行预测时,每个网络都有自己的预测结果,将多种网络结果结合在一起,可以使部分网络的预测误差得到抑制,从而降低过拟合。

你可能感兴趣的:(深度学习,人工智能)