1.5 感知机学习算法
概述:感知机学习问题转化为求解损失函数式的最优化问题,最优化的方法就是随机梯度下降法。
(1)感知机学习算法——原始形式
感知机学习算法是对以下最优化问题的算法。给定一个训练数据集T={(x1,y1),(x2,y2),······,(xn,yn)},其中,xi∈X∈,yi∈Y={-1,+1},i=1,2,····n,求参数w,b,使其为以下损失函数极小化问题的解
其中M为误分类点的集合。
(2)随机梯度下降法
沿着梯度的反方向就是数值下降最快的方向
①梯度:指某一函数在该点处最大的方向导数,即沿着该方向所取得最大的变化率。
▽=,若f(θ)是凸函数,可通过梯度下降法进行优化:,其中为第K次的迭代值,为步长。
②算法
输入:目标函数f(),步长,计算精度;
输出:f()的极小点
第一步:选取初始点∈,置K=0;
第二步:计算f();
第三步:计算;
第四步:置,计算;
第五步(终止条件):当,或,停止,令=。否则,k=k+1,转到第三步。
(3)随机梯度下降法应用于求解损失函数极小化问题
感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先,任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数(损失函数)。极小化过程中不是一次使得M中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
损失函数:
梯度:
参数更新:
批量梯度下降法:每次迭代时使用所有误分类点来进行参数更新。
随机梯度下降法:每次随机选取一个误分类点。
其中,η(0<η<=1)代表步长,在统计学习中又称为学习率。这样,通过迭代可以期待损失函数L(w,b)不断减小,直到为0。
算法:
输入:训练数据集T={(x1,y1),(x2,y2),······,(xn,yn)},其中,xi∈X∈,yi∈Y={-1,+1},i=1,2,····n;学习率η(0<η<=1);
输出:w,b;感知机模型f(x) = sign(w*x + b)。
① 选取初值w0,b0;
② 在训练集中选取数据(xi,yi);
③ 如果yi(w*xi + b)<=0,则说明该实例点为误分类点,则进行梯度下降法,使得损失函数减小,即使得分离超平面越来越接近于可以将所有样本点区分开的超平面(分离超平面不唯一);
④转至②,直至训练集当中没有误分类点。
解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。
感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。
(4)算法的收敛性
线性可分数据集感知机学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全划分的分离超平面及感知机模型。
为了方便表示,将偏置b并入权重向量w,记作,同样将输入向量加以扩充,加入常数1,记作。这样,。显然,。
定理Novikoff 设训练数据集T={(x1,y1),(x2,y2),······,(xn,yn)}是线性可分的,其中,xi∈X∈,yi∈Y={-1,+1},i=1,2,····n,则
存在性:①存在满足条件(最优的扩充向量)的超平面并将训练数据集完全正确分开;且存在r>0,对于所有i=1,2,····n
收敛性:令,则感知机算法在训练数据集上的误分类次数k满足不等式
k<=
定理表明:
①误分类的次数k是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。即当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的。
②感知机学习算法存在许多解,受到初值的影响,以及在迭代过程当中误分类点的选择顺序。
③为了得到唯一的分离超平面,需要对于超平面增加约束条件(线性支持向量机)。
④当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。