模型:二类分类的线性模型 (线性模型+符号函数)
策略:基于误分类的损失函数最小化
算法:原始形式 对偶形式
感知机是神经网络和支持向量机的基础
一、模型
训练数据集
参数。
感知机旨在求出将训练数据进行线性划分的分离超平面。
取+1,-1为了更好定义损失函数,如果输出的类别是0,1 怎么处理
把{0,1}映射为{-1,+1}。
二、策略
损失函数
其中M为误分类点的集合。
感知机的损失函数类似0-1损失函数,对分类正确的不惩罚,分类错误的惩罚。
对误分类的点有
从另一个角度理解损失函数 (这与SVM中的函数间隔概念相关)
损失函数定义为误分类点到超平面的总距离
点到超平面的距离
误分类点到超平面的总距离
不考虑,就得到感知机的损失函数。
为什么可以忽略参数的模。
【1】
分子和分母都含有,当分子的扩大N倍时,分母的L2范数也会扩大N倍。分子和分母有固定的倍数关系。
那么我们可以固定分子或者分母为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。
在感知机模型中,我们采用的是保留分子。
支持向量机,采用的是固定分子为1,然后求的最小化。
采用不同的损失函数主要与它的后面的优化算法有关系。
例 与是同一个超平面
三、算法
3.1 原始形式
最小化损失函数
损失函数的梯度
采用随机梯度下降,不是一次使用M中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
随机选取一个误分类点,对更新
为什么用SGD,不用BGD
【1】
用普通的基于所有样本的梯度和的均值的批量梯度下降法(BGD)是行不通的,原因在于我们的损失函数里面有限定,只有误分类的M集合里面的样本才能参与损失函数的优化。所以我们不能用最普通的批量梯度下降,只能采用随机梯度下降(SGD)或者小批量梯度下降(MBGD)
3.2对偶形式
思想 :将表示成的线性组合形式,通过求解其系数而求得
假设样本点在更新过程中被使用了次,从原始形式的学习过程可以得到,最后的可以表示为
的含义:如果很大,那么意味着这个样本点经常被误分,什么样的点容易被误分? 很明显就是离超平面很近的点,超平面稍微移动一点点,这个样本就从正变负,或负变正。而在SVM中,这种点就很可能是支持向量。
上式代入感知机模型
此时,学习的目标就不再是 ,而是。
训练过程:
1. 初始时:
2. 在训练数据集中选取
3. 如果,更新
4. 转至2直至没有误分类点
感知机对偶形式的意义是什么?
【2】
四、总结
- 感知机由于采用不同的初值,或选取不同的误分类点计算梯度,解是不同的。
- 当数据集线性可分时,感知机是收敛的,经有限次的迭代可以找到将训练数据完全正确分开的分离超平面。
- 当训练集线性不可分时,感知机不收敛,迭代结果会发生震荡。
参考文献
【1】http://www.cnblogs.com/pinard/p/6042320.html
【2】https://www.zhihu.com/question/26526858