zoukankan      html  css  js  c++  java
  • 为什么需要非线性激活函数

    这是神经网络正向传播方程,为什么不能直接使a[1] = z[1] , a[2] = z[2] ,即 g ( z ) = z 

    这是因为他们直接把输入值输出了

    为了说明问题,若a[2] = z[2 这个模型的输出y或y帽不过是你输入特征x的线性组合

    a[1] = z[1] = w[1]x + b[1]

    a[2] = z[2] = w[2]x + b[2]

    带入a[1]的定义,就发现,a[2] = w[2]( w[1]x + b[1] )+ b[2] = ( w[2]w[1] )x  +  ( w[2]b[1] +b[2]  )

                                                                                             =            w' x    +    b'

    可以看出,如果用线性激活函数,或者叫恒等激活函数,那么神经网络只是把输入的线性组合再输出

    后续的例子中会看到,如果使用线性激活函数或者不使用激活函数,那么无论你的神经网络有多少层,一直在做的只是计算线性激活函数,所以不如直接去掉全部隐藏层。因为这种算法和没有任何隐藏层的标准逻辑logistic回归是一样的

    只有一个地方可以使用线性激活函数g(z) = z 就是如果你要机器学习的是回归问题,所以y是一个实数,比如说,你想预测房地产价格,所以y不是0和1,而是一个实数,那么用线性激活函数也许可行。但是隐藏单元不能用线性激活函数,它们可以用ReLU或者tanh或者带泄露的ReLU或者别的东西。

    所以唯一可以用线性激活函数的地方通常是输出层

  • 相关阅读:
    c--日期和时间函数
    笔试题:360找镇长的题。
    【JavaScript】BOM和DOM
    也谈在 .NET 平台上使用 Scala 语言(续)
    生成n个元素的全排列 C实现
    jsp安全性问题
    stm32DMA通道 ADC通道
    POJ 1860
    Codeforces Round #FF (Div. 2) A. DZY Loves Hash
    Configure the modules to be find by modprobe
  • 原文地址:https://www.cnblogs.com/nhdmmdxq/p/9553428.html
Copyright © 2011-2022 走看看