system: [SYSTEM]

user: 2. 正则化 一般正则化方法都是通过对目标函数J添加一个参数惩罚项 Ω ( θ ) ，来限制神经网络模型的学习能力 [ 9 ]。我们将正则化的目标函数记为 J ˜ ： J ˜ ( θ ; X ， y ) = J ( θ ; X ， y ) + α Ω ( θ ) (1) 其中 α ∈ [ 0 ， ∞ ) 是平衡范数惩罚系数项 Ω 和标准目标函数 J ( θ ; X ， y ) 相对贡献的超参数。当我们的训练算法最小化正则化后的目标函数 J ˜ 时，它会减少标准目标函数 J ( θ ; X ， y ) 关于训练数据的误差并同时减少参数 θ 的规模。选择不同的参数范数 Ω 会偏好不同的解法。 2.1. L 1 正则化 L 1 参数正则化是通过向目标函数函数添加正则项 Ω ( θ ) = ‖ w ‖ 1 ，使权重更加靠近坐标轴。我们可以将 L 1 参数正则化目标函数的二次近似分解成关于参数的求和： J ^ ( w ; X ， y ) = J ( w * ; X ， y ) + ∑ i [ 1 2 H i ， i ( w i − w i * ) 2 + α | w i | ] (2) 其中w * 是最优的目标解，H是海森矩阵。最小化近似代价函数的解析解是： w i = s i g n ( w i * ) max { | w i * | − α H i ， i ， 0 } (3) 从这个解可以得到两种结果：若 | w i * | ≤ α H i ， i ， L 1 正则化使得 w i 趋向0；若 | w i * | > α H i ， i ， L 1 正则化使得 w i * 增加了 α H i ， i 。 下面借助一张图来解释 L 1 正则化的思想。如图1所示，坐标轴右上方的同心椭圆表示原始目标函数 J ( w ; X ， y ) 的等值线，中心点 w * 是没有正则化的原始最优解。图中(虚线)菱形表示 L 1 正则化项的等值线。最小化新的目标函数 J ˜ ( w ; X ， y ) ，需要让 α ‖ w ‖ 1 和 J ( w ; X ， y ) 都尽可能小。在 w ^ 点处，这两个竞争目标达到平衡( w ^ 点为新的目标函数的最优解)。 α 很大时， w ^ 直接等于0； α 较小时， w ^ 被拉向0。并且由于 L 1 正则化项图像的特殊性， w ^ 很容易就会出现在坐标轴上，即 L 1 正则化会让权重矩阵变得稀疏，使得网络复杂度降低，这也是为什么 L 1 正则化能够防止过拟合。 图1. L 1 正则化 2.2. L 2 正则化 L 2 参数正则化是通过向损失函数添加正则项 Ω ( θ ) = 1 2 ‖ w ‖ 2 2 ，使权重更加接近原点。可以得到加入 L 2 正则化项的总的目标函数的梯度为： ∇ w J ˜ ( w ; X ， y ) = α w + H ( w − w * ) (4) 使用梯度下降法更新权重，过程如下： w ← ( 1 − ε α ) w − ε ∇ w J ( w ; X ， y ) (5) 每次更新梯度前，都会先对权重向量乘以一个小于1的常数因子，这也就是 L 2 正则化称被为权重衰减的原因。记加入正则化项之后的最优解为 w ^ ，有： ∇ w J ˜ ( w ^ ; X ， y ) = α w ^ + H ( w ^ − w * ) = 0 (6) 其中可以通过特征分解将海森矩阵H分解成一个对角阵 Λ 和一组特征向量的标准正交基Q，即 H = Q Λ Q T 。解得： W ^ = Q ( L + α I ) − 1 L Q T W * (7) 由上面的情况可以看出，海森矩阵的特征值大小决定这权重的缩放程度。而海森矩阵的特征值表示的意义是该点附近特征向量方向上的凹凸性，特征值越大，对应的凸性越强。目标函数下降快的方向对应于训练样本的通用的特征方向，而下降的慢的方向则是会造成过拟合的特征方向。下面借助一张图来更形象的理解一下 L 2 正则化的效果。 图2. L 2 正则化 如图2，最小化新的目标函数 J ˜ ( w ; X ， y ) ，需要让 α 2 w T w 和 J ( w ; X ， y ) 都足够的小。在 w ^ 点处，两者达到平衡。 w ^ 点为新的目标函数的最优解。当正则化系数 α 越大时， w ^ 越接近零点； α 越小时， w ^ 越接近 w * 。我们看到，目标函数 J ( w ; X ， y ) 的海森矩阵的 方向上的特征值很小，由图2，我们看到正则化项将 拉向零。再看，代价函数对于沿着 所在方向的移动较为敏感，因为对应海森矩阵的特征值比较大，表现为高曲率。因此，权重衰减对 所在方向影响较小。 通过上面的分析我们发现，保留的相对完整往往是有助于减小目标函数方向上的参数 。而无助于目标函数减小的方向上的参数会在训练中逐渐的衰减掉。这也就是说，在目标函数添加 正则化项会使模型的参数倾向于比较小的值，针对参数减小了模型拟合各种函数的能力，从而减弱模型的过拟合现象。 2.3. Dropout 下面通过两张图来简单了解一下标准神经网络和应用Dropout之后的差异 [ 10 ]： 图3. 标准神经网络 图4. 应用Dropout的神经网络 图3为一个含有两个隐藏层的标准神经网络。而图4则是图3的神经网络应用Dropout之后的产生的稀疏网络，其中带叉的神经元已经被剔除。 下面介绍Dropout的具体工作流程，假设我们要训练图5所示神经网络： 图5. 神经网络示意图 图6. 应用Dropout的神经网络 步骤一：遍历网络所有的隐藏层，随机删除掉网络中隐藏层的部分神经元，输入层和输出层保持不变，如图6所示，在最简单的情况下，每个单元都以固定的概率p保留； 步骤二：接着，输入x通过图3、图4所示的神经网络传播，然后反向传播。按照随机梯度下降法更新没有被删除的神经元对应的参数 和b； 步骤三：最后重复如下过程：恢复被删除的神经元，随机删除的神经元的参数不会更新，没有被删除的神经元的参数得到更新。再从隐藏层随机删除一部分神经元，并备份被删除神经元的参数。在划分的小的训练集执行完这个操做之后，按照随机梯度下降法更新没有被删除的神经元对应的参数 和b。被删除的神经元的参数保持原来的结果。而在测试的时候，网络的神经单元一直存在，而权值要乘于p。这样做是为了保证测试时的输出与训练时的输出期望相同。 下面是这两种情况的示意(图7)： 图7. 在训练时 图8. 在测试时 将Dropout应用到神经网络中相当于从神经网络抽取一个稀疏网络。稀疏网络由所有Dropout存活的单元组成(见图6)。一个有n个单元(隐藏层单元)的神经网络，可以看作是有 个可能的神经网络的集合。这些网络共享权重，因此参数的总数仍然是 或更少。对于每次训练集的输出，将对一个新的稀疏网络重新训练。因此，训练一个Dropout神经网络可以看做是训练 个具有大量权重共享的稀疏网络的集合，每个稀疏网络很少接受训练，如果这种情况发生的话(训练单独的稀疏网络)。在测试时，使用单一的神经网络而不Dropout。该网络的权值是训练权值的“缩减版”，这样就类似于 正则化的权重缩减。如果一个单元在训练过程中以概率p保留，则该单元输出的权值在测试时乘于p，如图8所示。这可以确保对于任何隐藏单元，预期输出(在训练时用于删除单元的分布下)与测试时的实际输出相同。在测试使用时，经过这样的交织， 个共享权值的网络可以组成一个单独的神经网络。 那么Dropout是如何防止过拟合，从而实现正则化的呢？总结为以下两点： 平均的作用：在标准的神经网络模型(没有用任何正则化方法)中，我们利用相同的训练集去训练m个不同的神经网络，一般会得到m种结果。如果我们采用取均值的方式来决定最终的模型，那么这种综合多个模型取均值的策略可以有效的减小过拟合。因为不同的网络可能会产生不同程度的拟合效果，取平均值会在一定程度上使过拟合和欠拟合相互抵消。Dropout在训练时忽略部分神经元，训练不同的稀疏网络，并让这些网络共享权重，这样付出的代价要低。在测试的时候，恢复所有的神经元，相当于很多不同的神经网络取平均。这样在一定程度上使过拟合和欠拟合相互抵消达到整体上减小过拟合。 降低了神经元之间的适应性：一个100个人一起完成的计划，要比100个人均分为20组完成20个任务要困难的多。因为前者需要50个人的默契配合，后者显然提高了这方面的容错率。Dropout在训练过程中，两个神经元不一定每次都会在一个Dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐藏层神经元的共同作用，一定程度上避免了一些特征只有在特定特征下才有效果的情况，迫使网络学习更加鲁棒(指系统的健壮性)的特征，从而降低了神经元之间的适应性，达到减小过拟合的效果。