(本文为个人学习总结笔记)
5.1
w
i
←
w
i
+
Δ
w
i
w_{i} \leftarrow w_{i}+\Delta w_{i}
wi←wi+Δwi
5.2
Δ
w
i
=
η
(
y
−
y
^
)
x
i
\Delta w_{i}=\eta(y-\hat{y}) x_{i}
Δwi=η(y−y^)xi
此公式是感知机学习算法中的参数更新公式,下面依次给出感知机模型、学习策略和学习算法的具体介绍。
1、感知机模型
已知感知机由两层神经元组成,故感知机模型的公式可表示为:
y = f ( ∑ i = 1 n w i x i − θ ) = f ( w T x − θ ) y=f\left(\sum_{i=1}^{n} w_{i} x_{i}-\theta\right)=f\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right) y=f(i=1∑nwixi−θ)=f(wTx−θ)
其中,
x
∈
R
n
\boldsymbol{x} \in \mathbb{R}^{n}
x∈Rn为样本的特征向量,是感知机模型的输入;
w
,
θ
\boldsymbol{w}, \theta
w,θ是感知机模型的参数,
w
∈
R
n
\boldsymbol{w} \in \mathbb{R}^{n}
w∈Rn为权重,
θ
\theta
θ为阈值。假定
f
f
f为阶跃函数,那么感知机模型的公式可进一步表示为:
y
=
sgn
(
w
T
x
−
θ
)
=
{
1
,
w
T
x
−
θ
≥
0
0
,
w
T
x
−
θ
<
0
y=\operatorname{sgn}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right)=\left\{\begin{array}{ll} 1, & \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta \geq 0 \\ 0, & \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta<0 \end{array}\right.
y=sgn(wTx−θ)={1,0,wTx−θ≥0wTx−θ<0
由于
n
n
n维空间中的超平面方程为:
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
+
b
=
w
T
x
+
b
=
0
w_{1} x_{1}+w_{2} x_{2}+\cdots+w_{n} x_{n}+b=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b=0
w1x1+w2x2+⋯+wnxn+b=wTx+b=0
所以此时感知机模型公式中的 w T x − θ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta wTx−θ可以看作是 n n n维空间中的一个超平面,通过它将 n n n维空间划分为 w T x − θ ≥ 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta \geq 0 wTx−θ≥0和 w T x − θ < 0 w^{\mathrm{T}} x-\theta<0 wTx−θ<0两个子空间,落在前一个子空间的样本对应的模型输出值为1,落在后一个子空间的样本对应的模型输出值为0,以此来实现分类功能。
2、感知机学习策略
给定一个线性可分的数据集
T
T
T(参见附录①),感知机的学习目标是求得能对数据集
T
T
T中的正负样本完全正确划分的分离超平面:
w
T
x
−
θ
=
0
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta=0
wTx−θ=0
假设此时误分类样本集合为
M
⊆
T
M\subseteq T
M⊆T对任意一个误分类样本
(
x
,
y
)
∈
M
(\boldsymbol{x},y)\in M
(x,y)∈M来说,当
w
T
x
−
θ
≥
0
w
T
\boldsymbol{w}^\mathrm{T}\boldsymbol{x}-\theta \geq 0w T
wTx−θ≥0wT时,模型输出值为
y
^
=
1
\hat{y}=1
y^=1,样本真实标记为
y
=
0
y=0
y=0;反之,当
w
T
x
−
θ
<
0
\boldsymbol{w}^\mathrm{T}\boldsymbol{x} −θ<0
wTx−θ<0时,模型输出值为
y
^
=
0
\hat{y}=0
y^=0,样本真实标记为
y
=
1
y=1
y=1。综合两种情形可知,以下公式恒成立
(
y
^
−
y
)
(
w
T
x
−
θ
)
≥
0
(\hat{y}-y)\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right) \geq 0
(y^−y)(wTx−θ)≥0
所以,给定数据集
T
T
T,其损失函数可以定义为:
L
(
w
,
θ
)
=
∑
x
∈
M
(
y
^
−
y
)
(
w
T
x
−
θ
)
L(\boldsymbol{w}, \theta)=\sum_{\boldsymbol{x} \in M}(\hat{y}-y)\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right)
L(w,θ)=x∈M∑(y^−y)(wTx−θ)
显然,此损失函数是非负的。如果没有误分类点,损失函数值是0。而且,误分类点越少,误分类点离超平面越近,损失函数值就越小。因此,给定数据集 T T T,损失函数 L ( w , θ ) L(\boldsymbol{w},\theta) L(w,θ)是关于 w , θ \boldsymbol{w},{\theta} w,θ的连续可导函数。
3、感知机学习算法
感知机模型的学习问题可以转化为求解损失函数的最优化问题,具体地,给定数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
T=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{N}, y_{N}\right)\right\}
T={(x1,y1),(x2,y2),…,(xN,yN)}
其中
x
i
∈
R
n
,
y
i
∈
{
0
,
1
}
\boldsymbol{x}_i \in \mathbb{R}^n,y_i \in \{0,1\}
xi∈Rn,yi∈{0,1},求参数
w
,
θ
\boldsymbol{w},{θ}
w,θ,使其为极小化损失函数的解:
min
w
,
θ
L
(
w
,
θ
)
=
min
w
,
θ
∑
x
i
∈
M
(
y
^
i
−
y
i
)
(
w
T
x
i
−
θ
)
\min _{\boldsymbol{w}, \theta} L(\boldsymbol{w}, \theta)=\min _{\boldsymbol{w}, \theta} \sum_{\boldsymbol{x}_{\boldsymbol{i}} \in M}\left(\hat{\boldsymbol{y}}_{i}-y_{i}\right)\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}-\theta\right)
w,θminL(w,θ)=w,θminxi∈M∑(y^i−yi)(wTxi−θ)
其中
M
⊆
T
M\subseteq T
M⊆T为误分类样本集合。若将阈值
θ
\theta
θ看作一个固定输入为
−
1
-1
−1的“哑节点”,即:
−
θ
=
−
1
⋅
w
n
+
1
=
x
n
+
1
⋅
w
n
+
1
-\theta=-1 \cdot w_{n+1}=x_{n+1} \cdot w_{n+1}
−θ=−1⋅wn+1=xn+1⋅wn+1
那么
w
T
x
i
−
θ
\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-\theta
wTxi−θ可化简为:
w
T
x
i
−
θ
=
∑
j
=
1
n
w
j
x
j
+
x
n
+
1
⋅
w
n
+
1
=
∑
j
=
1
n
+
1
w
j
x
j
=
w
T
x
i
\begin{aligned} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}-\theta &=\sum_{j=1}^{n} w_{j} x_{j}+x_{n+1} \cdot w_{n+1} \\ &=\sum_{j=1}^{n+1} w_{j} x_{j} \\ &=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i} \end{aligned}
wTxi−θ=j=1∑nwjxj+xn+1⋅wn+1=j=1∑n+1wjxj=wTxi
其中
x
i
∈
R
n
+
1
,
w
∈
R
n
+
1
\boldsymbol{x_i} \in \mathbb{R}^{n+1},\boldsymbol{w} \in \mathbb{R}^{n+1}
xi∈Rn+1,w∈Rn+1 。根据该式,可将要求解的极小化问题进一步简化为:
min
w
L
(
w
)
=
min
w
∑
x
i
∈
M
(
y
^
i
−
y
i
)
w
T
x
i
\min _{\boldsymbol{w}} L(\boldsymbol{w})=\min _{\boldsymbol{w}} \sum_{\boldsymbol{x}_{\boldsymbol{i} \in M}}\left(\hat{y}_{i}-y_{i}\right) \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}
wminL(w)=wminxi∈M∑(y^i−yi)wTxi
假设误分类样本集合 M M M固定,那么可以求得损失函数 L ( w ) L(\boldsymbol{w}) L(w)的梯度为:
∇ w L ( w ) = ∑ x i ∈ M ( y ^ i − y i ) x i \nabla_{\boldsymbol{w}} L(\boldsymbol{w})=\sum_{\boldsymbol{x}_{\boldsymbol{i} \in M}}\left(\hat{y}_{i}-y_{i}\right) \boldsymbol{x}_{i} ∇wL(w)=xi∈M∑(y^i−yi)xi
感知机的学习算法具体采用的是随机梯度下降法,也就是极小化过程中不是一次使
M
M
M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。所以权重
w
\boldsymbol{w}
w的更新公式为:
w
←
w
+
Δ
w
Δ
w
=
−
η
(
y
^
i
−
y
i
)
x
i
=
η
(
y
i
−
y
^
i
)
x
i
\begin{array}{c} \boldsymbol{w} \leftarrow \boldsymbol{w}+\Delta \boldsymbol{w} \\ \Delta \boldsymbol{w}=-\eta\left(\hat{y}_{i}-y_{i}\right) \boldsymbol{x}_{i}=\eta\left(y_{i}-\hat{y}_{i}\right) \boldsymbol{x}_{i} \end{array}
w←w+ΔwΔw=−η(y^i−yi)xi=η(yi−y^i)xi
相应地, w \boldsymbol{w} w中的某个分量 w i w_i wi的更新公式即为公式(5.2)。