【SVM手把手推导】对偶问题应用之支持向量机SVM(Hard Margin)
1. 对偶问题应用之支持向量机SVM
1.1 SVM
设给定数据集:{(si,yi):yi∈{1,−1},i=1,⋯ ,m}\{(\mathbf{s}^i,y^i):y^i\in\{1,-1\},i=1,\cdots,m\}{(si,yi):yi∈{1,−1},i=1,⋯,m},我们想要找到一个决策超平面(decision hyperplane),用方程表示为 xTs+b=0\mathbf{x}^T\mathbf{s}+b=0xTs+b=0,使两个类别的样本尽量分开,如图:
SVM的目标就是最大化分类间隔(margin),所以找到 margin 的数学表达式至关重要。
1.1.1 【推导】:分类间隔的数学表达
因为等比例放缩 x,b\mathbf{x},bx,b 不会改变平面位置,也就是说 xTs+b=0\mathbf{x}^T\mathbf{s}+b=0xTs+b=0 和 c(xTs+b)=0c(\mathbf{x}^T\mathbf{s}+b)=0c(xTs+b)=0 表示同一个超平面!
设此时的决策超平面是 x0Ts+b0=0\mathbf{x_0}^T\mathbf{s}+b_0=0x0Ts+b0=0 ,决策上界为 x0Ts+b0=k0\mathbf{x_0}^T\mathbf{s}+b_0=k_0x0Ts+b0=k0,因为等比例缩放不改变平面位置,所以决策上界可以重写为 1k0(x0Ts+b0)=1\frac{1}{k_0}(\mathbf{x_0}^T\mathbf{s}+b_0)=1k01(x0Ts+b0)=1,对应的,决策超平面为 1k0(x0Ts+b0)=0⇔x0Ts+b0=0\frac{1}{k_0}(\mathbf{x_0}^T\mathbf{s}+b_0)=0\Leftrightarrow \mathbf{x_0}^T\mathbf{s}+b_0=0k01(x0Ts+b0)=0⇔x0Ts+b0=0。
所以无论如何我们都能找到一组 x,b\mathbf{x},bx,b 使得 xTs++b≥1\mathbf{x}^T\mathbf{s^+}+b\geq1xTs++b≥1,xTs−+b≤−1\mathbf{x}^T\mathbf{s^{-}}+b\leq-1xTs−+b≤−1
我们可以通过缩放 x,b\mathbf{x},bx,b 让正例和负例中距离决策超平面最近的两个点分别落在超平面 H1:xTs+b=1H_1:\mathbf{x}^T\mathbf{s}+b=1H1:xTs+b=1 和 H2:xTs+b=−1H_2:\mathbf{x}^T\mathbf{s}+b=-1H2:xTs+b=−1 上。
不难推出 H1H_1H1 和 H2H_2H2 之间的距离,即分类间隔(margin)等于 2∣∣x∣∣2\frac{2}{||\mathbf{x}||_2}∣∣x∣∣22
1.1.2 【SVM】约束优化形式
SVM的原优化问题定义:
maxx,b2∣∣x∣∣s.t. yi(xTsi+b)≥1 \max\limits_{\mathbf{x},b} \frac{2}{||\mathbf{x}||} \\ \text{s.t. }y^i(\mathbf{x}^T\mathbf{s}^i+b)\geq1 x,bmax∣∣x∣∣2s.t. yi(xTsi+b)≥1
写成约束优化标准形式:
minx,b∣∣x∣∣22s.t. 1−yi(xTsi+b)≤0 \min\limits_{\mathbf{x},b}\frac{||\mathbf{x}||^2}{2} \\ \text{s.t. } 1-y^i(\mathbf{x}^T\mathbf{s}^i+b)\leq0 x,bmin2∣∣x∣∣2s.t. 1−yi(xTsi+b)≤0
1.1.3 【推导】求解
- 将上述约束优化式子转换成拉格朗日函数:
L(x,b,λ)=12∣∣x∣∣2+∑i=1mλi(1−yi(xTsi+b)) L(\mathbf{x},b,\lambda)=\frac{1}{2}||\mathbf{x}||^2+\sum_{i=1}^m\lambda_i(1-y^i(\mathbf{x}^T\mathbf{s}^i+b)) L(x,b,λ)=21∣∣x∣∣2+i=1∑mλi(1−yi(xTsi+b))
- 根据KKT条件,有如下推断
∂L∂x=0⇒x=∑i=1mλiyisi(1) \frac{\partial L}{\partial\mathbf{x}}=0 \Rightarrow\mathbf{x}=\sum_{i=1}^m\lambda_iy^i\mathbf{s}^i\tag{1} ∂x∂L=0⇒x=i=1∑mλiyisi(1)
∂L∂b=0⇒∑i=1mλiyi=0(2) \frac{\partial L}{\partial b}=0\Rightarrow\sum_{i=1}^m\lambda_iy^i=0\tag{2} ∂b∂L=0⇒i=1∑mλiyi=0(2)
- 由公式(1)我们得到:
∣∣x∣∣2=∣∣∑i=1mλiyisi∣∣2=∑i=1m∑j=1mλiλjyiyj(si)Tsi ||\mathbf{x}||^2=||\sum_{i=1}^m\lambda_iy^i\mathbf{s}^i||^2=\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^i ∣∣x∣∣2=∣∣i=1∑mλiyisi∣∣2=i=1∑mj=1∑mλiλjyiyj(si)Tsi
- 于是,拉格朗日函数可以化简为:
L(x,b,λ)=12∣∣x∣∣2+∑i=1mλi−∑i=1mλiyi(si)Tx=∑i=1mλi−12∣∣x∣∣2⇒q(λ)=∑i=1mλi−12∑i=1m∑j=1mλiλjyiyj(si)Tsi L(\mathbf{x},b,\lambda)=\frac{1}{2}||\mathbf{x}||^2+\sum_{i=1}^m\lambda_i-\sum_{i=1}^m\lambda_iy^i(\mathbf{s}^i)^T\mathbf{x}=\sum_{i=1}^m\lambda_i-\frac{1}{2}||\mathbf{x}||^2\\\Rightarrow q(\lambda)=\sum_{i=1}^m\lambda_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^i L(x,b,λ)=21∣∣x∣∣2+i=1∑mλi−i=1∑mλiyi(si)Tx=i=1∑mλi−21∣∣x∣∣2⇒q(λ)=i=1∑mλi−21i=1∑mj=1∑mλiλjyiyj(si)Tsi
- 上述的分析可以推出下面对偶问题:
maxλ∑i=1mλi−12∑i=1m∑j=1mλiλjyiyj(si)Tsis.t. ∑i=1mλiyi=0,λi≥0,i∈{1,⋯ ,m}. \max\limits_{\lambda}\sum_{i=1}^m\lambda_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^i\\ \text{s.t. } \sum_{i=1}^m\lambda_iy^i=0,\lambda_i\geq0,i\in\{1,\cdots,m\}. λmaxi=1∑mλi−21i=1∑mj=1∑mλiλjyiyj(si)Tsis.t. i=1∑mλiyi=0,λi≥0,i∈{1,⋯,m}.
- 不难发现,对偶问题的目标函数是一个二次型目标函数,且约束都为线性约束。一旦我们找到了对偶问题的最优解 λi∗\lambda_i^*λi∗,我们就能得到 x=∑i=1mλi∗yisi\mathbf{x}=\sum_{i=1}^m\lambda_i^*y^i\mathbf{s}^ix=∑i=1mλi∗yisi。
- 我们称 si\mathbf{s}^isi 为一个支持向量,如果 yi(xTsi+b)=1y^i(\mathbf{x}^T\mathbf{s}^i+b)=1yi(xTsi+b)=1,如果 si\mathbf{s}^isi 不是支持向量,根据互补松弛条件,λi=0\lambda_i=0λi=0,于是 x\mathbf{x}x 可以被支持向量表示为:x=∑i:λi>0λiyisi\mathbf{x}=\sum\limits_{i:\lambda_i>0}\lambda_iy^i\mathbf{s}^ix=i:λi>0∑λiyisi
更多推荐



所有评论(0)