感知机(perceptron)

《统计学习方法》(第二版)第2章

2 感知机

二类分类线性分类模型判别模型

输入:实例的特征向量

输出:实例的类别(+1,-1)

2.1 感知机模型

\[f(x)=sign(w·x+b) \]

几何解释

\(w·x+b=0\)对应一个超平面\(S\)\(w\)是超平面的法向量,\(b\)是超平面的截距。

法向量证明:从超平面上任取\(\overrightarrow{x_1}\)\(\overrightarrow{x_2}\),有\(w·\overrightarrow{x_1}+b=0\)\(w·\overrightarrow{x_2}+b=0\),两式相减可知\(w·\overrightarrow{x_2x_1}=0\)\(w\)与超平面上任一向量垂直,即为法向量。

2.2 感知机学习策略

数据集的线性可分性

存在某个超平面\(S\)能够将数据集\(T\)的正实例点和负实例点完全正确地划分到超平面的两侧。

感知机学习策略

自然选择:误分类点的总数(不是参数\(w,b\)的连续可导函数,不易优化)

另一个选择:误分类点到超平面\(S\)的总距离

对于任一点\(x_0\)到超平面\(S\)的距离:\(\frac{1}{||w||}|w·x_0+b|\)(参见点到直线距离公式\(d=\frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}\)

误分类点到超平面\(S\)的总距离:\(-\frac{1}{||w||}\sum \limits_{x_i \in M} y_i(w·x_i+b)\)

所以损失函数\(L(w,b)=-\sum \limits_{x_i \in M}y_i(w·x_i+b)\),其中\(M\)为误分类点的集合

2.3 感知机学习算法

原始形式

采用随机梯度下降法stochastic gradient descent,极小化目标函数

\[\min \limits_{w,b} L(w,b)=-\sum_{x_i \in M}y_i(w·x_i+b) \]

\(\nabla_w L(w,b)=-\sum \limits_{x_i \in M}y_ix_i\)

\(\nabla_b L(w,b)=-\sum \limits_{x_i \in M}y_i\)

步骤

  1. 选取初值\(w_0,b_0\)

  2. 在训练集中选取数据\((x_i,y_i)\)

  3. 如果$ y_i(w·x_i+b) \le 0$,

    \[w ← w + \eta y_ix_i \\ b ← b + \eta y_i \]

  4. 转至2.,直至训练集中没有误分类点,即\(L(w,b)=0\)

算法收敛性

误分类的次数是有上界的,经过有限次搜索可以找到将训练数据完全分开的分离超平面。

\[k \le (\frac{R}{\gamma})^2 \]

其中\(R=\max \limits_{1 \le i \le N}|\hat x_i|\)\(y_i(\hat w_{opt}·\hat x_i)=y_i(w_{opt}·x_i+b_{opt}) \ge \gamma\)

对偶形式

\[f(x)=sign(\sum \limits_{j=1}^N \alpha_jy_jx_i·x+b) \]

\(w=\sum \limits_{j=1}^N \alpha_jy_jx_i,b=\sum \limits_{j=1}^N \alpha_jy_j\)

\(\alpha=n_i\eta\),当\(N=1\)时,表示第\(i\)个实例点由于误分而进行更新的次数。

\(Gram\)矩阵:\(G=[x_i·x_j]_{N×N}\)

步骤

  1. \(\alpha←0,b←0\)

  2. 在训练集中选取数据\((x_i,y_i)\)

  3. 如果$ y_i(\sum \limits_{j=1}^N \alpha_jy_jx_i+b) \le 0$,

    \[\alpha_i ← \alpha_i + \eta \\ b ← b + \eta y_i \]

  4. 转至2.,直至训练集中没有误分类点。

扩展学习方法

口袋算法、表决感知机、带边缘感知机

posted @ 2019-05-21 11:55  白芷呀  阅读(1429)  评论(0编辑  收藏  举报