拉格朗日對偶問題
原問題
化成拉格朗日函數形式
對偶函數
對偶問題
對偶問題也可寫作有約束條件的形式

再強調一遍,最里層是拉格朗日函數,次外層是對偶函數,把對偶函數(凹函數)最大化就是對偶問題(凸問題),最大值就是上確界

上帝視角再看一遍

原問題和對偶問題的關系

所以原問題的解\(\ge\)對偶問題的解
那么問題來了,何時原問題才能和對偶問題有相同的解呢?
問題簡化
首先,先將問題簡化一下

注意,此時原問題中\(x\)的可行域(feasible region)在約束空間中,而對偶問題中的\(x\)無約束
所以\(G_1 \subseteq G_2\)
這樣簡化之后就可以從圖像上直觀的表示出來,其中可以把\(t\)看作\(y\),把\(u\)看作\(x\),那么就可以表示成一個線性函數
圖像直觀理解原問題和對偶問題

因為\(u \le 0\),所以\(G_1\)在左半部分,而假設\(G_2\)是整個藍線圍成的域
原問題找到最小值即為\(P^*\)
對偶問題先對於\(x\)找函數的最小值,再通過調整斜率,找到對於\(\lambda\)變量,函數的最大值
有兩點需要注意
- 因為$\lambda \ge 0$,而函數的斜率為$-\lambda^T$,所以斜率必然$\le$0
- 要與左邊相切且與右邊相切才能滿足最大最小條件
這里不太理解,先調整\(x\)得到最小值,再調整\(\lambda\)使函數最大,此時\(x\)已為定值,調整\(\lambda\)后還與右邊相切嗎?
問題解決,再看一遍上面那個總流程圖
對偶函數中想要最小化的式子是一個仿射函數,可以理解為一條直線,無界
所以只好讓斜率=0(說斜率不太准確,高維空間應該是和原函數相切的超平面),這個斜率取0,后面就調節截距了,所以確定后始終是相切的
「這個過程是在每個固定斜率下求最小截距,然后從在不同斜率下求得的最小截距中找最大的」具體見這篇博客
直線的截距\(D^*\)即為對偶問題的解
從圖像也可看出原問題的解大於等於對偶問題的解,這種關系其實是一種若對偶關系
那么什么條件下原問題和對偶問題是等價的呢?
強對偶關系


不難想象,可行域的范圍是一個凸集時,兩值相等(注意:斜率一定\(\le 0\))
但是,\(G\)為凸集只是強對偶的充分非必要條件
比如下圖的可行域范圍是非凸集,但原問題和對偶問題依然等價


Slater條件

其中\(relint \ D\)為相對內部
只有滿足了Slater條件,凸優化問題才是強對偶問題,是充分條件
KKT條件
KKT條件是強對偶問題的必要條件


如果\(x\)在可行域內,\(g_i(x)\)是松弛的,此時的\(g_i(x) \le 0\),\(\lambda_i=0, \lambda_ig(i)=0\)
如果最小值點不在可行域內,那么極值點在邊界上,\(g_i(x)=0\),\(\lambda_ig(i)=0\)
上述的緊致和松弛也就對應着前面強對偶關系的兩種情況的圖像
拉格朗日對偶問題的好處
為什么費盡周折的去轉化成對偶問題呢?
因為原問題不一定是凸優化問題
然而轉化成的對偶問題一定是凸優化問題(凹函數)
應用
最后再回到機器學習的應用中
在求最大熵的時候,就是將原問題轉化為對偶問題處理的

轉化成對偶問題,先將P的形式定下來,就是確定了模型,然后再調整\(\lambda\),也就是調參的過程
但在神經網絡中,由於有隱藏層的存在,調整參數\(\lambda\)后,\(x,y\)的值不再是已經確定的了,還要重新計算,所以求最小值的過程其實與最大化相互耦合
所以從整體來看並不是凸優化問題,但通過反向傳播,在最后的輸出層上形成一個局部的凸優化問題
神經網絡相當於一個篩選器,把現實中非凸優化的問題轉化成凸優化問題,通過隱藏層只留下凸優化的因素,送到最后的輸出層