記一下機器學習筆記 Rosenblatt感知機
一入ML深似海啊…
這裡主要是《神經網路與機器學習》(Neural Networks and Learning Machines,以下簡稱《神機》)的筆記,以及一些周志華的《機器學習》的內容,可能夾雜有自己的吐槽,以及自己用R語言隨便擼的實現。
話說這個《神經網路與機器學習》還真是奇書,不知是作者風格還是翻譯問題,一眼望去看不到幾句人話(也許是水利狗看不懂),感覺我就是純買來自虐的。
作為開始當然是最古老的機器學習演算法之一,神經網路的板磚感知機,對應《神機》的第一章。
因為是Rosenblatt提出的模型所以就加上了他名字作為字首。這是一個有監督學習,也就是不僅給出自變數還要給出結果值讓機器自個擬合的模型,而且是一個二分類模型。再說清楚一點,這玩意只能分線性可分的樣本,也就是對於二維的資料,它只能搞一條直線把樣本分開,對於三維的資料,只能搞個平面把樣本分開。
所以像居然連異或運算都不能弄之類的對它的吐槽歷來不少。
感知機概念
感知機由一個線性組合器(說白了就是把一系列輸入值加權求和)以及一個硬限幅器(說白了就是拿前面的求和取符號)組成。具體樣子參考下圖(來自《神機》):
我們將一組輸入值記為
加權和
然後對這個
可以用逼格更高的矩陣形式簡潔表示:
那麼每組輸入值
又或者從幾何角度理解:在m維空間上有這麼一個超平面
所以說樣本必須線性可分的才可以被它分類。
感知機收斂定理
然後這玩意的學習方式是不斷的誤差修正,稱為誤差修正學習原則。
當一個樣本被正確分類的時候就沒啥事,要是被錯誤分類了就根據樣本的各個分量調整權值,就這樣把整套樣本丟進去跑幾趟直到誤差收斂為止。
現在乾脆把偏置
然後根據迭代步數n把權值向量這樣定義:
其中
經過學習之後的感知機應該有這麼一套權值