介绍
感知机是简单的线性二分类机器,是支持向量机和神经网络的基础,其输入空间是实例的特征向量,输出空间为
{
−
1
,
+
1
}
\lbrace-1,+1\rbrace
{−1,+1},作为监督学习的分类工具,它的学习目标是通过数据找到一个超平面可以把数据分成两类,超平面的形式为:
w
∗
x
+
b
∗
=
0
w^*x+b^*=0
w∗x+b∗=0,分类函数为:
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
∗
)
f(x)=sign(w^*x+b^*)
f(x)=sign(w∗x+b∗),
s
i
g
n
(
x
)
=
{
1
,
x
≥
0
—
1
,
x
<
0
sign(x)= \begin{cases} 1, & \text {$x\geq0$} \\ —1, & \text{$x<0$ } \end{cases}
sign(x)={1,—1,x≥0x<0
数学推导
假设有数据集
T
=
{
(
x
1
,
y
i
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
n
,
y
n
)
}
T=\lbrace(x_1,y_i),(x_2,y_2),...,(x_n,y_n)\rbrace
T={(x1,yi),(x2,y2),...,(xn,yn)},其中
x
i
x_i
xi代表第
i
i
i个实例的特征向量,
y
i
y_i
yi代表类别,一般有
y
i
∈
{
−
1
,
+
1
}
y_i\in\lbrace-1,+1\rbrace
yi∈{−1,+1}。假设点
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj)被错误分类,比如
y
j
=
1
y_j=1
yj=1时,如果
w
x
j
+
b
<
0
wx_j+b<0
wxj+b<0就出现分类错误,总上分类错误的点满足不等式:
−
y
j
(
w
x
j
+
b
)
>
0
-y_j(wx_j+b)>0
−yj(wxj+b)>0
同时该点到超平面的距离为:
−
1
∣
∣
w
∣
∣
y
j
(
w
x
j
+
b
)
-\frac{1}{||w||}y_j(wx_j+b)
−∣∣w∣∣1yj(wxj+b)
设分类错误的集合为M,错误结合中所有点到超平面的距离之和为:
L
=
−
1
∣
∣
w
∣
∣
∑
x
j
∈
M
y
j
(
w
x
j
+
b
)
L=-\frac{1}{||w||}\sum_{x_j\in M}y_j(wx_j+b)
L=−∣∣w∣∣1xj∈M∑yj(wxj+b)
定义函数L为损失函数,而且
∣
∣
w
∣
∣
||w||
∣∣w∣∣是一个对所有分类错误点都一样,在损失函数中不再讨论。求损失函数最小化就代表分类错误点越少,学习效果越好,求最优化的过程中采用梯度下降法。首先任选一个超平面
(
w
0
,
b
0
)
(w_0,b_0)
(w0,b0),然后采用梯度下降法不断极小化损失函数,在极小化过程中是一次随机任选一个误分类点进行优化。
d
L
d
w
=
−
∑
x
j
∈
M
y
j
x
j
\frac{dL}{dw}=-\sum_{x_j\in M}y_jx_j
dwdL=−xj∈M∑yjxj
d
L
d
b
=
−
∑
x
j
∈
M
y
j
\frac{dL}{db}=-\sum_{x_j\in M}y_j
dbdL=−xj∈M∑yj
随机选取一个误分类点
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj)对
(
w
,
b
)
(w,b)
(w,b)进行优化,
η
\eta
η代表学习率。
w
⟵
w
+
x
j
y
j
w\longleftarrow w+x_jy_j
w⟵w+xjyj
b
⟵
b
+
y
j
b\longleftarrow b+y_j
b⟵b+yj
通过迭代使得损失函数不断减小,直到没有误分类点。