统计学习方法第二章 感知机 学习笔记

感知机

感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。

感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。于1957年由Rosenblatt提出,是神经网络与支持向量机的基础。

2.1 感知机模型

假设输入空间(特征空间)是X\subseteq R^{n},输出空间是Y=\left \{ +1,-1 \right \}。输入x\in X表示实例的特征向量,对应于输入空间(特征空间)的点;输出y\in Y表示实例的类别。由输入空间到输出空间的如下函数:

f(x)=sign(w\cdot x+b)

成为感知机。其中,w和b为感知机参数,w\in R^{n}叫做权值或权值向量,b\in R叫做偏置,w\cdot x表示w和x的内积。sign是符号函数,即

sign(x)=\left\{\begin{matrix} +1,x\geq 0\\ -1,x< 0 \end{matrix}\right.

感知机是一种线性分类模型,属于判别类型。

2.2 感知机学习理论

2.2.1 数据集的线性可分性

给定一个数据集,如果存在某个超平面S能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,则称数据集T为可分数据集linearly separable data set;否则,称数据集T线性不可分。

2.2.2 感知机学习策略

感知机的目的就是找出一个能够让训练集正实例点和负实例点完全正确分开的分离超平面。也就是要确定函数中的参数w和b。

输入空间中任意一点x_{0}到超平面S的距离:\frac{1}{||w||}|w\cdot x_{0}+b|   这里||w||是w的L_{2}范数。 ||w||=\sqrt{w_{1}^{2}+w_{2}^{2}+w_{3}^{2}+\cdot \cdot \cdot +w_{n}^{2}}

sign(x)可知,对于误分类的数据(x_{i},y_{i})来说,-y_{i}(w\cdot x_{i}+b)>0成立。

因此,误分类点x_{i}到超平面S的距离是-\frac{1}{||w||}y_{i}(w\cdot x_{i}+b)

这样,假设超平面S的误分类点集合为M,那么所有误分类点到超平面S的总距离为-\frac{1}{||w||}\sum_{x_{i}\in M}^{ }y_{i}|w\cdot x_{i}+b|,不考虑\frac{1}{||w||},就得到感知机学习的损失函数。(为什么不考虑,在第七章支持向量机中会解释)

所以就可以得到感知机的损失函数:L(w,b)=-\sum_{x_{i}\in M}^{ }y_{i}(w\cdot x_{i}+b)

显然,损失函数L(w,b)是非负的。如果没有误分类点,损失函数值是0。而且,误分类点越少,误分类点离超平面越近,损失函数的值就越小。

2.3 感知机学习算法

感知机学习问题转化为求解损失函数的最优化问题。最优化问题的方法是随机梯度下降法。

2.3.1 感知机学习算法的原始形式

感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先任意选取一个超平面w_{0}b_{0},然后利用梯度下降法不断地极小化目标函数。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

随机取一个误分类点(x_{i},y_{i}),对w,b进行更新:w\leftarrow w+\eta y_{i}x_{i}       b\leftarrow b+\eta y_{i}

式中\eta (0< \eta \leq 1)是步长,在统计学习中又称为学习率。这样通过不断地迭代,就可以使损失函数不断减小,直到为0。

算法2.1 感知机学习算法的原始形式

输入:训练数据集T=\left \{ (x_{1},y_{1}),(x_{2},y_{2}),\cdot \cdot \cdot ,(x_{N},y_{N}) \right \},其中x_{i}\in X=R^{n}y_{i}\in Y=\left \{ +1,-1 \right \},i=1,2,…,N;学习率\eta (0< \eta \leq 1)

输出:w,b;感知机模型f(x)=sign(w\cdot x+b)

优化步骤:

(1)选取初值w_{0}b_{0}

(2)在训练集中选取数据(x_{i},y_{i})

(3)如果y_{i}(w\cdot x_{i}+b)\leq 0w\leftarrow w+\eta y_{i}x_{i}     b\leftarrow b+\eta y_{i}

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

注:为什么第三步y_{i}(w\cdot x_{i}+b)\leq 0时要进行下面的操作?由前面的内容2.2.2可知,当y_{i}(w\cdot x_{i}+b)\leq 0时,这是一个误分类点。所以要对其进行修正。

2.3.2 算法的收敛性

为了便于叙述和推导,将偏置b并入权重向量w,记作\hat{w}=(w^{T},b)^{T},同样也将输入向量加以扩充,加进常数1,记作\hat{x}=(x^{T},1)^{T}。显然\hat{w}\cdot \hat{x}=w\cdot x+b

定理1:存在满足条件||\hat{w}_{opt}||=1的超平面\hat{w}_{opt}\cdot \hat{x}=w_{opt}\cdot x+b_{opt}=0将训练集完全正确分开,且存在\gamma > 0,对所有i=1,2,…,N:y_{i}(\hat{w}_{opt}\cdot \hat{x}_{i})=y_{i}(w_{opt}\cdot x_{i}+b_{opt})\geq \gamma

证明:由于此超平面已将训练集数据分开,所以对于任一数据,都有:y_{i}(\hat{w}_{opt}\cdot \hat{x}_{i})=y_{i}(w_{opt}\cdot x_{i}+b_{opt})> 0,所以存在\gamma =min\left \{ y_{i}(w_{opt}\cdot x_{i}+b_{opt}) \right \}使得该定理成立。

定理2:R=\max_{1\leq i\leq N}||\hat{x}_{i}||,则感知机算法2.1在训练数据集上的误分类次数k满足不等式:k\leq \left ( \frac{R}{\gamma } \right )^{2}

2.3.3 感知机学习算法的对偶形式

在感知机算法的原始形式中,需要逐步修改w,b。从学习过程中不难看出,最后学习到的w,b可以分别表示为w=\sum_{i=1}^{N}a_{i}y_{i}x_{i}     b=\sum_{i=1}^{N}a_{i}y_{i}   此处的a_{i}=n_{i}\etan_{i}是点(x_{i},y_{i})被误分类的次数。

\eta =1时,表示第i个实例点由于误分而进行更新的次数。实例点更新的次数越多,意味着它距离超平面越近,也就越难分类。换句话说,这样的实例对学习结果影响最大。

算法2.2 感知机学习算法的对偶形式

输入:训练数据集T=\left \{ (x_{1},y_{1}),(x_{2},y_{2}),\cdot \cdot \cdot ,(x_{N},y_{N}) \right \},其中x_{i}\in X=R^{n}y_{i}\in Y=\left \{ +1,-1 \right \},i=1,2,…,N;学习率\eta (0< \eta \leq 1)

输出:a,b;感知机模型f(x)=sign(\sum_{j=1}^{N}a_{j}y_{j}x_{j}\cdot x+b),其中a=(a_{1},a_{2},\cdot \cdot \cdot ,a_{N},)^{T}

优化步骤:

(1)a\leftarrow 0,b\leftarrow 0

(2)在训练集中选取数据(x_{i},y_{i})

(3)如果y_{i}(\sum_{j=1}^{N}a_{j}y_{j}x_{j}\cdot x+b)\leq 0a_{i}\leftarrow a_{i}+\eta     b\leftarrow b+\eta y_{i}

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

你可能感兴趣的:(统计学习方法笔记)