一、什麼是bias?網絡
偏置單元(bias unit),在有些資料裏也稱爲偏置項(bias term)或者截距項(intercept term),它其實就是函數的截距,與線性方程 y=wx+b 中的 b 的意義是一致的。在 y=wx+b中,b表示函數在y軸上的截距,控制着函數偏離原點的距離,其實在神經網絡中的偏置單元也是相似的做用。
所以,神經網絡的參數也能夠表示爲:(W, b),其中W表示參數矩陣,b表示偏置項或截距項。架構
二、bias的計算方式?ide
神經網絡結構中對偏置單元的計算處理方式有兩種,
(1)設置偏置單元=1,並在參數矩陣 Θ 中設置第 0 列對應偏置單元的參數,對應的神經網絡以下:
其中,x0 是第一層的偏置單元(設置爲1),Θ(1)10 是對應該偏置單元 x0 的參數;a(2)0 是第二層的偏置單元,Θ(2)10 是對應的參數。
在計算激活值時按照(以a(2)1爲例):
函數
至關於bias自己值爲1,但它鏈接各個神經元的權重不爲1,即---整個神經網絡只有1個bias,對應有多個不一樣的權重(權重個數等於hide層和out層神經元的個數)spa
(2)設置偏置單元,不在參數矩陣中設置對應偏置單元的參數,對應的神經網絡以下:
其中,b(1) 是 W(1) 對應的偏置單元向量,b(2) 是 W(2) 對應的偏置單元向量,b(1)1 是對應 a(2)1 的偏置單元。注意,此時神經網絡的參數表示更改成:(W, b)
在計算激活值時按照:
.net
至關於bias鏈接各個神經元的全部權重都爲1,但bias自己不爲1,即---有多個bias,但全部的bias對應的權重都爲1(bias的個數等於hide層和out層神經元的個數)blog
綜上,
二者的原理是一致的,只是具體的實現方式不一樣。
其實在大部分資料和論文中看到的神經網絡的參數都是表示爲:(W, b),其中W表明weight,b表明bias。包括在UFLDL Tutorial中也是採用 (W, b) 表示,只是在Coursera上Andrew Ng老師的在線教程中看到將神經網絡參數表示爲 Θ,我的仍是更喜歡 (W, b) 這種表示,很清晰。教程
參考資料it
http://blog.csdn.net/walilk/article/details/50278697原理