感知机是二分类的线性分类模型,即通过一个超平面将数据集分割在两侧,同在一个侧的为同一个分类,一般上侧的为正例,下侧的为负例。
感知机的定义
假设输入空间(特征空间)是,输出空间是。输入表示实例的特征向量,对应于输入空间(特征空间)的点;输出表示实例的类别。由输入空间到输出空间的如下函数
称为感知机。其中,和为感知机模型参数,叫做权值或权值向量,叫做偏置,表示和的内积。是符号函数,即
并且假设数据是完全线性可分的,即可以通过一个超平面,将数据完全正确的分割在其两侧。当数据线性不可分时,感知机算法不收敛。
感知机的损失函数
假设为误分类点的集合,则感知机的损失可以表示为
是的范数。最小化该损失的目的是,最小化误分类点到超平面的距离之和。因为点到平面的距离公式
当误分类时,如果,模型给出的预测应该是,此时,反之同理,所以是误分类点到超平面的距离。由于对于某个超平面,固定,所以不考虑这一项,公式(1)中的损失可以简化为
感知机的学习算法
感知机学习通常使用梯度下降算法,分为原始形式和对偶形式,对偶形式相比原始形式,提高了计算效率。
使用梯度下降,首先计算参数的梯度,然后向负梯度的方向更新参数:
随机选取一个误分类点,对进行更新:
其中是步长,又叫学习率。
感知机学习算法的原始形式
输入:训练数据集,其中,,;学习率;
输出:;感知机模型。
(1)选取初值
(2)在训练数据中选取数据
(3)如果,即误分类,此时更新参数
(4)转至(2),直到训练集中没有误分类点。
感知机学习算法的对偶形式
由原始形式可以看出,当模型收敛时,假设参数通过第个样本更新了次,对于个样本,参数的更新可以表示为:
假设参数的初值都选取为0,并且令,则参数可以表示为
越大说明根据第个样本更新的越多,这个样本就越难区分,对决定超平面影响也最大。此时感知机模型可以表示为:
下面给出感知及学习算法的对偶形式:
感知机学习算法的对偶形式
输入:训练数据集,其中,,;学习率;
输出:;感知机模型,其中。
(1),
(2)在训练集中选取数据
(3)如果,即误分类,此时更新参数
(4)转至(2)直到没有误分类数据。
这种方式相比原始形式判断误分类的方式,的方式可以把的结果预存在矩阵中,加快判断的速度。满足下面形式的矩阵叫做矩阵:
网友评论