機器學習核方法


核方法

拉格朗日乘子法

參考:【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件

參考:拉格朗日乘子法和KKT條件

在求解最優化問題中,拉格朗日乘子法和KKT條件是兩種最常用的方法。在有等式約束時使用拉格朗日乘子法,有不等約束時使用KKT條件。

最優化問題的三種情況:(1)無約束條件 (2) 等式約束條件 (3) 不等式約束條件

等式約束條件

\[\begin{cases}min_x\quad f(x)\\s.t.\quad h(x)=0\end{cases} \]

  • 只有到等高線與目標函數的曲線相切的時候,可能取得最優值

  • 對約束函數 \(h(x)\) 也求梯度 \(\bigtriangledown h(x)\),想讓目標函數 \(f(x)\) 的等高線和約束函數相切,則他們切點的梯度一定在一條直線上。

    • 也即最優化解的時候 \(\bigtriangledown_x f(x) = \lambda \bigtriangledown_x h(x)\)
  • 求解最優化問題轉換為

    \[\begin{cases}\bigtriangledown_x f(x) = \lambda \bigtriangledown_x h(x)\\ h(x)=0\end{cases} \]

  • 構造拉格朗日函數:$L(x,\lambda) = f(x)+\lambda h(x) $。

    • \(\bigtriangledown_x L(x^*,\lambda^*) =0\) 對應 \(\bigtriangledown_x f(x) = \lambda \bigtriangledown_x h(x)\)
    • \(\bigtriangledown_{\lambda} L(x^*,\lambda^*) =0\) 對應 \(h(x)=0\)
  • 多個約束條件:\(L(x,\lambda) = f(x)+\sum_{k=1}^l\lambda_kh_k(x)\)

    • 再聯立方程組

      \[\begin{cases}\frac{\partial L}{\partial x_i}=0\\\frac{\partial L}{\partial \lambda_k}=0\end{cases} \]

    • 得到的解為可能極值點

不等式約束條件

KKT條件:在滿足一些有規則的條件下,一個非線性規划問題能有最優化解法的一個必要和充分條件

不等式約束條件的約束是一個可行域,約束情況有兩種:(1) 極小值點在可行域內 ( 不包含邊界 ) (2) 極小值點落在可行域外 (包括邊界)

  • 極小值點在可行域內時,約束不起作用,之間目標函數 \(f(x)\) 梯度等於0求解
  • 極小值點在可行域外,約束起作用,走到極小值點時,約束函數梯度和目標函數負梯度相同\(-\bigtriangledown f(x) = \lambda \bigtriangledown h(x)\quad (\lambda>0)\)

構造拉格朗日函數轉換求解問題,對於不等式約束的優化,需要滿足三個條件,滿足三個條件的解 \(x^*\) 就是極小值點,這三個條件就是著名的KKT條件,整合了上面兩種情況的條件。

考慮凸函數的最優化問題

\[min\quad f(x)\quad s.t. \quad h(x) \le0 \]

定義拉格朗日函數為

\[L(x,\lambda) = f(x)+\lambda h(x) \]

那么 \(x^*\) 是極小值點且有唯一 \(\lambda ^*\) 使得

  1. \(\bigtriangledown_x L(x^*,\lambda^*) =0\)
  2. \(\lambda^* \ge 0\)
  3. \(\lambda^* h(x^*)= 0\)

凸優化問題中,KKT條件就是全局最小值的充要條件,若不是凸優化,KKT條件是極小值點的必要條件,KKT點是駐點,可能是極值點。極值點一定滿足KKT條件,但滿足KKT條件的點不一定是極值點。

非凸優化問題,需加一個正定條件,使得KKT條件成為充要條件。

  1. \(\bigtriangledown_x L(x^*,\lambda^*) =0\)
  2. \(\lambda^* \ge 0\)
  3. \(\lambda^* h(x^*)= 0\)
  4. \(h(x^*)\le0\)
  5. \(\bigtriangledown_{xx} L(x^*,\lambda^*) 組成的海塞矩陣是正定的\)

最大間隔(margin maximization)

問題描述

對於線性函數分類成兩類的數據,定義超平面上的點為一類,平面下的點為一類。記超平面為 \(\theta^Tx+b=0\),平面上的區域為 \(\theta^Tx+b>0\),平面下的區域為 \(\theta^Tx+b<0\)

存在不只一個超平面可以正確分類所給數據,選擇哪個是最好的。需要一個超平面來最大化類別間距。

前序

給定一個線性函數 \(y=2x+3\),有點 (0,3) 和 (\(-\frac{3}{2}\),0) 在函數上,將 \(y=2x+3\) 變形為 \(2x-y+3=0\),寫成向量形式

\[(2,-1)\left[\begin{matrix}x\\y\end{matrix}\right]+3=0 \]

進一步記作

\[(2,-1)\left[\begin{matrix}x_1\\x_2\end{matrix}\right]+3=0 \]

構造成 \(\theta^T x+\theta_0=0\) 的形式,其中 \(\theta^T\) 的方向垂直於函數斜率方向,等於函數法線方向。

SVM 最大分類問題

選擇什么樣的 \(w\)\(b\),使得 \(wx+b=0\) 將數據集分類最大化,間距最大。記數據集為 \(D=\{(x^{(1)},y^{(1)}),...,(x^{(N)},y^{(N)})\}\),其中 \(x \in R^n\)\(y \in \{-1,+1\}\),給定 \(x^{(i)}\)

\[w^T x^{(i)}+b>0\quad if\quad y^{(i)}=1 \\w^T x^{(i)}+b<0 \quad if \quad y^{(i)}=-1 \]

重新縮放數據,對於在邊界 \(w^Tx+b=1\) 上或邊界之內的,以及在邊界 \(w^Tx+b=-1\) 上或邊界之內的。所有數重寫等式為

\[y_i(w^Tx_i+b)\ge 1 \]

計算間距

定義一個點 \(x_1\) 在邊界 \(wx+b=-1\) 上,另一個類中距離 \(x_1\) 最近的點 \(x_2\) 在邊界 \(wx+b=1\) 上,,且 \(x_2=x_1+\lambda w\)

  • \(\lambda\) 是 大於0的常數
  • \(w\) 是垂直於 \(wx+b=0\) 的向量

\(margin\)\(||x_2-x_1||=||\lambda w||=\lambda||w||\)

\[w x_2+b=1\Rightarrow w(x_1+\lambda w)+b=1\Rightarrow wx_1+\lambda w^Tw+b=1 \]

\(wx_1+b=-1\)

則 $ \lambda w^Tw =2 \Rightarrow \lambda=\frac{2}{||w||^2}$

所以 \(margin\)\(||x_2-x_1||=\lambda||w||=\frac{2}{||w||^2}\cdot ||w||=\frac{2}{||w||}\)

問題轉化

尋找最大間距的邊界問題轉化為帶不等式約束的優化問題

\[\begin{cases}max_w \frac{2}{||w||}\\s.t.\quad y_i(wx_i+b)\ge 1\end{cases} \]

寫成拉格朗日乘子法適用類型

\[\begin{cases}min_w \frac{1}{2}||w||^2\\s.t.\quad 1-y_i(wx_i+b)\le 0\end{cases} \]

  • 因為 \(L-2norm\) 求導時方便

\[L(w,\lambda)=\frac{1}{2}||w||^2+\alpha_i[1-y_i(wx_i+b)] \]

SVM 軟間隔

參考:《SVM筆記系列之五》軟間隔線性支持向量機

20171127163540833.png

拉格朗日對偶問題

引子

eg:拉格朗日函數 \(L(x,\lambda)=x^2+\lambda(b-x)\)

\[\frac{\partial L}{\partial x}=2x-\lambda=0\quad \Rightarrow \quad x^*=\frac{\lambda}{2}\\\frac{\partial L}{\partial \lambda}=b-x=0\quad \Rightarrow \quad x=b \quad \Rightarrow \quad \frac{\lambda}{2}=b\quad \Rightarrow \quad \lambda^*=2b \]

\(\lambda\ge 0\),則 \(\lambda^*=max(0,2b)\)

則拉格朗日函數寫成

\[max_{\lambda}min_x(x^2+\lambda(b-x)) \]

正文

求解最大間隔問題中的拉格朗日函數

\[L(w,\lambda)=\frac{1}{2}||w||^2+\alpha_i[1-y_i(wx_i+b)] \]

寫成

\[L=min_{w,b}max_{\alpha_i} \frac{1}{2}||w||^2+\sum_{\alpha_i}\alpha_i[1-y_i(wx_i+b)] \]

則其對偶問題為

\[L=max_{\alpha_i}min_{w,b} \frac{1}{2}||w||^2+\sum_{\alpha_i}\alpha_i[1-y_i(wx_i+b)] \]

我們先求對偶問題 \(min_{w,b} \frac{1}{2}||w||^2+\sum_{\alpha_i}\alpha_i[1-y_i(wx_i+b)]\),根據KKT條件

  1. \(\frac{\partial L}{\partial w}=0 \quad \Rightarrow \quad w-\sum_i\alpha_iy^{(i)}x^{(i)}=0\quad \Rightarrow \quad w=\sum_i\alpha_iy^{(i)}x^{(i)}\)

    \(\frac{\partial L}{\partial b}=0\quad \Rightarrow \quad \sum_i\alpha_iy^{(i)}=0\)

  2. 則可使用 \(\alpha\) 替換 \(w\)\(b\)

    \[L=\frac{1}{2} (\sum_i\alpha_iy^{(i)}x^{(i)})^T\sum_i\alpha_iy^{(i)}x^{(i)}+\sum_{\alpha_i}\alpha_i[1-y^{(i)}(\sum_j\alpha_jy^{(j)}x^{(j)}x^{(i)}+b)]\\=\frac{1}{2}(\sum_i\alpha_iy^{(i)}x^{(i)})(\sum_j\alpha_jy^{(j)}x^{(j)})+\sum_{\alpha_i}\alpha_i[1-y^{(i)}(\sum_j\alpha_jy^{(j)}x^{(j)}x^{(i)}+b)]\\=\frac{1}{2}(\sum_i\sum_j\alpha_iy^{(i)}x^{(i)}\alpha_jy^{(j)}x^{(j)})+\sum_i \alpha_i-\sum_i\sum_j \alpha^{(i)} \alpha^{(j)}y^{(i)}y^{(j)}x^{(i)}x^{(j)}+b\sum_i\alpha^{(i)}y^{(i)}\\=\sum_i \alpha_i-\frac{1}{2}\sum_i\sum_j\alpha_iy^{(i)}x^{(i)}\alpha_jy^{(j)}x^{(j)}+b\sum_i\alpha^{(i)}y^{(i)} \]

    因為 \(\sum_i\alpha_iy^{(i)}=0\),所以

    \[L=\sum_i \alpha_i-\frac{1}{2}\sum_i\sum_j\alpha_iy^{(i)}x^{(i)}\alpha_jy^{(j)}x^{(j)}\quad (i,j=1,2,...,N)\\s.t. \quad \alpha \ge 0 ,\quad \sum_i\alpha_iy^{(i)}=0 \]

所以問題轉化為

\[L=max_{\alpha_i}(\sum_i \alpha_i-\frac{1}{2}\sum_i\sum_j\alpha_iy^{(i)}x^{(i)}\alpha_jy^{(j)}x^{(j)}\quad (i,j=1,2,...,N)\\s.t. \quad \alpha \ge 0 ,\quad \sum_i\alpha_iy^{(i)}=0) \]

支持向量

原始拉格朗日函數 \(L(w,\lambda)=\frac{1}{2}||w||^2+\alpha_i[1-y_i(wx_i+b)]\),如果判對了 \(y_i(wx_i+b)>1\) ,則 \([1-y_i(wx_i+b)]<0\) 。目的是使得 \(L\) 最大,則 \(\alpha=0\),如果數據遠離邊界被正確分類,那么權重 \(\alpha=0\),如果數據在邊界上,\([1-y_i(wx_i+b)]=0\),那就變成等式優化,\(\alpha >0\)。也就是說在邊界上的點\(\alpha >0\),對優化很重要。邊界上的點叫 \(support\quad vector\)

\(SVM\) 是一個線性優化,做的事情是使得邊界最大,邊界上的點叫 \(support\quad vector\),其他的點權重置零。

線性可分

SVM 是線性分類器,若數據原本就線性不可分怎么解決。

  • 數據在原始空間(稱為輸入空間)線性不可分,但是映射到高維空間(稱為特征空間)后很可能就線性可分了。

核方法在 SVM 中的應用最關鍵的是 \(x^{(i)}\cdot x^{(j)}\) 內積,降低計算復雜度,解決映射后可能產生的維度爆炸問題。

關於核技巧 參考:核技巧(The Kernel Trick)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM