感知机简介
感知机是二元线性分类器,属于判别模型,主要思想是通过寻找一个超平面来将输入空间(特征空间)中的实例划分为正负两类。
感知机的损失函数是所有误分类点到分离超平面的总函数间隔,采用随机梯度下降法进行优化。
感知机的学习算法有两种形式,原始形式和对偶形式。
感知机模型
f(x)=sign(w⋅x+b) 分离超平面
w⋅x+b=0
感知机的学习策略
数据要求:线性可分
感知机要求数据集一定是线性可分的,即通过一个超平面能够将数据集的正实例点和负实例点全部准确的划分到超平面的两侧。
损失函数选择
- 误分类点总数
损失函数不是w、b的导数,不易优化
- 所有误分类点到超平面的总几何距离
−∣∣w∣∣1xi∈M∑yi(w⋅xi+b)
- 所有误分类点到超平面的总函数间隔(即不考虑1/w)
L(w,b)=−xi∈M∑yi(w⋅xi+b)
感知机学习算法(原始形式)
随机梯度下降法- 求损失函数对参数w,b的导数
∇wL(w,b)∇bL(w,b)=−xi∈M∑yixi=−xi∈M∑yi
- 随机选取一个误分类点(x_i, y_i)对参数进行更新
w+ηyixi→wb+ηyi→b通过迭代不断是损失函数减少到0
感知机学习算法(对偶形式)
对偶形式的参数
设w,b关于(x_i,y_i)修改 η_i 次,记
αi=ηiη则参数w,b可表示为
w=i=1∑Nαiyixib=i=1∑Nαiyi算法中关于w,b的更新可转化为 𝛼_i,b的更新
αi+η→αib+ηyi→b对偶形式的优点
训练实例x_i,i=1,2,…仅以内积的形式出现,为了方便,可以预先存储矩阵
G=[xi⋅yi]N×N
感知机学习算法性能
数据线性可分 | 算法收敛 | 存在无穷解;解依赖初值和随机点选择顺序 |
数据线性不可分 | 算法不收敛,发生震荡 | ㅤ |