独家 | 如何解决深度学习泛化理论

简介: 我们可以从最新的关于深度学习“炼金术”的悖论研究中了解一二。 动机 深度学习目前正被用于方方面面。但是,人们经常批评它缺乏一个基础理论,能够完全解释其为什么能如此神奇。最近,神经信息处理系统大会(NIPS)的时间测试奖(Test-of-Time)得主将深度学习比作“炼金术”。

我们可以从最新的关于深度学习“炼金术”的悖论研究中了解一二。

动机

深度学习目前正被用于方方面面。但是,人们经常批评它缺乏一个基础理论,能够完全解释其为什么能如此神奇。最近,神经信息处理系统大会(NIPS)的时间测试奖(Test-of-Time)得主将深度学习比作“炼金术”。

尽管解释深度学习泛化理论仍然是一个悬而未决的问题,在这篇文章中,我们将讨论这个领域最新的理论和先进的经验,并试图对它做出解释。

深度学习的悖论

深度学习的一个“显而易见的悖论”是:尽管在实际问题中它具有大容量、数值不稳定、尖锐极小解(SharpMinima)和非鲁棒性等特点,它在实践中可以很好地推广。

在最近的一篇文章《理解深度学习需要反思泛化》里表明:深度神经网络(DNN)具有足够大的存储容量去记住带有随机标签的ImageNet和CIFAR10数据集。目前尚不清楚为什么他们在真实数据找到了可泛化的解决方案。

深层架构的另一个重要问题是数值不稳定性。在基于导数的学习算法中,数值不稳定性通常被称为梯度消失。底层正向模型的不稳定性导致了更大的难度。也就是说,对于原始特征中的小扰动,某些网络的输出可能是不稳定的。在机器学习中,它被称为非鲁棒性。其中一个例子是图1所示的对抗性攻击。

f07c370b209523ffe4e64915838499149e5c3506

图1:来源:带有对抗攻击示例的机器学习

一些研究将深度学习的泛化论点建立在通过随机梯度下降(SGD)从而找到损失函数的最小平坦度上。然而,最近的研究表明:“尖锐极小解(Sharp Minima)对于深度网络同样具有更好的泛化能力”。更具体地说,通过重新参数化可以将平坦极小解转化为尖锐极小解,而不改变泛化能力。因此,泛化不能仅用参数空间的鲁棒性来解释。

泛化理论

泛化理论的目的是解释和证明为什么和如何提高训练集的准确率。这两个准确率之间的差异称为“泛化误差”或“泛化间隙”。从更严格的意义上,泛化间隙可以被定义为在给定学习算法A的数据集SM上的函数F的不可计算的预期风险和可计算的经验风险之间的差:

94d7b6e8e6d97d27c337c912b630e8aa6487991e

本质上,如果我们将泛化间隙的上界设定成一个小的数值,它将保证深度学习算法f在实际中很好地泛化。泛化间隙的多个理论上界取决于模型的复杂度、稳定性、鲁棒性等。

深度学习的模型复杂性有两种:Rademacher复杂性和Vapnik‑Chervonenkis(VC)维度。然而,对于已知的上界的深入学习函数f, Radamacher复杂性随着网络深度的增长成指数级增长。这与实际观察的结果恰恰相反,适合的训练数据网络深度越大,经验误差就越小。同样,泛化间隙的上界基于VC维度和训练参数呈线性增长,不取决于深度学习中的实际观察值。换句话说,这两个上界限均太保守。

最近,KKawaguchi、LPKELING和YBengio提出了更为有用的办法。与其他人不同,他们接受了这样一个事实,即通常使用训练验证范式培训深度学习模型。他们使用验证错误替代非可计算的预期风险和训练错误。在这种观点中,他们针对为什么深度学习能泛化得如此完美而提出了以下观点:“我们之所以可以泛化得这么很好是因为我们可以利用验证的错误,通过模型搜索得到一个好的模型,并证明对于任何δ > 0,概率至少为1-δ:

bb3a091a1ffeb026da05c2eb87a25650c97507be

重要的是:|Fval|是我们利用验证数据集来选择最终模型进行决策的次数,M是验证集的大小。这一数值可以用来解释为什么深度学习可以泛化得如此好,尽管可能带来不稳定、非鲁棒性和尖锐利极小解(Sharp Minima)。还有一个悬而未决的问题是:为什么我们能够找到导致低验证错误的体系结构和参数。通常,架构的灵感来自真实世界的观察和通过使用SGD搜索到的良好的参数,我们会在下文进行讨论:

随机梯度下降(SGD)

SGD是现代深度学习的内在组成部分,显然是其泛化背后的主要原因之一。接下来我们将讨论它的泛化属性。


在最近的一篇论文《随机梯度下降的数据相关稳定性》中,作者证明了在某些附加损失条件下,SGD是平均稳定算法。这些条件在常用的损失函数中就可以得到满足,例如在激活函数是sigmoid函数的神经网络中通常用到Logistic/Softmax损失函数。在这种情况下,稳定性意味着SGD对训练集中的小扰动有多敏感。他们进一步证明了非凸函数(如深度神经网络)中SGD泛化间隙的平均数据上界的数据相关性:

818a04715c80fe2810fef79707cd6f15e3a5edbd

其中m是训练集的大小,T是训练步长,γ表征了初始点的曲率对稳定性的影响。从中至少可以得出两个结论。首先,目标函数在初始化点附近的曲率对目标函数的初值有着至关重要的影响。从一个低风险的曲率较小的区域中的一个点开始,能产生更高的稳定性,即更快地泛化。在实践中,它可以是一个很好pre-screen决策,以选择良好的初始化参数。第二,考虑到通过率,即m=O(T),我们简化了对O(M)的上界。即训练集越大,泛化差距越小。

有趣的是,有大量的研究正在探究学习曲线。其中大部分显示幂律泛化误差,缩放比例为ε(m)-mm,指数β=−0.5或−1。这也与前面讨论过的结论一致。然而,很重要的是,百度做了大量的研究,已能够凭经验观察到这一幂律(见图2)。实际应用中的指数β介于−0.07和−0.35之间,这一数值还必须得到理论上的解释。

3a990f742de8e4a6d4497614ada7fbae0de99698

图2 资料来源:深度学习的缩放比例是可预测的,经验值。

此外,SGD泛化中关于批量大小(一个批量中样本的数量)有理论值和经验值两种。直观地说,小批量训练会在梯度上引入噪音,这种噪音会使SGD远离最小的极小值,从而增强泛化能力。在谷歌最近的一篇论文中,它表明批量大小的优化与学习速率和训练集大小成比例。或者简单地说,“不牺牲学习速率,增加批量大小”。同样的缩放规则来自SGD动量:Bopt ~1/(1 − m), Bopt是优化的批量大小,m是动量。或者,所有结论都可以用下面的等式来概括:

ff63a69976778e8744a09d3ad19cefa69a202794

ε是学习速率(learningrate),N为训练集的大小,m是动量和B是批量大小。

结论

在过去的几年里,人们对深度学习的基础理论中悖论越来越感兴趣。尽管仍然存在一些尚未解决的研究问题,但现代深度学习绝不是所谓的炼金术。在本文中,我们讨论了这个问题的泛化观点,得出了一些实际的结论:

  • 在曲率较小和风险较低的区域选择初始化参数。用Hessian向量乘法可以有效地估计曲率。
  • 在改变动量时,对批次的大小进行缩放。
  • 不牺牲学习速率,增加批量大小。

原文发布时间为:2018-02-28

本文作者:Dmytrii S

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
2月前
|
机器学习/深度学习 数据可视化 网络架构
增强深度学习模型的可解释性和泛化能力的方法研究
【8月更文第15天】在深度学习领域,模型的准确率和预测能力是衡量模型好坏的重要指标。然而,随着模型复杂度的增加,它们往往变得越来越难以理解,这限制了模型在某些关键领域的应用,例如医疗诊断、金融风险评估等。本文将探讨如何通过几种方法来增强深度学习模型的可解释性,同时保持或提高模型的泛化能力。
277 2
|
2月前
|
机器学习/深度学习 算法框架/工具 Python
过拟合的终结者:深度学习中的正则化技术,如何成为模型泛化能力的超级英雄
【8月更文挑战第7天】深度学习模型虽强大却易过拟合,尤其是在数据有限时。正则化技术通过在训练中引入惩罚项来提升模型泛化能力。L2正则化(权重衰减)限制权重大小;L1正则化生成稀疏权重。例如,在Keras中可通过`kernel_regularizer=regularizers.l2(0.01)`实现L2正则化。Dropout通过随机丢弃神经元减少共适应。数据增强增加训练数据多样性。此外,标签平滑和最大模态正则化等新策略进一步增强了模型的泛化能力。
71 0
|
2月前
|
机器学习/深度学习 监控
深度学习中的正则化技术:防止过拟合与提升泛化能力
【8月更文挑战第6天】在深度学习领域,模型的复杂性往往与其性能成正比,但同时也带来了过拟合的风险。本文将深入探讨正则化技术在深度学习中的应用,如何通过这些技术平衡模型复杂度与泛化能力,以及它们对模型性能的具体影响。我们将从理论到实践,分析不同正则化方法的优势和局限,为深度学习研究者和实践者提供指导。
124 10
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的正则化技术:提升模型泛化能力的关键策略探索AI的奥秘:深度学习与神经网络
【8月更文挑战第27天】在深度学习的探索旅程中,我们常常遭遇模型过拟合的困境,就像是一位探险者在茫茫林海中迷失方向。本文将作为你的指南针,指引你理解并应用正则化技术,这一强大的工具能够帮助我们的模型更好地泛化于未见数据,就如同在未知领域中找到正确的路径。我们将从简单的L1和L2正则化出发,逐步深入到更为复杂的丢弃(Dropout)和数据增强等策略,为你的深度学习之旅提供坚实的支持。
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
机器学习/深度学习 算法 数据挖掘
一文浅谈深度学习泛化能力
一文浅谈深度学习泛化能力
|
9天前
|
机器学习/深度学习 自动驾驶 算法
深度学习在图像识别中的应用与发展
本文将深入探讨深度学习技术在图像识别领域的应用,通过案例分析展示其最新进展。我们将从基本原理出发,了解深度学习如何改变图像处理和识别的方式,并展望其未来可能的发展方向。
|
9天前
|
机器学习/深度学习 自动驾驶 安全
深度学习在图像识别中的应用与挑战
随着科技的不断进步,深度学习技术已经成为解决许多复杂问题的利器,尤其在图像识别领域。本文将探讨深度学习在图像识别中的应用及其所面临的挑战,并分析未来可能的发展方向。