感知機是二分類的線性分類模型,輸入是例項的特徵x∈
rn,輸出是例項的類別
。感知機對應於輸入空間中將例項劃分為正負兩類的分離超平面,屬於判別模型。感知機學習旨在求出將訓練資料進行線性劃分的分離超平面,為此,匯入基於誤分類的損失函式,利用梯度下降法對損失函式進行極小化,求得感知機模型。
假設輸入空間(特徵空間)是x⊆
rn,輸出空間是y=
.由輸入空間到輸出空間的如下函式f(
x)=s
ign(
w⋅x+
b)稱為感知機。
假設訓練資料集是線性可分的。給定訓練資料集t=
其中,xi
∈x=r
n ,yi
∈y=,
i=1,
2,…,
n 。
感知機sig
n(w⋅
x+b)
學習的損失函式為l(
w,b)
=−∑x
i∈my
i(w⋅
xi+b
) 其中m
為誤分類點的集合。梯度下降法wb
←w+η
yixi
←b+η
yi假設初始值w0
,b0 均為
0 。對誤分類點(x
i,yi
)通過ni
次修改(i
=1,2
,…,n
) , wb
←w+n
iηyi
xi←b
+niη
yi對應誤分類點xi
nib←ni+
1←b+
ηyi
輸入:訓練資料集t=
,其中xi
∈x=r
n ,yi
∈y=,
i=1,
2,…,
n ;學習率η(
0<η≤
1);
輸出:w,b
;感知機模型f(
x)=s
ign(
w⋅x+
b).
(1) 選取初始值w0
,b0
(2) 在訓練集中選取資料(x
i,yi
) (3) 如果yi
(w⋅x
i+b)
≤0 w
b←w+
ηyix
i←b+
ηyi
(4) 轉至(2),直到訓練集中沒有誤分類點。
輸入:訓練資料集t=
,其中xi
∈x=r
n ,yi
∈y=,
i=1,
2,…,
n ;學習率η(
0<η≤
1);
輸出:n,b
;感知機模型f(
x)=s
ign(
∑nj=
1njη
yjxj
⋅x+b
).其中n=
(n1,
n2,…
,nn)
t.(1)n←
0,b←
0 (2)在訓練集中選取(x
i,yi
) (3)如果yi
(∑nj
=1nj
yjxj
⋅xi+
b)≤0
nib←ni+
1←b+
ηyi
(4)轉至(2)直到沒有誤分類資料.
import numpy as np
"""原始型別的感知器
輸入:訓練資料x,y和eta
輸出:w,b
感知機模型:f(x) = sign(wx+b)
"""def
perceptron_original
(x, y, eta):
(m, n) = x.shape
w = np.zeros(n)
b = 0
ok = true
while
true:
for i in range(m):
if y[i]*(np.dot(w,x[i])+b) <= 0:
w = w + eta*y[i]*x[i]
b = b + eta*y[i]
ok = false
ifnot ok:
ok = true
else:
break
return w, b
# main
arr = np.loadtxt('test.txt', delimiter=',')
[m,n]=arr.shape # m是訓練資料的條數,n是訓練特徵數
n = n - 1
x = arr[:,0:n] # 輸入
y = arr[:,n] # 輸出
eta = 1
(w, b) = perceptron_original(x, y, eta)
print w
print b
import numpy as np
"""對偶形式的感知機
輸入:訓練資料x、y,學習率eta
輸出:a、b
"""def
perceptron_dual
(x, y, eta):
(m, n) = x.shape
a = np.zeros(m)
b = 0
ok = true
while
true:
for i in range(m):
w = np.zeros(n)
for j in range(m):
w += a[j]*y[j]*x[j]
if y[i]*(np.dot(w, x[i]) + b) <= 0:
a[i] += 1
b += eta*y[i]
ok = false
ifnot ok:
ok = true
else:
break
return a, b
# main
arr = np.loadtxt('test.txt', delimiter=',')
[m,n]=arr.shape # m是訓練資料的條數,n是訓練特徵數
n = n - 1
x = arr[:,0:n] # 輸入
y = arr[:,n] # 輸出
eta = 1
(w, b) = perceptron_dual(x, y, eta)
統計學習方法(第二章)感知機
1 什麼是感知機 在 機器學習中,感知機 perceptron 是二分類的線性分類模型,屬於監督學習演算法。輸入為例項的特徵向量,輸出為例項的類別 取 1和 1 感知機對應於輸入空間中將例項劃分為兩類的分離超平面。感知機旨在求出該超平面,為求得超平面匯入了基於誤分類的損失函式,利用梯度下降法 對損失...
感知機 《統計學習方法》第二章
模型 線性分類模型 屬於判別模型 策略 演算法 梯度下降法 由輸入空間到輸出空間的函式 f x s ign wx b f x si gn w x b 其中w是權值向量,b是偏置。wx b 0 w x b 0對應特徵空間中的乙個超平面s,w是超平面的法向量,b是超平面的截距。這個超平面將特徵空間劃分為...
《統計學習方法》 第二章 感知機
1 感知機定義 2 幾何解釋 1 資料集的線性可分性 2 感知機的學習策略 感知機的學習策略是 在假設空間中選取損失函式最小的模型。1 感知機學習演算法的原始形式 第三步 重複第 二 三兩步直到訓練集上沒有錯誤樣本點.該演算法的直觀解釋 2 感知機學習演算法的對偶形式 注意 書中的演算法過程使用b ...