1. 程式人生 > >Hinton Neural Networks課程筆記2b:第一代神經網路之感知機

Hinton Neural Networks課程筆記2b:第一代神經網路之感知機

感知機可以說是最簡單最經典的神經網路模型了,簡單而言就是對輸入加權求和之後,得到一個評價值和一個threshold比較,從而進行分類。只能求取線性分類面,極大依賴於特徵提取,但速度極快,適用於特徵維度很大的情況。

傳統模式識別框架

傳統統計模式識別的標準流程分為三步,首先進行特徵提取,然後學習一個加權求和,最後把求和得到的值與一個threshold比較,高於threshold即為正樣本,低於則為負樣本。而這個權重的學習方式不同,則形成了不同的模型。
perceptron architecture

感知機的歷史

Hinton還介紹了一下感知機的歷史,這部分筆者還蠻感興趣的。
剛開始提出的時候(1960左右)學界對其期望很高,該模型也表現出了很好地能力,人們最初聲稱其可以學習很多問題;後來發現某些聲稱是不成立,例如當時說可以用感知機區分坦克和卡車,但是後來發現是因為坦克照片多拍攝於白天,卡車照片多拍攝於陰天,導致坦克照片的光強總和要高於卡車照片,感知機僅僅是學習到了這個部分。(這也提示了資料庫隨機取樣,以及解釋分析模型的重要性)。
之後Minsky和Papert證明了感知機的侷限性,Hinton這裡又抱怨了當時人們對這個結論泛化的過於厲害,都認為神經網路模型已經被證實能力有限了;Hinton當年開始做神經網路的時候,很多人和他說這個模型已經被證實能力不足了。
感知機現如今仍然廣泛應用於特徵維度上百萬的情況(例如Google)。

感知機模型

perceptron
上圖展示的就是感知機模型,注意到這裡使用bias替代threshold,其中bias=-threshold。對於z大於0的情況判定為正樣本,否則為負樣本。使用bias可以簡化學習流程,因為bias其實可以看做bias*1,所以對x進行拓展,在初始位置新增一個常值為1的特徵,即可把bias看做w0,學習演算法只需要學習權重即可。(這裡其實就是Binary Threshold Neuron的兩種表示,詳情參考 Hinton Neural Networks課程筆記1c:幾種啟用函式Linear、Binary、ReLU、Stochastic binary neurons
bias

感知機學習演算法

感知機學習演算法很簡單,所以很快。並且在資料集線性可分的情況下保證能夠收斂,學習到把所有資料集完美分開的權重。
學習演算法如下圖所示:
learning algorithm
簡而言之,只對分類錯誤的樣本作反應,真值為1的樣本在權重上加上輸入向量,真值為0的樣本在權重上減去輸入向量。無限迴圈,直至收斂。