感知机
y
=
s
i
g
n
(
w
T
x
+
b
)
y=sign(w^Tx+b)
y=sign(wTx+b) 是一个简单的二分类模型,将类别的label设定为1和-1,针对线性可分的数据,感知机可以完全收敛(即将所有的训练样本正确分类)。
感知机的目标是寻找一个线性分离超平面 w T x + b w^Tx+b wTx+b,将线性可分的训练样本正确分类, w w w和 b b b是需要学习的参数。
感知机损失函数的一个很自然的选择就是误分类点的个数,但是这样的损失函数并不是 w w w和 b b b的连续可导函数,于是,转换思路,感知机的损失函数可以使用误分类点到超平面的总距离,最小化此损失函数就是优化感知机的过程。
考虑误分类点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),其中
x
i
x_i
xi是一个
m
m
m维向量
(
x
i
1
,
x
i
2
,
x
i
3
,
.
.
.
x
i
m
)
(x_i^1,x_i^2,x_i^3,...x_i^m)
(xi1,xi2,xi3,...xim),
y
i
∈
{
1
,
−
1
}
y_i\in\{1,-1\}
yi∈{1,−1},此点到分类超平面的距离为
d
i
s
t
a
n
c
e
=
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
distance=\frac{|w^Tx_i+b|}{||w||}
distance=∣∣w∣∣∣wTxi+b∣
对于误分类点来说,
∣
w
T
x
i
+
b
∣
=
−
y
i
(
w
T
x
i
+
b
)
|w^Tx_i+b|=-y_i(w^Tx_i+b)
∣wTxi+b∣=−yi(wTxi+b),所以
d
i
s
t
a
n
c
e
=
−
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
distance=-y_i\frac{(w^Tx_i+b)}{||w||}
distance=−yi∣∣w∣∣(wTxi+b)
设误分类点的集合为
S
S
S,则感知机损失函数
L
(
w
,
b
)
=
1
∣
∣
w
∣
∣
∑
x
i
∈
S
−
y
i
(
w
T
x
i
+
b
)
L(w,b)=\frac{1}{||w||}\sum_{x_i \in\ S}-y_i(w^Tx_i+b)
L(w,b)=∣∣w∣∣1xi∈ S∑−yi(wTxi+b)
考虑我们可以始终将超平面法向量用单位向量来表示,即
∣
∣
w
∣
∣
=
1
||w||=1
∣∣w∣∣=1,就可以把
∣
∣
w
∣
∣
||w||
∣∣w∣∣从损失函数中删除,最终损失函数成为:
L
(
w
,
b
)
=
∑
x
i
∈
S
−
y
i
(
w
T
x
i
+
b
)
L(w,b)=\sum_{x_i \in\ S}-y_i(w^Tx_i+b)
L(w,b)=xi∈ S∑−yi(wTxi+b)
有了上面的损失函数,感知机的优化就变成如下问题的求解,
min
w
,
b
∑
x
i
∈
S
−
y
i
(
w
T
x
i
+
b
)
\min_{w,b}\sum_{x_i \in\ S}-y_i(w^Tx_i+b)
w,bminxi∈ S∑−yi(wTxi+b)
采用随机梯度下降的方法进行优化,
1. 初始化
w
w
w和
b
b
b;
2. 针对初始化后的分类超平面,随机选择一个误分类点
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj),使用
w
w
w和
b
b
b的梯度对参数进行更新,即
w
=
w
+
η
x
j
y
j
w=w+\eta x_jy_j
w=w+ηxjyj
b
=
b
+
η
y
j
b=b+\eta y_j
b=b+ηyj
其中
η
\eta
η是学习率;
3. 就这样一直优化参数,直到没有误分类点。