感知机学习笔记
感知机模型
感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机将输入空间划分为正负两个超平面。
由输入空间到输出空间的函数为:
f(x)=sign(w⋅x+b)
sign
是符号函数
sign(x)={+1,x≥0−1,x<0
其假设空间定义:
{f|f(x)=w⋅x+b}
线性方程:
w⋅x+b=0
为特征空间
Rn
的一个超平面
S
。
w
是超平面的一个法向量。
b
是超平面的截距。
超平面
S
被称为分离超平面(seperating hyperplane)。
感知机学习策略
数据集的线性可分性
给定一个数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,
xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N
,如果存在超平面
S
w⋅x+b=0
能够将数据集的正实例和负实例点完全正确地划分在平面的两侧,则称数据集
T
为线性可分数据集(linearly seperable data set)。
感知学习策略
追求损失函数极小化。
由点到平面距离公式:
1||w|||w⋅x0+b|
得到误分类点到平面的距离:
−1||w||yi|w⋅xi+b|
损失函数
在不考虑常数项下,模型的损失函数为:
L(w,b)=−∑xi∈Myi(w⋅xi+b)
(1)
其中
M
为误分类点的集合。显然,损失函数
L(w,b)
是非负的,如果没有误分类点,损失函数值为0.
感知机学习算法
求损失函数极小值的问题,求参数
w,b
。
感知机学习算法的原始形式
感知机学习算法是误分类驱动的,具体采用随机梯度下降法(stochastic gradient descent).首先选取一个超平面
w0b0
,然后用梯度下降法不断地极小化目标函数
(1)
假设误分类点的集合
M
是固定的,那么损失函数
L(w,b)
的梯度由公式
∇wL(w,b)=−∑xi∈Myixi
∇bL(w,b)=−∑xi∈Myi
给出。
随机给出一个误分类点
(xi,yi)
,对
w,b
进行更新:
w←w+ηyixi
b←b+ηyi
(2)
式中
η(0<η≤1)
是步长,统计学习中又称为学习率(learing rate)。这样,通过迭代,可以期待损失函数
L(w,b)
不断减小,直到为0.
算法的收敛性
对于线性可分数据集,感知机算法原始形式收敛。
感知机学习算法的对偶形式
基本思想:将
w
和
b
表示为实例
xi
和标记
yi
的线性组合形式。通过求解系数而求得
w
和
b
.
由梯度函数
(2)
,假设初值
w0=0,b0=0
,
αi=niηi
,最后学到的w,b可以表示为
w=∑i=1Nαiyixi
b=∑i=1Nαiyi
感知机模型:
f(x)=sign(∑j=1Nαiyixi⋅x+b)
由
α←0,b←0
开始,选取数据集
(yi,xi)
,如果
yi(∑Nj=1αiyixi⋅x+b)≤0
,则
αi←αi+η
b←b+ηyi
直到没有误分类数据。
对偶形式中训练实例仅以内积的形式出现.为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵(Gram matrix)
G=[xi⋅yi]N×N
与原始形式一样,感知机学习算法的对偶形式迭代是收敛的,存在多个解。