感知机
概念
感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。
感知机是Frank Rosenblatt在1957年提出,是神经网络与支持向量机的基础。它被视为一种最简单形式的前馈神经网络,是一种二元线性分类器。
感知机利用梯度下降法对损失函数进行极小化,提出可将训练数据进行线性划分的分离超平面,从而求得感知机模型。
感知机模型
假设输入空间(特征空间)是X⊆Rn,输出空间是Y={+1,−1}。由输入空间到输出空间的如下函数:
称为感知机。其中,w和
感知机的几何解释:线性方程
对应于特征空间Rn中的一个超平面,其中w是超平面的法向量,
感知机学习策略
假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。
为了找出这样一个超平面,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。
损失函数的一个自然选择是误分类点的总数,但是,这种选择不易优化,故感知机采用的是误分类点到超平面
给定训练数据集
其中,xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋅⋅⋅,N。感知器f(x)=sign(w⋅x+b)学习的损失函数定义为:
其中,M为误分类点的集合,
显然,损失函数L(w,b)是非负的。如果没有误分类点,损失函数值为0。而且,误分类点越少,误分类点离超平面越近,损失函数值就越小。
感知机学习的策略是在假设空间中选取使损失函数式最小的模型参数w,b,即感知机模型。
感知机学习算法
可以将感知机学习问题转化为求解损失函数式的最优化问题,最优化的方法可采用随机梯度下降法。感知机学习的具体算法,包括原始形式和对偶形式。
感知学习算法的原始形式
输入:训练数据集T={(x1,y1),(x2,y2),⋅⋅⋅(xN,yN)},其中xi∈X=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
(4)转至(2),直至训练集中没有误分类点。
【注意】:
1. 感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同;
2. 当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的;
3. 当训练数据集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。
感知学习算法的对偶形式
输入:训练数据集T={(x1,y1),(x2,y2),⋅⋅⋅(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋅⋅⋅,N,学习率η(0<η≤1);
输出:w,b;感知机模型f(x)=sign⟮∑Nj=1ajyjxj⋅x+b⟯,其中a=(a1,a2,⋅⋅⋅,aN)T。
(1)选取初值a←0,b←0
(2)在训练集中选取数据(xi,yi)
(3)如果yi⟮∑Nj=1ajyjxj⋅x+b⟯≤0
(4)转至(2),直至训练集中没有误分类点。
参考资料
《统计学习方法》 李航著