第四章-深度神经网络优化(初始化&正则化)

权重初始化

作用

  • 随机初始化以破坏对称性
  • 加快渐变下降的收敛速度
  • 增加梯度下降收敛到较低训练(和泛化)错误的几率

参数都初始化为零

  • 导致网络无法破坏对称性:这意味着每一层中的每个神经元都会学到相同的值。对于每一层而言,网络并不比线性分类器更强大,如逻辑回归。 mark

随机初始化

  • 将权重初始化为非常大的随机值效果不佳。 对于大的随机值权重,最后一次激活(sigmoid)输出的结果对于某些示例非常接近于0或1,并且当它得到该示例错误时,该示例会导致非常高的损失。
  • eg: \(log(a[3])= log(0)\) ,损失达到无限。 初始化不良可能会导致渐变/爆炸渐变,这也会降低优化算法的速度。 如果你长时间训练这个网络,你会看到更好的结果,但用过大的随机数初始化会减慢优化速度。 mark

He initialization(He初始化)

适用于使用ReLU激活的网络 mark

预防过拟合

L2正则化

概述

L2正则化依赖于这样的假设,即具有较小权重的模型比具有较大权重的模型更简单。因此,通过惩罚成本函数中权重的平方值,可以将所有权重驱动到较小的值。 拥有大重量的成本太贵了!这导致更平滑的模型,其中输入变化时输出变化更慢。 特点:L2正则化使您的决策边界更加平滑。如果 λ 太大,也有可能“过度平滑”,从而导致具有高偏差的模型。

运算

  • 成本计算: 正则化项被添加到成本中 \[ E=mc^2\\ {Y = [y^{(1)},y^{(2)},…,y^{(m)}]} \] 在权重矩阵方面,渐变中有额外的术语
  • 权值衰减(Weight Decay): 权重被推到较小的值。

原理

参数 λ 用来调整式中两项的相对重要程度,较小 λ 偏向于最后使原本的成本函数最小化,较大的λλ偏向于最后使权值w最小化。当λλ较大时,权值w[L]w[L]便会趋近于0,相当于消除深度神经网络中隐藏单元的部分作用。

另一方面,在权值w[L]w[L]变小之下,输入样本X随机的变化不会对神经网络模造成过大的影响,神经网络受局部噪音的影响的可能性变小。这就是正则化能够降低模型方差的原因。

随机失活(DropOut)正则化

梯度检验

概念

梯度检验是用来检测您的反向传播实施是否是正确的

原理

梯度检验的实现原理,是根据导数的定义,对成本函数求导,有: \[J’(\theta) = \frac{\partial J(\theta)}{\partial \theta}= \lim_{\epsilon\rightarrow 0}\frac{J(\theta+\epsilon)-J(\theta-\epsilon)}{2\epsilon}\]

梯度检验公式

\[J’(\theta) = \frac{J(\theta+\epsilon)-J(\theta-\epsilon)}{2\epsilon}\] 其中当ϵϵ越小时,结果越接近真实的导数也就是梯度值。可以使用这种方法,来判断反向传播进行梯度下降时,是否出现了错误。

代码

参考资料