提示:本篇文章是参考刘建平老师的博客,该文章只是作为个人学习的笔记.
由于刘建平老师写的太好了,并且本人时间有限有些公式使截图请理解.
刘建平老师感知机博客:感知机原理小结 - 刘建平Pinard - 博客园 (cnblogs.com)
文章目录
前言
感知机今天看来它的分类模型在大多数时候泛化能力不强,但是它的原理却值得好好研究,方便以后学习支持向量机,神经网络,深度学习会是一个很好的起点,该文章要求的内容是必须能够手推公式,深入理解.
一、感知机模型
通过我以前的学过的支持向量机与其有点类似,我们通过二维平面来举例之后拓展到多维.
如图所示比如红色圈代表女孩而蓝色圈代表男孩,感知机模型就是尝试找到一条直线将男孩和女孩分隔开来,拓展到三维到多维感知机就是找到一个平面和超平面将其分隔开来,感知机的模型就是尝试找到一个超平面,能够把所有的二元类别隔离开.如果数据无法找到一个超平面将其分隔开,那么说明感知机并不适合你的数据的分类,使用感知机的一个最大前提就是数据是线性可分得.这就使得感知机的使用场景非常苛刻,后面我们学到支持向量机,通过将数据映射到高维从而使数据线性可分,神经网络可以通过激活函数和增加隐藏层来让数据可分.这两种模型以后在了解.
用数学的语言来说,如果我们有m个样本,每个样本对应于n维特征和一个二元类别输出,如下:
我们的目标是找到这样一个超平面,即:
二、感知机的损失函数
为方便后面定义损失函数我们把将满足(其中
表示内积)的样本分类别为1,将,将满足
的样本分类别为-1,这样取y的值有一个好处,就是方便定义损失函数。因为正确分类的样本满足
,而分类错误样本满足
,我们损失函数的优化目标,就是期望使误分类的所有样本,到超平面的距离之和最小。
我们研究可以发现,分子和分母都含有θ,当分子的θ扩大N倍时,分母的L2范数也会扩大N倍。也就是说,分子和分母有固定的倍数关系。那么我们可以固定分子或者分母为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。在感知机模型中,我们采用的是保留分子,即最终感知机模型的损失函数简化为:
如果这里不理解可以用点到直线距离公式,超平面的系数可以进行放缩并不影响该平面,通过对系数的放缩我们就可以使得分母为1或者分子为1,这是根据具体情况而定的,感知机将分母放缩成1.支持向量机则是将分子放缩成1,反正最后都并不影响整个损失函数的性质.
三、感知机模型损失函数的优化方法
根据我们所得到得损失函数,这其实是一个凸优化问题,就是像函数得图像,这样就可以找到一个最小值,具体的原理请参考凸优化理论的学习.
这个损失函数可以用梯度下降法或者拟牛顿法来解决,常用的是梯度下降法。
但是用普通的基于所有样本的梯度和的均值的批量梯度下降法(BGD)是行不通的,原因在于我们的损失函数里面有限定,只有误分类的M集合里面的样本才能参与损失函数的优化。所以我们不能用最普通的批量梯度下降,只能采用随机梯度下降(SGD)或者小批量梯度下降(MBGD)。如果对这几种梯度下降法的区别不了解,可以参考刘建平的另一篇文章梯度下降(Gradient Descent)小结。
这里我也有点不太懂,等我在研究一下.之后会出一篇关于梯度下降法的笔记.
四、感知机模型的算法
这个刘建平老师也写的非常简洁,而且非常好理解.如果还是不能理解的话可能对于梯度下降法不太熟悉可以了解一下.
五、感知机模型的算法对偶形式
对偶形式是对算法执行速度的优化。
感知机原理小结 - 刘建平Pinard - 博客园 (cnblogs.com)
这里大家自己看吧学过运筹学应该明白对偶问题.
总结
由于刘建平老师写的太好了,这只是作为笔记进行分享,如果小伙伴不懂可以互相交流一下.