天天看點

ML-對偶(Duality)問題 KKT 條件

對偶(Duality)問題 KKT 條件

Primal => Dual

現實中我們遇到的原優化問題, 寫為标準型的話是這樣的.

\(min _w f(w) \\ s.t. \\ g_i(w) <=0 \\ h_i(w) = 0\)

即要求的是在w滿足限制條件下, 且使得f(w)取得最小值的 w 的值.

那我們通常的做法是通過引入拉格朗日函數:

\(L(w, \alpha, \beta) = f(w) + \sum _{i=1}^{k} \alpha_i g_i(w) + \sum _{i=1}^{t} \beta_i h_i(w)\)

其中\(\alpha, \beta\) 都大于等于0, 稱為拉格朗日算子. 至于為什麼能這樣做, 參考"對偶問題初識"的筆記裡我有推導, 更詳盡的可以翻翻高數, 關于帶限制條件下求函數極值的部分, 分别從幾何和分析的兩個角度有推導(核心就是偏導數,梯度向量(法向量)平行), 這裡就過了,不想牽扯太多.

現在來考慮一個max 的函數:

\(\theta_p(w) = max _{\alpha, \beta} L(w, \alpha, \beta)\) 即針對 \(\alpha, \beta\)要對L(w) 取最大.

對于給定的w, 如果對于原問題 f(w)中沒有對w進行限制, 則可得出\(\theta_p(w)\)的是無窮大的.

\(\theta_p(w) = [f(w) + \sum _{i=1}^{k} \alpha_i g_i(w) + \sum _{i=1}^{t} \beta_i h_i(w)] = \infty\)

如過 w 滿足primal 的限制, 則\(\theta_p(w) = f(w)\), 這裡的"=",應該表示"最優化問題等價"不是數值上等于,感覺. 這裡有一點繞, 其實想表達的是這樣的思想:

欲對關于\(w,\alpha, \beta\)的函數\(L(w,\alpha, \beta) 取min\)時的優化問題, 轉為先對 \(\alpha, \beta\) 優化取max, 再優化 w

用數學的形式來表達這樣的思想即:

\(min_w \ [\theta_p (w)] =min_w \ [max_{\alpha, \beta} \ L(w, \alpha, \beta)]\)

再定義: \(\theta_D(\alpha, \beta) = min_w \ L(w, \alpha, \beta)\)

  • \(\theta _p(w)\) 是針對 \(\alpha, \beta\) 的max最優化
  • \(\theta_D(\alpha, \beta)\) 是針對 w 的min最優化

也就是将dual 的問題可定義為:

\(max_{\alpha, \beta} \ [\theta_D(\alpha, \beta)] = max_{\alpha, \beta \ min_w \ [L(w, \alpha, \beta)]}\)

對于原始及其對偶問題, 我們假設

  • p* 為primal 問題 \(min_w \ \theta_p(w)\)
  • d* 為其 dual 問題 \(max_{\alpha, \beta} \ \theta_D(\alpha, \beta)\)

必然有:

$p^* = min_w [max_{\alpha, \beta} \ L(w, \alpha, \beta)] >= max_{\alpha, \beta} \ [min_w \ L(w, \alpha, \beta)]= d* $

關于 p* >= d* 在"對偶問題初識"的筆記中有過證明, 根據限制條件及定義證明的

有一種這樣的感覺: 對一個多元函數有: "min max" >= "max min", 多個參數哈.

KKT

關于primal 和 dual 的一個最為重要的結論, 莫過于p* >= d* (用限制定義證明)

\(minmize \ f_0(x) \\ s.t. \\ f_i(x) <=0, i=1,2,..m \\ h_j(x) = 0, j = 1,2...p\)

在凸優化及對偶的初識中, 我們知道, 如果 p = d*, 則稱為強對偶, 當函數為convex, 一般會成立. 同樣, 如果已經函數是convex. 如果滿足: \(\exists \ x', f_i(x') <0, h_j(x')=0\)強對偶*的哦.

我們進一步還推導了 complementary slackness 條件

即如果 p*=d * 必然要有 \(\lambda^* f_i(x) = 0\)

這裡先引入結論, p*=d * ** 隻有在KKT條件下才會滿足**

KKT
  • 是以3個科學家名字命名的: Karush-Kuhn-Tucke
  • 廣義化的拉格朗日數數乘的擴充

SVM算是KKT的一個最典型的應用了. 假設 f, g 都是convex函數\(f(w) = w^Tw\)的限制條件, 滿足\(h_i(w), g_i(w)\) 都是 \(a_i^Tw+b\) 的線性形式, 同時假設存在w使得\(g_i(w)<=0 恒成立\). 則一定存在\(a_i^*, \beta^*, w^*\) 滿足Karush-Kuhn-Tucker(KKT)條件,而 [ \(a_i^*, \beta^*, w^*\)] 也正好是 **p*=d ***的解, KKT條件即:

\(\frac {\partial } {\partial w_i} L(w^*,a_i^*, \beta^*)= 0\)

\(\frac {\partial } {\partial \beta_i} L(w^*, a_i^*, \beta^*)= 0\)

\(\alpha_i^*g_i(w^*) = 0\) (很關鍵的 complementary 條件哦, 已認證定義證明)

\(g_i(w^*)<=0\)

\(a^* >= 0\)

why KKT?

不難發現在很多問題求解, 我們大多能轉為dual的問題, 然而如果不能滿足KKT條件, dual的問題可能不能簡化primal問題的求解, KKT我自己平時也基本不會用到, 不過在SVM中卻被巧妙地用到了, 就是有一條關鍵性質:

\(\alpha_i^*g_i(w^*) = 0\)

使得SVM在求解參數的時候, 簡化了大量的運算量, 進而找到那些支援向量就搞定了, 其他地方, 歐文感覺也沒太用到, 不過運籌學方面,應該會有涉及一點, 我也不管, 就像了解一波KKT和推導SMV, 裝逼一波, 然後應用上做一個自信的調參俠,僅此而已, 下一波就推導SVM.

繼續閱讀