感知机
感知机是二类分类的线性分类模型,输入为是实例的特征向量,输出为实例的类别(取值-1和+1)。对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型。具有简单而易于实现的优点,分为原始形式和对偶形式。
1 感知机模型
假设输入空间X
∈
\in
∈
R
n
\R^n
Rn,输出空间Y={+1,-1}。则输入空间到输出空间的函数映射如下:
f
(
x
)
=
s
i
g
n
(
w
x
+
b
)
f(x)=sign(wx+b)
f(x)=sign(wx+b)
其中:
s
i
g
n
(
x
)
=
{
+
1
,
x
≥
0
−
1
,
x
<
0
sign(x)= \begin{cases} +1, & \text{x$\geq$0} \\[5ex] -1, & \text{x$<$0} \end{cases}
sign(x)=⎩⎪⎪⎨⎪⎪⎧+1,−1,x≥0x<0
对于感知机的几何解释,其线性方程可以表示为:
w
x
+
b
=
0
wx+b=0
wx+b=0
对应特征(输入)空间中的超平面,w为超平面的法向量,b为超平面的截距。该超平面将特征(输入)空间分为两个部分,即正类和负类。
2 感知机的学习策略
感知机学习的目标是求得一个能够将训练集正实例和负实例完全正确分开的分离超平面,为了找出这样的超平面,即确定感知机模型的参数w和b。
我们通过定义损失函数并将损失函数值极小化的学习策略来找到最佳的w和b。
对于误分类的数据点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),其到超平面S的距离为:
−
1
∣
∣
w
∣
∣
y
i
(
w
x
i
+
b
)
-\frac{1}{||w||}y_i(wx_i+b)
−∣∣w∣∣1yi(wxi+b)
其中
∣
∣
w
∣
∣
||w||
∣∣w∣∣为
L
2
L_2
L2范数,即
a
2
+
b
2
\sqrt{a^2+b^2}
a2+b2。
对所有误分类点到超平面的距离求和即可得到总距离。在不考虑
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1的情况下,便得到感知机学习的损失函数。
L
(
w
,
b
)
=
−
∑
x
∈
M
y
i
(
w
x
i
+
b
)
L(w,b)=-\sum_{x\in M}y_i(wx_i+b)
L(w,b)=−x∈M∑yi(wxi+b)
其中损失函数值始终为正,且连续可导。
3 感知机的学习算法
感知机学习算法分为原始形式和对偶形式。
3.1 原始形式
3.1.1 感知机学习算法的原始形式
找到最佳的w和b值,即找出损失函数的极小值。因为转化为了极小化问题,于是我们采用随机梯度下降法。原始形式算法如下:
输入:训练集
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
i
,
y
i
)
T={(x_1,y_1),(x_2,y_2),...,(x_i,yi)}
T=(x1,y1),(x2,y2),...,(xi,yi),其中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
+
1
,
−
1
x_i\in X= R^n, y_i \in Y={+1, -1}
xi∈X=Rn,yi∈Y=+1,−1,学习率
η
(
0
<
η
≤
1
)
\eta(0 < \eta \leq 1)
η(0<η≤1)(即步长);
输出:w,b;感知机模型
f
(
x
)
=
s
i
g
n
(
w
x
+
b
)
f(x) = sign(wx+b)
f(x)=sign(wx+b)。
(1)任意选取初值
w
0
,
b
0
w_0, b_0
w0,b0;
(2)从训练集中选取数据
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi);
(3)如果
y
i
(
w
x
i
+
b
)
≤
0
y_i(wx_i+b) \leq0
yi(wxi+b)≤0,更新参数
w
←
w
+
η
y
i
x
i
w \leftarrow w + \eta y_ix_i
w←w+ηyixi
b
←
b
+
η
y
i
b \leftarrow b + \eta y_i
b←b+ηyi
(4)转到(2),直到训练集中没有误分类点。
当一个实例点被误分类,即位于分离超平面的错误一侧时,调整w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。
需要注意的是,由于采用不同的初值或选取不同的误分类点,解可以不同。
3.2 算法的收敛性
将偏置b并入权重向量w,记作
w
^
=
(
w
T
,
b
)
T
\widehat{w}=(w^T ,b)^T
w
=(wT,b)T,同样地输入向量也加入常数1,记作
x
^
=
(
x
T
,
1
)
T
\widehat{x}=(x^T,1)^T
x
=(xT,1)T。得到
w
^
x
^
=
w
x
+
b
\widehat w \widehat x= wx+b
w
x
=wx+b。
(Novikoff定理)(1)存在满足条件
∣
∣
w
^
o
p
t
∣
∣
=
1
||\widehat w_{opt}||=1
∣∣w
opt∣∣=1的超平面
w
^
o
p
t
x
^
=
w
o
p
t
x
+
b
o
p
t
=
0
\widehat w_{opt} \widehat x= w_{opt}x+b_{opt}=0
w
optx
=woptx+bopt=0将训练集完全正确分开,且存在
γ
>
0
\gamma > 0
γ>0,则
y
i
(
w
^
o
p
t
x
^
i
)
=
y
i
(
w
o
p
t
x
+
b
o
p
t
)
≥
γ
(a)
y_i(\widehat w_{opt}\widehat x_i)=y_i(w_{opt}x+b_{opt}) \geq \gamma \tag {a}
yi(w
optx
i)=yi(woptx+bopt)≥γ(a)
(2)令
R
=
m
a
x
∣
∣
x
i
∣
∣
R=max||x_i||
R=max∣∣xi∣∣,那么误分类次数k满足不等式:
k
≤
(
R
γ
)
2
(b)
k \leq \left(\frac{R}{\gamma}\right)^2 \tag {b}
k≤(γR)2(b)
证明
由公式(a)和
w
^
k
=
w
^
k
−
1
+
η
y
i
x
i
\widehat w_k= \widehat w_{k-1}+\eta y_ix_i
w
k=w
k−1+ηyixi可以推导出:
w
^
k
w
^
o
p
t
≥
k
η
γ
(c)
\widehat w_k \widehat w_{opt} \geq k\eta\gamma \tag{c}
w
kw
opt≥kηγ(c)
同样的,由
y
i
(
w
^
k
−
1
x
^
i
)
=
y
i
(
w
k
−
1
x
i
+
b
k
−
1
)
≤
0
y_i(\widehat w_{k-1} \widehat x_i)=y_i(w_{k-1}x_i+b_{k-1}) \leq0
yi(w
k−1x
i)=yi(wk−1xi+bk−1)≤0和
w
^
k
=
w
^
k
−
1
+
η
y
i
x
i
\widehat w_k= \widehat w_{k-1}+\eta y_ix_i
w
k=w
k−1+ηyixi推导出:
∣
∣
w
^
∣
∣
2
≤
k
η
2
R
2
(d)
||\widehat w||^2 \leq k\eta^2R^2 \tag{d}
∣∣w
∣∣2≤kη2R2(d)
由公式©和(d)可得:
k
η
γ
≤
w
^
k
w
^
o
p
t
≤
∣
∣
w
^
k
∣
∣
∣
∣
w
^
o
p
t
∣
∣
≤
k
η
R
k\eta\gamma \leq \widehat w_k \widehat w_{opt} \leq ||\widehat w_k||||\widehat w_{opt}|| \leq \sqrt{k} \eta R
kηγ≤w
kw
opt≤∣∣w
k∣∣∣∣w
opt∣∣≤kηR
于是可得:
k
≤
(
R
γ
)
2
k \leq \left(\frac{R}{\gamma}\right)^2
k≤(γR)2
3.3 对偶形式
设w,b更新了n次,w,b关于
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的增量分别是
α
i
y
i
x
i
\alpha_iy_ix_i
αiyixi和
α
i
y
i
\alpha_iy_i
αiyi。其中
α
i
=
n
i
η
\alpha_i=n_i\eta
αi=niη,
n
i
n_i
ni是点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)误分类的次数。最终得到的w和b可以表示为:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N}\alpha_iy_ix_i
w=i=1∑Nαiyixi
b
=
∑
i
=
1
N
α
i
y
i
b=\sum_{i=1}^{N}\alpha_iy_i
b=i=1∑Nαiyi
输入:训练集
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
i
,
y
i
)
T={(x_1,y_1),(x_2,y_2),...,(x_i,yi)}
T=(x1,y1),(x2,y2),...,(xi,yi),其中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
+
1
,
−
1
x_i\in X= R^n, y_i \in Y={+1, -1}
xi∈X=Rn,yi∈Y=+1,−1,学习率
η
(
0
<
η
≤
1
)
\eta(0 < \eta \leq 1)
η(0<η≤1)(即步长);
输出:
α
\alpha
α,b;感知机模型
f
(
x
)
=
s
i
g
n
(
∑
j
=
1
N
α
j
y
i
x
j
+
b
)
f(x) = sign(\sum_{j=1}^{N}\alpha_jy_ix_j+b)
f(x)=sign(∑j=1Nαjyixj+b),其中
α
=
(
α
1
,
α
2
,
.
.
.
,
α
n
)
\alpha=(\alpha_1,\alpha_2,...,\alpha_n)
α=(α1,α2,...,αn).
(1)
α
←
0
\alpha \leftarrow 0
α←0,
b
←
0
b \leftarrow 0
b←0
(2)从训练集中选取数据
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi);
(3)如果
y
i
(
∑
j
=
1
N
α
j
y
i
x
j
+
b
)
x
i
+
b
)
≤
0
y_i(\sum_{j=1}^{N}\alpha_jy_ix_j+b)x_i+b) \leq0
yi(∑j=1Nαjyixj+b)xi+b)≤0,更新参数
α
i
←
α
i
+
η
\alpha_i \leftarrow \alpha_i + \eta
αi←αi+η
b
=
b
+
η
y
i
b = b+ \eta y_i
b=b+ηyi
(4)转到(2),直到训练集中没有误分类点。