神经网络过拟合的处理

神经网络过拟合的处理

文章目录

  • 神经网络过拟合的处理
    • 权值衰减
    • Dropout(暂退法)

权值衰减

对于某一个线性函数 f ( x ) = W T X f(x)=W^TX f(x)=WTX的损失函数 L ( W , b ) = 1 n ∑ i = 1 n ( W T X ( i ) + b − y ( i ) ) 2 L(W,b)=\frac{1}{n}\sum_{i=1}^{n}(W^TX^{(i)}+b-y^{(i)})^2 L(W,b)=n1i=1n(WTX(i)+by(i))2

其中 x ( i ) x^{(i)} x(i)是样本 i i i的特征, y ( i ) y^{(i)} y(i)是样本 i i i的标签, ( W , b ) (W,b) (W,b)是权重和偏置参数。

为了使神经网络的权值最小我们在损失函数的添加一个惩罚项 λ 2 ∣ ∣ W ∣ ∣ 2 \frac{\lambda}{2}||W||^2 2λ∣∣W2

所以新的损失函数为 L ( W , b ) = 1 n ∑ i = 1 n ( W T X ( i ) + b − y ( i ) ) 2 + λ 2 ∣ ∣ W ∣ ∣ 2 L(W,b)=\frac{1}{n}\sum_{i=1}^{n}(W^TX^{(i)}+b-y^{(i)})^2+\frac{\lambda}{2}||W||^2 L(W,b)=n1i=1n(WTX(i)+by(i))2+2λ∣∣W2

对于 λ = 0 λ=0 λ=0,我们恢复了原来的损失函数。 对于 λ > 0 λ>0 λ>0,我们限制 ‖ w ‖ ‖w‖ w的大小。 这里我们仍然除以2:当我们取一个二次函数的导数时, 2和1/2会抵消,以确保更新表达式看起来既漂亮又简单。

对于采用梯度下降的算法来更新神经网络的权值时: w ← W − η σ L o s s σ W w\leftarrow W-\eta\frac{\sigma Loss}{\sigma W} wWησWσLoss(其中 η \eta η为学习率)

Dropout(暂退法)

在训练过程中,在计算后续层之前向网络的每一层注入噪声。 因为当训练一个有多层的深层网络时,注入噪声只会在输入-输出映射上增强平滑性。这个想法被称为暂退法(dropout)。 暂退法在前向传播过程中,计算每一内部层的同时注入噪声,这已经成为训练神经网络的常用技术。 这种方法之所以被称为暂退法,因为我们从表面上看是在训练过程中丢弃(drop out)一些神经元。 在整个训练过程的每一次迭代中,标准暂退法包括在计算下一层之前将当前层中的一些节点置零。

在标准暂退法正则化中,通过按保留(未丢弃)的节点的分数进行规范化来消除每一层的偏差。 换言之,每个中间活性值 h h h暂退概率 p p p由随机变量 h ′ h' h替换, h ’ = { 0 , 概率为 p h 1 − p , 其他情况 h’= \left\{\begin{matrix} 0,概率为p \\ \frac{h}{1-p},其他情况 \end{matrix}\right. h={0,概率为p1ph,其他情况

你可能感兴趣的:(神经网络,深度学习,python)