神经网络的通用逼近定理解析

机器学习深度学习的领域中,神经网络被用于执行众多任务。这引发了一个问题:为什么它们如此强大?本文提出一种解释——通用逼近定理。让从定义开始。简而言之,通用逼近定理表明神经网络可以逼近任何函数。这意味着任何可以被视为函数计算的任务,都可以由神经网络执行或计算。几乎神经网络今天所做的任何任务都是函数计算——无论是语言翻译、标题生成、语音转文本等。如果有人问,对于任何函数计算需要多少层?答案是只需要1层。

在本文中,将尝试理解为什么这个定理是正确的。

注意事项

有两个重要的事实需要注意:

  1. 重要的是要意识到使用的词是“逼近”。这意味着计算的函数不是精确的。然而,随着层中的计算单元,即神经元数量的增加,这种逼近可以被改进,并且可以适应所需的精度。
  2. 以这种方式计算的函数是连续函数。对于不连续函数,这种普遍性不成立。然而,通常情况下,连续函数足以替代不连续函数,因此神经网络可以工作。

让继续理解这个非常重要的定理。在跳转到视觉证明之前,让看一下感知器——神经网络的基本计算单元。

感知器

感知器可以被理解为神经网络的基本计算单元。在上述图表中,输入x_i通过x_n乘以它们各自的权重w_i通过w_n。这形成了加权输入,然后这些输入被求和(Σ w_i x_i)。接下来,这个和通过一个阈值/激活函数,该函数充当开/关开关。如果和的值大于某个阈值,它允许神经元发射,否则输入被抑制。这是构成输出的最终值。激活函数也是非线性的神奇成分,没有它,感知器最终将是输入的线性组合。将使用激活函数sigmoid来理解基础。

将sigmoid转换为步进函数

打算对大于阈值的输入输出1,对小于阈值的输入输出0。sigmoid函数正是这样做的。但是,sigmoid函数的斜率存在问题。在输出层,打算将隐藏层神经元的输出相加。直接加整数比加sigmoid函数的实数输出要容易。因此,需要一个步进函数。结果表明,当应用足够的权重时,sigmoid函数可以被调整以表现得就像一个步进函数。所以,为了让工作更容易,将这样做。

使用感知器理解证明

让开始使用单个感知器在隐藏层(隐藏层是除了输入和输出层之外的层)计算函数。来绘制一个布尔AND函数(这与证明无关)。这个函数的域和范围都是布尔值{0,1}。在输出(更大的圆)中,输入正在相加。这个神经元只有在接收到的两个输入都是1时才会发射,否则不会。发射意味着输出是1,不发射意味着输出是0。

这个证明紧密跟随Michael Nilson在他的神经网络教科书中提供的视觉证明,链接在参考资料部分提供。如果想要绘制一个函数,其中只有在输入值位于T1和T2之间时输出1,而在所有其他情况下输出0,怎么办?为此,需要两个感知器接受相同的输入,但具有不同的阈值。2个感知器的网络形成一个MLP——多层感知器。注意,输出层具有加性激活。

这个图表看起来像一个矩形。面对连续函数,可以组合许多这样的矩形,以适应函数的边界。在架构方面,可以堆叠多个感知器来实现这个函数。

这是讨论的函数的近似。但是,等等,直到现在所看到的只是加权输入的组合。从未将其通过最终神经元的sigmoid函数(在上面的图像中,更大的圆具有加法作为其函数,并且从未跟随sigmoid)。所以呢?这很容易。假设最终输出神经元的偏置为0,需要这个隐藏层计算σ^-1的原始函数。函数的逆给出了函数给出输出的原始值。换句话说,逆的重要属性是:

f(g(x)) = g(f(x)) = x其中f(x)g(x)的逆(也记作g^-1(x))。

因此,σ^-1(σ(y)) = σ(σ^-1(y)) = y其中y是打算计算的原始函数。所以隐藏层计算逆函数,最终激活将其反转回原始函数。逆函数仍然是一个函数,可以使用上述矩形的概念进行近似。

  • Michael Nilson的视觉证明:
  • CMU Lecture 2: 通用逼近定理:
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485