感知器(人工神经网络)中的线性传递函数如何工作?

时间:2015-09-16 06:38:01

标签: neural-network artificial-intelligence perceptron transfer-function

我知道步传递函数是如何工作的,但线性传递函数如何工作?你用什么方程式?  通过两个输入和一个偏差

将AND门的答案联系起来

2 个答案:

答案 0 :(得分:1)

首先,一般来说,您只想在MLP的输出层中应用线性传递函数,而在隐藏层中应用“从不”,其中通常使用非线性传递函数(逻辑函数,步骤等。 )。

线性传递函数(以f(x)= x的形式表示纯线性或 purelin ,因为它在文献中提到)通常用于函数逼近/回归任务(这是直观的,因为step和logistic函数给出二元结果,其中线性函数给出连续的结果。)

非线性传递函数用于分类任务。

答案 1 :(得分:1)

非线性传递函数(又名:激活函数)是将非线性逼近能力分配给简单完全连通多层神经网络的最重要因素。

然而,'线性'当然,激活功能是您可能想要采用的众多替代方案之一。但问题是,隐藏层中的纯线性传递(f(x)= x)对我们来说没有意义,这意味着它可能是徒劳的。如果我们尝试训练一个网络,其隐藏单位由纯线性函数激活。

我们可以通过以下方式了解此过程:

假设f(x)= x是我们的激活函数,我们尝试训练一个具有2个输入单元(x1,x2),3个隐藏单元(a1,a2,a3)和1个输出单元的隐藏层网络( Y)。 因此,网络尝试近似函数:

# hidden units
a1 = f(w11*x1+w12*x2+b1) = w11*x1+w12*x2+b1
a2 = f(w21*x1+w22*x2+b2) = w21*x1+w22*x2+b2
a3 = f(w31*x1+w32*x2+b3) = w31*x1+w32*x2+b3

# output unit
y = c1*a1+c2*a2+c3*a3+b4

如果我们将所有这些方程组合起来,结果证明:

y = c1(w11*x1+w12*x2+b1) + c2(w21*x1+w22*x2+b2) + c3(w31*x1+w32*x2+b3) + b4
  = (c1*w11+c2*w21+c3*w31)*x1 + (c1*w12+c2*w22+c3*w32)*x2 + (c1*b1+c2*b2+c3*b3+b4)
  = A1*x1+A2*x2+C

如上所示,线性激活将网络简化为单个输入 - 输出线性产品,而不管网络的结构如何。在培训过程中所做的是将A1,A2和C分解为各种因素。

甚至一个非常流行的准线性激活函数调用深度神经网络中的Relu也得到了纠正。换句话说,除非您想要分解系数,否则不会使用隐藏层中的纯线性激活。