深度学习与支持向量机的分类原理异同

深度学习利用神经网络对数据进行分类,我们来看看其分类的本质是什么。

下面我们来看一个2层的神经网络中的第1层:


输入a可以看作三维空间的一个点,输出z可以看作两维空间的点。从输入a到输出z,首先输入向量a左乘了一个变换矩阵w,经历了坐标变换被压缩了一维,然后再进行了一个sigmoid函数映射,实质上是对二维空间进行了扭曲(非线性化)。


然后再进行一个二维坐标变换和sigmoid映射,最后输出结果。

很明显,就是线性变换-非线性化-线性变换-非线性化-结果。

其实这个例子不太恰当,我更喜欢低维的向量映射到高维空间中,这样更好理解。

比如一个二维向量,通过三维变换(当然第z维可以任选,因为二维向量的三维坐标为0)映射到高维空间中,通过激活函数(如tanh,sigmoid)非线性化后,即可用平面或超平面对数据进行线性分类。

这个线性的超平面通过非线性化和坐标变换的逆变换后回到正交标准坐标系中,会变成一个非线性化的超平面,直接上图:


上图是在标准正交坐标系下的曲线与分类界面,这个坐标系经过线性变换与激活函数非线性变换后,变成如下坐标系:


在这个非线性坐标系上,曲线反而能被线性平面分开了。线性分界面再逆变换回去,就变成上上图的非线性分界面。

本质上,深度学习是将要分类的对象经过多次线性变换,映射到高维和低维空间后再进行非线性变换,把空间扭成麻花后,正好可以用一个线性超平面把不能在标准正交坐标系中线性分类的数据,进行了线性分类。在分类时,不用把这个线性分类平面变换回标准正交坐标系,直接把需要分类的数据变换到麻花坐标系中即可。

线性变换的空间维数即每一层的神经元个数。我感性上认为从低维映射到高维空间后更容易分类。

多说一句,即使做一万个线性变换,不能线性分类的数据还是不能分,一定要有激活函数进行非线性变换后,数据才有可能进行线性分类。

对于支持向量机,首先说一个小故事:

华山脚下的1个小酒馆里、1个大侠正在喝酒!桌上的花生和大枣按照【胡乱分布】着。。。突然大侠猛1拍桌子、花生和大枣腾空而起、但是根据亚里士多德【重的东东落的快轻的东东落的慢】原理,大侠用内力把桌布张成一个平面在空中1放、就把花生和大枣分开啦!!:):)

作者:米牛牛 来源:知乎
链接:https://www.zhihu.com/question/21094489/answer/235482954
基本就是这么个意思。对于低维度空间上的数据,把它映射到高维度空间中,然后再用线性超平面进行分类。注意只能是低维度空间映射到高维度空间,而且是通过核函数一步进行非线性映射,而不是像深度学习中那样分为两步。举个非线性映射的例子:
就比如上面那个情况,我们可以人为计算出这种映射,比如一个样本点是用坐标表示的(x1,x2),它有个类标签,假设为1,那么把这个点映射到三维中变成 ,对每个点我都这么去映射。

因此,支持向量机只能从低维映射到高维,通过非线性映射后,对数据进行线性分类。

还有一个不同点,支持向量机只能二分类,而深度学习可以多分类。这是由它们的分类原理决定的。支持向量机是使分类超平面离两个最近的不同类的点的距离相等,来确定超平面的,而深度学习是计算需要分类的数据与分类类别的相似度来实现分类的。

深度学习中的某一个类别比如猫,包含了训练数据中所有猫的特征,站立,躺卧,行走,蜷缩等,但它为什么能判断某一个特定图像中的猫呢,这和激活函数有关。激活函数不仅提供非线性,而且在判别的过程中,如果图像中是站立的猫,那么分类模型中躺卧、蜷缩等特征是不被激活的,只有站立的特征才激活。站立特征匹配度很高的时候,输出的相似度数据也很高。至于具体怎么实现的,我目前也没琢磨明白。

结论:

深度学习与支持向量机的分类原理相同之处:都是通过非线性矩阵变换后,用线性超平面对数据进行分类。

不同之处:深度学习可以向低维和高维空间进行变换,而线性变换和非线性变换是分两步走的,支持向量机只能由低维向高维映射,其变换是通过核函数一步完成的。深度学习可以多分类,支持向量机只能二分类。

  • 13
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值