感知机
感知机是一个二分类的线性分类模型,输入是特征向量,输出是类别,通常取值为+1和-1。感知机是神经网络和支持向量机的基础。
定义
数学公定义为:,称之为感知机。其中w和b为感知机模型参数,w为权重,b为偏置。而为符号函数,输出值为+1和-1。
几何解释
我们将其线性方程:,对应于一个超平面上。将其中的w看成超平面的法向量(定义了法向量,那么平面的方向就确定了),b看成是超平面的截距(定义了截距,平面的位置就确定了)。那么,就有如下图所示:
从图中,可以看出平面将空间分为两部分,一部分可以认为是正类,一部分为负类。如果给定一个数据集,存在一个超平面使得正类和负类的点完全正确的被分到超平面的两侧,我们就称此数据集是线性可分的,否则,就称线性不可分。
感知机学习策略
假设数据集是线性可分的,为了能够找到一个合适的超平面,这就需要一个学习策略来确定模型的参数w和b。
我们自然会想到误分类的点越少越好,但是依据这样的损失函数不是连续可导的,无法优化,所以换个思想,改成计算误分类点到超平面的距离。
其中,距离的公式定义为:,
由于增加了负号和y的缘故,保持了损失函数是非负的,所以看出误分类点越少,误分类点离超平面越近,损失函数的值越小。我们最终的优化目标是: 。
感知机学习算法的原始形式
这个算法的思想是:每当一个点被误分类,则调整w和b的值,使得分离超平面向误分类点的一侧移动,以减少距离,直至所有的点被正确分类。
有定理可以证明,当数据集线性可分时,经过有限次的搜索,可以找到将训练集数据完全分离的超平面,感知机的原始形式的算法是收敛的。