感知机笔记

最近在《统计学习方法概论》中读了感知机这一章节,就随手记录下学习笔记和自己的一些理解。不得不吐槽一下插公式真的是麻烦。

假设输入空间(特征向量)XRn,输出空间为Y={-1, +1}。输入xX表示实例的特征向量,对应于输入空间的点;输出yY表示示例的类别。由输入空间到输出空间的函数为

f(x)=sign(w⋅x+b)

称为感知机。其中,参数w叫做权值向量weightb称为偏置biaswx表示wx点积

∑i=1mwixi=w1x1+w2x2+...+wnxn

sign为符号函数,即

f(x)={+1−1if x>=0else

在二分类问题中,f(x)的值(+1-1)用于分类x为正样本(+1)还是负样本(-1)。感知机是一种线性分类模型,属于判别模型。我们需要做的就是找到一个最佳的满足wx+b=0wb值,即分离超平面(separatinghyperplane)。如下图,一个线性可分的感知机模型

上面这些都是书中关于感知机的一些基本概念。

==============================分割线===============================

2.2感知机学习策略

感知机无非是根据所给实例,求划分正负例的超平面的一种算法。为了找出这样的平面,我们需要确定两个参数w,b但为什么是这两个参数呢?如果我们选择误分类点的总数作为损失函数,但这种函数不是连续可导的不易优化,但如果我们选择的是误分类点到超平面S的距离这样关于w,b可导的损失函数就会比较容易优化。

误分类点到超平面S的距离:

1w|wx_0+b|

这里可能会有疑惑,为什么是1w|wx_0+b|呢?高中我们学过点到线的距离公式:


其中Ax+By+C就相当于w*x_0+b,而就相当于w的二范数。

一个误分类点到超平面的距离已经求出来,所有的误分类点到超平面的距离为:

2.2章节主要就是讲如何建立损失函数,不考虑1/||w||,损失函数就是:

2.3感知机学习算法

感知机学习算法时误分类驱动的,具体采用随机梯度下降法。损失函数的L(w,b)

给出。

这个章节其实就这点东西,就是关于w权值更新的迭代,如果有误分类点就继续迭代,没有了再停止。

算法的收敛性

做个总结:这个章节是两个不等式的证明,证明误分类点数k有界。

两个不等式分别是:

(1)

(2)

这两个公式的推导如果要记忆的话,对于(1)式,首先要记住损失函数对w求偏导的结果:,以及定理2.1中。对于(2)式,同样要记住损失函数对w求偏导的结果,将||w_k||中的w_k展开即可。

误分类点数k有界的公式:

这个式子就是将(1),(2)式联立,有一点需要注意,||w_opt||=1是前提。


感知机学习算法的对偶形式

将求偏导后的两个式子:


变形为:


设共修改n次w,b,则w,b关于(x_i,y_i)的增量分别是a_i*y_i*x_i和a_i*y_i,其中a_i=n_iη。

对偶问题将感知机模型

转化为:

其中a,b趋近于0.有:


解决了对偶问题后,在实现分类时首先要求出Gram矩阵,Gram中所有的值是x_1,x_2,...,x_n间求内积所得。例如:(1,1),(2,2),(1,3)间的内积是:{(1,1)(1,1)=2,(2,2)(2,2)=8,(1,3)(1,3)=10,(1,2)(2,2)=6,(1,1)(2,2)=4,(2,2)(1,1)=4,(2,2)(1,3)=8,(1,3)(1,1)=4,(2,2)(1,3)=8}就建立了3*3的Gram矩阵。在确定超平面的时候,如果存在实例x_1,x_2,...,x_n,那么有参数a_1,a_2,...a_n且x_i是误分类点,就对a_i,b进行修正,其余参数暂时不用管。知道所有误分类点都被正确分类,结束算法。

总结:

感知机是根据建立的损失函数对w,b进行调参,使损失函数最小,也就是所有的误分类点都正确分类就算完成算法。感知机算法的对偶问题就是将w,b都表示为x_i,y_i实例,的线性组合的形式,通过求解其系数而求得w,b。


1 w 1 w 1 w

猜你喜欢

转载自blog.csdn.net/qq_36076233/article/details/79054133