假设输入空间(输入空间即为特征空间,由实例的各种特征组成)是χ⊆R*,输出空间是Y={-1,+1}。当输入x∈χ表示实例的特征向量,对应于输入空间(特征向量)的点,输出y∈Y表示实例的类别。由输入空间到输出空间的如下函数:
其中,w和b为感知机模型,w∈R*叫做权值或权值向量(在多数情况下,w是一个列向量),b∈R叫做偏置。
Tips:
(1)w·x表示w和x的内积,若w=(w1,w2,w3),x=(x1,x2,x3),则
$$w·x=∑wi·xi=w1·x1+w2·x2+w3·x3$$
(2)sign(x)是一个符号函数,它根据x的输出1或-1
感知机是一种线性分类模型,属于判别模型,其几何解释是线性方程对应于特征空间的一个超平面S(二维情况下,该线性方程退化为一条直线),其中,w是超平面的法向量,b是平面的截距(如果是二维情况下,b就是在坐标轴上的截距),这个超平面将特征空间分为两部分,位于两部分的点分别被分为正负两类。因此,超平面称之为分离超平面(二维情况下是分割线)。
感知机学习策略
: 这一部分主要介绍如何衡量模型中的参数的好坏。
感知机学习的目标是求得一个能够将训练集正实例和负实例完全正确分开的分离超平面,为在这个寻找超平面的过程中(即确定感知机模型参数w,b),就需要衡量每次得到的模型参数的好坏,那么如何衡量呢?而通常使用损失函数来度量预测值与真实值之间的差距。于是我们在求最好的模型参数就相当于求极小化的损失函数。
再想想感知机的学习目标(将正实例和负实例完全正确分开),如果把分错了类型的点(误分类点)的多少作为衡量呢?效果会怎么样?这样的话,如果模型参数差,那么分错的点就很多,如果模型参数好的话,分错的点就很少,貌似有点道理。但是把误分类点的总数作为损失函数的话,此时的损失函数不是参数w,b的连续可导函数,所以不能直接使用误分类点总数。有没有办法将误分类总数转化为其他的衡量方式呢?于是想到将误分类点到超平面的S的总距离作为损失函数,而就是感知机的学习策略。
首先,输入空间R*中任意一点x0到超平面S的距离可以表示成:
假设误分类点的集合为M,则所有误分类点到超平面S的总距离为其中,xi∈M。若不考虑$\dfrac{1}{||w||}$,就得到来感知机学习的损失函数:
其中,xi∈M。
感知机学习算法
: 这一部分主要介绍如何找到最好的参数,主要有原始形式的算法和对偶形式的算法。
原始形式
对偶形式(未完待续)