神經網路中的值為1的偏置項b到底是什麼?

2021-08-28 01:17:40 字數 1516 閱讀 5768

前言 很多人不明白為什麼要在神經網路、邏輯回歸中要在樣本x的最前面加乙個1,使得 x=[x1,x2,…,xn] 變成 x=[1,x1,x2,…,xn] 。因此可能會犯各種錯誤,比如漏了這個1,或者錯誤的將這個1加到w·x的結果上,導致模型出各種bug甚至無法收斂。究其原因,還是沒有理解這個偏置項的作用啦。

在文章《邏輯回歸》和《從邏輯回歸到神經網路》中,小夕為了集中論點,往往忽略掉模型的偏置項b,但是並不代表在實際工程和嚴謹理論中也可以忽略掉啊,恰恰相反,這個灰常重要的。

在文章《從邏輯回歸到神經網路》中,小夕為大家講解了,乙個傳統的神經網路就可以看成多個邏輯回歸模型的輸出作為另乙個邏輯回歸模型的輸入的「組合模型」。因此,討論神經網路中的偏置項b的作用,就近似等價於討論邏輯回歸模型中的偏置項b的作用。

所以,我們為了減小思維量,不妨從邏輯回歸模型的偏置項說起,實際上就是複習一下中學數學啦。

基礎回顧

我們知道,邏輯回歸模型本質上就是用 y=wx+b 這個函式畫決策面,其中w就是模型引數,也就是函式的斜率(回顧一下初中數學的 y=ax+b ),而b,就是函式的截距。

一維情況下,令w=[1], b=2。則y=wx+b如下(一條截距為2,斜率為1的直線):

1530775769544.png

二維情況下,令w=[1 1],b=2,則y=wx+b如下(乙個截距為2,斜率為[1 1]的平面)

1530775769981.png

顯然,y=wx+b這個函式,就是2維/3維/更高維空間的直線/平面/超平面。因此邏輯回歸當然是線性分類器啦。因此如果沒有這個偏置項b,那麼我們就只能在空間裡畫過原點的直線/平面/超平面。這時對於絕大部分情況,比如下圖,要求決策面過原點的話簡直是災難。

1530775769623.png

因此,對於邏輯回歸來說,必須要加上這個偏置項b,才能保證我們的分類器可以在空間的任何位置畫決策面(雖然必須畫的直直的,不能彎,嚶…)。

神經網路的偏置項

同樣的道理,對於多個邏輯回歸組成的神經網路,更要加上偏置項b了。但是想一想,如果隱層有3個節點,那就相當於有3個邏輯回歸分類器啊。這三個分類器各畫各的決策面,那一般情況下它們的偏置項b也會各不相同的呀。比如下面這個複雜的決策邊界就可能是由三個隱層節點的神經網路畫出來的:

1530775769706.png

那如何機智的為三個分類器(隱節點)分配不同的b呢?或者說如果讓模型在訓練的過程中,動態的調整三個分類器的b以畫出各自最佳的決策面呢?

那就是先在x的前面加個1,作為偏置項的基底,(此時x就從n維向量變成了n+1維向量,即變成 [1, x1,x2…] ),然後,讓每個分類器去訓練自己的偏置項權重,所以每個分類器的權重就也變成了n+1維,即[w0,w1,…],其中,w0就是偏置項的權重,所以1*w0就是本分類器的偏置/截距啦。這樣,就讓截距b這個看似與斜率w不同的引數,都統一到了乙個框架下,使得模型在訓練的過程中不斷調整引數w0,從而達到調整b的目的。

所以,如果你在寫神經網路的**的時候,要是把偏置項給漏掉了,那麼神經網路很有可能變得很差,收斂很慢而且精度差,甚至可能陷入「僵死」狀態無法收斂。因此,除非你有非常確定的理由去掉偏置項b,否則不要看它小,就丟掉它哦。

神經網路偏置項b的作用

神經網路中的偏置項b到底是什麼?前言很多人不明白為什麼要在神經網路 邏輯回歸中要在樣本x的最前面加乙個1,使得 x x1,x2,xn 變成 x 1,x1,x2,xn 因此可能會犯各種錯誤,比如漏了這個1,或者錯誤的將這個1加到w x的結果上,導致模型出各種bug甚至無法收斂。究其原因,還是沒有理解這...

神經網路中的偏置項b到底是什麼?

前言很多人不明白為什麼要在神經網路 邏輯回歸中要在樣本x的最前面加乙個1,使得 x x1,x2,xn 變成 x 1,x1,x2,xn 因此可能會犯各種錯誤,比如漏了這個1,或者錯誤的將這個1加到w x的結果上,導致模型出各種bug甚至無法收斂。究其原因,還是沒有理解這個偏置項的作用啦。在文章 邏輯回...

神經網路中w,b引數的作用(偏置B的作用)

可檢視講解神經元w,b引數的作用 在我們接觸神經網路過程中,很容易看到就是這樣乙個式子,g wx b 其中w,x均為向量.比如下圖所示 加入啟用函式為g x 我們就可以用公式g w1x1 w2x2 b 其中b為神經元的偏置.那麼w,b這些引數的作用有沒有最直觀的感受呢?以及我當時學習的時候問師兄的,...