规范化学习笔记

目录


规范化是解决过拟合的一种技术,常见的规范化技术有 L 1 L_1 L1 L 2 L_2 L2规范化,这里介绍的是 L 2 L_2 L2规范化,又称为权重衰减。 L 2 L_2 L2规范化的想法是增加一个额外的项到代价函数上,这个项被称为规范化项,规范化的交叉熵表示为:
C = − 1 n ∑ x j [ y j l n α j L + ( 1 − y j ) l n ( 1 − α j L ) ] + λ 2 n ∑ ω ω 2 C = C 0 + λ 2 n ∑ ω ω 2 C=-\frac{1}{n}\sum_{xj}[y_jln\alpha_j^L+(1-y_j)ln(1-\alpha_j^L)]+\frac{\lambda}{2n}\sum_\omega \omega^2 \\ C = C_0+\frac{\lambda}{2n}\sum_\omega \omega^2 C=n1xj[yjlnαjL+(1yj)ln(1αjL)]+2nλωω2C=C0+2nλωω2
其中,第一项是常规的交叉熵表达式( C 0 C_0 C0),第二项是所有权重的平方和,然后使用一个因子 λ 2 n \frac{\lambda}{2n} 2nλ进行量化调整,其中 λ > 0 \lambda \gt 0 λ>0被称为规范化参数, n n n是训练集合的大小。

损失函数 C C C的偏导如下:
∂ C ∂ ω = ∂ C 0 ∂ ω + λ n ω ∂ C ∂ b = ∂ C 0 ∂ b \frac{\partial C}{\partial \omega}=\frac{\partial C_0}{\partial \omega} + \frac{\lambda}{n}\omega \\ \frac{\partial C}{\partial b}=\frac{\partial C_0}{\partial b} ωC=ωC0+nλωbC=bC0
进一步推导,权重的更新公式变为:
ω → ω − η ∂ C 0 ∂ ω − η λ n ω = ( 1 − η λ b ) ω − η ∂ C 0 ∂ ω \omega \to \omega - \eta\frac{\partial C_0}{\partial \omega} - \frac{\eta\lambda}{n}\omega \\ =(1-\frac{\eta\lambda}{b})\omega-\eta\frac{\partial C_0}{\partial \omega} ωωηωC0nηλω=(1bηλ)ωηωC0

直觉地看,规范化的效果是让网络倾向于学习小一点的权重,其他的东西都一样的。大的权重只有能够给出代价函数第一项足够的提升时才被允许。换言之,规范化可以当做一种寻找小的权重和最小化原始的代价函数之间的折中。这两部分之间相对的重要性就由 λ \lambda λ的值来控制: λ \lambda λ越小,就偏向于最小化原始代价函数,反之,倾向于小的权重。

规范化在实际的应用过程中能够降低过拟合,但具体原因还未知,不过通常的说法是:小的权重在某种程度上,意味着更低的复杂性,也就对数据给出了一种更简单却更强大的解释,因此应该优先选择。

假设神经网络大多数有很小的权重,这最可能出现在规范化的网络中。更小的权重意味着网络的行为不会因为我们随便改变了一个输⼊而改变太大。这会让规范化网络受局部噪声的影响更小。对比看,大权重的网络可能会因为输入的微小改变而产比较大的行为改变。所以一个无规范化的网络可以使用大的权重来学习包含训练数据中的噪声的大量信息的复杂模型。简言之,规范化网络受限于根据训练数据中常见的模式来构造相对简单的模型,而能够抵抗训练数据中的噪声的影响。我们的想法就是这可以让我们的网络对看到的现象进行真实的学习,并能够根据已经学到的知识更好地进行泛化。

你可能感兴趣的:(人工智能,机器学习,人工智能,机器学习,深度学习,规范化)