理解機器學習的過程後,來實際理解它的演算法吧 :)
上篇所提到的Linear Model中最為基礎的演算法就是PLA,大陸那邊翻譯名字叫感知器
首先正式進入數學公式以前必須得先提到高中曾經學過的向量內積,
大家都知道cosΘ是震盪在1跟-1的函數(cos0° = 1,cos180° = -1),
而利用的就是Θ這個角度去判斷資料點的位置跟一開始假設的那條線的法向量斜率做內積後得出每個點和線的角度關係。
然後用每一個資料點和線的角度去判斷是否有成功分類,如果中間沒有分類成功則再跟每個資料點跑一次。
首先PLA的第一步就是隨便取一條線
w1 x + w2 y > threshold(門檻) //門檻:資料要大於某個數值才有意義 沒給數字就取0
然後把輸入的資料X[x1,x2]跟w1,w2做內積,得到 w1*x1 + w2*x2 - thresold > 0
因此可以獲得線性方程式:h (x) = sign ((w1 x1 + w2 x2) - threshold) //sign:邏輯函數
令b = -threshold, h(x) => h (x) = sign ((w1 x1 + w2 x2) + b)
錯誤1:輸出的y是1,但是h(x)的結果是-1
W[w1,w2] = W + yX => W = W + x
錯誤2:輸出的y是-1,但是h(x)的結果是1
W[w1,w2] = W + yX => W = W - x
程式流程圖
2.單層的PLA只能對輸入進行線性分類