感知机、支持向量机、神经网络的关系

感知机模型

感知机是最早的人工智能算法,他是支持向量机和神经网络的基础。

它的基本思想是找到一条直线,将两类样本进行划分。其求解方法则类似与梯度下降法不断对w,b进行调整。

它的模型如下:

感知机、支持向量机、神经网络的关系

对每个训练样本(xi,yi),执行一下操作:

(i)若wx+b>0,且y=-1,则w=w-x,b=b-1;

(ii)若wx+b<0,且y=+1,则w=w+x,b=b+1;

其基本原理是

感知机、支持向量机、神经网络的关系

保证每次更新至少拉扯了1个单位。

可以证明,这种算法的结果是收敛的。

支持向量机(svm)

支持向量机在解决小样本问题时有着不错的结果,因为它划分空间仅仅依赖于最靠近超平面的支持向量。它的基本思想与感知机一样,都是通过找到一个超平面对空间进行划分,不同的是,感知机是对每个样本点不断进行迭代更新参数值,SVM则同时考虑所有的样本点,建立二次规划模型,并对模型进行求解。

(i)当y=1时,恒有wx+b>0

(ii)当y=-1时,恒有wx+b<0

即y*(wx+b)恒大于0.

那么如何构建这一需要求解的二次规划模型呢?首先要刚清楚两件事情。

1、wx+b=0 与 awx+ab=0是等价的,都表示同一超平面。

2、点到直线的距离公式感知机、支持向量机、神经网络的关系

对于样本中的支持向量,我们可以用a去缩放(w,b)得到(aw,ab),使得|wx+b|=1。

所以我们可以确定优化的目标是找到一个超平面,使两个类别的样本距离足够大,即两个类别的支持向量距离超平面最远。且根据之前要求的限制条件y*(wx+b)>0,得到一下优化模型:

感知机、支持向量机、神经网络的关系

感知机、支持向量机、神经网络的关系

对于此问题的求解问题涉及凸优化和运筹学相关内容,这里不再说(我也忘了)。

此外,这里和之前的感知机模型仅能解决线性可分的模型。

对于线性近似可分的情况,SVM模型可对优化模型增加惩罚项(松弛变量),且在限制条件中右侧改为感知机、支持向量机、神经网络的关系进行求解。

对于线性不可分的情况,可以通过核函数的方法,将样本空间映射到高维空间中,在高维空间中则线性可分了。

多层神经网络

神经网络为解决感知机的线性问题,在网络层次中增加了非线性函数例如sigmoid等,且网络结构也更加复杂。

这里举两个例子可以很好的看到神经网络对样本进行划分的优势。

1、

感知机、支持向量机、神经网络的关系

 第一层每个神经元代表了一条直线,这里类似对三条直线采取交运算的方式构建神经网络模型。

当图中的三角形变成四边形或圆形可做类似推理。

2、

感知机、支持向量机、神经网络的关系

 这种某一类别散落了一部分出去,可以在之前的基础上,在下方再增加一个一样的模型。这种好像是解决了感知机异或问题的方式么,呜呜呜我也不太清楚了。

对模型的求解采用基于梯度下降的后向传播算法。

总结

感知机与SVM求解思想类似,都是找一个平面对空间中样本进行切割,但求解方式不一样,可以理解为感知机的求解方法较low,SVM有着丰富的数学基础,再其之上进行延申,进而找到了求解近似线性可分和不可分的求解方法。

神经网络在感知机的基础上,丰富了网络结构,增加了非线性函数,可以解决非线性问题和异或问题无法划分的情况。在求解方式上,二者较为相似,都是有点类似梯度下降的思想。

嗯嗯大概就这些,主要参考自浙大机器学习。

上一篇:python获取微信用户信息、视频、文件路径


下一篇:wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口