模型:二类分类的线性模型 (线性模型+符号函数)
策略:基于误分类的损失函数最小化
算法:原始形式 对偶形式

感知机是神经网络和支持向量机的基础

一、模型

训练数据集D={(x1,y1),(x2,y2)...(xn,yn)}
xiRn,yi{+1,1}

f(x)=sign(wx+b)

参数w,b
感知机旨在求出将训练数据进行线性划分的分离超平面。
取+1,-1为了更好定义损失函数,如果输出的类别是0,1 怎么处理
把{0,1}映射为{-1,+1}。

二、策略

损失函数

L(w,b)=xiMyi(wxi+b)

其中M为误分类点的集合。
感知机的损失函数类似0-1损失函数,对分类正确的不惩罚,分类错误的惩罚。
对误分类的点(xi,yi)
yi(wxi+b)>0

从另一个角度理解损失函数 (这与SVM中的函数间隔概念相关)
损失函数定义为误分类点到超平面的总距离
点到超平面的距离
1||w|||wx+b|

误分类点到超平面的总距离
1||w||xiMyi(wxi+b)

不考虑1||w||,就得到感知机的损失函数。
为什么可以忽略参数w的模。

【1】
分子和分母都含有w,当分子的w扩大N倍时,分母的L2范数也会扩大N倍。分子和分母有固定的倍数关系。
那么我们可以固定分子或者分母为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。
在感知机模型中,我们采用的是保留分子。
支持向量机,采用的是固定分子为1,然后求1/||w||2的最小化。
采用不同的损失函数主要与它的后面的优化算法有关系。
x1+x2=12x1+2x2=2是同一个超平面

三、算法

3.1 原始形式

最小化损失函数

minw,bL(w,b)=xiMyi(wxi+b)

损失函数的梯度
wL(w,b)=xiMyixi

bL(w,b)=xiMyi

采用随机梯度下降,不是一次使用M中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
随机选取一个误分类点(xi,yi),对w,b更新
ww+ηyixi

bb+ηyi

为什么用SGD,不用BGD

【1】
用普通的基于所有样本的梯度和的均值的批量梯度下降法(BGD)是行不通的,原因在于我们的损失函数里面有限定,只有误分类的M集合里面的样本才能参与损失函数的优化。所以我们不能用最普通的批量梯度下降,只能采用随机梯度下降(SGD)或者小批量梯度下降(MBGD)

3.2对偶形式

思想 :将w,b表示成x,y的线性组合形式,通过求解其系数而求得w,b

假设样本点(xi,yi)在更新过程中被使用了ni次,从原始形式的学习过程可以得到,最后的w,b可以表示为

w=i=1Nniηyixi

b=i=1Nniηyi

ni的含义:如果ni很大,那么意味着这个样本点经常被误分,什么样的点容易被误分? 很明显就是离超平面很近的点,超平面稍微移动一点点,这个样本就从正变负,或负变正。而在SVM中,这种点就很可能是支持向量。
上式代入感知机模型
f(x)=sign(wx+b)=sign(j=1Nnjηyjxjx+j=1Nnjηyj)

此时,学习的目标就不再是w,b ,而是ni
训练过程:
1. 初始时: ni=0
2. 在训练数据集中选取(xi,yi)
3. 如果yi(j=1Nnjηyjxjxi+njηyj)0,更新nini+1
4. 转至2直至没有误分类点

感知机对偶形式的意义是什么?

【2】
第二章 感知机

四、总结

  1. 感知机由于采用不同的初值,或选取不同的误分类点计算梯度,解是不同的。
  2. 当数据集线性可分时,感知机是收敛的,经有限次的迭代可以找到将训练数据完全正确分开的分离超平面。
  3. 当训练集线性不可分时,感知机不收敛,迭代结果会发生震荡。

参考文献
【1】http://www.cnblogs.com/pinard/p/6042320.html
【2】https://www.zhihu.com/question/26526858

相关文章: