1. 概念
感知机是一个二类分类的线性分类模型。所谓二类分类就是它只能将实例分为正类和负类两个类别。那么为什么是线性分类模型呢,我的理解是感知机学习旨在求出可以将数据进行划分的分离超平面,而分离超平面的方程:
w⋅x+b=0
为线性方程,所以感知机为线性分类模型。
2. 感知机模型
模型如下图所示:
圈圈表示正类,而叉叉表示负类。圈圈与叉叉之间的直线即上文所说的分离超平面(注意分离超平面并不是唯一的!)它将所有的样本划分为两部分。位于分离超平面上方的为正类,记为+1,位于分离超平面下方的为负类,记为-1。也就是说,假设给一个样本的特征向量x,如果w⋅x+b>0, 那么样本为正类(+1),反之若w⋅x+b<0, 样本则属于负类(-1)。我们 引入符号函数sign(x),即
sign(x)={+1,x≥0
由此我们可以得到由输入空间到输出空间的函数
f(x)=sign(w⋅x+b)
这就叫做感知机,通过感知机模型,对于新输入实例给出其对应的输出类别。其中,w和b为感知机参数,w∈Rn叫做权值或权值向量,b∈R叫做偏置,w⋅x表示w和x的内积。感知机学习的目的就在于确定参数w和b的值。
3.感知机学习策略
给定一个线性可分的数据集:
T={
(x1,y1),(x2,y2),...(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) }
其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,3,…N 。
3.1. 点到超平面距离
为了确定感知机模型的参数w和b,需要确定一个学习策略,即定义一个损失函数并将损失函数极小化。感知机采用的损失函数为误分类点到超平面的总距离。首先写出输入空间Rn中任一点 x0 x 0 到分离超平面的距离:
1∥w∥|w⋅x0+b| 1 ‖ w ‖ | w ⋅ x 0 + b |
这里 ∥w∥ ‖ w ‖ 是 w w 的 范数。
3.2. 误分点到超平面距离
其次对于误分类的数据 (xi,yi) ( x i , y i ) 来说, −yi(w⋅xi+b)>0 − y i ( w ⋅ x i + b ) > 0
因为当 w⋅xi+b>0,yi=−1 w ⋅ x i + b > 0 , y i = − 1 ,而当 w⋅xi+b<0,yi=+1 w ⋅ x i + b < 0 , y i = + 1 ,
因此误分类点x_i到超平面的距离是:
−1∥w∥yi(w⋅xi+b) − 1 ‖ w ‖ y i ( w ⋅ x i + b )
这样假设误分类点的集合为M,那么所有误分类点到超平面的总距离为:
−1∥w∥∑xi∈Myi(w⋅xi+b)