想象你在地上铺瓷砖,每块瓷砖正好覆盖一小块区域,而且这些瓷砖之间既不重叠,也没有缝隙。那么当你站在地面上任意一点时,正好只有一块瓷砖在那儿,如果瓷砖的厚度再和大的地板一致的话,这些小瓷砖组合就完全代替了一整块地板,两者是等价关系。
现在再想象一种情况:你曾经有一张大地毯,现在打算用一组柔软的“小地毯”或“小垫子”完美的替换它,每个小垫子覆盖一定区域,但它们的边缘会有一些重叠。为了让地毯看起来整洁一致,我们可以调整每个小垫子的“厚度”或“贡献值”,确保无论你站在哪个位置,所有重叠部分加起来的高度正好是一样的(比如总高度为 1)。这种方法就是利用平滑的 bump 函数,通过恰当归一化,让它们在重叠区域内加起来的总和恒定为 1,也就是构成了一个分割单位。大地毯等价于很多小毯子叠加。
这种构造称作函数分析,在数学上非常有用。它不仅可以用来平滑地“覆盖”空间,还可以方便我们进行各种局部到整体的函数分析。针对一个未知的复杂函数,我们总可以找到一系列的简单函数来模拟它,也就是能把大地毯所占空间铺满,而且其每一处的厚度总是跟原始大地毯的厚度一模一样。
人类智力就是一个有一系列输入和一系列输出的复杂函数。我们应该也可以找到一系列的简单函数来模拟人类智力。问题在于,我们应该找什么样的函数,怎么把它们组织在一起。
上文铺地板的基础函数我们称之为Bump Indicator。生物学家认为神经元相当于一个感知机(Percepton),能够根据输入做出决策,也是一个可以用的基础函数。人类智力函数肯定就是很多很多的神经元函数凑在一起,组成了一个复杂的智力函数。每个人的智力不同,意味着,同样的输入,在不同的大脑处理后具有不同的输出,就是因为这个函数内在的数据(隐藏层)不同。
1969年Minsky的论文证明:单个神经元无法进行XOR运算。XOR需要非线性决策边界。而单层神经网络只能做出线性决策。由于数学上线性组合的性质,多个线性决策的组合仍然是线性决策。相当于这个组合出来的函数永远画直线,不会画曲线,缺乏复杂性。这种观点导致了神经网络研究的寒冬,很多研究资金被裁撤,很多研究人员调转研究方向。80年代中期,Rumelhart、Hinton和Williams等人提出了反向传播算法,配合其它的技术进步,使得双层(甚至多层)神经网络能够被有效地训练,其中的非线性激活函数实现了非线性决策功能,隐藏层相当于不同人之间具有不同的认知和智力,所以证明了其具有理论上的“万能逼近器”性质,相当于能够覆盖所有的地板空间,从而引发了研究的复兴。
既然双层神经网络已经能够覆盖所有空间,那么我们是不是就应该使用呢?正如简单的“indicator bump”函数的线性组合(例如 g(x)=∑ cᵢ𝟙(aᵢ<x<bᵢ))可以逼近任何函数,双层神经网络也可以逼近任何函数,但这种数学上的普适逼近性在实际机器学习中意义不大,原因主要有以下几点:
1. 函数不平滑
“Indicator bump”函数本质上是分段的、突然跳跃的函数,就像把一根线段切成许多小块,每一块内部恒定,而在边界处突然变化。现实中的数据通常是平滑、连续变化的,而这种不平滑的函数难以捕捉数据中的连续特性。
2. 梯度下降优化困难
现代机器学习(尤其是神经网络)通常依赖于梯度下降法来优化参数。指示函数的导数在大部分区域都是零(只有在区间边界处才有变化),这意味着几乎没有梯度信息可供模型学习,这会使得训练变得非常困难甚至无法进行。
3. 表示的紧凑性与高效性
虽然“indicator bump”组合在理论上能够表示任何函数,但它们往往需要非常多的参数和复杂的结构来逼近复杂函数。而深层神经网络通过层与层之间的组合,可以以较少的参数和更紧凑的结构,捕捉到数据中的层次性和高阶抽象,这不仅使得模型更高效,也更符合实际数据的统计特性。
4. 层次化特征提取
深层网络能够逐层提取特征:低层捕捉简单特征(比如边缘、纹理),高层则捕捉更抽象的概念(如物体、语义信息)。这种层次化的表达方式更贴近现实问题,而单层的简单模型无法做到这一点。
总的来说,虽然单层的“indicator bump”函数在数学上是一个普适逼近器,但它们不平滑、难以训练且表达能力不够紧凑,因此在实际中并不适合用作机器学习模型。相比之下,深层神经网络能更自然地捕捉数据的平滑变化和层次结构,使得它们在实际任务中表现得更好。
在选择神经网络的层次和规模时,需要综合考虑以下几个因素:
1. 数据和任务的复杂性
如果数据比较复杂、需要学习精细的决策边界,那么较深或较宽的网络能更好地捕捉层次化的特征。例如,多层网络能够先提取简单的特征,再逐步组合成更复杂的模式。
如果任务较简单,可能浅层网络就能达到基本要求,但这并不意味着我们应选择小网络来避免过拟合。
2. 模型容量与过拟合
增加层数和神经元数量会提升模型的容量,使得它能够表示更复杂的函数(如双层网络理论上可以逼近任意复杂函数)。
然而,高容量模型容易将训练数据中的噪声当作信号,从而出现过拟合。传统观点认为用小网络可以避免过拟合,但实际上,更常用的方法是利用正则化(比如 L2、dropout、输入噪声等)来控制过拟合,而不是单纯缩减网络规模。
3. 训练稳定性和优化问题
小网络虽然局部极小值较少,但这些局部极小值往往效果较差,训练结果的好坏很大程度上依赖于随机初始化的运气。
大网络拥有更多的局部极小值,但令人惊讶的是,这些极小值大多数都是相当好的,且训练时最终损失的方差较小,更容易稳定收敛。
也就是说,较大的网络在优化过程中更不容易陷入“糟糕”的局部最优。
4. 计算资源和预算
网络的大小和深度还受到实际计算资源的制约。在预算允许的情况下,倾向于使用较大的网络,再结合正则化技术来防止过拟合,从而获得更好的泛化性能。
总结来说,选择网络层次和规模时,并不是为了“害怕过拟合”而刻意缩小模型,而是应在充分表达数据复杂性的前提下,利用正则化等方法控制过拟合。同时,较大的网络往往在训练优化上更具优势,能够获得更稳定和优质的解。最终的架构设计需要在任务复杂性、模型容量、训练稳定性以及计算资源之间做出平衡。
