支持向量机(SVM)
基本型
用一个超平面去分割空间中的点,任意点x到超平面的距离可表示为:
\[r = \frac{|\textbf{w}^T\textbf{x}+b|}{||\textbf w||}
\]
为了把正负样本分开,引入两个支持平面,使正负样本在两个支持平面两侧,定义线性映射后的表达式为
\[\begin{cases}
\textbf{w}^T\textbf{x}+b \geq +1, & & y=+1 \\
\textbf{w}^T\textbf{x}+b \leq -1, & & y=-1 \\
\end{cases}
\ \ \ \ \to \ \ \ \
y(\textbf{w}^T\textbf{x}+b)\geq1
\]
表达式中,两支持平面之间的距离为
\[\gamma = \frac{2}{||\textbf{w}||}
\]
这样就能得到支持向量机的基本型
\[\max \limits_{\textbf{w},b} \frac{2}{||\textbf{w}||}
\ \ \ \ \to \ \ \ \
\min \limits_{\textbf{w},b} \frac 12 {||\textbf{w}||}^2
\\ s.t.\ \ y_i(\textbf{w}^T\textbf{x}_i+b) \geq 1
, \ \ \ \ i= 1,2,...m
\]
拉格朗日乘子法-不等式约束
给定如下不等式,并使用拉格朗日乘子
\[\min \limits_{x} f(x), \ \ \ \ s. t. \ g(x) \leq0 \\
\]
现在考虑
- 如果解在 g(x)=0 边界上,那么约束有效果
- 如果解在 g(x)<0 内部,那么这个约束没有任何作用
- f(x) 梯度与 g(x) 梯度是反向
因此,如论如何,都有
\[\lambda g(x)=0, \ \ \lambda \geq 0
\]
于是可用等式约束的方法
\[L = f(x)+\lambda g(x)
\]
对偶问题
使用拉格朗日乘子法,得到
\[L = \frac 12 {||\textbf{w}||}^2
+\sum_{i=1}^m \alpha_i(1-y_i(\textbf{w}^T\textbf{x}_i+b))\\
\frac{\partial L}{\partial \textbf{w}} = 0
\ \ \to \ \ \textbf{w}=\sum_{i=1}^m\alpha_iy_i\textbf{x}_i \\
\frac{\partial L}{\partial b} = 0
\ \ \to \ \ \sum_{i=1}^m\alpha_iy_i = 0
\]
消去参数w和b,转换成对偶问题
\[\max \limits_{\alpha} \sum_{i=1}^m\alpha_i-\frac 12
\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\textbf{x}_i^T\textbf{x}_j\\
s.t. \ \sum_{i=1}^m\alpha_iy_i = 0 \\
f(\textbf{x}) = \textbf{w}^T\textbf{x}+b=
\sum_{i=1}^m\alpha_iy_i\textbf{x}_i^T\textbf{x}+b\\
\]
需要满足的条件(KKT)
\[\begin{cases}
\alpha_i \geq 0 \\
y_i f(x_i)-1 \geq 0 \\
\alpha_i(y_if(x_i)-1)=0
\end{cases}
\]
SMO优化
可以选择一个a_i然后固定其它并优化a_i,但是由于约束条件限制,因此每次选择a_i和a_j固定其它并优化它们。
- 选择违背KKT的条件最大的为第一个变量(如果全部满足条件即收敛)
- 选择与第一个变量差别最大的为第二个变量
由约束条件可消去一个变量
\[\alpha_iy_i+\alpha_jy_j=-\sum_{k\neq i,j} \alpha_ky_k, \ \ \ \ \alpha_{i,j} \geq0
\]
确定偏移项
对于任意支持向量,满足
\[y_i(\textbf{w}^T\textbf{x}_i+b)=1
\]
因此,用所有支持向量的平均情况计算偏移
\[b=\frac 1{|S|}\sum_{s\in S}(\frac 1{y_s}-\sum_{i\in S}\alpha_iy_i\textbf{x}^T_i\textbf{x}_s)
\]
软间隔
由于无法保证所用要本满足约束
\[y_i(\textbf{w}^T\textbf{x}_i+b) \geq1
\]
因此会使用一个单调递减且恒非负的映射函数l(x)加到损失函数中
\[\min \limits_{\textbf{w},b} \frac 12 {||\textbf{w}||}^2
\ \ \ \ \to \ \ \ \
\min \limits_{\textbf{w},b} \frac 12 {||\textbf{w}||}^2
+C\sum_{i=1}^ml(y_i(\textbf{w}^T\textbf{x}_i+b)-1), \ \ C\geq0
\]
当C为无限大时,迫使样本满足约束,否则允许一些不满足约束,一般l(x)取hinge损失
\[\min \limits_{\textbf{w},b} \frac 12 {||\textbf{w}||}^2
+C\sum_{i=1}^mmax(0, 1-y_i(\textbf{w}^T\textbf{x}_i+b)), \ \ C\geq0
\]
如果引入松弛变量,则又可以表示为以下形式
\[\min \limits_{\textbf{w},b,\xi} \frac 12 {||\textbf{w}||}^2
+C\sum_{i=1}^m\xi_i \\
s.t. \ \ y_i(\textbf{w}^T\textbf{x}_i+b) \geq1-\xi_i, \ \ \xi_i\geq0
\]
每一个样本对应一个松弛变量,应用拉格朗日乘子
\[L = \frac 12 {||\textbf{w}||}^2+C\sum_{i=1}^m\xi_i
+\sum_{i=1}^m \alpha_i(1-\xi_i-y_i(\textbf{w}^T\textbf{x}_i+b))-
\sum_{i=1}^m\mu_i\xi_i \\
\frac{\partial L}{\partial \textbf{w}} = 0
\ \ \to \ \ \textbf{w}=\sum_{i=1}^m\alpha_iy_i\textbf{x}_i \\
\frac{\partial L}{\partial b} = 0
\ \ \to \ \ \sum_{i=1}^m\alpha_iy_i = 0 \\
\frac{\partial L}{\partial \xi_i} = 0
\ \ \to \ \ C = \alpha_i+\mu_i
\]
转化成对偶问题
\[\max \limits_{\alpha} \sum_{i=1}^m\alpha_i-\frac 12
\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\textbf{x}_i^T\textbf{x}_j\\
s.t. \ \sum_{i=1}^m\alpha_iy_i = 0, \ \ \ \ 0\leq \alpha_i\leq C \\
f(\textbf{x}) = \textbf{w}^T\textbf{x}+b=
\sum_{i=1}^m\alpha_iy_i\textbf{x}_i^T\textbf{x}+b\\
\]
软间隔KKT条件
\[\begin{cases}
\alpha_i \geq 0, \ \ \ \ \mu_i \geq0 \\
y_i f(x_i)-1+\xi_i \geq 0 \\
\alpha_i(y_if(x_i)-1+\xi_i)=0 \\
\xi_i\geq0,\ \ \ \ \mu_i\xi_i=0
\end{cases}
\]
核函数
为了解决非线性分类问题,使用核函数映射样本空间
\[\max \limits_{\alpha} \sum_{i=1}^m\alpha_i-\frac 12
\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(\textbf{x}_i)^T\phi(\textbf{x}_j)\\
s.t. \ \sum_{i=1}^m\alpha_iy_i = 0, \ \ \ \ 0\leq \alpha_i\leq C \\
\]
其中核函数有
\[\phi(x_i)^T\phi(x_j) = k(x_i, x_j) =
\begin{cases}
x_i^Tx_j, \ \ \ \ 线性核 \\
(x_i^Tx_j)^d, \ \ \ \ 多项式核 \\
e^{-\frac{||x_i-x_j||^2}{2\sigma^2}}, \ \ \ \ 高斯核 \\
e^{-\frac{||x_i-x_j||}{\sigma}}, \ \ \ \ 拉普拉斯核 \\
\end{cases}
\]