感知机模型的原理

  1. 感知机模型
  2. 感知机学习策略
  3. 感知机学习算法

    本文参考 《统计学习方法》 李航

感知机模型

1.什么是感知机:
感知机是一个二分类线性分类模型,输入为实例的特征向量,输出为实例的类别。感知机学习旨在求出将训练数据分离的线性划分超平面。
2.感知机由输入到输出的映射:

f(x)=sign(ωx+b)

其中 ω b 是感知机的参数, ωRn 为权值向量,b是偏置量, sign 是符号函数,其中 ωx+b=0 对应 Rn 空间的一个超平面,将空间线性划分为两部分,在超平面的上下被分为正负两类,用+1,-1表示。
对于一个数据集,如果所有的正负实例都能够被一个超平面分开,则称这个数据集是线性可分的,感知机针对的是线性可分的数据集,对于这样一个数据集,学习一个参数 ω b 来进行分类。

感知机学习策略

1.损失函数
根据 w b ,定义一个损失函数,并使得损失函数最小化。首先, Rn 空间中任意一点 x0 到超平面的距离为

1||w|||ωx0+b|
学习过程中,当点发生错误分类时, yi (ωx0+b) 的符号相反,且其乘积为1。那么假设超平面S的所有错误分类的点的集合为M,那么所有错误分类的点到超平面的距离总和为
1||ω||xiMyi(ωxi+b)
不考虑 ||ω|| ,即得到了感知机学习的损失函数。对于给定的训练集 T={(x1,y1),(x2,y2)...(xN,yN)} 感知机 sign(ωx+b) 学习的损失函数定义为
L(ω,b)=xiMyi(ωxi+b)

显然,损失函数是非负的,并且错误分类的点越少,错误分类的点离超平面的距离越小,损失函数的值越小。一个特定的样本点的损失函数,错误分类时是 ω,b 的线性函数,在正确分类时是0,因此,损失函数是 ω,b 的连续可到函数。

感知机的学习算法

1.原始形式
对于给定的训练集 T={(x1,y1),(x2,y2)...(xN,yN)} 求解参数 ω,b 是损失函数极小化。

minω,bL(ω,b)=xiMyi(ωxi+b)

采用随机梯度下降算法,首先确定一个初始值,损失函数的梯度表示为:
ωL(ω,b)=xiMyixi

bL(ω,b)=xiMyi

则根据梯度下降规则, 当出现一个错误分类点时,更新 ω=ω+ηyixi b=b+ηyi 其中 η 为学习率,通过迭代使得损失函数 L(ω,b) 不断减小,直至为零。

2.对偶形式
更新 ω=ω+ηyixi b=b+ηyi 其中 η 为学习率。逐步修改参数的过程中,易知对于一个点 (xi,yi) ,其对参数的增量分别是 αiyixi αiyi ,这里的 αi=niη .
则有

ω=i=1Nαiyixi
b=i=1Nαiyi

感知机的模型可表述为 f(x)=sign(Nj=1αjyjxjx+b) 其中 α=(α1,α2...αN)T
对于一个实例 (xi,yi) 如果 yiNj=1αjyjxjx+b<=0 即发生错误分类时,更新 αi=αi+η , b=b+ηyi
在算法过程中,涉及到计算 xixj ,可以预处理Gram矩阵存储任意两个训练实例向量的内积。

感知机作为一个二分类线性分类器,同时也是支持向量机和神经网络的基础,可以推广到多分类和非线性分类。

你可能感兴趣的:(机器学习,机器学习)