《统计学习方法》读书笔记一:感知机

感知机模型

感知机是一种线性分类模型。假设输入空间是$X \subseteq \mathbb{R}^n \(,输出空间是\)Y = {-1, 1}\(,定义从\)X\(到\)Y\(的如下函数 \[ f(x) = \mbox{sign}(w^Tx + b) \] 其中\)x \in X$, \(w \in \mathbb{R}^n\)\(b \in \mathbb{R}\),sign是符号函数。

感知机的几何意义是,由线性方程\(w^Tx + b =0\)定义的超平面将输入空间划为两个部分,位于两个部分的点分别为正、负两类。其中\(w\)是超平面的法向,这个超平面称为分离超平面(separating hyperplane)。

感知机学习

在训练集\(T = \{(x_1, y_1) \dots, (x_N,y_N)\}\)上学习得到感知机模型,并对于新的输入得到其输出类别,用于分类。

感知机学习的损失函数

一种自然的定义是所有误分类点到分离超平面的总距离,输入空间中任意一点\(x_0\)到超平面\(w^Tx+b=0\)的距离定义为
[
\frac{1}{|w|_2} |w^Tx_0 + b|
]
但这里需要用到不可导的绝对值函数

注意到对于误分类的数据\((x_i, y_i)\)
[
y_i(w^Tx_i + b ) < 0
]
并且\(|y_i| = 1\),于是\(|w^Tx_i + b|\)可以被\(-y_i(w^Tx_i + b )\)替换掉,得到
[
-\frac{1}{|w|_2}y_i(w^Tx_i + b)
]

忽略\(\frac{1}{\|w\|}\),得到感知机学习的损失函数
[
L(w,b) = -\sum_{x_i \in M} y_i(w^Tx_i + b)
]
其中\(M\)是误分类点的集合,此函数关于\(w\),\(b\)连续可导。

于是感知机学习问题求转化为优化问题
[
\min_{w,b} L(w,b) = -\sum_{x_i \in M} y_i(w^Tx_i + b)
]

感知机学习算法

对损失函数求得梯度
\begin{align}
& \partial_w L(w,b) = \sum_{x_i \in M} y_i x_i \\
& \partial_b L(w,b) = \sum_{x_i \in M} y_i
\end{align}
用随机梯度下降法求解,得到更新为
\begin{align}
& w = w + \eta y_i x_i \\
& b = b + \eta y_i
\end{align}
其中\(\eta\)是learning rate。

于是得到感知机学习算法:

  1. 选取初值\(w_0, b_0\)
  2. 在训练集中选取数据\((x_i,y_i)\)
  3. 如果\(y_i(w^Tx_i + b) \leq 0\),即\((x_i,y_i) \in M\),则更新\(w,b\)
    \begin{align}
    & w = w + \eta y_i x_i \\
    & b = b + \eta y_i
    \end
  4. 转置(2),直至训练集中没有误分类点。

注意,其实优化问题
[
\min_{w,b} L(w,b) = -\sum_{x_i \in M} y_i(w^Tx_i + b)
]
在无约束时是有问题的。因为去掉了\(\frac{1}{\|w\|}\)\(w=0,b=0\)是它的最优解。此外如果假设\(w_\star \neq 0, b_\star \neq 0\)是它的最优解,那么\(L(\frac{1}{2}w_\star, \frac{1}{2}b_\star) < L(w_\star,b_\star)\)与假设矛盾,因此\(w=0,b=0\)是优化问题唯一的最优解,这显然是错的。

但为什么用感知机的学习算法又能求得问题的解呢?因为在感知机学习算法中,加了一个迭代停止的判定条件:第一次达到没有误分点时迭代停止。而不是通常我们用的损失函数不再下降作为停止条件。所以当\(w=0,b=0\)不能构成分离超平面时,\(w=0,b=0\)不是一组解。如果\(w_\star \neq 0, b_\star \neq 0\)是一组解,那么\(cw_\star \neq 0, cb_\star \neq 0\)这组解目前为止没有在迭代过程中出现过,否则迭代在它出现是就停止了。因此\(w_\star \neq 0, b_\star \neq 0\)是能构成分离超平面的第一组解。也就是我们要求的。

感知机学习算法的收敛性

设训练集\(T = \{(x_1, y_1) \dots, (x_N,y_N)\}\)线性可分,则有

  1. 存在满足条件\(\|\tilde{w_\star}\|=1\)的超平面\(\tilde{w_\star}^Tx = w_\star^Tx + b_\star = 0\),将数据集完全分开,且存在\(\gamma > 0\)满足
    [
    \forall i, \quad y_i(\tilde{w_\star}^Tx_i) \geq \gamma
    ]
  2. \(R = \max_{1 \leq i \leq N} \|\tilde{x_i}\|\),感知机学习算法在训练集上误分类的次数\(k\)满足\(k \leq (\frac{R}{\gamma})^2\)

证明思路:\(\forall k\) \(\frac{\tilde{w_\star}^T \tilde{w(k)}}{\|\tilde{w_\star}\|\| \tilde{w(k)}\|} \leq 1\),且有\(\tilde{w_\star}^T \tilde{w(k)} \geq \tilde{w_\star}^T \tilde{w(k-1)} + \eta \gamma\)\(\| \tilde{w(k)}\| \leq \| \tilde{w(k-1)}\| + \eta^2 R^2\)

感知机算法的对偶形式

由于上面收敛性的证明是不依赖初值的,所以可以取初值为\(w_0 = 0, b = 0\),于是有
\begin{align}
& w = \sum_{i=1}^N \alpha_i y_i x_i \\
& b = \sum_{i=1}^N \alpha_i y_i
\end{align}
其中\(\alpha_i = n_i \eta\)\(n_i\)表示第\(i\)个点由于误分而进行更新的次数。

于是我们可以假设感知机模型是\(f(x) = \mbox(sign)\left( \sum_{j = 1}^N \alpha_j y_j x_j^x + b \right)\),则损失函数变为
[
L(\alpha, b) = -\sum_{x_i \in M} y_i\left( \sum_{j = 1}^N \alpha_j y_j x_j^x + b \right)
]
优化问题变为
[
\min_{\alpha,b} L(\alpha, b)
]
求梯度得
\begin{align}
& \partial_{\alpha_j} L = -\sum_{x_i \in M} y_i y_j x_i^T x_j \\
& \partial_b L = -\sum_{x_i \in M} y_i
\end{align}

posted @ 2014-12-11 16:13  小雨初晴爱学习  阅读(275)  评论(0编辑  收藏  举报