介绍
今天,神经网络已经成为许多著名应用的主干,如自动驾驶汽车、谷歌翻译、面部识别系统等,并应用于几乎所有人类进化中使用的技术。
神经网络非常擅长于逼近线性或非线性函数,在从输入数据中提取特征时也非常出色。这种能力使他们在计算机视觉领域或语言建模的大范围任务中执行奇迹。但是我们都听过这句名言:
“能力越大,责任越大”。
这句话也适用于无所不能的神经网络。它们强大的函数逼近功能有时会导致它们对数据集过度拟合,因为它们逼近了一个函数,这个函数在它所训练的数据上表现得非常好,但在测试一个它从未见过的数据时却惨败。更有技术性的是,神经网络学习的权重更专门于给定的数据,而不能学习的特征,可以推广。
为了解决过拟合问题,我们采用了一种叫做正则化的技术来降低模型的复杂性和约束权重,从而迫使神经网络学习可归纳的特征。
正则化
正则化可以定义为我们对训练算法所做的任何改变,以减少泛化误差,而不是训练误差。有许多正则化策略。有的对模型进行了额外的约束,如对参数值进行约束;有的对目标函数进行了额外的约束,可以认为是对参数值进行了间接约束或软约束。如果我们小心地使用这些技术,就可以提高测试集的性能。
在深度学习环境中,大多数正则化技术都是基于正则化估计器的。在对估计值进行正则化的同时,我们必须进行权衡,选择偏差增大、方差减小的模型。一个有效的调节者是一个能使交易获利的人,在不过度增加偏差的同时显著地减少偏差。
在实践中使用的主要正则化技术有:
- L2 Regularization
- L1 Regularization
- Data Augmentation
- Dropout
- Early Stopping
在这篇文章中,我们主要关注L2正则化,并讨论是否可以将L2正则化和权重衰减看作是同一枚硬币的两面。
L2正则化
让我们考虑一下,交叉熵代价函数的定义如下所示。
Figure 1. Cross-Entropy loss function
为了将L2正则化应用于任何具有交叉熵损失的网络,我们将正则化项添加到代价函数中,其中的正则化项如图2所示。
Figure 2. L2 norm or Euclidean Norm
在图2λ是正则化参数,直接与正则化应用的数量成正比。如果λ= 0,然后不应用正则化,当λ= 1网络应用最大的正则化。
λ是hyper-parameter这意味着它不是训练期间学到的,而是由用户手动调整或使用一些hyperparameter调优技术如随机搜索。
现在让我们把这些放在一起,形成L2正则化的最终方程,应用于图3所示的交叉熵损失函数。
Figure 3.Final L2 Regularized Cost Function
上面的例子展示了L2正则化应用于交叉熵损失函数,但这个概念可以推广到所有可用的成本函数。图4给出了L2正则化更一般的公式,其中Co为非正则化代价函数,C为正则化代价函数,并加入正则化项。
Figure 4. General Form of L2 Regularization for any cost function
注:我们在对网络进行正则化时没有考虑网络的偏置,原因如下:
- 与权重相比,偏置通常需要更少的数据来精确匹配。每个权重指定了两个变量如何相互作用(w和x),因此要很好地拟合权重,就需要在各种条件下观察两个变量,而每个偏置只控制一个变量(b)。因此,我们没有引入太多的方差,留下偏置非正则化。
- 使偏置正则化会引入大量的欠拟合。