記一下機器學習筆記 Rosenblatt感知機
來源:程序員人生 發布時間:2016-06-13 11:05:06 閱讀次數:3108次
1入ML深似海啊…
這里主要是《神經網絡與機器學習》(Neural Networks and Learning Machines,以下簡稱《神機》)的筆記,和1些周志華的《機器學習》的內容,可能夾雜有自己的吐槽,和自己用R語言隨意擼的實現。
話說這個《神經網絡與機器學習》還真是奇書,不知是作者風格還是翻譯問題,1眼望去看不到幾句人話(或許是水利狗看不懂),感覺我就是純買來自虐的。
作為開始固然是最古老的機器學習算法之1,神經網絡的板磚感知機,對應《神機》的第1章。
由于是Rosenblatt提出的模型所以就加上了他名字作為前綴。這是1個有監督學習,也就是不但給出自變量還要給出結果值讓機器自個擬合的模型,而且是1個2分類模型。再說清楚1點,這玩意只能分線性可分的樣本,也就是對2維的數據,它只能弄1條直線把樣本分開,對3維的數據,只能弄個平面把樣本分開。
所以像竟然連異或運算都不能弄之類的對它的吐槽歷來很多。
感知機概念
感知機由1個線性組合器(說白了就是把1系列輸入值加權求和)和1個硬限幅器(說白了就是拿前面的求和取符號)組成。具體模樣參考下圖(來自《神機》):
我們將1組輸入值記為x1,x2,...,xm,相應的權值記為w1,w2,w3...wm,另外還要有個偏置值b(相當于線性回歸里邊的截距)。把這些輸入到感知機里邊進行加權求和:
v=∑i=1mwixi+b
加權和
v稱為
引誘局部域。
然后對這個
v取符號,也就是大于0取1,小于0取⑴,就這樣決定這組輸入值歸為哪類:
y=sign(v)
y={+1:?1:把x歸為類C1把x歸為類C2.
可以用逼格更高的矩陣情勢簡潔表示:
y=sign(wTx+b)
x和
w就是把
w1,w2,w3...wm和
x1,x2,...,xm寫成1列陣,然后把前者轉置為橫陣再兩矩陣相乘,也就是二者對應的每項相乘再求和。
那末每組輸入值
x就各是1個樣本。
又或從幾何角度理解:在m維空間上有這么1個超平面wTx+b=0,x=[x1,x2,...,xm]T是這個空間上的1個點,這個點在超平面的1邊歸為1類,若在另外一邊歸為另外一類。
所以說樣本必須線性可分的才可以被它分類。
感知機收斂定理
然后這玩意的學習方式是不斷的誤差修正,稱為誤差修正學習原則。
當1個樣本被正確分類的時候就沒啥事,要是被毛病分類了就根據樣本的各個份量調劑權值,就這樣把整套樣本丟進去跑幾趟直到誤差收斂為止。
現在干脆把偏置b弄進樣本x里去,定義第n個輸入樣本:
x(n)=[+1,x1(n),x2(n),...,xm(n)]T
然后根據迭代步數n把權值向量這樣定義:
w(n)=[w0(n),w1(n),w2(n),...,wm(n)]T
其中
w0(n)即對應偏置
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------