神经网络中的“激活”一词究竟指的是什么?

机器算法验证 神经网络 深度学习 术语
2022-03-21 03:03:55

它是指激活函数的输入还是输出?

文献似乎不一致。几个例子:

Activations = 激活函数的输入

Activations = 激活函数的输出

2个回答

神经网络的最简单表示是多层感知器或 MLP。MLP 最简单的形式只有三层。

表示的输入层,其中是训练示例的数量,是特征的数量。XRN×dNd

隐藏层,通常是 ReLU 或逻辑 sigmoid 函数。隐藏层可以是一个 ReLU 函数,表示为换句话说,如果 ReLU 函数的输入为负数,则函数输出 . 如果输入 x 为正,ReLU 函数将输出i

hi(x)=ReLU(x)=max(x,0)
0x

隐藏层馈入输出层,这只是另一个功能。该函数可以是平方误差函数(在回归的情况下)或 softmax(在多类分类的情况下)。当您考虑权重和偏差矩阵时,MLP 是完整的,但我们现在不需要它们。

激活函数正是顾名思义……一个函数。在上面的例子中,隐藏层的激活函数是 ReLU 函数。输出层的激活函数是平方误差或 softmax。

当机器学习中的某个人使用这个词时,他们几乎总是指的是激活函数的输出上例中隐藏层中可能的激活只能是activations01

请注意,隐藏激活(隐藏层的输出)可能成为其他激活函数(在本例中为输出层激活函数)的输入。预激活是激活函数的输入。

最后一点,我来自统计学背景,这是一个更古老、更发达的领域。统计中的符号非常标准。然而,在机器学习中,符号和命名法仍在不断发展,所以看到一些作者以不同的方式使用某些术语我不会感到惊讶。在阅读机器学习文本时,上下文是你最好的朋友。

就个人而言,我会说神经元的激活是激活函数的输出但正如您所展示的,文献中显然存在不一致之处。那么,我如何证明我的直觉与Goodfellow et al., 2016 等非常重要的已发表文本相比是正确的。

为了说明为什么它应该是输出,我们可以首先借鉴神经科学中的命名法,因为这是我们首先从中得出大部分术语的地方。例如,A. Hoffmann (2001)写道(引用在这里找到):

神经激活大多是循环刺激的。一个神经元被它所连接的其他神经元激活。反过来,它自己的激活会刺激其他连接的神经元激活。

这里,很明显,神经元的激活是刺激先行神经元的,即它必须是神经元的输出。

其次,尽管命名了数学符号,Goodfellow 等人。在这段话中也暗示了同样的结论 (第 165 页):

每个单元类似于一个神经元,因为它接收来自许多其他单元的输入并计算自己的激活值。

最后,在您引用 Goodfellow 等人的文章中。(2016),他们确实将称为“预非线性激活”(尽管在算法描述中将其称为“激活”)。明确指定这一事实对我来说意味着另一种“激活”是该术语的主要用途。a(k)