【深度學習之美12】感知機是如何工作的?
來自專欄深度學習之美5 人贊了文章
7.5 感知機的負反饋糾偏機制
中國有句古話:
「知錯能改,善莫大焉。」
說的就是,犯了錯誤而能改正,沒有比這更好的事了。
放到機器學習領域,這句話顯然屬於「監督學習」的範疇。因為「知錯」,就表明事先已有了事物的評判標準,如果你的行為不符合(或說偏離)這些標準,那麼就要根據「偏離的程度」,來「改善」自己的行為。
下面,我們就根據這個思想來制訂感知機的學習規則。
從前面的討論中,我們已經知道,感知機學習屬於「有監督學習」(即分類演算法)。感知機有明確的結果導向性。
這有點類似於「不管白貓黑貓,抓住老鼠就是好貓」的說法,不管是什麼樣的學習規則,能達到良好的分類目的,就是好的學習規則。
我們知道,對象本身的特徵值,一旦訓練樣本確定下來就不會變化,可視為常數。
因此,所謂的神經網路的學習規則,就是調整神經元之間的連接權值和神經元內部閾值的規則(這個結論對於深度學習而言,依然是適用的)。
假設我們的規則是這樣的:
(7-2)
其中,為期望輸出,是實際輸出。也就是說,是二者的「落差」。在後面,讀者可以看到,這個「落差」就是整個網路中權值和閾值的調整動力。很顯然,如果為0,即沒有誤差可言,那麼新、舊權值和閾值都是一樣的,網路就穩定可用了!
下面,我們就用上面的學習規則來模擬感知機的學習過程。假設w1和w2的初始值隨機分配為1和-1(注意,已經不再是前面提到的1和1了!),閾值依然為0(事實上為其他初值也是可行的,這裡僅為說明問題而做了簡化),那麼我們遵循如下步驟,即可完成判定西瓜的學習。
(1)計算判定西瓜的輸出值f:
將這個輸出值帶入如下圖(b)所示的階躍函數中,可得實際輸出y』=f=0。
(2)顯然,針對西瓜,我們期望輸出的正確判定是:y=1,而現在實際輸出的值=0,也就是說,實際輸出有誤。這個時候,就需要糾偏。而糾偏,就需要利用公式(7-2)所示的學習規則。於是,我們需要計算出誤差。
(3)計算誤差:
現在,把的值帶入公式(7-2)所示的規則中,更新網路的權值和閾值,即:
那麼,在新一輪的網路參數(即權值、閾值)重新學習後,我們再次輸入西瓜的屬性值,測試一下,看看它能否正確判定:
再經過激活函數(階躍函數)處理後,這次很好,實際輸出結果f=y』=1,判定正確!
我們知道,一個對象的類別判定正確,不能算好。於是,在判定西瓜正確後,我們還要嘗試在這樣的網路參數下,看看香蕉的判定是否也是正確的:
類似的,經過激活函數(階躍函數)處理後,實際輸出結果y』=f=0,判定也正確!誤差為0。
在這個示例里,僅僅經過一輪「試錯法」,我們就搞定了參數的訓練,但你可別高興太早,誰叫這是一個「Hello World」版本的神經網路呢!
事實上,在有監督的學習規則中,我們需要根據輸出與期望值的「落差」,經過多輪重試,反覆調整神經網路的權值,直至這個「落差」收斂到能夠忍受的範圍之內,訓練才告結束。
7.6 感知機的幾何意義
下面我們來分析一下感知機的幾何意義。由感知機的功能函數定義可知,它是由兩個函數複合而成:內部為神經元的輸出彙集函數,外部為激活函數,將彙集函數的輸出,作為激活函數的輸入。如果識別對象x有n個特徵,內部函數就是如下公式所示的輸入彙集。
若令其等於零,即,該方程可視為一個在n維空間的超平面P。那麼感知機以向量的模式寫出來就是:(如圖7-6所示),這裡,「」表示輸入向量x和權值向量w的內積。
這樣一來的話,對於超平面一側的實例,它表示點落在超平面的正半空間,此時激活函數,即感知機輸出為1(判定為正類),而對於超平面的另外一側實例,表示點落在超平面的負半空間,此時激活函數,即感知機輸出為0(判定為負類)。
於是,感知機可看做一個由超平面劃分的空間位置的識別器。
當特徵n為兩三個維度時,人們尚可利用它的幾何空間來直觀解釋這個分類器,但當n更大時,人們很難再用它的幾何意義來研究神經網路。
本文部分節選自《深度學習之美:AI時代的數據處理與最佳實踐》(張玉宏著,電子工業出版社,2018年7月出版)。更多理論推導及實戰環節,請參閱該書。
(連載待續)
推薦閱讀:
TAG:深度學習DeepLearning | TensorFlow | 神經網路 |