目录
算法介绍
感知机是一种用于二分类的线性分类模型,通过随机梯度下降法最小化损失函数找到一个可以将正负样本完全分隔开的超平面。
训练数据:,其中,,m代表特征维度,n代表样本个数。
我们要找到一个超平面,对于所有真样本有;对于所有负样本有。将两个条件综合起来就是。对于分错的样本有,M指的是分错的样本组成的集合。所以我们的目标就是使分错的样本尽可能的少: (1)
我们要如何实现这个目标呢?用随机梯度下降法。
在介绍随机梯度下降法之前,我们先来说一下梯度下降法。梯度是函数值增长最快的方向,为了快速最小化损失函数,每次优化时让参数沿着目标函数梯度最大的饭方向移动一小步。首先目标函数对参数进行求导:
(2)
(3)
梯度下降法的优化公式:
(4)
(5)
感知器用的是随机梯度下降法,不同于梯度下降法每次优化需要用全部的训练数据,随机梯度下降法每次仅用一条数据进行优化,优化过程:从训练集中选择一条分类错误的数据,更新参数:
(6)
(7)
当所有的训练数据都分类正确时得到的参数就是我们的优化结果了。
算法流程
现在我们来总结一下感知机分类器的训练流程:
1. 初始化参数:;
2. 从训练数据中找一条分类错误的数据,用公式(6)(7)更新参数;
3. 重复执行2,直至所有的数据都分类正确。
算法总结
1. 初始参数和每次更新参数的训练数据选择的不同会得到的不同的模型;
2. 得到的模型并非最优化模型。