机器学习笔记2-感知机

感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1两个值。感知机学习旨在求出将训练数据进行线性划分的分离超平面,损失函数基于误分类,利用梯度下降法对损失函数进行极小化。(感知机模型是神经网络和支持向量机的基础)

感知机具有形式f(x)=sign(wx+b)f{\\rm{(}}x{\\rm{)}} = {\\rm{sign(}}wx + b{\\rm{)}}f(x)=sign(wx+b),其中www是权值向量,bbb是偏置向量,sign函数是符号函数,超平面S:wx+b=0wx+b=0wx+b=0,称为分离超平面。若对数据集中所有点{(x1,y1x_1,y_1x1,y1)(x2,y2x_2,y_2x2,y2)…(xn,ynx_n,y_nxn,yn)},都有wxi+b&gt;0wx_i+b&gt;0wxi+b>0时,yi=+1y_i=+1yi=+1;wxi+b&lt;0wx_i+b&lt;0wxi+b<0时,yi=1y_i=-1yi=1,则称为数据集线性可分。其损失函数选取为误分类点集(MMM)到超平面S的总距离,即1wiMyi(wxi+b)- \\frac{{\\rm{1}}}{{\\left\\| w \\right\\|}}\\sum\\limits_{i \\in M} {{y_i}{\\rm{(}}w{x_i}} + b{\\rm{)}}w1iMyi(wxi+b)。一般不考虑1w\\frac{{\\rm{1}}}{{\\left\\| w \\right\\|}}w1,损失函数可写为iMyi(wxi+b)-\\sum\\limits_{i \\in M} {{y_i}{\\rm{(}}w{x_i}} + b{\\rm{)}}iMyi(wxi+b)。损失函数是非负的,当误分类点数为零时,损失函数为零。

感知机的学习算法采用随机梯度下降法(SGD),与之对应的有批量梯度下降法(BGD)。BGD每一次迭代时使用所有样本来进行梯度的更新。当样本数目很大时,每迭代一步都需要对所有样本计算,训练过程会很慢。SGD每次迭代使用一个样本来对参数进行更新。此时虽然训练速度加快了,但准确度会下降,且不易于并行实现。此外还有一个小批量梯度下降法(MBGD),它是对SGD与BGD折中的一个方法,每次迭代使用 batch_size个样本来对参数进行更新。

感知机学习算法的具体形式:
(1)选取初值w0,b0w_0,b_0w0,b0
(2)在训练集中选取数据(xi,yi)(x_i,y_i)(xi,yi)
(3)如果yi(wxi+b)&lt;=0y_i(wx_i+b)&lt;=0yi(wxi+b)<=0,更新参数ww+ηyixiw \\leftarrow w + \\eta {y_i}{x_i}ww+ηyixibb+ηyib \\leftarrow b + \\eta {y_i}bb+ηyi
(4)转至(2),直到训练集中没有误分类点。

参考:
李航《统计学习方法》
https://www.cnblogs.com/lliuye/p/9451903.html

收藏 打印