上一节介绍了线性回归模型的具体性质,本节将介绍线性分类中第一个具有代表性意义的算法——感知机算法(Perceptron)。
线性回归的模型(拟合方程)具体表示如下:
f
(
W
,
b
)
=
W
T
x
(
i
)
+
b
(
i
=
1
,
2
,
⋯
,
N
)
f(\mathcal W,b) = \mathcal W^{T}x^{(i)} + b \quad(i = 1,2,\cdots,N)
f(W,b)=WTx(i)+b(i=1,2,⋯,N)
其中
N
N
N表示数据集合中样本数量。从模型的角度观察,线性回归与线性分类的最根本区别是模型中是否包含非线性激活函数。
非线性激活函数的存在意义本质上是分类任务的需要。由于任务性质的不同:
回归任务是 模型拟合样本。它的思路是模型如何精确描述真实样本的趋势。因此,它的策略(损失函数) 主要表示为 模型拟合结果
W
T
x
(
i
)
+
b
\mathcal W^{T}x^{(i)} +b
WTx(i)+b与真实标签
y
(
i
)
y^{(i)}
y(i)之间的差距信息:
L
(
W
)
=
∑
i
=
1
N
∣
∣
W
T
x
(
i
)
+
b
−
y
(
i
)
∣
∣
2
\mathcal L(\mathcal W) = \sum_{i=1}^N ||\mathcal W^{T}x^{(i)}+b - y^{(i)}||^2
L(W)=i=1∑N∣∣WTx(i)+b−y(i)∣∣2
分类任务是 模型划分样本。不同于回归任务,此时的样本点并不存在某种趋势,而是聚集在不同的样本子空间中。因此,线性分类的思路是 模型 f ( W , b ) = W T x ( i ) + b f(\mathcal W,b) = \mathcal W^{T}x^{(i)} + b f(W,b)=WTx(i)+b在 p p p维样本子空间中产生的线(超平面),对样本空间进行划分,从而实现各样本在对应样本子空间的分类效果。
以激活函数的连续性对线性分类类型进行划分:
以二分类为例,真实标签结果
y
(
i
)
y^{(i)}
y(i)只包含2个具体数值。例如:
y
(
i
)
∈
{
−
1
,
1
}
(
i
=
1
,
2
,
⋯
,
N
)
y^{(i)} \in \{-1,1\}\quad (i=1,2,\cdots,N)
y(i)∈{−1,1}(i=1,2,⋯,N)
其中
p
p
p表示’激活函数映射结果’
y
p
r
e
d
(
i
)
y_{pred}^{(i)}
ypred(i)选择数值1的概率;
线性分类算法中:
本节将介绍硬分类算法中的感知机算法。
感知机算法作为线性分类中最简单的模型之一,它的模型表示如下:
f
(
W
,
b
)
=
s
i
g
n
(
W
T
x
(
i
)
+
b
)
(
i
=
1
,
2
,
⋯
,
N
)
f(\mathcal W,b) = sign(\mathcal W^{T}x^{(i)} +b) \quad(i=1,2,\cdots,N)
f(W,b)=sign(WTx(i)+b)(i=1,2,⋯,N)
其中:
x
(
i
)
=
(
x
1
(
i
)
,
x
2
(
i
)
,
⋯
,
x
p
(
i
)
)
T
W
=
(
w
1
,
w
2
,
⋯
,
w
p
)
T
x^{(i)} = (x_1^{(i)},x_2^{(i)},\cdots,x_p^{(i)})^T \\ \mathcal W = (w_1,w_2,\cdots,w_p)^T
x(i)=(x1(i),x2(i),⋯,xp(i))TW=(w1,w2,⋯,wp)T
记作
x
(
i
)
∈
R
p
,
W
∈
R
p
,
b
∈
R
x^{(i)} \in \mathbb R^{p},\mathcal W \in \mathbb R^p,b \in \mathbb R
x(i)∈Rp,W∈Rp,b∈R。
s
i
g
n
sign
sign函数被称为符号函数。它的定义如下:
s
i
g
n
(
a
)
=
{
1
a
≥
0
−
1
a
<
0
sign(a) =
它的模型思路很简单:线性组合加一层硬输出的非线性激活函数,那么感知机的分类是基于什么思路实现的?换句话说:感知机算法的策略(损失函数)是什么?
构建思想简单归纳为四个字:错误驱动。
综上,根据上述的构建思想,我们重新观察符号函数:
可以将上述逻辑归纳为:一旦
y
(
i
)
y^{(i)}
y(i)和
W
T
x
(
i
)
+
b
\mathcal W^{T}x^{(i)} + b
WTx(i)+b同号时,样本点
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i))被正确分类;相反,
y
(
i
)
y^{(i)}
y(i)和
W
T
x
(
i
)
+
b
\mathcal W^{T}x^{(i)} + b
WTx(i)+b异号时,样本点
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i))被错误分类。
至此,感知机算法的策略(损失函数) 设计如下:
实际意义为‘被错误分类样本的数量’。
L
(
W
,
b
)
=
∑
i
=
1
N
I
{
y
(
i
)
(
W
T
x
(
i
)
+
b
)
<
0
}
\mathcal L(\mathcal W,b) = \sum_{i=1}^N \mathcal I\{y^{(i)} \left(\mathcal W^{T}x^{(i)} + b\right) < 0\}
L(W,b)=i=1∑NI{y(i)(WTx(i)+b)<0}
其中
I
\mathcal I
I为指示函数。其具体定义为:
I
=
{
1
y
(
i
)
(
W
T
x
(
i
)
+
b
)
<
0
0
e
l
s
e
\mathcal I =
基于上述损失函数 L ( W ) \mathcal L(\mathcal W) L(W),参数 W , b \mathcal W,b W,b的优化过程的缺陷:
不可导意味着无法求解模型最优参数 W ^ , b ^ \hat {\mathcal W},\hat b W^,b^。如何找到可导的损失函数?重新观察 y ( i ) ( W T x ( i ) + b ) < 0 y^{(i)}\left(\mathcal W^{T}x^{(i)} + b \right) < 0 y(i)(WTx(i)+b)<0的情况:
无限趋近于0意味着‘被错误分类的样本点’距离‘模型表示的直线’无限接近,但不会越过去,因为越过去就是‘分类正确的样本点’。
负号的意思是将‘损失函数’将0从上界修改为下界,从而达到‘最小化损失函数’的效果。
此时的损失函数自然是连续的,想要求解最优参数
W
^
\hat {\mathcal W}
W^,需要对
W
\mathcal W
W进行求导:
∂
L
(
W
,
b
)
∂
W
=
∇
W
L
(
W
,
b
)
=
∑
(
x
(
i
)
,
y
(
i
)
)
∈
D
−
y
(
i
)
x
(
i
)
\frac{\partial \mathcal L(\mathcal W,b)}{\partial \mathcal W} = \nabla_{\mathcal W}\mathcal L(\mathcal W,b) = \sum_{(x^{(i)},y^{(i)}) \in \mathcal D} -y^{(i)}x^{(i)}
∂W∂L(W,b)=∇WL(W,b)=(x(i),y(i))∈D∑−y(i)x(i)
观察求导结果发现,
∇
W
L
(
W
,
b
)
\nabla_{\mathcal W}\mathcal L(\mathcal W,b)
∇WL(W,b)结果中不含
W
\mathcal W
W项,无法直接求解最优参数
W
^
\hat {\mathcal W}
W^。因此,这里算法部分使用随机梯度下降方法来迭代求解最优参数:
W
(
t
+
1
)
←
W
(
t
)
−
λ
∇
W
L
(
W
,
b
)
=
W
(
t
)
+
λ
∑
(
x
(
i
)
,
y
(
i
)
)
∈
D
y
(
i
)
x
(
i
)
下一节将介绍另一种基于硬分类的经典算法——线性判别分析(LDA)
相关参考:
机器学习-线性分类2-感知机