第二章 感知机
Introduction
- 感知机(perceptron)是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值。
- 感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,导入基于误分类的损失函数,利用梯度下降对损失函数进行极小化,求得感知机模型,属于判别模型
- 感知机学习算法简单易于实现,分为原始形式和对偶形式。
- 1957年由Rosenblatt提出,是神经网络和支持向量机的基础
- 本章框架如下:
- 感知机模型
- 感知机的学习策略(损失函数)
- 感知机学习算法(原始形式与对偶形式),并证明算法的收敛性
2.1 感知机模型
- 感知机:假设输入空间(特征空间)是χ⊆Rn,输出空间是y={+1,−1}。输入x∈χ表示实例的特征向量,对应于输入空间(特征空间)的点;输出y∈y表示实例的类别。由输入空间到输出空间的函数
f(x)=sign(w·x+b)
- w∈Rn为权值或权值向量
- b∈Rn叫做偏置
- sign是符号函数
sign(x)={+1, x⩾0−1, x<0
- 假设空间:函数集合{f|f(x)=w·x+b}
- 几何解释
- 线性方程w·x+b=0对应于特征空间Rn中的一个超平面S,其中
w 是超平面的法向量,b是超平面的截距,超平面将特征空间划分为两个部分。两部分的特征向量被分为正、负两类,超平面S 也称为分离超平面。
- 线性方程
- 感知机学习:由训练数据集(实例的特征向量及类别)求得感知机模型,即求得模型参数w,b。
- 感知机预测:通过学习得到的感知机模型,对新的输入实例给出其对应的输出类别。
2.2 感知机学习策略
2.2.1 数据集的线性可分性
- 给定一个数据集
T={(x1,y1),(x2,y2),···,(xN,yN)}
若存在某个超平面Sw·x+b=0
能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,即
对所有的yi=+1的实例,有w·x+b>0
对所有的yi=−1的实例,有w·x+b<0
则数据集T为线性可分数据集;否则称数据集线性不可分。
2.2.2 感知机学习策略
- 损失函数的自然选择:误分类点的总数,但不是参数
w,b 的连续可导函数,不易优化。 - 另一选择:误分类点到超平面S的总距离
- 任一点到超平面
S 的距离:1||w|||w·x0+b| - 误分类点的定义:−yi(w·x0+b)>0
- 误分类点到超平面的距离:−1||w||yi(w·x+b)
- 误分类点到超平面的总距离:−1||w||∑xi∈Myi(w·xi+b)
- 损失函数:L(w,b)=−∑xi∈Myi(w·xi+b)
- M为误分类点的集合,此即为感知机学习的经验风险函数。
- 一个特定样本点的损失函数,在误分类时参数
w,b 的线性函数,在正确分类时是0.因此,给定训练数据集T,损失函数L(w,b) 是w,b的连续可导函数。 - 感知机学习的策略就是在假设空间中选取使损失函数最小的模型参数,即感知机模型。
2.3 感知机学习算法
- 感知机学习问题转化为求解损失函数的最优化问题,最优化的方法是随机梯度下降法。
- 本节框架:
- 叙述感知机学习的具体算法,包括原始形式和对偶形式
- 证明在训练数据线性可分条件下感知机学习算法的收敛性
2.3.1 感知机学习算法的原始形式
- 求解最优化问题minw,bL(w,b)=−∑xi∈Myi(w·xi+b)
- 随机梯度下降法:首先,任意选择一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数,一次随机选取一个误分类点使其梯度下降,而不是一次使M中所有误分类点的梯度下降。
- 梯度:
∇wL(w,b)=−∑xi∈Myixi ∇bL(w,b)=−∑xi∈Myi - 更新:w←w+ηyixib←b+ηyi
η称为学习率,通过迭代可以期待损失函数不断减小,直到为0.
- 感知机学习算法的原始形式
输入:训练数据集T={(x1,y1),(x2,y2),···,(xN,yN)},其中xi∈χ=Rn
yi∈y={−1,+1},i=1,2,···,N,学习率η(0<η≤1);
输出:w,b;感知机模型f(x)=sign(w·x+b)
(1)选取初值w0,b0
(2)在训练集中选取数据(xi,yi)
(3)如果yi(w·xi+b)≤0
w←w+ηyixib←b+ηyi
(4)转至(2),直至训练集中没有误分类点。
-直观解释:当一个实例点被误分类,则调整w,b的值,使分离超平面向该误分类点的一侧移动,以较少该误分类点与超平面的距离,直至超平面越过该误分类点使其被正确分类。 - 感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。
2.3.2 算法的收敛性
2.3.3 感知机学习算法的对偶形式
- 对偶形式的基本想法是,将w和
b 表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w和b ,我们假设初始值w0和b0均为0。对误分类点(xi,yi)通过w←w+ηyixib←b+ηyi
逐步修改w,b,设修改n次,则最后学习到的w,b 可以分别表示为w=∑i=1Nniηyixi=∑i=1Naiyixib=∑i=1Naiyi当η=1时,表示第i个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类、换句话说,这样的实例对学习结果影响最大。 - 感知机学习算法的对偶形式
- 输入:线性可分的数据集训练数据集
T={(x1,y1),(x2,y2),···,(xN,yN)} ,其中xi∈χ=Rn
yi∈y={−1,+1},i=1,2,···,N,学习率η(0<η≤1); - 输出:a,b;感知机模型f(x)=sign⎛⎝⎜⎜∑j=1Najyjxj·x+b⎞⎠⎟⎟其中a=(a1,a2,···,aN)T
(1)a←0,b←0
(2)在训练集中选取数据(xi,yi)
(3)如果yi(∑Nj=1ajyjxj·xi+b)≤0ai←ai+ηb←b+ηyi
(4)转至(2)指导没有误分类数据
- 对偶形式的训练实例仅以内积的形式出现。为了方便,可预先将训练实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵。G=[xi·xj]N×N
- 与原始形式一样,感知机学习算法的对偶形式迭代是收敛的,存在多个解。
- 输入:线性可分的数据集训练数据集
- 梯度:
- 任一点到超平面