深入理解機器學習中拉格朗日乘子和KKT條件
1.引言
本篇部落格主要總結了拉格朗日乘子和KTT條件在機器學習中求解最優值的原理,博主儘量舉點小例子幫助大家一起共同學習。
2.拉格朗日和KKT作用
我們在求解問題時,經常會遇到一些在約束條件下求解函式的。
在有等式約束條件下,我們選用拉格朗日乘子;
在有不等式約束條件下,選用KKT方法求解最優解。
因此我們可以將KKT條件看成是拉格朗日乘子的泛化。
3.求解最優問題的集中形式
通常我們需要求解的最優化問題有如下幾類:
- 無約束條件下求最優值
minf(x,y) - 在等式條件下求解最優值
minf(x,y)
s.t...g(x,y)=c - 在不等式條件下求解最優值
m
s.t…g(x)<=0,h(x)<=0
4.求解不同最優問題方法
4.1無約束條件下的最優值求解
無約束條件下的函式
這樣求解的首先需要保證函式
4.2 等式條件下的最優值求解(拉格朗日乘子)
假設我們需要求解的函式為
而拉格朗日乘子就是解決這樣問題的,通過引入一個
接下來就是求解函式
接下來舉一個小例子
則可以得到
對各個引數求解偏導數得到
4.3不等式條件下求解最優解(KKT條件)
對KTT條件的講解主要採用作者(xianlingmao),對作者表示感謝
對於含有不等式約束的優化問題,如何求取最優值呢?常用的方法是KKT條件,同樣地,把所有的不等式約束、等式約束和目標函式全部寫為一個式子
- L(a, b, x)對x求導為零;
- h(x) =0;
- a*g(x) = 0;
求取這三個等式之後就能得到候選最優值。其中第三個式子非常有趣,因為