共计 2029 个字符,预计需要花费 6 分钟才能阅读完成。
全文链接:http://tecdat.cn/?p=23184
在 训练深度神经网络 时,在 训练集 和验证集 上实现雷同的性能通常很麻烦。验证集 上相当 高的误差 是适度拟合 的显著标记:神经网络在训练数据方面变得过于业余。
在本文中,咱们提供了无关如何绕过此问题的综合指南。
神经网络中的过拟合
在解决任何机器学习应用程序时,重要的是要分明地理解模型的 偏差和方差 。 在传统的机器学习算法中,咱们探讨了 偏差与方差的衡量**,它包含试图最小化模型的方差和偏差时的奋斗。为了缩小模型的偏差,即缩小谬误假如造成的误差,咱们须要一个更简单的模型。相同,缩小模型的方差,即模型在捕获训练数据变动方面的敏感度,意味着一个更简略的模型。很简略,在传统机器学习中,偏差与方差的衡量源于同时须要更简单和更简略模型的抵触。
在 深度学习 时代,有一些工具能够在 不侵害模型偏差 的状况下仅 缩小模型的方差,或者相同,在不减少方差的状况下缩小偏差。在摸索用于避免神经网络适度拟合的不同技术之前,重要的是要弄清楚高方差或高偏差的含意。
思考一个常见的神经网络工作,例如 图像识别 ,并思考一个辨认图片中是否存在 熊猫的神经网络。咱们能够自信地评估人类能够以靠近 0% 的错误率执行这项工作。因而,这是图像识别网络准确性的正当基准。在训练集上训练神经网络并评估其在训练集和验证集上的性能后,咱们可能会得出以下不同的后果:
训练谬误 = 20% 和验证谬误 = 22%
训练谬误 = 1% 和验证谬误 = 15%
训练误差 = 0.5% 和验证误差 = 1%
训练谬误 = 20% 和验证谬误 = 30%
第一个例子是高偏差的典型例子:训练集和验证集的误差都很大。相同,第二个示例存在高方差,在解决模型未从中学习的数据时准确度要低得多。第三个后果代表低方差和偏差,该模型能够被认为是无效的。最初,第四个例子展现了高偏差和高方差的状况:与基准相比,不仅训练误差很大,而且验证误差也更高。
从当初开始,我将介绍几种正则化技术,用于缩小模型对训练数据的适度拟合。它们对后面示例的状况 2. 和 4. 是无益的。
神经网络的 L1 和 L2 正则化
与经典回归算法(线性、逻辑、多项式等)相似,L1 和 L2 正则化也可用于避免高方差神经网络中的适度拟合。
L1 和 L2 正则化技术背地的想法是将模型的权重限度为更小或将其中一些权重放大到 0。
思考经典深度神经网络的老本函数 J:
当然,老本函数 J 是每个层 1、…、L 的权重和偏差的函数。m 是训练样本的数量,ℒ 是损失函数。
L1 正则化
在 L1 正则化中,咱们将以下项增加到老本函数 J:
其中矩阵范数是网络的每一层 1, …, L 的权重绝对值之和:
λ 是正则化项。这是一个必须认真调整的超参数。λ 间接管制正则化的影响:随着 λ 的减少,对权重膨胀的影响更加重大。
L1 正则化下的残缺老本函数变为:
对于 λ=0,L1 正则化的成果为空。相同,抉择太大的 λ 值会适度简化模型,可能会导致网络拟合有余。
L1 正则化能够被认为是一种神经元抉择过程,因为它会使一些暗藏神经元的权重为零。
L2 正则化
在 L2 正则化中,咱们增加到老本函数中的项如下:
在这种状况下,正则化项是每个网络层权重的平方范数。该矩阵范数称为 Frobenius 范数,并且明确地计算如下:
请留神,绝对于第 l 层的权重矩阵有 n^{[l]} 行和 n^{[l-1]} 列。
最初,L2 正则化下的残缺代价函数变为:
同样,λ 是正则化项,对于 λ=0,L2 正则化的成果为空。
L2 正则化使权重值趋近于零,从而产生更简略的模型。
L1 和 L2 正则化如何缩小过拟合?
L1 和 L2 正则化技术对适度拟合训练数据有踊跃影响,起因有两个:
一些暗藏单元的权重变得更靠近(或等于)0。因而,它们的影响被减弱了,并且生成的网络更简略,因为它更靠近更小的网络。如介绍中所述,更简略的网络不太容易适度拟合。
对于 较小的权重 ,暗藏神经元的激活函数的 输出 z 也会变小。对于靠近 0 的值,许多激活函数的行为是线性的。
第二个起因并非微不足道,值得扩大。思考一个 双曲正切 (tanh) 激活函数,其图形如下:
双曲正切 (tanh)
从函数图中咱们能够看到,如果输出值 x 很小,函数 tanh(x) 的行为简直是线性的。当 tanh 用作神经网络暗藏层的激活函数时,输出值为:
对于小权重 w 也接近于零。
如果神经网络的每一层都是线性的,咱们能够证实整个网络的行为是线性的。因而,束缚一些暗藏单元来模仿线性函数,会导致网络更简略,因而有助于避免适度拟合。
更简略的模型通常能够防止训练数据中的噪声,因而过拟合的频率较低。
dropout
dropout 正则化的思维是 随机删除 网络中的一些 节点 。在训练过程之前,咱们为网络的每个节点设置一个概率(假如 p = 50%)。在训练阶段,每个节点都有 p 概率被敞开。dropout 过程是 随机 的,它是针对每个训练示例独自执行的。因而,每个训练示例都可能在不同的网络上进行训练。
至于 L2 正则化,dropout 正则化的后果是一个 更简略 的网络,一个更简略的网络导致一个不太简单的模型,也不太容易过拟合。
dropout 对简单网络的影响。