感知机
感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于 判别模型。
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
2.1 感知机模型
假设输入空间(特征空间),输出空间是y={+1,-1},输入
表示实例的特征向量,对应于输入空间(特征空间)的点;输出
表示实例的类别。由输入空间到输出空间的如下函数:
称为感知机。
其中,sign是符号函数,即:
2.2 感知机学习策略
2.2.1 数据集的线性可分性
给定一个数据集T = {(x1,y1), (x2,y2) , . . . , (xN,yN)}。其中,xi∈χ=Rn,yi∈γ={+1,-1},i = 1,2 , . . . , N,如果存在某个超平面S:w ⋅ x + 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到超平面S的距离为
④ 那么所有误分类点到超平面S的总距离为
⑤ 不考虑系数,就得到感知机学习的损失函数,其中M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。
感知机学习的策略就是在假设空间中选取使损失函数最小的模型参数w,b,即感知机模型。
2.3 感知机学习算法
感知机学习问题转换为求解损失函数的最优化问题,最优化的方法是随机梯度下降法(stochastic gradient descent ,SGD)。
2.3.1 感知机学习算法的原始形式
输入 :训练数据集T={(x1,y1),(x2,y2),…,(xn,yn)},{-1,+1},i=1,2…N;
输出 :w,b;感知机模型f(x)=sign(w·x+b)。
过程:
(1)选取初值w0,b0;
(2)在训练集中选取数据(xi,yi);
(3)如果yi(w·xi+b)≤0,
(4)转至(2),直至训练集中没有误分类点。
注:① 极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降;
② 当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b的值,使分离超平面像该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类;
③感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同;
2.3.2 算法的收敛性
当训练集线性可分时,感知机学习算法原始形式迭代是收敛的;同时感知机学习算法存在很多解,这些解既依赖于初值的选择,也依赖于迭代过程中误分类点的选择顺序。
当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。
2.3.3 感知机学习算法的对偶形式
其中ai=niη,当η=1时,表示第i个实例点由于误分而进行更新的次数。
过程:
: 则有
计算过程中:
与原始形式一样,感知机学习算法的对偶性是迭代是收敛的,存在多个解。