机器学习笔记2-感知机

机器学习笔记2-感知机

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

感知机具有形式 f ( x ) = s i g n ( w x + b ) f{\rm{(}}x{\rm{)}} = {\rm{sign(}}wx + b{\rm{)}} ,其中 w w 是权值向量, b b 是偏置向量,sign函数是符号函数,超平面S: w x + b = 0 wx+b=0 ,称为分离超平面。若对数据集中所有点{( x 1 , y 1 x_1,y_1 )( x 2 , y 2 x_2,y_2 )…( x n , y n x_n,y_n )},都有 w x i + b > 0 wx_i+b>0 时, y i = + 1 y_i=+1 ; w x i + b < 0 wx_i+b<0 时, y i = 1 y_i=-1 ,则称为数据集线性可分。其损失函数选取为误分类点集( M M )到超平面S的总距离,即 1 w i M y i ( w x i + b ) - \frac{{\rm{1}}}{{\left\| w \right\|}}\sum\limits_{i \in M} {{y_i}{\rm{(}}w{x_i}} + b{\rm{)}} 。一般不考虑 1 w \frac{{\rm{1}}}{{\left\| w \right\|}} ,损失函数可写为 i M y i ( w x i + b ) -\sum\limits_{i \in M} {{y_i}{\rm{(}}w{x_i}} + b{\rm{)}} 。损失函数是非负的,当误分类点数为零时,损失函数为零。

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

感知机学习算法的具体形式:
(1)选取初值 w 0 , b 0 w_0,b_0
(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i)
(3)如果 y i ( w x i + b ) < = 0 y_i(wx_i+b)<=0 ,更新参数 w w + η y i x i w \leftarrow w + \eta {y_i}{x_i} b b + η y i b \leftarrow b + \eta {y_i}
(4)转至(2),直到训练集中没有误分类点。
以上是感知机学习算法的原始形式,除此之外,其还有对偶形式。对偶形式在支持向量机中会有详细讲述(利用的是拉格朗日对偶性)。

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

猜你喜欢

转载自blog.csdn.net/zhennang1427/article/details/85098583