感知机是一个二分类的线性分类模型
假设输入空间(特征空间)是
X
⊆
R
n
\mathcal{X}\subseteq R^{n}
X⊆Rn,输出空间是
Y
=
{
+
1
,
−
1
}
\mathcal{Y}=\{+1,-1\}
Y={+1,−1},定义函数
f
(
x
)
f(x)
f(x)输入到输出空间的映射:
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)
其中,
w
,
b
w,b
w,b为模型参数,
s
i
g
n
(
x
)
=
{
1
,
x
≥
0
−
1
,
x
<
0
sign(x)=\begin{cases}1,x\ge0\\ -1,x<0\end{cases}
sign(x)={1,x≥0−1,x<0,属于判别模型
几何解释:
线性方程
w
⋅
x
+
b
=
0
w\cdot x+b=0
w⋅x+b=0对应特征空间
R
n
R^{n}
Rn中的一个超平面
S
S
S、,其中
w
w
w表示超平面的法向量,
b
b
b表示超平面的截距,
S
S
S将特征空间划分为两部分,位于两部分的点分别为正、负样本
数据集的线性可分:
给定数据集
T
=
{
(
x
1
,
y
1
)
,
⋯
,
(
x
N
,
y
N
)
}
T=\{(x_{1},y_{1}),\cdots,(x_{N},y_{N})\}
T={(x1,y1),⋯,(xN,yN)},如果存在一个线性超平面
S
S
S:
w
⋅
x
+
b
=
0
w\cdot x+b=0
w⋅x+b=0能够将数据集的正负样本完全正确地划分到超平面的两侧,即
{
∀
y
i
=
1
,
w
⋅
x
+
b
>
0
∀
y
i
=
−
1
,
w
⋅
x
+
b
<
0
\begin{cases}\forall y_{i}=1,w\cdot x+b>0\\\forall y_{i}=-1,w\cdot x+b<0 \end{cases}
{∀yi=1,w⋅x+b>0∀yi=−1,w⋅x+b<0
则称数据集
T
T
T是线性可分的,否则为线性不可分。
感知机的基本思想:
假设数据集是线性可分的,在特征空间中求得能够将训练集正负样本完全正确分开的最优超平面
S
S
S
如何求解
S
S
S,即求解模型参数
w
,
b
w,b
w,b:
定义(经验)损失函数,并最小化损失函数:
m
i
n
w
,
b
∑
x
i
∈
M
L
(
y
i
,
f
(
x
i
)
)
\underset{w,b}{min}\sum_{x_{i}\in M}L(y_{i},f(x_{i}))
w,bminxi∈M∑L(yi,f(xi))
M
M
M表示误分点集合
当正样本被误分时,
y
i
=
+
1
,
w
⋅
x
i
+
b
<
0
y_{i}=+1,w\cdot x_{i}+b<0
yi=+1,w⋅xi+b<0;
当负样本被误分时,
y
i
=
−
1
,
w
⋅
x
i
+
b
>
0
y_{i}=-1,w\cdot x_{i}+b>0
yi=−1,w⋅xi+b>0;
则误分类样本点到超平面
S
S
S的距离为:
−
y
i
(
w
⋅
x
i
+
b
)
∥
w
∥
-y_{i}\frac{(w\cdot x_{i}+b)}{\Vert w\Vert}
−yi∥w∥(w⋅xi+b),不考虑
1
∥
w
∥
\frac{1}{\Vert w\Vert}
∥w∥1时得到损失函数:
m
i
n
w
,
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
\underset{w,b}{min}L(w,b)=-\sum_{x_{i}\in M}y_{i}(w\cdot x_{i}+b)
w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
显然
L
(
w
,
b
)
L(w,b)
L(w,b)非负,当样本分类正确时,
L
(
w
,
b
)
=
0
L(w,b)=0
L(w,b)=0,当误分点越少,且离超平面越近,则损失函数越小,
L
L
L是
w
,
b
w,b
w,b的连续可导函数。
感知机学习算法
采用随机梯度下降法对损失函数对优化,当误分点集合
M
M
M固定时,损失函数的梯度为:
∇
w
L
(
w
,
b
)
=
−
∑
x
i
∈
M
x
i
y
i
∇
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\nabla_{w}L(w,b)=-\sum_{x_{i}\in M}x_{i}y_{i}\\ \nabla_{b}L(w,b)=-\sum_{x_{i}\in M}y_{i}
∇wL(w,b)=−xi∈M∑xiyi∇bL(w,b)=−xi∈M∑yi
随机选择一个误分类点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi),对
w
,
b
w,b
w,b进行更新:
w
←
w
+
η
x
i
y
i
b
←
b
+
η
y
i
w\gets w+\eta x_{i}y_{i}\\ b\gets b+\eta y_{i}
w←w+ηxiyib←b+ηyi
其中,
η
(
0
<
η
≤
1
)
\eta(0<\eta\le1)
η(0<η≤1)为步长(学习率)
则原始形式:
input:
w
,
b
w,b
w,b
model:
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)
- 选取初值 w 0 , b 0 w_{0},b_{0} w0,b0
- 在训练数据集中选取数据 ( x i , y i ) (x_{i},y_{i}) (xi,yi)
- 如果
y
i
(
w
⋅
x
i
+
b
)
≤
0
y_{i}(w\cdot x_{i}+b)\le0
yi(w⋅xi+b)≤0,则
w ← w + η x i y i b ← b + η y i w\gets w+\eta x_{i}y_{i}\\ b\gets b+\eta y_{i} w←w+ηxiyib←b+ηyi
对偶形式
基本思想:将
w
,
b
w,b
w,b表示为
x
i
,
y
i
x_{i},y_{i}
xi,yi的线性组合形式,通过求解其系数二求得
w
,
b
w,b
w,b
通过误分类点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi),对
w
,
b
w,b
w,b进行更新:
w
←
w
+
η
x
i
y
i
b
←
b
+
η
y
i
w\gets w+\eta x_{i}y_{i}\\ b\gets b+\eta y_{i}
w←w+ηxiyib←b+ηyi
逐步修改
w
,
b
w,b
w,b,修改
n
n
n次,则关于
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)的增量分别为
α
i
x
i
y
i
,
α
i
y
i
\alpha_{i}x_{i}y_{i},\alpha_{i}y_{i}
αixiyi,α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,b
w,b分别为:
w
=
∑
i
=
1
N
α
i
x
i
y
i
,
b
=
∑
i
=
1
N
α
i
y
i
w=\sum_{i=1}^{N}\alpha_{i}x_{i}y_{i}, b=\sum_{i=1}^{N}\alpha_{i}y_{i}
w=i=1∑Nαixiyi,b=i=1∑Nαiyi
其中
α
i
≥
0
,
(
i
=
0
,
1
,
⋯
,
N
)
\alpha_{i}\ge0,\ (i=0,1,\cdots,N)
αi≥0, (i=0,1,⋯,N),当
η
=
1
\eta=1
η=1时,表示第
i
i
i个实例点由于误分而进行更新的次数。
n
i
n_{i}
ni越大,表明实例点更新次数越多,距离超平面越近,越难正确分类。
则对偶形式如下
input:
α
,
b
\alpha, b
α,b;
model:
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
x
i
y
i
⋅
x
+
b
)
f(x)=sign(\sum_{i=1}^{N} \alpha_{i}x_{i}y_{i}\cdot x+b)
f(x)=sign(∑i=1Nαixiyi⋅x+b),其中
α
=
(
α
1
,
⋯
,
α
N
)
T
\alpha=(\alpha_{1},\cdots,\alpha_{N})^{T}
α=(α1,⋯,αN)T
- α ← 0 , b ← 0 \alpha\gets0,b\gets0 α←0,b←0
- 在训练数据集中选取数据 ( x i , y i ) (x_{i},y_{i}) (xi,yi)
- 如果
y
i
(
∑
i
=
1
N
α
i
x
i
y
i
⋅
x
+
b
)
≤
0
y_{i}(\sum_{i=1}^{N} \alpha_{i}x_{i}y_{i}\cdot x+b)\le0
yi(∑i=1Nαixiyi⋅x+b)≤0,则
α i ← α i + η b ← b + η y i \alpha_{i}\gets\alpha_{i}+\eta\\ b\gets b+\eta y_{i} αi←αi+ηb←b+ηyi
算法的收敛性:
对于线性可分数据集,感知机算法是收敛的。感知机算法在训练数据集上误分次数
k
k
k满足不等式
k
≤
(
R
γ
)
2
k\le(\frac{R}{\gamma})^{2}
k≤(γR)2
其中,
γ
≥
0
,
R
=
m
a
x
1
≤
i
≤
N
∥
x
^
i
∥
,
x
^
=
(
x
T
,
1
)
T
∈
R
n
+
1
\gamma\ge0,R=\underset{1\le i\le N}{max}\Vert \hat{x}_{i}\Vert,\hat{x}=(x^{T},1)^{T}\in R^{n+1}
γ≥0,R=1≤i≤Nmax∥x^i∥,x^=(xT,1)T∈Rn+1