《统计学习方法》此书中,将感知机模型讲解十分清楚,并且推导了损失函数设计原理、随机梯度下降方法求解参数、详细解释了对偶问题求解方法及模型的收敛性。笔者再次学习该模型后,将自己的理解融入本文中,从感知机模型、损失函数设定、计算策略、算法流程这4个部分做回顾。
感知机(perceptron)模型:二分类模型、线性分类模型、判别模型。
损失函数:误分类实例到超平面的距离之和。
计算策略:随机梯度下降法。
具体而言:感知机是一个二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础。
1.感知机模型
感知机模型:假设输入空间(特征空间)是,输出空间是
。由输入空间到输出空间的函数为:
(1)
其中,w和b为模型的参数。sign为符号函数,其表达式为:
(2)
对于线性函数,称之为分离正负类的超平面S。
2. 损失函数
假设训练数据线性可分,感知机学习的目标是找到一个将正实例点和负实例点完全正确分开的分离超平面。为此,需要确定感知机模型中的参数w和b,确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。设定损失函数为误分类实例到超平面的距离为损失函数:
(3)
其中,M为误分类实例点集合。当,误分类样本
;当
,误分类样本
。因此,损失函数L(w,b)始终为整数,若实例点被完全分类,损失函数为0。因此,求解模型的参数w,b,就转化为极小化损失函数时得到的参数w和b。
3.随机梯度下降法
最小化损失函数,即有:
(4)
感知机学习算法是误分类驱动的,具体采用随机梯度下降法(stochastic gradient descent)。首先,任意选取一个超平面,然后用梯度下降法不断极小化目标函数(4)。极小化过程,每次随机选择一个误分类点使其梯度下降。假设误分类点集合M固定,那么损失函数L(w,b)的梯度由:(这里对(4)进行关于w和b求导分别可以得到(5)和(6))
(5)
(6)
得到。随机选择一个误分类点,对w,b进行更新:
直到损失函数达到给定阈值或者迭代次数使用完,输出模型的参数w,b,得到感知机模型,也即分离超平面。
4.算法流程
根据前面过程,感知机模型原始形式求解的流程如下:
输入:训练数据集,其中
,学习率
;
输出:w,b;感知机模型。
(1)选取初值
(2)在训练集中选取数据
(3)如果
(4)转至(2),直至训练集中没有误分类点。
5.其他
感知机算法收敛性:对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。
参考资料:李航《统计机器学习》