機器學習之拉格朗日乘子法和 KKT

有約束的最優化問題

最優化問題一般是指對于某一個函數而言,求解在其指定作用域上的全局最小值問題,一般分為以下三種情況(備注:以下幾種方式求出來的解都有可能是局部極小值,只有當函數是凸函數的時候,才可以得到全局最小值):

1、無約束問題:求解方式一般為梯度下降法、牛頓法、坐標軸下降法等;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\min f(x)

2、等式約束條件:求解方式一般為拉格朗日乘子法

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??\begin{center} \min f(x) \\s.t.\ \ h_k(x)=0 \ \ \ k=1, 2, \dots, p \\F(x, \alpha )=f(x)+\sum_{k=1}^p\alpha_kh_k(x)\end{center}

3、不等式約束條件:求解方式一般為KKT條件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\begin{center} \min f(x) \\ s.t.\ \ \ \ \ h_k(x)=0 \ \ \ \ \ \ k=1, 2, \dots, p \\\ \ \ \ \ \ \ \ \ g_j(x) \le 0 \ \ \ \ \ \ j=1, 2, \dots, q \\L(x, \alpha, \beta)=f(x)+\sum_{k=1}^p\alpha_kh_k(x)+\sum_{j=1}^q\beta_jg_j(x) \end{center}

拉格朗日乘子法

拉格朗日乘子法就是當我們的優化函數存在等值約束的情況下的一種最優化求解方式;

其中參數α被稱為拉格朗日乘子,要求α不等于0

\begin{center} \min f(x) \\s.t.\ \ h_k(x)=0, \ \ \ k=1, 2, \dots, p \\F(x, \alpha )=f(x)+\sum_{k=1}^{p}\alpha_kh_k(x),\ \ \ \alpha_k \neq 0\end{center}

假設現在有一個二維的優化問題

畫出圖像加深理解

數學證明可參考鏈接:https://wenku.baidu.com/view/ac56710e2e3f5727a5e962a7.html

對偶問題

\underset{\beta }{min}\ \underset{x}{min}\ L(x,\beta)=\underset{x}{min}\ \underset{\beta }{max}\ L(x,\beta)

在優化問題中,目標函數f(x)存在多種形式,如果目標函數和約束條件都為變量x的線性函數,則稱問題為線性規劃;如果目標函數為二次函數,則稱最優化問題為二次規劃;如果目標函數或者約束條件為非線性函數,則稱最優化問題為非線性優化。每個線性規劃問題都有一個對應的對偶問題。對偶問題具有以下幾個特性:

  1. 對偶問題的對偶是原問題;
  2. 無論原始問題是否是凸的,對偶問題都是凸優化問題;
  3. 對偶問題可以給出原始問題的一個下界;
  4. 當滿足一定條件的時候,原始問題和對偶問題的解是完美等價的。

KKT條件

KKT條件是泛拉格朗日乘子法的一種形式;主要應用在當我們的優化函數存在不等值約束的情況下的一種最優化求解方式;KKT條件即滿足不等式約束情況下的條件。

\begin{center} \min f(x) \\ s.t.\ \ \ \ \ h_k(x)=0 \ \ \ \ \ \ k=1, 2, \dots, p \\\ \ \ \ \ \ \ \ \ g_j(x) \le 0 \ \ \ \ \ \ j=1, 2, \dots, q \\L(x, \alpha, \beta)=f(x)+\sum_{k=1}^p\alpha_kh_k(x)+\sum_{j=1}^q\beta_j g_j(x) ,\ a_k\neq 0,\beta_j \geq 0\end{center}

可行解必須在約束區域g(x)之內,由圖可知可行解x只能在g(x)<0和g(x)=0的區域取得;

?

當可行解x在g(x)<0的區域中的時候,此時直接極小化f(x)即可得到;

當可行解x在g(x)=0的區域中的時候,此時直接等價于等式約束問題的求解。

?

KKT條件理解

當可行解在約束內部區域的時候,令β=0即可消去約束。

對于參數β的取值而言,在等值約束中,約束函數和目標函數的梯度只要滿足平行即可,而在不等式約束中,若β≠0,則說明可行解在約束區域的邊界上,這個時候可行解應該盡可能的靠近無約束情況下的解,所以在約束邊界上,目標函數的負梯度方向應該遠離約束區域朝無約束區域時的解,此時約束函數的梯度方向與目標函數的負梯度方向應相同;從而可以得出β>0。

?

?

對偶問題的直觀理解:最小的里面的那個最大的要比最大的那個里面的最小的大;從而就可以為原問題引入一個下界。

KKT 案例

?

這里利用該KKT條件滿足對偶條件:

對偶問題的直觀理解:最小的里面的那個最大的要比最大的那個里面的最小的大;從而就可以為原問題引入一個下界

KKT條件總結

KKT條件為下列五個

  1. 拉格朗日取得可行解的充要條件;
  2. 將不等式約束轉換后的一個約束,稱為松弛互補條件;
  3. 初始的約束條件;
  4. 初始的約束條件;
  5. 不等式約束需要滿足的條件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454343.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454343.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454343.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

定長順序串的實現

string.h #define MAXSTRLEN 255#define ERROR 0#define OK 1 typedef int Status;typedef char String[MAXSTRLEN 1]; //初始化字符串Status StrAssign(String T, char e); //有串S復制得串TStatus StrCopy(String T,String S); //比較兩個串的大小Status StrCompare(String …

pmp思維導圖 第六版_PMP考試技巧攻略(上)

PMP考試需要有保證足夠的時間投入&#xff1a;獲得PMP 考試并拿到5A 成績&#xff0c;并且還需要理解性記憶&#xff1a;PMP 指定教材PMBOK第六版&#xff08;教材為必看三遍以上&#xff09;&#xff0c;學習起來是有趣的&#xff0c;同時也是痛苦的。因為看書時字面的字我們認…

程序員應該具備的素質(來自csdn)

程序員是一種技術工作&#xff0c;在IT的發展中有相當重要的地位&#xff0c;從底層硬件通訊協議的建立&#xff0c; 到數據傳輸層的處理&#xff0c;到操作系統的建設&#xff0c;到數據庫平臺的建設&#xff0c;一直到應用層上各種數 據營銷平臺的搭建&#xff0c;程序員在里…

linux的du使用方法

該命令的各個選項含義如下&#xff1a; -s 對每個Names參數只給出占用的數據塊總數。 -a 遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數據塊數。若既不指定-s&#xff0c;也不指定-a&#xff0c;則只顯示Names中的每一個目錄及其中的各子目錄所占的磁盤塊數-b 以字節為…

淺談MVC MVP MVVM

復雜的軟件必須有清晰合理的架構&#xff0c;否則無法開發和維護。 MVC&#xff08;Model-View-Controller&#xff09;是最常見的軟件架構之一&#xff0c;業界有著廣泛應用。 它本身很容易理解&#xff0c;但是要講清楚&#xff0c;它與衍生的 MVP 和 MVVM 架構的區別就不容易…

機器學習接口和代碼之 線性回歸

線性回歸sklearn 接口和代碼 官網api&#xff1a;https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares LinearRegression class sklearn.linear_model.LinearRegression(fit_interceptTrue, normalizeFalse, copy_XTrue, n_jobs1)參數說明&a…

中國智慧VS西方智慧-看中國IT風云與IT產業怪狀

為什么國外沒有一家互聯網公司在中國取得成功&#xff0c;為什么他們都水土不服&#xff0c;為什么他們都在中國都混不下去&#xff0c;YAHOO, EBAY等等這樣享譽全球的互聯網公司都在中國無法取得成功&#xff01;為什么連讓IT巨無霸微軟都覺得發抖&#xff0c;讓比爾蓋茨夜夜做…

商務搜索引擎_外貿研修 | 世界各國常用搜索引擎,開發客戶必備!

我們平時生活中也好&#xff0c;開發客戶也好&#xff0c;搜索引擎是我們離不開的工具。最佳沒有之一的當屬谷歌了。谷歌網址&#xff1a;www.google.com谷歌高級搜索&#xff1a;https://www.google.com/advanced_search (通過設置/排除一些字詞縮小精確搜索范圍)作為普通使用…

HaProxy+Keepalived+Mycat高可用群集配置

概述 本章節主要介紹配置HaProxyKeepalived高可用群集&#xff0c;Mycat的配置就不在這里做介紹&#xff0c;可以參考我前面寫的幾篇關于Mycat的文章。 部署圖&#xff1a; 配置 HaProxy安裝 181和179兩臺服務器安裝haproxy的步驟一致 --創建haproxy用戶 useradd haproxy--…

奇怪的bug,不懂Atom在添加markdown-themeable-pdf,在配置好phantomjs的情況下報錯

本來打算用一下atom但是導出pdf報錯&#xff0c;可是在預覽的情況下就沒有問題&#xff0c;順便吐槽一下谷歌瀏覽器自己的markdown在線預覽插件無法適配&#xff0c;用搜狗搭載谷歌的插件才能導出pdf&#xff0c;一下感覺逼格少了很多&#xff0c;等忙完這陣再來看一下。先貼出…

機器學習之 sklearn.preprocessing 模塊

sklearn.preprocessing.PolynomialFeatures 多項式擴展。 它是使用多項式的方法來進行的&#xff0c;如果有a&#xff0c;b兩個特征&#xff0c;那么它的2次多項式為&#xff08;1,a,b,a^2,ab, b^2&#xff09;&#xff0c;這個多項式的形式是使用poly的效果。 api class s…

Python 面試題

Python面試315道題第一部 Python面試題基礎篇&#xff08;80道&#xff09;1、為什么學習Python&#xff1f;2、通過什么途徑學習的Python&#xff1f;3、Python和Java、PHP、C、C#、C等其他語言的對比&#xff1f;PHPjavacc#c4、簡述解釋型和編譯型編程語言&#xff1f;編譯型…

周鴻祎,高司令

還是感到有必要將自己的一些想法快速記下來。 首先是對周鴻祎新員工演講的看法。 就說實話這一點來說&#xff0c;周鴻祎比很多人強。所以我比較喜歡引用他的話&#xff0c;確實比較實在&#xff0c;不裝逼。 至于一個公司招人的風格&#xff0c;是公司自己定的&#xff0c;別人…

JDBC與JNDI應用比較

JNDI用了多年但是一直沒去弄懂其和JDBC的區別&#xff0c;今天在網上搜了下&#xff0c;發下些資料說明的還不錯記錄下。 JNDI是 Java 命名與目錄接口&#xff08;Java Naming and Directory Interface&#xff09;&#xff0c;在J2EE規范中是重要的規范之一&#xff0c;不少專…

bzoj1038500AC!

序列dp 先開始想了一個類似區間dp的東西...少了一維 然后發現似乎不太對&#xff0c;因為女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示當前有i個人&#xff0c;j個男生&#xff0c;男生和女生的后綴最大差是x&#xff0c;女生和男生最大差是y&#xff0c;x,y>0,轉…

機器學習接口代碼之 Ridge、Lasso、Elasitc Net

目錄 Ridge Regression &#xff08;嶺回歸&#xff09; Lasso Regression Elasitc Net&#xff08;彈性網絡&#xff09; 案例&#xff1a;葡萄酒質量預測 官網地址https://scikit-learn.org/stable/modules/linear_model.html Ridge Regression &#xff08;嶺回歸&…

公司技術管理角度看C++游戲程序員發展

公司技術管理角度看C游戲程序員發展 H3D 這是我多年來招聘培訓游戲程序員的一點想法。一直想匯總一下。主要目的是為了更好的對公司新進C程序員進行培訓&#xff0c;并且建立起游戲程序員培訓&#xff0c;發展&#xff0c;成才&#xff0c;成為核心骨干&#xff0c;管理層&am…

android生命周期_Android開發 View的生命周期結合代碼詳解

咱們以TextView控件為例&#xff1a;/*** Created by SunshineBoy on 2020/9/23.*/public class TestTextView extends android.support.v7.widget.AppCompatTextView {public TestTextView(Context context) {super(context);Log.e("TestTextView","TestTextVi…

salt

安裝服務端和客戶端服務端(marster)yum install salt-master -y客戶端(slave)yum install salt-minion -ymarster192.168.11.17/etc/init.d/salt-master start配置文件: vi /etc/salt/mastercat master|egrep -v ;|#|^$auto_accept:True #設置自動接受日志: /var/log/salt/mas…

python | 查看pip支持的文件名和版本

python | 查看pip支持的文件名和版本win下查詢大哥推薦已經解決win下查詢 import pip._internalprint(pip._internal.pep425tags.get_supported())64位的需要在pip后面加個_internal 如果不行試試下邊的 大哥推薦已經解決 import wheel.pep425tags as w print(w.get_suppor…