第2章 感知机
感知机(perceptron)是二类分类的线性分类模型(判别模型),其输入为实例的特征向量,输出为实例的类别,取+1和−1二值。
2.1 模型
定义2.1(感知机) 假设输入空间(特征空间)是X⊆,输出空间是Y={+1,−1}。输入x∈X表示实例的特征向量,对应于输入空间(特征空间)的点;输出y∈Y表示实例的类别。由输入空间到输出空间的如下函数:称为感知机。
其中,w和b为感知机模型参数,w∈叫作权值(weight)或权值向量(weight vector),b∈R叫作偏置(bias),w·x表示w和x的内积。sign是符号函数,即
2.2 策略
2.2.1 数据集的线性可分性
即wx+b=0对所有yi=+1的实例i,有w·xi+b>0,对所有yi=−1的实例i,有w·xi+b<0,则称数据集T为线性可分数据集(linearly separable data set);否则,称数据集T线性不可分。
2.2.2 感知机学习策略
即定义(经验)损失函数并将损失函数极小化。
损失函数的另一个选择是误分类点到超平面S的总距离,这是感知机所采用的。
①输入空间中任一点x0到超平面S的距离:
②对于误分类的数据(xi,yi)来说,下式成立。因为当w·xi+b>0时,yi=−1;而当w·xi+b<0时,yi=+1。因此,误分类点xi到超平面S的距离是
③误分类点xi到超平面S的距离是
④ 假设超平面S的误分类点集合为M,那么所有误分类点到超平面S的总距离为
2.3 算法
感知机学习问题转化为求解损失函数式(2.4)的最优化问题,最优化的方法是随机梯度下降法。
2.3.1 感知机学习算法的原始形式(须补充实例以巩固)
感知机学习算法是对以下最优化问题的算法。给定一个训练数据集
感知机学习算法是误分类驱动的,具体采用随机梯度下降法(stochastic gradient descent)。
随机梯度下降法:
首先,任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数(2.5)。
极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度由下式给出:
随机选取一个误分类点(xi,yi),对w,b进行更新:
式中η(0<η≤1)是步长,在统计学习中又称为学习率(learning rate)。
注:感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。
2.3.2 算法的收敛性(具体证明过程没有看懂)
定义:经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。
2.3.3 感知机学习算法的对偶形式(须补充实例以巩固)
感知机学习算法的原始形式和对偶形式与第7章中支持向量机学习算法的原始形式和对偶形式相对应。
基本思想: 对偶形式的基本想法是,将w和b表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w和b。
在算法2.1中可假设初始值w0,b0均为0。对误分类点(xi,yi)通过下式
逐步修改w,b,设修改n次,则w,b关于(xi,yi)的增量分别是αiyixi和αiyi,这里αi=niη,ni是点(xi,yi)被误分类的次数。这样,从学习过程不难看出,最后学习到的w,b可以分别表示为
这里,αi≥0,i=1,2,…,N,当η=1时,表示第i个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。换句话说,这样的实例对学习结果影响最大。
实现流程:
输入:线性可分的数据集T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈Rn,yi∈{−1,+1},i=1,2,…,N;学习率η(0<η≤1);
输出:α,b;感知机模型,其中α=(α1,α2,…,αN)T。
(1)α←0,b←0;
(2)在训练集中选取数据(xi,yi);
(3)如果,
(4)转至(2)直到没有误分类数据。
对偶形式中训练实例仅以内积的形式出现。为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵(Gram matrix)
感知机学习算法的对偶形式迭代是收敛的,存在多个解。