为什么神经网络是平滑函数?

机器算法验证 机器学习 神经网络 数理统计
2022-03-02 09:33:46

我正在阅读 Elements of Statistical learning 的第 11 章,遇到了这句话:

“与 CART 和 MARS 等方法不同,神经网络是实值参数的平滑函数”

这里的“平滑函数”是什么意思?我遇到过诸如平滑样条曲线之类的事情,但我不确定“平滑函数”更普遍的含义。

继上述之后,是什么让神经网络特别平滑函数?

3个回答

平滑函数具有连续导数,达到某个指定的阶数。至少,这意味着该函数是连续可微的(即一阶导数无处不在并且是连续的)。更具体地说,一个函数是Ck如果第一次通过则平滑k三阶导数无处不在,并且是连续的。

神经网络可以写成基本函数的组合(通常是仿射变换和非线性激活函数,但还有其他可能性)。例如,在前馈网络中,每一层都实现一个函数,其输出作为输入传递给下一层。从历史上看,神经网络往往是平滑的,因为用于构建它们的基本函数本身是平滑的。特别是,非线性激活函数通常被选择为平滑的 sigmoidal 函数,如tanh或逻辑 sigmoid 函数。

然而,这句话通常不是真的。现代神经网络经常使用分段线性激活函数,如整流线性 ( ReLU ) 激活函数及其变体。虽然这个函数是连续的,但它并不平滑,因为导数不存在于零。因此,使用这些激活函数的神经网络也不是平滑的。

事实上,这句话通常不是真的,即使在历史上也是如此。McCulloch-Pitts 模型是第一个人工神经网络。它由输出二进制值的阈值线性单元组成。这相当于使用阶跃函数作为激活函数。这个函数甚至不是连续的,更不用说平滑了。

它们指的是平滑度,正如数学中所理解的那样,是一个连续可微的函数。正如尼克 S在 math.stackexchange.com 上解释的那样:

平滑函数实际上比连续函数更强。对于连续的函数,连续性的 epsilon delta 定义只需保持不变,因此函数中没有中断或漏洞(在二维情况下)。为了使函数平滑,它必须具有达到特定阶数的连续导数,例如 k。

math.stackexchange.com 上的一些答案提到了无限可微性,但在机器学习中,该术语更适用于非必要无限可微性的松散意义,因为我们宁愿不需要任何事物的无限可微性。

这可以使用scikit-learn 网站(下)上使用的图来说明,显示了不同分类器的决策边界。如果您查看决策树、随机森林或 AdaBoost,决策边界是重叠的矩形,具有锐利、快速变化的边界。对于神经网络,边界在数学意义上和通常的日常意义上都是平滑的,我们说某些东西是平滑的,即相当圆的东西,没有锋利的边缘。这些是分类器的决策边界,但这些算法的回归模拟几乎相同。

在此处输入图像描述

决策树是一种算法,它输出许多自动生成的if ... else ...语句,这些语句通向最终节点,并在其中进行最终预测,例如if age > 25 and gender = male and nationality = German then height = 172 cm按照设计,这会产生以“跳跃”为特征的预测,因为一个节点会预测height = 172 cm而另一个节点height = 167 cm可能没有任何中间节点。

MARS 回归是根据带有“中断”的分段线性单元构建的,因此使用单个特征时的回归方程x, 和两次休息, 可能如下所示

y=b+w1max(0,xa1)+w2max(0,xa2)

请注意,函数是一个连续但不可微的元素(它甚至在 Wikipedia 中用作示例),因此输出不会是平滑的。max

神经网络是根据层构建的,其中每一层都是由神经元构建的,例如

h(x)=σ(wx+b)

所以当神经元平滑时,输出也会平滑。但是请注意,如果您使用具有一个隐藏层的神经网络,其中使用两个神经元,在隐藏层上激活,在输出层上进行线性激活,那么网络可能是像ReLU(x)=max(0,x)

y=b+w1(2)ReLU(w1(1)x+a1)+w2(2)ReLU(w2(1)x+a2)

这与 MARS 的模型几乎相同,因此也不是平滑的……还有其他示例,现代神经网络架构不需要导致平滑的解决方案,因此该陈述通常不正确。

写这本书时,没有人使用 relu 。书中甚至没有提到。所有激活都是平滑的 sigmoid。在这种情况下,神经网络输出确实是其参数(例如权重和偏差)的平滑函数。这就是你如何让反向传播工作得很好但很慢。一旦 relu 出现,导数计算变得更快,因为它变成了分段线性而不是平滑非线性