神經網絡爲什麼需要激活函數

給定一個只含有一層隱藏層的感知機模型,給定一個小批量樣本XRn×dX\in\mathbb{R}^{n\times d},其批量大小爲n,輸入個數爲d。感知機隱藏單元個數爲h。記隱藏層的輸出(也稱爲隱藏層變量或隱藏變量)爲H,有HRn×hH\in\mathbb{R}^{n\times h}。因爲隱藏層和輸出層均是全連接層,可以設隱藏層的權重參數和偏差參數分別爲WhRd×hW_h\in\mathbb{R}^{d\times h}bhR1×hb_h\in\mathbb{R}^{1\times h},輸出層的權重和偏差參數分別爲WoRh×qW_o\in\mathbb{R}^{h\times q}boR1×qb_o\in\mathbb{R}^{1\times q}

先來看一種含單隱藏層的多層感知機的設計。其輸出ORn×qO\in \mathbb{R}^{n\times q}的計算爲:H=XWh+bhH=XW_h+b_hO=HWo+boO=HW_o+b_o也就是將隱藏層的輸出直接作爲輸出層的輸入。如果將以上兩個式子聯立起來,可以得到O=(XWh+bh)Wo+bo=XWhWo+bhWo+boO=(XW_h+b_h)W_o+b_o=XW_hW_o+b_hW_o+b_o從聯立後的式子可以看出,雖然神經網絡引入了隱藏層,卻依然等價於一個單層神經網絡,其中輸出層的權重參數爲WhWoW_hW_o,偏差參數爲bhWo+bob_hW_o+b_o

不難發現,即使再添加更多的隱藏層,以上設計依然只能與僅含輸出層的單層神經網絡等價。

上述問題的根源在於全連接層只是對數據做仿射變換,而多個仿射變換的疊加仍然是一個仿射變換。解決問題的一個方法是引入非線性變換,例如對隱藏變臉使用按元素運算的非線性函數進行變換,然後再作爲下一個全連接層的輸入。這個非線性函數被稱爲激活函數。

常用的激活函數有ReLU函數,sigmoid函數和tanh函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章