核方法
拉格朗日乘子法
參考:【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件
在求解最優化問題中,拉格朗日乘子法和KKT條件是兩種最常用的方法。在有等式約束時使用拉格朗日乘子法,有不等約束時使用KKT條件。
最優化問題的三種情況:(1)無約束條件 (2) 等式約束條件 (3) 不等式約束條件
等式約束條件
-
只有到等高線與目標函數的曲線相切的時候,可能取得最優值
-
對約束函數 \(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條件,整合了上面兩種情況的條件。
考慮凸函數的最優化問題
定義拉格朗日函數為
那么 \(x^*\) 是極小值點且有唯一 \(\lambda ^*\) 使得
- \(\bigtriangledown_x L(x^*,\lambda^*) =0\)
- \(\lambda^* \ge 0\)
- \(\lambda^* h(x^*)= 0\)
凸優化問題中,KKT條件就是全局最小值的充要條件,若不是凸優化,KKT條件是極小值點的必要條件,KKT點是駐點,可能是極值點。極值點一定滿足KKT條件,但滿足KKT條件的點不一定是極值點。
非凸優化問題,需加一個正定條件,使得KKT條件成為充要條件。
- \(\bigtriangledown_x L(x^*,\lambda^*) =0\)
- \(\lambda^* \ge 0\)
- \(\lambda^* h(x^*)= 0\)
- \(h(x^*)\le0\)
- \(\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\),寫成向量形式
進一步記作
構造成 \(\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^Tx+b=1\) 上或邊界之內的,以及在邊界 \(w^Tx+b=-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||\)
又 \(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||}\)
問題轉化
尋找最大間距的邊界問題轉化為帶不等式約束的優化問題
寫成拉格朗日乘子法適用類型
- 因為 \(L-2norm\) 求導時方便
SVM 軟間隔
拉格朗日對偶問題
引子
eg:拉格朗日函數 \(L(x,\lambda)=x^2+\lambda(b-x)\)
又 \(\lambda\ge 0\),則 \(\lambda^*=max(0,2b)\)
則拉格朗日函數寫成
正文
求解最大間隔問題中的拉格朗日函數
寫成
則其對偶問題為
我們先求對偶問題 \(min_{w,b} \frac{1}{2}||w||^2+\sum_{\alpha_i}\alpha_i[1-y_i(wx_i+b)]\),根據KKT條件
-
\(\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\)
-
則可使用 \(\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(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)