記錄一些學習隨筆,作爲數據挖掘知識的整理
感知器(perceptron)vol.1
我們所學的首個神經網絡
類是實現定義好的點所組成的組
分類(classification)可以猜測某一個點所在的類
在學習分類時我們需要解決的2個問題:
1、分類(classifying):判斷出點在decision boundary的哪一邊
2、learning:找到分隔出兩個類的decision boundary。
在learning完成後,classifier可以對未知點做正確分類。
引入超平面(hyperplane)作分隔用。
向量加一個origin point可以表示一個hyperplane P
若點X屬於法向量V和超平面上一點C組成的平面,則有V和X-C的點積爲0的性質,類似三維平面。
V是超平面的法向量,C是超平面的原點。
對於點到P的符號距離(signed distance)y,可以表示爲y=V(X-C)(兩個向量的點積)
因此可以用此來將一個點歸類,若距離y大於零歸爲一類,y小於零歸爲另一類
引入step函數,將y作爲參數,當y爲負時step函數輸出-1,y爲正時step函數輸出1。再以該輸出z作爲分類判斷依據。
上述就是一個人工神經元(artificial neuron)的例子。xi作爲輸入,vi作爲偏置權值(bias weight),step函數是傳遞函數(transfer function)的例子,也可以有其他傳遞函數如linear和tanh等。
至此,我們已經解決classification的第一個問題classifying。
下面是neuron learning,即找到合理的v0,v1,...,vn。找到法向量和初始點後可構造出hyperplane。
將由hyperplane分類時產生的錯誤歸類稱爲Error,
t是點X的應該歸到的類,取值爲1或-1,z是神經元輸出。
以E爲準我們找到neuron learning的方法:逐步減小error。
1、隨機取數據集裏的一點
2、計算該點的error
3、調整v0,...,vn使error降低
4、重複上述步驟
我們用E關於vi的偏導數來表示它們之間的變化關係
取一階偏導數,再將一階偏導數乘上經驗係數(fudge factor,learning rate),則有
得到完整的Delta rule(一種學習法則)
1、在數據集中隨機取點
2、計算該點的E
3、計算
4、更新vi
5、重複執行上述步驟,將更多的點進行正確分類
所取的經驗係數足夠小,算法可以收斂到期望狀態,但不唯一。