感知机

《统计学习方法》此书中,将感知机模型讲解十分清楚,并且推导了损失函数设计原理、随机梯度下降方法求解参数、详细解释了对偶问题求解方法及模型的收敛性。笔者再次学习该模型后,将自己的理解融入本文中,从感知机模型、损失函数设定、计算策略、算法流程这4个部分做回顾。

感知机(perceptron)模型:二分类模型、线性分类模型、判别模型。

损失函数:误分类实例到超平面的距离之和。

计算策略:随机梯度下降法。

具体而言:感知机是一个二分类线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础。

1.感知机模型

感知机模型:假设输入空间(特征空间)是X\in R^{n},输出空间是y\in \begin{Bmatrix} +1,-1 \end{Bmatrix}。由输入空间到输出空间的函数为:

                                                                             f(x)=sign(w\cdot x+b)                                                                           (1)

其中,w和b为模型的参数。sign为符号函数,其表达式为:

                                                                         sign(x)=\left\{\begin{matrix} +1 ,&x\geq 0 \\ -1,& x< 0 \end{matrix}\right.                                                                            (2)

对于线性函数w\cdot x+b,称之为分离正负类的超平面S。

2. 损失函数

假设训练数据线性可分,感知机学习的目标是找到一个将正实例点和负实例点完全正确分开的分离超平面。为此,需要确定感知机模型中的参数w和b,确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。设定损失函数为误分类实例到超平面的距离为损失函数:

                                                                               L(w,b)=-\sum _{x_{i}\in M}y_{i}(w\cdot x_{i}+b)                                                           (3)

其中,M为误分类实例点集合。当w\cdot x+b>0,误分类样本y_{i}=-1;当w\cdot x+b<0,误分类样本y_{i}=+1。因此,损失函数L(w,b)始终为整数,若实例点被完全分类,损失函数为0。因此,求解模型的参数w,b,就转化为极小化损失函数时得到的参数w和b。

3.随机梯度下降法

最小化损失函数,即有:

                                                            min_{w,b}L(w,b)=-\sum_{x_{i}\inM}y_{i}(w\cdot x_{i}+b)                                                                       (4)

感知机学习算法是误分类驱动的,具体采用随机梯度下降法(stochastic gradient descent)。首先,任意选取一个超平面w_{0}x+b_{0},然后用梯度下降法不断极小化目标函数(4)。极小化过程,每次随机选择一个误分类点使其梯度下降。假设误分类点集合M固定,那么损失函数L(w,b)的梯度由:(这里对(4)进行关于w和b求导分别可以得到(5)和(6))

                                                                       \triangledown _{w}L(w,b)=-\sum_{x_{i}\inM}y_{i}x_{i}                                                                                 (5)

                                                                        \triangledown _{b}L(w,b)=-\sum_{x_{i}\inM}y_{i}                                                                                     (6)

得到。随机选择一个误分类点(x_{i},y_{i}),对w,b进行更新:

                                                                        w\leftarrow w+\eta y_{i}x_{i}

                                                                          b\leftarrow b+\eta y_{i}

直到损失函数达到给定阈值或者迭代次数使用完,输出模型的参数w,b,得到感知机模型,也即分离超平面。

4.算法流程

根据前面过程,感知机模型原始形式求解的流程如下:

输入:训练数据集T=\begin{Bmatrix} (x_{1},y_{1}),(x_{2},x_{3}),...,(x_{N},y_{N}) \end{Bmatrix},其中x_{i}\in X=R^{n},y_{i}\in Y=\begin{Bmatrix} +1,-1 \end{Bmatrix},i=1,2,...,N,学习率\eta (0<\eta\leq 1);

输出:w,b;感知机模型f(x)=sign(w\cdot x+b)

(1)选取初值w_{0},b_{0}

(2)在训练集中选取数据(x_{i},y_{i})

(3)如果y_{i}(w\cdot x_{i}+b)\leq 0

                                                                    w\leftarrow w+\eta y_{i}x_{i}

                                                                       b\leftarrow b+\eta y_{i}

(4)转至(2),直至训练集中没有误分类点。

5.其他

感知机算法收敛性:对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。

参考资料:李航《统计机器学习》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值