学习能力:深度学习与传统(浅)学习

数据挖掘 机器学习 神经网络 深度学习
2021-09-16 23:31:52

我目前正在 coursera 中做一门课程,其中 Andrew Ng 绘制了以下图像:

深度学习与传统 ML 的性能作为数据集大小的函数

有人知道任何证明绘制图表合理的参考/推理吗?是否进行了任何实验来获得它?如果是这样,你能指点我吗?

我已经在 coursera 论坛中询问并发送电子邮件给支持团队,但无济于事。

谢谢

4个回答

我相信这个说法可以用VC维度的概念来支持。这篇博文提供了对该术语的简化解释。VC维度可以理解为分类器学习数据中复杂依赖关系的能力。另一方面,具有巨大 VC 约束的模型往往会过度拟合少量数据。

但是,您在此处提供的图描述了当我们的训练集无限增长时发生的情况 - 具有大 VC 维度的模型的获胜情况。

神经网络的 VC 界限类似于权重数量和它们之间的连接的 多项式而 SVM 分类器的 VC 维度与其操作空间的维度呈线性关系。

因此,神经网络可以从大量的训练数据中获益更多。你拥有的权重越多,结果就越好。当然,鉴于训练样本的数量至少是权重数量的 10 倍(经验法则),因此您不会面临过度拟合。这就是为什么数据增强和正则化在深度学习中如此重要的原因。

这张图片来自计算机科学家在很长一段时间内使用深度学习网络的个人经验。这适用于所有深度学习工作,其中数据集大小的增加和明确定义的问题比传统 ML 扩展得更好,这仅仅是因为深度学习网络提供的功能。

与传统机器学习相比,深度学习在数据量更大的情况下能够更好地扩展的原因有很多,特别是在计算机视觉和语音识别领域(深度学习最成功)。

许多传统的机器学习模型(最近邻、朴素贝叶斯、基于树的模型、内核机器等)假设对新点的预测应该在某种程度上接近该点的邻居,或者可以对输出进行插值(以某种方式)从那些相邻的点。然而,在高维中,通常没有(明显的)邻居。(通常称为维度灾难。)

这意味着传统的机器学习通常“只能”在本地很好地泛化。如果您想在非本地进行泛化,则需要通过在模型中引入额外的假设来引入输入空间区域之间的依赖关系。

对我来说,这在对象识别中最为明显。很少(从不)将一堆随机像素放在一起会给你一个实际对象的图像。这是因为我们在对象识别中关心的大多数对象只占中所有可能图像的一小部分。为了提高效率,我们应该对输入空间做出额外的假设。R3

例如,卷积神经网络架构共享参数并在每个输入像素上应用卷积核。这是假设特征/对象应该是相同的,与图像中的位置无关。这一假设使 CNN 的可扩展性更高(!),同时更好地泛化到对象识别任务。

RNN 对序列数据做出了类似的假设。

因此,大型神经网络可以更有效地扩展到更多数据。另一方面,传统的机器学习模型将被维数灾难的指数挑战“超越”,因为它们的容量与不同输入的数量呈线性相关。给定正确的假设(即正确任务的正确神经网络),神经网络可以泛化到具有相同输入数量的指数更多的感兴趣区域。

在“深度学习”第 5 章的末尾,介绍了传统机器学习的挑战以及支持这些假设的一些实验参考。

这个情节只是一个概念草图。用于在《2018 Machine Learning Yearning (Draft version) - Andrew Ng》第10页传达一条信息。我查看了“2016 年深度学习 - Ian Goodfellow 等人”。和许多关于深度学习的开创性论文并没有找到一个真实的例子。

一个隐藏的假设:

该草图的一个关键假设是模型参数的数量,如果参数数量保持不变并且对于深浅模型而言相似,则会出现此图。否则,对于任意大的训练数据(图的右侧),任何通用学习器,就像只有一个隐藏层(链接)的神经网络一样简单,如果参数的数量允许任意增加。

深度学习的力量:

证明深度学习力量的文献是相当技术性的。例如这篇论文这篇论文要继续,首先必须了解模型的“容量”。粗略地说,模型的容量是它所能表示的最复杂的函数;这个概念的一个形式化是“VC 维度”。理论上,如果具有个参数的浅层模型的容量为个参数且分布在层的深层模型的容量大致为这是容量相对于深度mO(c)mdO(cd)d. 因此,随着训练数据的增多,深度模型无法像具有相同参数数量的浅层模型那样快地达到其容量。这就是草图试图传达的内容。