【问题标题】:How does the linear transfer function in perceptrons (artificial neural network) work?感知器(人工神经网络)中的线性传递函数如何工作?
【发布时间】:2015-12-12 14:40:47
【问题描述】:

我知道阶跃传递函数是如何工作的,但线性传递函数是如何工作的?你用什么等式? 将答案与两个输入和一个偏差与与门联系起来

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      尽管如此,“线性”激活函数当然是您可能想要采用的众多替代方法之一。但问题是,隐藏层中的纯线性传输(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 的准线性激活函数也得到了纠正。换句话说,除非您想分解系数,否则在隐藏层中不使用纯线性激活。

      【讨论】:

        猜你喜欢
        • 2014-04-03
        • 2015-01-17
        • 2014-03-15
        • 2011-11-19
        • 1970-01-01
        • 2019-01-02
        • 1970-01-01
        • 2017-09-18
        相关资源
        最近更新 更多