吴恩达EX6
支持向量机(SVM)
SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。这样的超平面有无穷多个,但是几何间隔最大的分离超平面却是唯一的。
对于给定数据集来求解到超平面的各个数据到超平面的距离,对其中的最小距离求最大值,即max min(d),进而确定W和b,具体数学见这位大佬的推导
https://zhuanlan.zhihu.com/p/31886934 以及https://blog.csdn.net/c406495762/article/details/78072313#2-smo%E7%AE%97%E6%B3%95
对于svm有一个特定的概念:分隔间距,即两条虚线之间的垂直距离就是这个最优决策面对应的分类间隔。
而对应虚线的样本点为SVM中的支持样本点,称为"支持向量"。
最终优化目标为:
由于 cost1(θTx)在θTx>=1 时为0,cost0(θTx)在θTx<=-1时为0
故优化目标变为 min 1/2*∑θj2
这个课SVM 原理讲的很浅,建议看看其他人的文章
核函数部分
对于数据非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,找到相应的超平面,来解决在原始空间中线性不可分的问题。
核函数虽然也是将特征进行从低维到高维的转化 但是是在低维上进行计算 而实际的效果表现在高维上 解决了维度爆炸的问题
在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。如图7-7所示,一堆数据在二维空间无法划分,从而映射到三维空间里划分
本质: 核函数是一个低纬的计算结果,并没有采用低纬到高维的映射。只不过核函数低纬运算的结果等价于映射到高维时向量点积的值。
x1 = (μ1 + μ2)T 和x2 = (η1 + η2)T ,
乘上一个相关系数二者近似相等
高斯核函数用的最多
因为:
核函数它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算
本章程序题目较简单就不再赘述