一. 什么是感知机
1. 理解感知机
感知机(Perceptron)算法是一种很好的二分类算法,它前提要求样本是线性可分的模型。感知机的原理很简单,假如样本中有2个类别,感知机尝试找到一条直线(空间中就是超平面),将样本划分成2类。如果找不到这样的直线(超平面)呢?那就说明样本线性不可分,不可以使用感知机分类。
2. 感知机与神经网络
感知机是一种最简单的前馈神经网络,它仅有2层神经元,包括1个输入层和一个输出层。
既然感知机是前馈网络,那它的学习过程也是遵循向前传播算法的。神经元将输入和偏执单元线性组合,然后代入激活函数,最后得到输出结果。
这里感知机的激活函数选取的是阈值函数,所以感知机的输出神经元也称为阈值神经元(M-P神经元):
3. 感知机与逻辑回归
1.相同点:
- 都是解决二分类问题
- 都是将线性模型代入一个函数中。(线性逻辑回归是代入线性模型)
2.不同点:
- 激活函数不同,逻辑回归是sigmoid,感知机是阈值函数
- 感知机产生的结果是类别(0/1),逻辑回归得到的是某个类别的概率
- 感知机只能处理线性可分问题,逻辑回归可以处理非线性问题(代入非线性模型)
二. 感知机学习过程
1.代价函数
上面我们已经基本了解了感知机的概念与使用前提。那么感知机是如何找到最优解的呢?按照机器学习的惯例,我们要开始构造代价函数了。我们可以考虑让误分类的点到超平面的距离来表示代价函数,若所有误分类的点到超平面距离最小,则代价最小。
我们假设输入的线性组合是
得到代价函数后,我们可以使用梯度下降法,不断更新θ,直到L收敛。
对L求导
这里需要注意一下,因为此处是针对误分集的样本做代价函数,而并不是所有的样本,所以不可以采用批量梯度下降(BSD),感知机一般采用随机梯度下降法,即只选用一个误分集中的样本更新参数。
2. 总结一下感知机
选定一组合适的权值θ
将样本带入感知机,观察是否有误分点,如果没有结束算法,如果有进入第3步
-
利用误分点更新所有参数
转入第2步,直到没有误分点。