二維可視圖講解神經元w,b參數的作用

在我們接觸神經網路過程中,很容易看到就是這樣一個式子,g(wx+b),其中w,x均為向量.比如下圖所示:

加入激活函數為g(x),我們就可以用公式g(w_{1}x_{1}+ w_{2}x_{2} +b)來表示神經元的輸出.其中b為神經元的偏置.那麼w,b這些參數的作用有沒有最直觀的感受呢?以及我當時學習的時候問師兄的,每個神經元為什麼要加上偏置b,不加又有什麼後果呢?下面通過二維可視化圖來直觀說明一下它們的作用:

加入我們激活函數用的是sigmoid函數,它的圖像如下:

我們很容易看到sigmoid函數的作用是將輸入映射到一個[0,1]的輸出範圍

現在我們還是有一個簡單的任務,需要將下面三角形和圓形進行分類:

利用上面神經元訓練可以得到一個直線,去線性分開這些數據點.方程如下:

w_{1}x_{1}+  w_{2}x_{2}+b=0,我們就可以得到下面這條類似的直線去線性分割好倆種不同類型的數據點.

那麼這條邊界找到了.而這個邊界是w_{1}x_{1}+  w_{2}x_{2}+b=0的方程,而w_{1}x_{1}+  w_{2}x_{2}+b是作為激活函數sigmoid的輸入處理.激活函數將輸入映射到[-1,1]的範圍內.那麼可以增加一個維度來表示激活函數的輸出.我們認為g(x)>0.5就為正類(這裡指圓形),g(x)<0.5就為負類,這裡指三角形類.得到的三維圖如下:

圖來自:Hugo Larochelle課程ppt

那麼就可以真正的可視化說明一下w,b等參數的作用在圖中是怎麼體現的~

我們從上圖很容易得到,當我們將這個三維圖進行投影的時候,就是我們上個用直線分割好倆類的平面圖,三維圖中的那個豎直平面投影下來就是方程w_{1}x_{1}+  w_{2}x_{2}+b=0.右邊輸出為1的部分就是說w_{1}x_{1}+  w_{2}x_{2}+b>0,導致激活函數輸出>0.5,從而分為正類( 圓形類),左邊輸出為-1的部分就是說w_{1}x_{1}+  w_{2}x_{2}+b<0,導致激活函數輸出<0.5,從而分為負類( 三角形類)

  • w參數的作用

其中w參數的作用,我們可以得到,是決定那個豎直平面的方向所在.豎直平面的投影就是直線w_{1}x_{1}+  w_{2}x_{2}+b=0

我們解釋如下,在二個輸入中,可以得到.w=[w_{1},w_{2}]  ,令方程w_{1}x_{1}+  w_{2}x_{2}+b=0,那麼該直線的斜率就是-frac{w_{1} }{w_{2} } x_{1} 。隨著w_{1},w_{2}  的變動,直線的方向也在改變,那麼豎直平面的方向也在改變~

  • b參數的作用

其中b參數的作用,是決定豎直平面沿著垂直於直線方向移動的距離,當b>0的時候,直線往左邊移動,當b<0的時候,直線往右邊移動.

我們通過例子解釋如下:首先我們可以肯定是直線方向不變,因為我們沒有動斜率的任何參數,只是改變b,要說明的就是為什麼當b>0的時候,直線往左邊移動,當b<0的時候,直線往右邊移動.

假設我們有直線方程x_{1}+x_{2}-3=0  ,畫出這個圖像如下:

此時我們將b減小到0,圖像變為如下:

我們從上面圖像中很容易得到結論:

為什麼當b>0的時候,直線往左邊移動,當b<0的時候,直線往右邊移動.

有了b參數可視化作用之後,我們很容易解決我一開始的問題.每個神經元為什麼要加上偏置b,不加又有什麼後果呢?下面通過二維可視化圖來直觀說明一下它們的作用:

  • 每個神經元為什麼要加上偏置

我先不說為什麼一定要加入偏置b,就還是上面的分類問題,假如我現在的樣本點是如下這種:

此時我們希望得到的線性方程分割線是下面這種,能夠正確的將倆類進行分開:

到這個時候,我想我們已經明白了,如果沒有偏置b的話,我們所有的分割線都是經過原點的,但是現實問題並不會那麼如我們所願.都是能夠是經過原點線性可分的. 那麼我們加入偏置b的作用可以理解為增強了神經元的表達能力.到這裡為止,已經全部解釋完了上面的問題,歡迎大家交流指錯~

參考自:Hugo Larochelle 教授的深度學習課程

感謝德川的交流~

最近開通了個人公眾號 [憶臻筆記] 或者微信號 [yizhennotes],用於記錄自己在本科,碩士甚至博士期間關於ml,nlp學習和生活的筆記和感悟,可能沒有很難很偏的知識,但一定是我理解的乾貨~歡迎關注~期待和你一起學習交流~


推薦閱讀:

關於深度學習的機理,優化和網路結構的一些個人觀點(二).
一個相關濾波跟蹤的簡單教程(附實現demo)
李宏毅機器學習2016 第二十二講 循環神經網路RNN
《Web安全之機器學習入門》上市
通往無限層神經網路 (1):對於殘差網路(Residual Network)的一種理解方法,與深層網路的訓練

TAG:神经网络 | 机器学习 | 深度学习DeepLearning |