- 基础知识篇:
- 转:支持向量机(SVM)是什么意思? (挺好玩,又超简单的解释)
- 转:【直观详解】支持向量机SVM
- 转:SVM with polynomial kernel visualization (07年的视频,一针见血)
- 转:机器学习技法 Machine Learning Techniques (看了几遍,感觉很舒畅)
- 下一张图片转自知乎用户:靠靠靠谱
- 数学自己推导篇(方便自己复习使用)
- SVM线性
- SVM对偶
- SVM Kernel
- SVM线性
- 推导思路:
- →点到平面最大化距离公式
- → 向量投影公式
- → Hard-margin同侧去除绝对值
- → 超平面公式线性缩放简化max margin为|w|的倒数
- → 放宽条件为≥1(此处反证法可证明条件放宽后,最大化值落入原来区间)
- → 求解(典型二次规划问题)
- → 求出4个系数,解出b,w
- → 代入得到分类平面
- SVM对偶
- 引言:
- 使用SVM得到large-margin,减少了有效的VC Dimension,限制了模型复杂度;另一方面,使用特征转换,目的是让模型更复杂,减小Ein。所以说,非线性SVM是把这两者目的结合起来,平衡这两者的关系
- 特征转换下,求解QP问题在z域中的维度设为d^+1,如果模型越复杂,则d^+1越大,相应求解这个QP问题也变得很困难。当d^无限大的时候,问题将会变得难以求解
- 解决思路:先引入拉格朗日因子,求解目标转换为对偶问题,由弱对偶问题→强对偶问题,梯度下降求解无条件极值问题,引出KKT条件,求解,over。
推导思路:
- →有条件转无条件,引入α(α≥0)拉格朗日因子
- → 正确理解min(max)到max(min)
- → (凸函数&函数有解&条件线性)弱对偶转换为强对偶(≥符号可以用=替换)
- → 用梯度下降法对w,对b求偏导,再代回原式,得到只与α相关的最大化公式
- → 同时得到KKT条件(3个)
- → 求解问题
- → max转min,公式表面上与Z域维度d^无关,只与变量个数有关N(其实维度d^暗藏在求解qn,m=ynymzTnzm之中)
- → QP问题
- → 求解α后,利用KKT条件接触w与b
- → 得到Dual SVM分类平面
- SVM Kernel
- 引言:
- 因为求解二次规划问题QP中,需要已知4个参数,其中qn,m=ynymzTnzm的zTnzm由x空间转换到Z空间而来,
- zTnzm=Φ(xn)Φ(xm),分为2个步骤:先转换再计算内积,出现复杂度问题,试想x若为1万维度,先得转换1万次,然后进行1万次内积,计算复杂
- 引入Kernel技法,Φ2(x)与Φ2(x′)的内积的复杂度由原来的O(d平方)变成O(d)
推导思路:
- →二阶多项式转换,由X{x}一维转到二维,引出kernel形式
- →在Dual SVM中应用kernel,得到qn,m=ynymK(xn,xm)
- →进而求解α
- →求出α后,求解w与b
- →得到dual SVM的分类平面
- →在Polynomial Kernel SVM中 先通过式子变换导出常用的二次kernel,
- →然后通过归纳法,引入ζ≥0和γ>0,介绍Q次多项式一般的kernel形式,得到Polynomial Kernel
- →因为Q阶乘多项式的阶数是有限的,引入Gaussian Kernel核函数,高斯函数内隐含了无线多维的转换Φ(x),同样通常我们也把高斯核函数称为径向基函数(Radial Basis Function, RBF),得到Gaussian Kernel
- →对比3中核函数优缺点