感知机
总述
感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性化分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数极小化,求得感知机模型。感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学到的感知机模型对新的输入实例进行分类。
1.1 感知机模型
定义:假设输入空间(特征空间)是,输出空间是={-1, +1},输入表示实例的特征向量,对应于输入空间(特征空间)中的点,输出表示实例的类别。由输入空间到输出空间的如下函数
称为感知机。其中,和称为感知机模型参数,叫权值或权值向量,叫作偏置,表示和的内积,是符号函数,即
感知机模型假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合{}。
线性方程(感知机模型)对应特征空间中的一个超平面。感知机学习由训练数据集实例的特征向量及类别:T={},其中,,={-1, +1},,求得感知机模型参数。
1.2 感知机学习策略
前提:数据集线性可分(存在某个超平面能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧)。
学习策略:定义一个(经验)损失函数并将损失函数极小化,损失函数必须连续且可导。感知机所使用的损失函数是误分类点到超平面的距离。
对于误分类点来说,有
成立。因此,误分类点到超平面的距离是
感知机 学习的损失函数定义为
该损失函数满足连续且可导。损失函数是非负的,如果没有误分类点,损失函数值为0;误分类点越少,误分类点离超平面越近,损失函数值越小。
综上所述:感知机的学习策略是在假设空间中选取使损失函数最小的模型参数和,即感知机模型。
1.3 感知机学习算法
感知机学习问题转化为求解损失函数的最优化问题,求解最优化问题的方法是随机梯度下降。
1.3.1 感知机学习算法的原始形式
感知机学习算法是误分类驱动的,具体采用随机梯度下降算法。首先,任意选取一个超平面,然后用随机梯度下降法不断极小化上述目标函数。极小化过程不是一次使用中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
损失函数梯度如下:
随机选择一个误分类点对进行更新:
式中是步长,又称为学习率。
感知机学习算法的原始形式如下:
输入:训练数据集{ },其中,={},,学习率;
输出:;感知机模型
- 选取初值;
- 在训练集中选取数据;
- 如果
- 转至(2),直到训练集中没有误分类点。
直观解释:当一个实例点被误分类,即位于分离超平面错误的一侧时,则调整的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超平面越过该误分类点使其分类正确。
1.3.2 算法的收敛性
由Novikoff定理可证明感知机算法的收敛性:
式中,是算法迭代次数; 指代二范数的最大值;。存在上界,经过有限次迭代,算法收敛。
感知机算法存在许多解,这些解既依赖于初值的选择,也依赖于迭代过程在误分类点的选择顺序。为了得到唯一的超平面,需要对分离超平面增加约束条件。当训练集线性不可分,感知机学习算法不收敛,迭代结果会发生震荡。
1.3.3 感知机学习算法的对偶形式
对偶形式的基本思想是,将表示为实例和标记的线性组合的形式,通过求解其系数而求得。
原始形似中,对误分类点通过
逐步修改,设修改次,则关于的增量分别是和,这里,这一过程中最终学习到的可以分别表示为:
这里,。当时,表示第个实例点由于误分类而进行更新的次数(说实话,这句我没看懂 [笑哭])。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。这样的实例点对学习结果影响最大。
感知机学习算法的对偶形式如下:
输入:训练数据集{ },其中,={},,学习率;
输出:;感知机模型
其中,,。
- 0→,0→;
- 在训练集中选取数据;
- 如果
则有 - 转至(2)直到没有误分类数据。
对偶形式中,训练数据仅以内积形式出现,为了方便,可以预想将训练集中实例间的内积计算出来并以矩阵形式存储,这个矩阵就是Gram矩阵。
来源:CSDN
作者:岳小刀
链接:https://blog.csdn.net/yly_3026925713/article/details/103721127