iLovEing / notebook

MIT License
0 stars 0 forks source link

SVM #15

Open iLovEing opened 1 year ago

iLovEing commented 1 year ago

support vector machine -- 支持向量机

写在最前

个人理解,SVM最亮眼的几个点:

  1. 把一个很直觉的想法用完美的数学语言描述出来,并且做了相当漂亮的求解,使得SVM天生就具有较好的鲁棒性;
  2. 把原问题转化到对偶问题求解,带来了两个优点:
    1. 求解的维度从特征维度转换到样本维度,改变了问题求解的复杂度;
    2. 自然而然地引入核技巧,这是SVM性能优越的关键。

SVM基本思路

  1. 提出分类问题确定超平面一个很直觉的想法:最大化最小间隔;
  2. 将该想法转化为约束优化问题;
  3. 利用拉格朗日乘子法,将原问题转成无约束形式;
  4. 将原问题转化为对偶问题求解;
  5. 根据slater条件,原问题和对偶问题同解,引入KKT条件;
  6. 已知算法求解对偶问题;

大纲

iLovEing commented 1 year ago

先前知识: 约束优化问题求解

此章节讲解SVM中,带约束优化问题的求解,纯数学内容。

1. 写出原问题

考虑一个带不等式约束的优化问题: image ----- 公式(a)

2. 使用拉格朗日乘子法求解约束优化问题

使用拉格朗日乘子法,将原问题写成无约束形式。 引入拉格朗日函数: image ----- 公式(b)
则原问题可以写为一下无约束形式: image ----- 公式(c)

补充说明1:嵌套优化问题的理解 这里关于 $min$ , $max$ 两层嵌套优化问题的含义可以这样理解:假设固定某个 $x$ ,则遍历 $λ$ , $η$ 寻找 $L$ 的最大值作为该 $x$ 的函数值,而最终的结果是遍历所有 $x$ ,寻找所有 $x$ 下函数值的最小值作为最终解。

补充说明2:公式(c)和公式(a)同解 考虑原问题的两个约束:

  • $n_{j}$为等式约束,对拉格朗日函数 $L(x, λ, η)$ 求导即满足;
  • $m{i}$为不等式约束,考虑两种情况: a. 如果 $x$ 不满足约束 $m{i}$ ,即 $m{i}(x) > 0$ ,观察拉格朗日函数,由于 $λ{i} > 0$ ,则 $\maxλ{L(x, λ, η)}$ 值为正无穷; b. 如果 $x$ 满足约束 $m{i}$ ,同理, $\max_λ{L(x, λ, η)}$ 值小于正无穷。
    由a. b. 易推断:
    $\min_x{\max_λ{L}} = min_x{\{+\infty (when: m_i > 0), L(when: m_i \le 0)\}} = min_x{\{L(when: mi \le 0)\}}$ 即公式(c)的解隐式地满足 $m{i} \le 0$

:公式(c)和公式(a)同解

3. 转化为对偶问题

3.1 先写出原问题的对偶形式,其实就是将 $min$ 和 $max$ 对调:

image ----- 公式(d)

3.2 弱对偶性与强对偶性

这一节主要讨论原问题和对偶问题解的关系(这里的解指的是满足条件下拉格朗日函数 $L$ 的值)。

补充说明4:slater条件 在补充说明3中,如果G是凸的,可以直观地感觉到 $\tilde{d} \= \tilde{p}$ 可以成立 image 数学上,凸函数不是强对偶的充分条件,还需要满足一些其他条件,比如slater条件: $\exists \hat{x} \propto relint-D, s.t. \forall i=1, 2, ..., M, m_i(\hat(x)) < 0$ 放松的slater:若 $M$ 中有 $k$ 个仿射函数,则不需要校验这 $k$ 个条件( $m_i(\hat(x)) < 0, i=1,...,k$ )

3.3 KKT条件

如果一个凸优化问题满足强对偶性,则可以引出KKT条件,借助KKT条件求解问题。

  1. 先写出原问题和对偶问题 拉格朗日函数: $L(x, λ, η)$ 原问题(无约束): $\min_x{\max_λ{L(x, λ, η)}}, s.t. λ \ge 0$ 对偶问题: $\max_λ{\min_x{L(x, λ, η)}}, s.t. λ \ge 0$ 定义: $\tilde{p}$ 为原问题的解,在 $\tilde{x}$ 处取得; $\tilde{d}$ 为对偶问题的解,在 $\tilde{λ}, \tilde{η}$ 处取得。

  2. KKT条件

    1. 可行性条件(由定义的约束直接得出):
      • $m_i(\tilde{x}) \le 0$
      • $n_j(\tilde{x}) = 0$
      • $\tilde{λ} \ge 0$
    2. 互补松弛条件: $\tilde{λ}_i m_i = 0$
    3. 梯度为0: $\frac{\partial L}{\partial x} |_{x=\tilde{x}} = 0$
  3. KKT条件证明 显然有: image ----- 公式(e)

观察式e的两个不等号,当优化问题满足强对偶性时,不等号取等:

补充说明5:关于引入对偶问题求解优化问题 主要目的是,如果优化问题满足强对偶性,则可以使用KKT条件,降低问题求解复杂度(或使问题从不可解变为可解?) 这一章的整体逻辑是:凸优化+slater条件 -> 强对偶性(原问题和对偶问题同解) -> KKT条件


公式latex附录 (a): \left{\begin{matrix}\min_x{f(x)}, x\propto R^P \s.t. m_i(x) \le 0, i=1, 2...M \s.t. nj(x) = 0, j=1, 2...N\end{matrix}\right. (b): L(x,\lambda,\eta) = f(x) + \sum{i}^{M}\lambda_i mi + \sum{j}^{N}\eta_j m_j,x\propto R^P (c): \left{\begin{matrix} \minx{\max{\lambda,\eta} L(x,\lambda,\eta)} \ s.t. \lambda{i} \ge 0\end{matrix}\right. (d): \left{\begin{matrix} \max{\lambda,\eta}{\minx L(x,\lambda,\eta)} \ s.t. \lambda{i} \ge 0\end{matrix}\right. (e): \tilde{d} = \max_{\lambda, \eta}{\min_x{L(x, \lambda, \eta)}} = \minx{L(x, \tilde{\lambda}, \tilde{\eta})} {\color{Red} \le} L(\tilde{x}, \tilde{\lambda}, \tilde{\eta}) = f(\tilde{x}) + \sum{i}^{M}\tilde{\lambda}_i m_i + 0 {\color{Red} \le} f(\tilde{x}) = \tilde{p}

iLovEing commented 1 year ago

SVM

SVM有三宝:间隔、对偶、核技巧

1. SVM要解决的问题:寻找“最好”的分类平面

考虑一个二分类问题: image 寻找一个超平面 $f(w, b) = sign(w^Tx+b)$ 将样本正确分类,显然,在这样一个简单例子中,这样的平面有无数个,问题在于。哪一个最好? 如果只有正负样本各一个,直觉上这个超平面应该是应该是两个点的垂直平分线,同样的,在这个例子中,SVM给出了一个寻找方法:最大化最小距离。 如图,对于每一个可分割样本的超平面,可以计算距两端样本的最小距离d,svm的目标就是寻找能使d最大的超平面。

补充说明1:SVM是一个判别模型,而非概率模型。

2. SVM的数学表达

设样本点为 $\{ (x_i, yi) \} {i=1}^{N} ,x \propto R^P,y_i \propto \{ -1, +1\}$ ,超平面为 $f(w, b) = w^Tx+b$ 超平面距离最近样本点的间距: image ----- 记 式(a) 则,SVM中”最大化最小距离“可以用数学表达出来: image ----- 记 式(b)

对上式进一步解析:

  1. 观察式(b)中的约束条件,可以改写为: $\exists r>0,\min_i{y_i(w^Tx_i+b)}=r$ 又因为超平面 $w^Tx_i+b$ 可以任意缩放,故该约束条件可以进一步改写为: $\min_i{y_i(w^Tx_i+b)}=1$ ,即 $y_i(w^Tx_i+b) \ge 1$
  2. 将1中的约束条件带入优化方程: $\max{w, b}{\min{x_i}{\frac{ | w^Txi+b | }{ ||w|| }}} = \max{w, b}{\min_{x_i}{\frac{ y_i(w^Txi+b) }{ ||w|| }}} = \max{w, b}{\frac{ 1 }{ ||w|| }}\min_{x_i}{ y_i(w^Txi+b) } = \max{w, b}{\frac{ 1 }{ ||w|| }} = \min{w, b}{ ||w|| } = \min{w, b}{\frac{1}{2} w^Tw}$ 这里,第一个等号用 $y_i$ 相乘抵消绝对值,第三个等号是将约束条件代入的结果,最后一个等号中1/2是为了后面计算方便加上的。
  3. 因此,SVM最终可以写成如下带约束优化问题: image ----- 记 式(c)

3. SVM求解

  1. 根据先前知识的优化理论,将式(c)转化为无约束优化问题,并写出对偶问题:

    • 拉格朗日函数: $L(w, b, λ) = \frac{1}{2}w^Tw + \sum_{i=1}^{N}\λ_i[1-y_i(w^Tx_i+b)]$
    • 无约束优化问题: $\min_{w, b}{\max_λ{L(w, b, λ)}},s.t.λ_i \ge 0$
    • 对偶问题: $\maxλ{\min{w, b}{L(w, b, λ)}},s.t.λ_i \ge 0$
  2. 代入KKT条件

    1. 根据梯度为0条件可得:
      • $\frac{\partial L}{\partial b} = 0 \Longrightarrow \sum_{i}^{N}λ_iy_i = 0$ -----记 式(d)
      • $\frac{\partial L}{\partial w} = 0$ ,联立式(d)可解得 $\tilde{w} = \sum_{i}^{N}λ_iy_ix_i$ ----- 记 式(e)
    2. 根据互补松弛条件可得: $λ_i[1-y_i(w^Tx_i+b)] = 0$ ----- 记 式(f) 观察式(f),结合优化问题本身的两个约束条件: $λ_i \ge 0,1-y_i(w^Tx_i+b) \le 0$ ,可推测大部分 $λ_i $ 值均为0,只对少部分满足 $1-y_i(w^Tx_i+b)=0$ 的样本点, $λ_i$ 有值,这些样本点就被称为支持向量。 同理,选一支持向量 $(x_k, y_k)$ ,代入上式可解得: $\tilde{b} = y_k - w^Tx_k$ 。
  3. 最终结果 对于本章提出的分类问题,SVM给出的超平面为 $f(w, b) = sign(w^Tx+b)$ , $w, b$ 由下式解出: image ----- 记 式(f)

其中 $λ_i$ 的值由优化问题 $\maxλ{\min{w, b}{L(w, b, λ)}},s.t.λ_i \ge 0$ 解出,求解该优化问题有一些经典算法,比如。

4. soft-margin SVM

上一节推导的前提是“所有样本分类正确”,即式(b)中的 $y_i(w^\top x_i + b) > 0$ ,在真实案例中,可能样本不是线性可分的,即不存在超平面能分开所有样本,这时就需要模型能允许一点点“loss”: 比如,把loss定义为分类错误的个数,则SVM可以表达为: image ----- 记 式(g)
其中, $ Num $ 表示满足条件的样本点个数。 但是上式无法求导,也无法求解,所以使用上loss被定义为距离: image ----- 记 式(h)
即: $loss = max\{ 0, 1-y_i(w^Tx_i+b) \} $ 记 $ξ_i = 1 - y_i(w^T+b),ξ_i > 0 $ 则soft-margin SVM可以写成: image ----- 记 式(g)
其中,C为loss的超参,C越大,对距离的惩罚越大。


公式latex附录 (a): margin(w, b) = \min_{w,b,x_i}{d(w, b, xi)} = \min{w,b,x_i}{\frac{\left | w^\top xi+b \right | }{\left | w \right | } } (b): \left{\begin{matrix} \max{w, b}{\min_{x_i}{\frac{\left | w^\top x_i+b \right | }{\left | w \right | } }} \s.t. y_i(w^\top xi + b) > 0,i=1,2,...,N\end{matrix}\right. (c): \left{\begin{matrix} \min{w, b}{\frac{1}{2} w^\top w}\s.t. 1-y_i(w^\top xi + b) \le 0,i=1,2,...,N\end{matrix}\right. (f): \left{\begin{matrix}\tilde{w} = \sum{i}^{N}\lambda_iy_ix_i\\tilde{b} = y_k - \tilde{w}^\top x_k,(x_k,yk)为支持向量\end{matrix}\right. (g): \left{\begin{matrix} \min{w, b}{\frac{1}{2} w^\top w + Num_i\left { 1-y_i(w^\top x_i + b) > 0 \right } }\s.t. 1-y_i(w^\top x_i + b) \le 0,i=1,2,...,k(k \le N)\end{matrix}\right. (h): \left{\begin{matrix} y_i(w^\top x_i + b) \ge 1,loss=0 \ y_i(w^\top x_i + b) < 1,loss=1 - y_i(w^\top xi + b) \end{matrix}\right. (g): \left{\begin{matrix} \min{w, b}{[\frac{1}{2}w^\top w + C\sum_{i}^{N}\xi_i ]} \ \xi_i > 0,i=1, 2,...,N \ s.t. y_i(w^\top x_i + b) \ge 1 - \xi_i,i=1, 2,...,N \end{matrix}\right.

iLovEing commented 1 year ago

kernel SVM