问题

一般来说,三层神经网络可以逼近任何一个非线性函数,为什么还需要深度神经网络?

回答
这个问题问得特别好,也非常核心。很多人初学神经网络时,都会有这样的疑问:既然三层网络(输入层、一个隐藏层、输出层)已经“万能”了,为什么还要费那么大的劲去堆叠更多的隐藏层,搞出什么“深度”神经网络呢?

这就像是我们问:既然一把瑞士军刀功能很多了,为什么我们还要发展出专门的螺丝刀、扳手、钳子等等?理论上说,瑞士军刀能做很多事,但它做的可能不够好,不够高效,也不够灵活。深度神经网络也是类似道理。

让我详细地给你掰扯掰扯,为什么我们离不开深度:

1. “万能逼近定理”的美丽与现实差距

首先,我们得明确,那个“三层神经网络可以逼近任何一个非线性函数”的说法,指的是理论上的可能性,一个万能逼近定理(Universal Approximation Theorem)。这个定理确实存在,而且非常重要。它告诉我们,只要隐藏层有足够的神经元(不是层数),一个单隐藏层的神经网络理论上可以拟合任何连续函数。

但是,这里有几个关键的“但是”:

神经元数量的爆炸性增长: 要用一个单隐藏层逼近一个复杂的函数,可能需要极其巨大的隐藏层。想象一下,如果我们要逼近一个非常有规律但又很复杂的曲线,单隐藏层可能需要成千上万,甚至上百万个神经元才能捕捉到这些细微的变化。这会导致模型参数量爆炸,训练起来极其困难,而且非常容易过拟合(模型对训练数据拟合得太好,以至于对新的、未见过的数据表现很差)。
学习效率低下: 即使我们能承受巨大的神经元数量,单层网络学习这些复杂模式的效率也非常低下。它更像是在用一个非常“宽”的橡皮筋去拉伸和塑形,而没有办法通过多层结构来“分而治之”。
特征表示的深度和抽象性: 复杂函数往往蕴含着层层递进的抽象特征。比如在图像识别中,一个三层网络可能只能学会识别边缘、颜色等非常低级的特征。而要识别出“眼睛”、“鼻子”这样的中级特征,再到“人脸”这样的高级特征,需要一个更深层次的特征提取和组合过程。

2. 深度神经网络的“分而治之”与“特征的层次性”

深度神经网络的强大之处,恰恰在于它通过堆叠多层隐藏层,能够层层递进地学习和构建越来越抽象的特征表示。这就像一个人的学习过程,从认识最基本的笔画,到组成汉字,再到组成词语,最后理解句子和文章的含义。

浅层学习低级特征: 网络的最前面几层,通常会学习到数据中最基本、最直接的特征。在图像领域,这可能是边缘、角点、纹理等。在文本领域,可能是词语的共现模式。
中间层组合和抽象化: 中间的隐藏层会进一步将前一层提取到的特征进行组合和抽象。比如,在图像中,低级的边缘特征可以组合成更复杂的形状,比如眼睛的轮廓。
深层学习高级语义: 网络的最深层,则能学习到非常高级、非常抽象的语义信息。例如,在图像识别中,深层可以识别出“猫”、“狗”、“汽车”这样的具体对象。在自然语言处理中,深层可以理解句子的含义、情感,甚至进行推理。

这种层次化的特征提取是深度网络的核心优势。它使得模型能够更好地理解数据的内在结构和复杂关系,而不需要在一个非常宽的层中硬塞下所有的信息。

3. 参数效率与泛化能力

尽管深度网络通常层数很多,但相比于一个同样能达到相似性能的“又宽又浅”的网络,深度网络往往在参数效率上表现更好。这意味着它可以用更少的参数来实现更高的性能和更好的泛化能力(对新数据的适应能力)。

为什么呢?因为深层网络学习到的特征表示是可复用的。网络的前几层学习到的通用特征,可以被后面的层重复利用来构建更复杂的概念。这就像我们学习了一个“画圆”的技能,可以用这个技能去画“眼睛”、“车轮”等等,而不是每次都从零开始学习如何画一个圆。

一个非常宽的单隐藏层网络,为了达到相似的性能,可能需要大量的神经元,每个神经元可能学习到一个相对独立的、缺乏层次结构的特征。而深层网络则通过层层累积,形成一个更“结构化”、更高效的特征学习体系。

4. 解决复杂问题的需求

现实世界中的问题,无论是图像识别、语音识别、自然语言理解,还是自动驾驶、药物发现,其背后都隐藏着极其复杂的非线性关系和高维度的特征空间。

图像识别: 一张图片包含成千上万的像素,这些像素之间的组合构成了无数种可能,从简单的纹理到复杂的物体形状,再到物体之间的空间关系。深度神经网络能够一层一层地解析这些信息。
自然语言处理: 语言的理解涉及词汇、语法、语义、上下文、情感等多个层面。深度神经网络可以捕捉到词语之间长距离的依赖关系,理解语法的结构,以及推断出文本的深层含义。

仅仅依靠一个单隐藏层,即使理论上可行,在实践中也难以有效地处理这些复杂问题。它就像是要求一个人只用一根手指来完成所有精细的操作,而大脑的深度处理能力被极大地限制了。

总结一下:

虽然理论上一个足够宽的三层神经网络可以逼近任何函数,但在实践中,深度神经网络(多层隐藏层)具有以下显著优势,使得它们在处理现实世界的复杂任务时不可或缺:

更有效的特征学习: 能够层层递进地学习抽象和组合特征,捕捉数据的层次结构。
更高的参数效率: 用更少的参数实现更好的性能和泛化能力。
更好的学习效率: 更容易通过梯度下降等优化算法找到最优解。
解决复杂问题的能力: 能够更好地模拟和处理现实世界中复杂的数据模式和非线性关系。

所以,深度学习之所以能取得如此巨大的成功,并非因为它否定了万能逼近定理,而是因为深层结构在实际应用中提供了更高效、更强大、更具泛化能力的解决方案。它是一种更加符合我们理解世界和学习知识的“工程化”方法。

网友意见

user avatar

因为从approximation error(拟合误差)的角度,无论是实验结果来看,还是从理论分析来看,大部分情况下“深”都比“宽”更有效。

理论层面的话,分享一篇我比较喜欢的paper里的结果(Why Deep Neural Networks for Function Approximation?,ICLR 2017),作者是UIUC的Shiyu Liang和R. Srikant。

简单来说,这篇文章证明了,如果想要达到 的拟合误差(approximation error),深度为常数(与 无关)的神经网络需要 个神经元,也就是说,shallow neural network的神经元数量随着精度( )的上升多项式增长。然而,深度为 的神经网络只需要 个神经元,也就是说,deep neural network的神经元数量随着精度的上升对数增长。换言之,想要达到同样的拟合误差,更深的神经网络需要的神经元数量远小于层数少的神经网络。

user avatar

歪个楼,深度学习的教材里面一般都会提到这个定理。

Universal Approximation Theorem(1989)

Stone-Weierstrass Theorem(1885)

在一百年之前,数学家已经有一个类似的结论,其实用多项式就足够逼近闭区间上面的任意连续函数了。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有