簡易解說拉格朗日對偶(Lagrange duality)

来源:https://www.cnblogs.com/mcq1999/archive/2019/09/12/11515640.html
-Advertisement-
Play Games

轉載自https://www.cnblogs.com/90zeng/p/Lagrange_duality.html,本人覺得講的非常好! 1.原始問題 假設是定義在上的連續可微函數(為什麼要求連續可微呢,後面再說,這裡不用多想),考慮約束最優化問題: 稱為約束最優化問題的原始問題。 現在如果不考慮約 ...



 轉載自https://www.cnblogs.com/90zeng/p/Lagrange_duality.html,本人覺得講的非常好!

 

1.原始問題

假設是定義在上的連續可微函數(為什麼要求連續可微呢,後面再說,這裡不用多想),考慮約束最優化問題:

稱為約束最優化問題的原始問題。

現在如果不考慮約束條件,原始問題就是:

因為假設其連續可微,利用高中的知識,對求導數,然後令導數為0,就可解出最優解,很easy. 那麼,問題來了(呵呵。。。),偏偏有約束條件,好煩啊,要是能想辦法把約束條件去掉就好了,bingo! 拉格朗日函數就是乾這個的。

 


 

引進廣義拉格朗日函數(generalized Lagrange function):

不要怕這個式子,也不要被拉格朗日這個高大上的名字給唬住了,讓我們慢慢剖析!這裡拉格朗日乘子(名字高大上,其實就是上面函數中的參數而已),特別要求.

 


 

現在,如果看作是關於的函數,要求其最大值,即

再次註意是一個關於的函數,經過我們優化(不要管什麼方法),就是確定的值使得取得最大值(此過程中把看做常量),確定了的值,就可以得到的最大值,因為已經確定,顯然最大值就是只和有關的函數,定義這個函數為:

其中 


 

下麵通過是否滿足約束條件兩方面來分析這個函數:

  • 考慮某個違反了原始的約束,即或者,那麼:

  註意中間的最大化式子就是確定的之後的結果,若,則令,如果,很容易取值使得

 

  • 考慮滿足原始的約束,則:,註意中間的最大化是確定的過程,就是個常量,常量的最大值顯然是本身.

 

通過上面兩條分析可以得出:

那麼在滿足約束條件下:

與原始優化問題等價,所以常用代表原始問題,下標 P 表示原始問題,定義原始問題的最優值:

 


 

原始問題討論就到這裡,做一個總結:通過拉格朗日這位大神的辦法重新定義一個無約束問題(大家都喜歡無拘無束),這個無約束問題等價於原來的約束優化問題,從而將約束問題無約束化!



 

2.對偶問題

定義關於的函數:

註意等式右邊是關於的函數的最小化,確定以後,最小值就只與有關,所以是一個關於的函數. 


 

考慮極大化,即

  

這就是原始問題的對偶問題,再把原始問題寫出來:

形式上可以看出很對稱,只不過原始問題是先固定中的,優化出參數,再優化最優,而對偶問題是先固定,優化出最優,然後再確定參數.

定義對偶問題的最優值:



 

3. 原始問題與對偶問題的關係

定理若原始問題與對偶問題都有最優值,則

證明:對任意的,有

由於原始問題與對偶問題都有最優值,所以

也就是說原始問題的最優值不小於對偶問題的最優值,但是我們要通過對偶問題來求解原始問題,就必須使得原始問題的最優值與對偶問題的最優值相等,於是可以得出下麵的推論:

推論:設分別是原始問題和對偶問題的可行解,如果,那麼分別是原始問題和對偶問題的最優解。

所以,當原始問題和對偶問題的最優值相等:時,可以用求解對偶問題來求解原始問題(當然是對偶問題求解比直接求解原始問題簡單的情況下),但是到底滿足什麼樣的條件才能使的呢,這就是下麵要闡述的 KKT 條件



 

4. KKT 條件

定理:對於原始問題和對偶問題,假設函數是凸函數,是仿射函數(即由一階多項式構成的函數,f(x)=Ax + b, A是矩陣,x,b是向量);並且假設不等式約束是嚴格可行的,即存在,對所有,則存在,使得是原始問題的最優解,是對偶問題的最優解,並且

 

 

定理:對於原始問題和對偶問題,假設函數是凸函數,是仿射函數(即由一階多項式構成的函數,f(x)=Ax + b, A是矩陣,x,b是向量);並且假設不等式約束是嚴格可行的,即存在,對所有,則分別是原始問題和對偶問題的最優解的充分必要條件是滿足下麵的Karush-Kuhn-Tucker(KKT)條件:

關於KKT 條件的理解:前面三個條件是由解析函數的知識,對於各個變數的偏導數為0(這就解釋了一開始為什麼假設三個函數連續可微,如果不連續可微的話,這裡的偏導數存不存在就不能保證),後面四個條件就是原始問題的約束條件以及拉格朗日乘子需要滿足的約束。

特別註意當時,由KKT對偶互補條件可知:,這個知識點會在 SVM 的推導中用到.



 

5. 總結

一句話,某些條件下,把原始的約束問題通過拉格朗日函數轉化為無約束問題,如果原始問題求解棘手,在滿足KKT的條件下用求解對偶問題來代替求解原始問題,使得問題求解更加容易。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • centos7.3 安裝python 查看當前python情況[root@localhost /]# cd /[root@localhost bin]# cd /usr/bin[root@localhost bin]# ls python*python python2 python2.7 [root ...
  • linux 預設的ssh遠程埠是22,有時預設埠會遭到別有用心的人們掃描或攻擊,為了時我們的系統更加安全那就需要修改遠程埠號 操作步驟:1、修改ssh_config配置文件 2、配置文件中找到#Port 22所在行(預設22埠) 3、修改該行,改為你想要的埠號Port 222(註意:去掉前 ...
  • 用於其他發行版如rhel、centos有時候要用到oracle linux的源來裝軟體比如oracle、mysql等配置oel7源wget http://public-yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-... ...
  • #include<unistd.h>int access(const char* pathname, int mode);參數介紹: pathname 是文件的路徑名+文件名 mode:指定access的作用,取值如下: F_OK 值為0,判斷文件是否存在 X_OK 值為1,判斷對文件是可執行許可權 ...
  • vi /etc/sysconfig/network-scripts/ifcfg-eth0rm -rf /etc/udev/rules.d/70-persistent-net.rules ...
  • 控制面板 –> 管理工具 –> Internet信息服務管理器打開後左側選擇相應的FTP站點右擊 –> 屬性 –> 安全帳戶允許匿名連接 前面的√取消掉,點擊確定完成 ...
  • 找到vsftpd.conf中的 保存退出 ...
  • 重置Mysql root用戶賬號密碼 By:授客 QQ:1033553122 問題描述: 使用mysqladmin.exe執行命令時出現以下錯誤提示: mysqladmin: connect to server at 'localhost' failed error: 'Access denied ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...