給定一個只含有一層隱藏層的感知機模型,給定一個小批量樣本X∈Rn×d,其批量大小爲n,輸入個數爲d。感知機隱藏單元個數爲h。記隱藏層的輸出(也稱爲隱藏層變量或隱藏變量)爲H,有H∈Rn×h。因爲隱藏層和輸出層均是全連接層,可以設隱藏層的權重參數和偏差參數分別爲Wh∈Rd×h和bh∈R1×h,輸出層的權重和偏差參數分別爲Wo∈Rh×q和bo∈R1×q。
先來看一種含單隱藏層的多層感知機的設計。其輸出O∈Rn×q的計算爲:H=XWh+bhO=HWo+bo也就是將隱藏層的輸出直接作爲輸出層的輸入。如果將以上兩個式子聯立起來,可以得到O=(XWh+bh)Wo+bo=XWhWo+bhWo+bo從聯立後的式子可以看出,雖然神經網絡引入了隱藏層,卻依然等價於一個單層神經網絡,其中輸出層的權重參數爲WhWo,偏差參數爲bhWo+bo。
不難發現,即使再添加更多的隱藏層,以上設計依然只能與僅含輸出層的單層神經網絡等價。
上述問題的根源在於全連接層只是對數據做仿射變換,而多個仿射變換的疊加仍然是一個仿射變換。解決問題的一個方法是引入非線性變換,例如對隱藏變臉使用按元素運算的非線性函數進行變換,然後再作爲下一個全連接層的輸入。這個非線性函數被稱爲激活函數。
常用的激活函數有ReLU函數,sigmoid函數和tanh函數。