1.模型简介
- 感知机是根据输入实例的特征向量 x x x对其进行二类分类的线性分类模型
- 算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。
- 算法简单且易于实现。原始形式中,首先任意选取一个超平面,然后用梯度下降法不断极小化目标函数。在这个过程中一次随机选取一个误分类点使其梯度下降。
- 感知机学习算法是误分类驱动,采用随机梯度下降。
- 当训练数据集线性可分时,感知机学习算法是收敛的。且在训练数据集上的误分类次数 k ≤ ( R γ ) 2 , k \leq (\frac{R}{\gamma})^2, k≤(γR)2,其中 R = R= R=max ∣ ∣ x i ^ ∣ ∣ , γ ≤ y i ( w o p t ⋅ x + b o p t ) ||\hat{x_i}||,\gamma\leq y_i(w_{opt} \cdot x+b_{opt}) ∣∣xi^∣∣,γ≤yi(wopt⋅x+bopt)
- 当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。
- 当训练集线性不可分时,算法不收敛,迭代结果发生震荡
2.假设函数
f ( x ) = sign ( w ⋅ x + b ) f(x)=\operatorname{sign}(w \cdot x+b) f(x)=sign(w⋅x+b)其中, w , b 是 感 知 机 参 数 , w ⋅ x 是 w 和 x 的 内 积 , s i g n 是 符 号 函 数 : 当 x ≥ 0 时 为 1 , 反 之 为 0 w,b是感知机参数,w \cdot x是w和x的内积,sign是符号函数:当x\geq 0时为1,反之为0 w,b是感知机参数,w⋅x是w和x的内积,sign是符号函数:当x≥0时为1,反之为0
3.损失函数
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w, b)=-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right) L(w,b)=−xi∈M∑yi(w⋅xi+b)
4.算法的原始形式
输入:训练集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
…
,
(
x
m
,
y
m
)
}
,
x
∈
R
n
,
y
i
∈
{
−
1
,
+
1
}
,
学
习
率
:
η
(
1
<
η
≤
1
)
T=\lbrace(x_1,y_1),(x_2,y_2),……,(x_m,y_m)\rbrace,x\in R^n,y_i \in \lbrace -1,+1\rbrace,学习率:\eta(1<\eta \leq 1)
T={(x1,y1),(x2,y2),……,(xm,ym)},x∈Rn,yi∈{−1,+1},学习率:η(1<η≤1)
输出:感知机参数
w
,
b
和
感
知
机
模
型
f
(
x
)
=
sign
(
w
⋅
x
+
b
)
w,b和感知机模型f(x)=\operatorname{sign}(w \cdot x+b)
w,b和感知机模型f(x)=sign(w⋅x+b)
实施过程:
\qquad
(1) 选择初值
w
0
,
b
0
w_0,b_0
w0,b0
\qquad
(2) 在训练集选取数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)
\qquad
(3) 如果
y
i
(
w
⋅
x
i
+
b
)
≤
0
,
更
新
w
和
b
:
y_i(w \cdot x_i+b)\leq0,更新w和b:
yi(w⋅xi+b)≤0,更新w和b:
w
:
=
w
+
η
y
i
x
i
,
b
:
=
b
+
η
y
i
w:=w+\eta y_i x_i,\qquad b:=b+\eta y_i
w:=w+ηyixi,b:=b+ηyi
\qquad
(4) 回到(2),直至训练集没有误分类点
5.算法的对偶形式
输入:训练集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
…
,
(
x
m
,
y
m
)
}
,
x
∈
R
n
,
y
i
∈
{
−
1
,
+
1
}
,
学
习
率
:
η
(
1
<
η
≤
1
)
T=\lbrace(x_1,y_1),(x_2,y_2),……,(x_m,y_m)\rbrace,x\in R^n,y_i \in \lbrace -1,+1\rbrace,学习率:\eta(1<\eta \leq 1)
T={(x1,y1),(x2,y2),……,(xm,ym)},x∈Rn,yi∈{−1,+1},学习率:η(1<η≤1)
输出:参数
α
,
b
\alpha,b
α,b和感知机模型
f
(
x
)
=
sign
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
+
b
)
f(x)=\operatorname{sign}(\sum_{j=1}^{N}\alpha_jy_jx_j \cdot x+b)
f(x)=sign(∑j=1Nαjyjxj⋅x+b),其中
α
=
(
α
1
,
α
1
,
…
…
,
α
m
)
T
\alpha=(\alpha_1,\alpha_1,……,\alpha_m)^T
α=(α1,α1,……,αm)T
实施过程:
\qquad
(1) 初始化
α
\alpha
α和
b
b
b趋于
0
0
0
\qquad
(2) 在训练集选取数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)
\qquad
(3) 如果
y
i
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
+
b
)
≤
0
y_i(\sum_{j=1}^{N}\alpha_jy_jx_j \cdot x+b)\leq0
yi(∑j=1Nαjyjxj⋅x+b)≤0,更新
α
i
和
b
:
\alpha_i和b:
αi和b:
α
i
:
=
α
i
+
η
,
b
:
=
b
+
η
y
i
\alpha_i:=\alpha_i+\eta,\qquad b:=b+\eta y_i
αi:=αi+η,b:=b+ηyi
\qquad
(4) 回到(2),直至训练集没有误分类点
注意:对偶形式中训练实例以内积的形式出现,为了方便,可预先计算训练集实例之间的Gram矩阵,
G
=
[
x
i
⋅
x
j
]
m
×
m
G=[x_i \cdot x_j]_{m\times m}
G=[xi⋅xj]m×m
Gram矩阵计算举例:
如样本点为
(
x
1
,
y
1
)
=
(
(
3
,
3
)
T
,
1
)
,
(
x
2
,
y
2
)
=
(
(
4
,
3
)
T
,
1
)
,
(
x
3
,
y
3
)
=
(
(
1
,
1
)
T
,
0
)
(x_1,y_1)=((3,3)^T,1),(x_2,y_2)=((4,3)^T,1),(x_3,y_3)=((1,1)^T,0)
(x1,y1)=((3,3)T,1),(x2,y2)=((4,3)T,1),(x3,y3)=((1,1)T,0),则Gram矩阵为:
G
=
(
3
3
4
3
1
1
)
×
(
3
4
1
3
3
1
)
=
(
18
21
6
21
25
7
6
7
2
)
G= \begin{pmatrix}3& 3 \\4&3 \\ 1&1\\\end{pmatrix}\times\begin{pmatrix}3& 4&1 \\3&3&1\\\end{pmatrix}=\begin{pmatrix}18& 21 & 6 \\21 &25& 7 \\ 6&7&2\\\end{pmatrix}
G=⎝⎛341331⎠⎞×(334311)=⎝⎛1821621257672⎠⎞