文章目录
分类
什么是分类?
一种典型的有监督学习问题
如下图,假设线性可分训练集 D = { x i , y i } i = 1 n , y ∈ { − 1 , 1 } D=\left\{\boldsymbol{x}_{i}, y_{i}\right\}_{i=1}^{n}, y \in\{-1,1\} D={xi,yi}i=1n,y∈{−1,1}
- 感知机:找到一条直线,将两类数据分开即可
- 支持向量机:找到一条直线,不仅将两类数据正确分类,还使得数据离直线尽量远
- 逻辑回归:找到一条直线使得观察到训练集的“可能性”最大
前置知识
点到平面距离
最大似然估计
”似然”:likelihood 可能性。
最大似然法,一种求解概率模型参数的方法。
最早是遗传学家以及统计学家罗纳德·费雪在1912年至1922年间开始使用。
训练集的矩阵表示
假设训练集的特征部分记为
n
×
(
d
+
1
)
n\times (d+1)
n×(d+1)矩阵
X
X
X,其中最后一列取值全为1.标签部分记为
y
y
y,参数记为
w
w
w:
y
^
=
X
w
\widehat{\boldsymbol{y}}=\mathbf{X} \mathbf{w}
y
=Xw
感知机(Perceptron)
假设
f
(
x
)
=
w
T
x
f(\boldsymbol{x})=\mathbf{w}^{\mathrm{T}} \boldsymbol{x}
f(x)=wTx,系数
w
=
(
w
1
,
w
2
,
…
,
w
d
,
w
0
)
T
\mathbf{w}=\left(\mathrm{w}_{1}, \mathrm{w}_{2}, \ldots, \mathrm{w}_{\mathrm{d}}, \mathrm{w}_{0}\right)^{\mathrm{T}}
w=(w1,w2,…,wd,w0)T,模型为:
y
=
H
(
f
(
x
)
)
=
{
+
1
,
w
T
x
>
0
−
1
,
w
T
x
≤
0
y=H(f(x))=\left\{\begin{array}{ll} +1, & \mathbf{w}^{\mathrm{T}} \boldsymbol{x}>0 \\ -1, & \mathbf{w}^{\mathrm{T}} \boldsymbol{x} \leq 0 \end{array}\right.
y=H(f(x))={+1,−1,wTx>0wTx≤0
令 f ( x ) = 0 f(x)=0 f(x)=0,可以得到决策超平面 w T x = 0 \mathbf{w}^{\mathrm{T}} \boldsymbol{x}=0 wTx=0
有
n
n
n个训练样本,线性可分数据集
D
=
{
(
x
1
,
y
1
)
,
…
,
(
x
n
,
y
n
)
}
\mathrm{D}=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right), \ldots,\left(\boldsymbol{x}_{\mathrm{n}}, y_{\mathrm{n}}\right)\right\}
D={(x1,y1),…,(xn,yn)},点
x
i
,
y
i
x_i,y_i
xi,yi到决策超平面的距离为(不妨令
∥
w
∥
2
=
1
\|\mathbf{w}\|\ _2=1
∥w∥ 2=1):
d
i
=
∣
w
T
x
i
∣
∥
w
∥
2
=
y
i
w
T
x
i
∥
w
∥
2
→
y
i
w
T
x
i
d_{i}=\frac{\left|\mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}\right|}{\|\mathbf{w}\|_{\mathbf{2}}}=\frac{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}}{\|\mathbf{w}\|_{\mathbf{2}}} \rightarrow y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}
di=∥w∥2∣∣wTxi∣∣=∥w∥2yiwTxi→yiwTxi
优化目标是:误分类样本离超平面距离之和最小
目标函数: L ( w ) = − ∑ i ∈ M y i w T x i \mathrm{L}(\mathbf{w})=-\sum_{i \in M} y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}} L(w)=−∑i∈MyiwTxi, M M M为误分类样本集合 { j ∣ y j w T x j < 0 } \left\{j \mid y_{j} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{j}}<0\right\} {j∣yjwTxj<0},
严格来说,在 f ( x ) = 0 f(x)=0 f(x)=0处不可微,是没有梯度的,所以用次梯度来解决。
梯度: ∇ L ( w ) = − ∑ i ∈ M y i x i \nabla \mathrm{L}(\mathbf{w})=-\sum_{i \in M} y_{i} \boldsymbol{x}_{\boldsymbol{i}} ∇L(w)=−∑i∈Myixi
梯度下降法(GD):
w
(
t
+
1
)
←
w
(
t
)
+
η
t
∑
i
∈
M
y
i
x
i
\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} \sum_{i \in M} y_{i} \boldsymbol{x}_{\boldsymbol{i}}
w(t+1)←w(t)+ηti∈M∑yixi
随机梯度下降法(SGD):
w
(
t
+
1
)
←
w
(
t
)
+
η
t
y
i
x
i
\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} y_{i} \boldsymbol{x}_{\boldsymbol{i}}
w(t+1)←w(t)+ηtyixi
感知机算法过程:
支持向量机(Support Vector Machines)
线性可分训练集
D
=
{
(
x
1
,
y
1
)
,
…
,
(
x
n
,
y
n
)
}
\mathrm{D}=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right), \ldots,\left(\boldsymbol{x}_{\mathrm{n}}, y_{\mathrm{n}}\right)\right\}
D={(x1,y1),…,(xn,yn)},点
(
x
i
,
y
i
)
\left(\boldsymbol{x}_{i}, y_{i}\right)
(xi,yi)到决策超平面的距离
d
i
=
y
i
w
T
x
i
∥
w
∥
2
d_{i}=\frac{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}}{\|\mathbf{w}\|_{2}}
di=∥w∥2yiwTxi,我们的目标是让整个数据集离超平面越远越好,也就是让所有点中最近的点的距离最大:
max
w
min
i
y
i
w
T
x
i
∥
w
∥
2
⇔
max
w
1
∥
w
∥
2
min
i
y
i
w
T
x
i
\max _{\mathbf{w}} \min _{i} \frac{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}}{\|\mathbf{w}\|_{2}} \Leftrightarrow \max _{\mathbf{w}} \frac{1}{\|\mathbf{w}\|_{2}} \min _{i} y_{i} \mathbf{w}^{\mathrm{T}} x_{i}
wmaximin∥w∥2yiwTxi⇔wmax∥w∥21iminyiwTxi
y
i
w
T
x
i
y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}
yiwTxi相当于直线的系数,所以不妨令
min
i
y
i
w
T
x
i
=
1
\min _{i} y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}=1
miniyiwTxi=1,则:
max
w
1
∥
w
∥
2
⇔
min
w
1
2
∥
w
∥
2
2
(1)
\max _{\mathbf{w}} \frac{1}{\|\mathbf{w}\|_{2}} \Leftrightarrow \min _{\mathbf{w}} \frac{1}{2}\|\mathbf{w}\|_{2}^{2} \tag{1}
wmax∥w∥21⇔wmin21∥w∥22(1)
因为假设了
min
i
y
i
w
T
x
i
=
1
\min _{i} y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}=1
miniyiwTxi=1,那么对于训练集任意样本需满足
y
i
w
T
x
i
≥
1
y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}} \geq 1
yiwTxi≥1,对于不满足上述条件样本的损失函数定义为$1-y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}} $,则样本损失为合页损失(hinge loss):
L
(
y
i
,
f
(
x
i
)
)
=
max
(
0
,
1
−
y
i
w
T
x
i
)
(2)
\mathrm{L}\left(y_{i}, f\left(\boldsymbol{x}_{\boldsymbol{i}}\right)\right)=\max \left(0,1-y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}\right) \tag{2}
L(yi,f(xi))=max(0,1−yiwTxi)(2)
为什么叫合页损失呢?如下配图:
所以,(1)(2)两个优化目标得到的目标函数:
L
(
w
)
=
λ
2
∥
w
∥
2
2
+
∑
i
=
1
n
max
(
0
,
1
−
y
i
w
T
x
i
)
\mathrm{L}(\mathbf{w})=\frac{\lambda}{2}\|\mathbf{w}\|_{2}^{2}+\sum_{i=1}^{n} \max \left(0,1-y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{i}\right)
L(w)=2λ∥w∥22+i=1∑nmax(0,1−yiwTxi)
其中,
λ
\lambda
λ是超参数,用来平衡两个优化目标
记不满足约束的样本集
M
=
{
j
∣
y
j
w
T
x
j
<
1
}
M=\left\{j \mid y_{j} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{j}}<1\right\}
M={j∣yjwTxj<1},那么梯度为:
∇
L
(
w
)
=
λ
w
−
∑
i
∈
M
y
i
x
i
\nabla \mathrm{L}(\mathbf{w})=\lambda \mathbf{w}-\sum_{i \in M} y_{i} \boldsymbol{x}_{i}
∇L(w)=λw−i∈M∑yixi
梯度下降法:
w
(
t
+
1
)
←
w
(
t
)
−
η
t
(
λ
w
(
t
)
−
∑
i
∈
M
y
i
x
i
)
\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}-\eta_{t}\left(\lambda \mathbf{w}^{(t)}-\sum_{i \in M} y_{i} \boldsymbol{x}_{i}\right)
w(t+1)←w(t)−ηt(λw(t)−i∈M∑yixi)
随机梯度下降法:
w
(
t
+
1
)
←
w
(
t
)
−
η
t
(
λ
w
(
t
)
−
I
(
i
∈
M
)
y
i
x
i
)
\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}-\eta_{t}\left(\lambda \mathbf{w}^{(t)}-\mathrm{I}(i \in M) y_{i} \boldsymbol{x}_{i}\right)
w(t+1)←w(t)−ηt(λw(t)−I(i∈M)yixi)
上面的算法是软间隔的SVM,如果是非线性的,使用映射的方法,从低维映射到高维。在高维会有维度灾难的问题,但是计算量还是低维的计算量。SVM没有很好解决的问题:怎么从低维映射到高维。
核方法与核函数
核方法的基本原理是把原坐标系里线性不可分的数据使用核函数(Kernel)投影到另一个空间,尽量使得数据在新的空间里线性可分。
- 核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数 n n n对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。
- 无需知道非线性变换函数的形式和参数。
- 核函数的形式和参数的变化会隐式改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。
- 核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。
具体地,特征 X i X_i Xi和 X j X_j Xj在新空间中的内积可以由核函数 k ( x i , x j ) k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) k(xi,xj)计算得到。
- 多项式核: k ( x i , x j ) = ( x i T x j + r ) d k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\left(x_{i}^{\mathrm{T}} \boldsymbol{x}_{j}+r\right)^{d} k(xi,xj)=(xiTxj+r)d, d d d为次数, r r r为截距项
- 拉普拉斯核: k ( x i , x j ) = exp ( − ∥ x i − x j ∥ δ ) k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) =\exp \left(-\frac{\left\|x_{i}-x_{j}\right\|}{\delta}\right) k(xi,xj)=exp(−δ∥xi−xj∥), $\delta>0 $
- 高斯核: k ( x i , x j ) = exp ( − ∥ x i − x j ∥ 2 2 δ 2 ) k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\exp \left(-\frac{\left\|x_{i}-x_{j}\right\|^{2}}{2 \delta^{2}}\right) k(xi,xj)=exp(−2δ2∥xi−xj∥2), δ > 0 \delta>0 δ>0为窗宽
- Sigmoid核(Fisher核): k ( x i , x j ) = tanh ( β x i T x j + θ ) k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\tanh \left(\beta x_{i}^{\mathrm{T}} x_{j}+\theta\right) k(xi,xj)=tanh(βxiTxj+θ), β > 0 \beta>0 β>0, $\theta<0 $
逻辑回归(Logistic Regression)
假设
f
(
x
)
=
w
T
x
f(\boldsymbol{x})=\mathbf{w}^{\mathrm{T}} \boldsymbol{x}
f(x)=wTx,系数
w
=
(
w
1
,
w
2
,
…
,
w
d
,
w
0
)
T
\mathbf{w}=\left(\mathrm{w}_{1}, \mathrm{w}_{2}, \ldots, \mathrm{w}_{\mathrm{d}}, \mathrm{w}_{0}\right)^{\mathrm{T}}
w=(w1,w2,…,wd,w0)T,训练集
D
=
{
x
i
,
y
i
}
i
=
1
n
,
y
∈
{
−
1
,
1
}
D=\left\{\boldsymbol{x}_{i}, y_{i}\right\}_{i=1}^{n}, y \in\{-1,1\}
D={xi,yi}i=1n,y∈{−1,1},概率的解释:
p
(
y
=
1
∣
x
)
=
1
1
+
e
−
w
T
x
(1)
p(y=1 \mid \boldsymbol{x})=\frac{1}{1+e^{-\mathrm{w}^{\mathrm{T}} x}} \tag{1} \\
p(y=1∣x)=1+e−wTx1(1)
p ( y = − 1 ∣ x ) = 1 − p ( y = 1 ∣ x ) = 1 1 + e w T x (2) p(y=-1 \mid \boldsymbol{x})=1-p(y=1 \mid \boldsymbol{x})= \frac{1}{1+e^{\mathrm{w}^{\mathrm{T}}x}} \tag{2} p(y=−1∣x)=1−p(y=1∣x)=1+ewTx1(2)
类似sigmoid函数,(1)式代表样本是正的概率,(2)式代表样本是负的概率,结合$ y \in{-1,1}
,
加
入
,加入
,加入y
后
,
样
本
后,样本
后,样本(\boldsymbol{x}{1}, y{1})$的概率为:
p
(
y
i
∣
x
i
)
=
1
1
+
e
−
y
i
w
T
x
i
p\left(y_{i} \mid \boldsymbol{x}_{i}\right)=\frac{1}{1+e^{-y_{i} \mathbf{w}^{\mathrm{T}} x_{i}}}
p(yi∣xi)=1+e−yiwTxi1
这时,我们想到最大似然估计,把每一个概率连乘,得到似然函数为:
L
(
w
)
=
∏
i
=
1
n
p
(
y
i
∣
x
i
)
=
∏
i
=
1
n
1
1
+
e
−
y
i
w
T
x
i
\mathrm{L}(\mathbf{w})=\prod_{i=1}^{n} p\left(y_{i} \mid \boldsymbol{x}_{i}\right)=\prod_{i=1}^{n} \frac{1}{1+e^{-y_{i} w^{\mathrm{T}} x_{i}}}
L(w)=i=1∏np(yi∣xi)=i=1∏n1+e−yiwTxi1
为了便于计算,取对数,将乘法变为加法,负对数似然函数为:
NLL
(
w
)
=
∑
i
=
1
n
ln
(
1
+
e
−
y
i
w
T
x
i
)
\operatorname{NLL}(\mathbf{w})=\sum_{i=1}^{n} \ln \left(1+e^{-y_{i} \mathbf{w}^{\mathrm{T}} x_{i}}\right)
NLL(w)=i=1∑nln(1+e−yiwTxi)
梯度为:
w
(
t
+
1
)
←
w
(
t
)
+
η
t
∑
i
=
1
n
y
i
x
i
1
+
e
y
i
w
T
x
i
\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} \sum_{i=1}^{n} \frac{y_{i} \boldsymbol{x}_{i}}{1+e^{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{i}}}
w(t+1)←w(t)+ηti=1∑n1+eyiwTxiyixi
随机梯度下降法:
w
(
t
+
1
)
←
w
(
t
)
+
η
t
∑
i
=
1
n
y
i
x
i
1
+
e
y
i
w
T
x
i
\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} \sum_{i=1}^{n} \frac{y_{i} \boldsymbol{x}_{i}}{1+e^{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{i}}}
w(t+1)←w(t)+ηti=1∑n1+eyiwTxiyixi
三种模型的对比
感知机:$\mathrm{L}(y, f(\boldsymbol{x}))=\max (0,-y f(\boldsymbol{x})) $
支持向量机 : L ( y , f ( x ) ) = max ( 0 , 1 − y f ( x ) ) \mathrm{L}(y, f(\boldsymbol{x}))=\max (0,1-y f(\boldsymbol{x})) L(y,f(x))=max(0,1−yf(x))
逻辑回归 : $\mathrm{L}(y, f(\boldsymbol{x}))=\ln (1+\exp (-y f(\boldsymbol{x}))) $
从图中可以看出,感知机对于小于0的有惩罚,支持向量机小于1就有惩罚。理想的损失函数:0-1损失 ,就是图中的黑色部分,但是这很难被高效地优化
感知机
- 关注误分类样本,将训练集样本分对即可
- 是支持向量机、神经网络的基本模型
- 只能应用于线性可分数据集
支持向量机
优点:
- 可以使用核技巧将低维数据转换到高维运算,保持低维的计算量
缺点:
- 如何选择核函数是一大困难
- 当特征维度远远大于样本量时,效果会比较差
- 当样本量很大时,使用非线性核函数会导致计算效率低下
- SVM无法直接输出概率化的取值
逻辑回归
- 使用 Logistic 函数赋予样本概率解释
- 使用最大似然法求解,是一种线性分类模型
- 为防止过度拟合,可在优化目标添加正则项