据说在dl之前是SVM撑起了ml的半片天,学习后发现SVM是由纯粹的数学推导、转化、求解、优化“堆砌”而来,不如说是数学撑起了ml,ml是数学的学科。以下根据老师ppt上讲解的思路讲讲个人对SVM基本形式推导的理解。
margin(间隔)的定义:
超平面的法线(normal)为ω\omegaω,margin为点x(i)x^{(i)}x(i)到超平面ωT+b=0\omega^T+b=0ωT+b=0的距离,因此点x(i)−γ(i)×ω∣∣ω∣∣x^{(i)}-\gamma^{(i)}\times\frac{\omega}{||\omega||}x(i)−γ(i)×∣∣ω∣∣ω(红色圈)在超平面上。
ωT(x(i)−γ(i)×ω∣∣ω∣∣)+b=0\omega^T(x^{(i)}-\gamma^{(i)}\times\frac{\omega}{||\omega||})+b=0ωT(x(i)−γ(i)×∣∣ω∣∣ω)+b=0
⟹ωTx(i)−γ(i)×ωTω∣∣ω∣∣+b=0\Longrightarrow \omega^Tx^{(i)}-\gamma^{(i)}\times\frac{\omega^T\omega}{||\omega||}+b=0⟹ωTx(i)−γ(i)×∣∣ω∣∣ωTω+b=0
⟹ωTx(i)∣∣ω∣∣−γ(i)×ωTω∣∣ω∣∣2+b∣∣ω∣∣=0\Longrightarrow \frac{\omega^Tx^{(i)}}{||\omega||}-\gamma^{(i)}\times\frac{\omega^T\omega}{||\omega||^2}+\frac{b}{||\omega||}=0⟹∣∣ω∣∣ωTx(i)−γ(i)×∣∣ω∣∣2ωTω+∣∣ω∣∣b=0
而ωTω=∣∣ω∣∣2\omega^T\omega=||\omega||^2ωTω=∣∣ω∣∣2,因此
⟹ωTx(i)∣∣ω∣∣+b∣∣ω∣∣=γ(i)\Longrightarrow \frac{\omega^Tx^{(i)}}{||\omega||}+\frac{b}{||\omega||}=\gamma^{(i)}⟹∣∣ω∣∣ωTx(i)+∣∣ω∣∣b=γ(i)
乘上y(i)∈{−1,1}y^{(i)}\in\{-1,1\}y(i)∈{−1,1}得到Geometric margin(几何间隔):
容易发现 c(ωTx+b)=0c(\omega^Tx+b)=0c(ωTx+b)=0 同样可以描述该超平面,这并不改变γ\gammaγ的值,或者说存在多组满足 ωTx+b=0\omega^Tx+b=0ωTx+b=0 的 (ω,b)(\omega,b)(ω,b),我们只需要用其中一个作描述,因此后面约定miniy(i)(ωTx(i)+b)=1min_i\ {y^{(i)}}(\omega^Tx^{(i)}+b)=1mini y(i)(ωTx(i)+b)=1.
定义整个training set的间隔:
优化目标:最大化间隔
变换将γ\gammaγ视为参数,增加约束γ(i)≥γ\gamma^{(i)}\geq\gammaγ(i)≥γ.
对于SVM来说去掉一些不在ωTx(i)+b=±γ∣∣ω∣∣\omega^Tx^{(i)}+b=\pm\gamma||\omega||ωTx(i)+b=±γ∣∣ω∣∣平面上的数据点并不影响模型,该平面称为支持平面,平面上的数据点称为支持向量(support vector).更准确地说,sv确定了支持平面,sv的margin γ(i)\gamma^{(i)}γ(i)是约束s.t.γ(i)≥γs.t.\ \gamma^{(i)}\geq \gammas.t. γ(i)≥γ取等时的γ(i)\gamma^{(i)}γ(i),SVM(support vector machine)因此得名。为了简化表达,约定一组(ωT,b)(\omega^T,b)(ωT,b),使得支持平面变为ωTx(i)+b=±1\omega^Tx^{(i)}+b=\pm1ωTx(i)+b=±1.
因此SVM问题表述为
进一步地,我们得到SVM的基本形式(Primal Form):