激活仅用于非线性或两个问题。我仍然很困惑,为什么我们需要激活功能以及它如何提供帮助。
答案 0 :(得分:1)
通常,这样的问题将适用于Stats Stackexchange或Data Science Stackexchange,因为它只是一个理论上的问题,与编程无关(Stackoverflow的目的)。
无论如何,我假设当您谈论“两个问题”时,都是指线性可分离和非线性可分离问题的类。 实际上,无论您要使用神经网络解决哪种问题,都始终使用函数中的非线性。将非线性作为激活函数的简单原因如下:
形式上-这可能是您以前见过的-您可以表达单层F
的数学运算,并将其输入h
为:
F(h) = Wh + b
其中W
代表权重矩阵,加上偏差b
。此操作是纯粹顺序的,对于一个简单的多层感知器(具有n
层且没有非线性),我们可以将计算公式编写如下:
y = F_n(F_n-1(F_n-2(...(F_1(x))))
等效于
y = W_n W_n-1 W_n-2 ... W_1 x + b_1 + b_2 + ... + b_n
具体来说,我们注意到这些只是乘法和加法,我们可以按照自己喜欢的任何方式对其进行重新排列;特别是we could aggregate this into one uber-matrix W_p并偏向b_p,以一个公式将其重写:
y = W_p x + b_p
它具有与上述多层感知器相同的表达能力,但是可以固有地由单层建模! (尽管参数要比以前少得多。)
对该方程引入非线性将简单的“构建基块” F(h)
转换为:
F(h) = g(Wh + b)
现在,不再可能重新排列一系列层,然后非线性进一步允许我们approximate any arbitrary function。
编辑: 为了解决您的另一个问题(“它有什么帮助?”),我应该明确提到并非每个函数都是线性可分离的,因此不能通过纯线性网络(即没有非线性)来解决。一个经典的简单示例是XOR operator。