当前位置: 首页>編程日記>正文

【神经网络】激活函数的作用及常用激活函数

【神经网络】激活函数的作用及常用激活函数

一、激活函数的作用

激活函数(activation function)的作用是去线性化,神经网络节点的计算就是加权求和,再加上偏置项:
ai=∑ixiwi+ba_i=\sum_ix_iw_i+bai=ixiwi+b
这是一个线性模型,将这个计算结果传到下一个节点还是同样的线性模型。只通过线性变换,所有的隐含层的节点就无存在的意义。原因如下:假设每一层的权值矩阵用W(i)W^{(i)}W(i)表示。那么存在一个W′W'W使:
W′=W(1)W(2)…W(n)W'=W^{(1)}W^{(2)}…W^{(n)}W=W(1)W(2)W(n)
那么,n层隐含层就可以全部变成一个隐含层,隐含层的数量就没有任何意义。所以使用激活函数将其去线性化。种种情况下,W′=W(1)W(2)…W(n)W'=W^{(1)}W^{(2)}…W^{(n)}W=W(1)W(2)W(n)不再成立,每层隐含层都有其存在的意义。

下面有更详细的解释,改内容来自《TensorFlow实战Google深度学习框架》(第2版)。在这里插入图片描述

二、常用激活函数

人工神经网络中常用到激活函数(activation function):ReLuSigmoid

2.1 ReLu

线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元。其函数表达式如下:
f(x)=max(0,x)f(x)=max(0,x)f(x)=max(0,x)
其函数图像图下:
在这里插入图片描述
其含义就是,如果输入的x>0x>0x>0,那么f(x)=xf(x)=xf(x)=x;如果x<0,那么f(x)=0f(x)=0f(x)=0

2.2 Sigmoid

Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。其函数表达式如下:
f(x)=11+e−xf(x)=\dfrac{1}{1+e^{-x}}f(x)=1+ex1
其函数图像图下:
在这里插入图片描述
可以看到在趋于正无穷或负无穷时,函数趋近平滑状态,sigmoid函数因为输出范围(0,1),所以二分类的概率常常用这个函数。

sigmoid函数曾经被使用的很多,不过近年来,用它的人越来越少了。主要是因为它固有的一些缺点,下面将根据其导数对其缺点进行分析,导数图像如下:
在这里插入图片描述
缺点:

  • 在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大。
    如果我们初始化神经网络的权值为[0,1][0,1][0,1]之间的随机值,由反向传播算法的数学推导可知,梯度从后向前传播时,每传递一层梯度值都会减小为原来的0.25倍,如果神经网络隐层特别多,那么梯度在穿过多层后将变得非常小接近于0,即出现梯度消失现象;当网络权值初始化为(1,+∞)(1,+\infty)(1,+)区间内的值,则会出现梯度爆炸情况。
  • Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。 产生的一个结果就是:如x>0,f=wTx+bx>0,f=w^Tx+bx>0,f=wTx+b,那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。
    当然了,如果按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的梯度消失问题相比还是要好很多的。
  • 其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。

参考:https://blog.csdn.net/tyhj_sf/article/details/79932893


https://www.fengoutiyan.com/post/14196.html

相关文章:

  • 神经网络sigmoid函数
  • 神经网络的函数
  • 神经网络回归 激活函数
  • 神经网络的损失函数
  • 神经网络公式
  • 卷积神经网络激活函数的作用
  • relu激活函数
  • 神经网络拟合函数
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機