【1】引言
前序學習進程中,對軟邊界拉格朗日方程進行了初步構建。
其中約定了兩個拉格朗日乘子要非負,其本質是要滿足KKT條件。
今天就乘此次機會,在回顧一下KKT條件。
【2】定義
當問題無約束的時候,只要讓函數梯度為零,就可以判定此處有極值點。當有約束存在時,梯度為零條件不再適用。
KKT條件適用的優化問題為:
目標函數最小化,min?f(x)\min f(x)minf(x)
不等式約束:gi(x)≤0(i=1,2,...,m)g_{i}(x)\leq 0 (i=1,2,...,m)gi?(x)≤0(i=1,2,...,m)
等式約束:$h_{j}(x)= 0 (j=1,2,…,p) $
其中,x∈Rnx\in R^nx∈Rn是自變量,f,gi,hjf,g_{i},h_{j}f,gi?,hj?均為連續可微函數。
如果x?x*x?是局部最優解,且滿足約束規范,比如Slater條件,則存在拉格朗日乘子λi≥0,μ\lambda_{i}\geq 0,\muλi?≥0,μ分別對應gi,hjg_{i},h_{j}gi?,hj?,使得以下條件同時成立。
首先是目標函數與約束函數的梯度通過乘子線性組合為零,也就是梯度平衡:
?f(x?)+∑i=1mλi?gi(x?)+∑j=1pμj?hj(x?)=0\nabla f(x^{*})+\sum_{i=1}^{m}\lambda_{i}\nabla g_{i}(x^{*})+\sum_{j=1}^{p}\mu_{j}\nabla h_{j}(x^{*})=0?f(x?)+i=1∑m?λi??gi?(x?)+j=1∑p?μj??hj?(x?)=0
需要說明的是,不等式約束乘子非負,且滿足λi?gi(x?)=0(i=1,2,...,m)\lambda_{i}\cdot g_{i}(x^{*})=0(i=1,2,...,m)λi??gi?(x?)=0(i=1,2,...,m)
上述公式在x?x^*x?是最優解時一定滿足。
當gi(x?)<0g_{i}(x^{*})<0gi?(x?)<0時,實際上就在不等式約束內部,相當于無用約束,此時λi=0\lambda_{i}=0λi?=0,所以λi?gi(x?)=0\lambda_{i} \cdot g_{i}(x^{*})=0λi??gi?(x?)=0;
當gi(x?)=0g_{i}(x^{*})=0gi?(x?)=0時,此時來到了不等式約束邊緣,為了實現取極值,一定會滿足梯度平衡,可參考拉格朗日乘數法加深理解,此時必有:?f(x?)+∑i=1mλi?gi(x?)=0\nabla f(x^{*})+\sum_{i=1}^{m}\lambda_{i}\nabla g_{i}(x^{*})=0?f(x?)+i=1∑m?λi??gi?(x?)=0因為gi(x?)=0g_{i}(x^{*})=0gi?(x?)=0所以λi?gi(x?)=0\lambda_{i}\cdot g_{i}(x^{*})=0λi??gi?(x?)=0。
下圖可做輔助理解。
【3】總結
回顧了KKT條件的基本定義內容。