python學智能算法(三十))|SVM-KKT條件的數學理解

【1】引言

前序學習進程中,通過類比力的平衡對KKT條件進行了初步的理解。
今天我們更進一步,常使用數學語言進一步解釋KKT條件。

【2】帶約束的最小優化問題

首先定義一個即將求解的優化問題:
目標函數:最小化f(x)(x∈Rn)f(x)(x\in R^{n})f(x)(xRn)
約束條件:
不等式約束:gi(x)≤0(i=1,2,,...,m)g_{i}(x)\leq0(i=1,2,,...,m)gi?(x)0(i=1,2,,...,m),一共m個
等式約束:hj(x)=0(j=1,2,,...,p)h_{j}(x)=0(j=1,2,,...,p)hj?(x)=0(j=1,2,,...,p),一共p個
這個時候就仿照之前的拉格朗日函數構造方法,構造出適用的拉格朗日函數:
L(x,λ,μ)=f(x)+∑i=1mλigi(x)+∑j=1pμjhj(x)L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{m}\lambda_{i}g_{i}(x)+\sum_{j=1}^{p}\mu_{j}h_{j}(x)L(x,λ,μ)=f(x)+i=1m?λi?gi?(x)+j=1p?μj?hj?(x)
其中:
λi≥0\lambda_{i}\geq0λi?0是不等式約束 gi≤0g_{i}\leq0gi?0對應的拉格朗日乘子,λi\lambda_{i}λi?嚴格非負;
μj∈R\mu_{j}\in Rμj?R是等式約束hj(x)=0h_{j}(x)=0hj?(x)=0對應的拉格朗日乘子,μj\mu_{j}μj?沒有符號限制。

【2.1】局部最優解

如果x?x^{*}x?是上述問題的局部最優解,且滿足約束規范,則存在乘子λ?=(λ1?,...,λm?)\lambda^{*}=(\lambda_{1}^{*},...,\lambda_{m}^{*})λ?=(λ1??,...,λm??)μ?=(μ1?,...,μp?)\mu^{*}=(\mu_{1}^{*},...,\mu_{p}^{*})μ?=(μ1??,...,μp??),是的以下五個條件同時成立:

【2.1.1】梯度為零條件

拉格朗日函數在x?x^{*}x?處滿足:?xL(x?,λ?,μ?)=0\nabla_{x} L(x^{*},\lambda^{*},\mu^{*})=0?x?L(x?,λ?,μ?)=0

具體展開來后:
?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=1m?λi???gi?(x?)+j=1p?μj???hj?(x?)=0
換句話說,目標函數的梯度與約束梯度的加權和相平衡。

【2.1.2】不等式約束可行性

所有不等式約束在x?x^{*}x?處滿足:gi(x?)≤0(i=1,2,...,m)g_{i}(x^{*})\leq0 (i=1,2,...,m)gi?(x?)0(i=1,2,...,m)也就是解必須嚴格落在不等式約束定義的可行域內。

【2.1.3】等式約束可行性

所有等式約束在x?x^{*}x?處滿足:hj(x?)=0(j=1,2,...,p)h_{j}(x^{*})=0 (j=1,2,...,p)hj?(x?)=0(j=1,2,...,p)也就是解必須嚴格落在等式約束定義的曲面上。

【2.1.4】拉格朗日乘子非負性

不等式約束對應的乘子非負:λi?≥0(j=1,2,...,m)\lambda_{i}^{*}\geq0 (j=1,2,...,m)λi??0(j=1,2,...,m)
此時解釋起來有一個形象的理解,因為gi≤0g_{i}\leq0gi?0嚴格成立,所以λi?≥0\lambda_{i}^{*}\geq0λi??0就像在唱反調,gig_{i}gi?也就是解必須嚴格落在等式約束定義的曲面上。
不等式約束gi(x)≤0g_{i}(x)\leq0gi?(x)0定義了一個可行域,當最優解x?x^{*}x?落在某個約束的邊界上,此時存在gi(x?)=0g_{i}(x^{*})=0gi?(x?)=0,若xxx稍微偏離x?x^{*}x?且試圖進入gi(x)>0g_{i}(x)>0gi?(x)>0的區域,也就是嘗試進入非可行域,約束就會阻止這種偏離,就像給xxx施加了一個指向可行域內部的“推力”。
目標函數的梯度?f(x?)\nabla f(x^{*})?f(x?)指向f(x)f(x)f(x)增長最快的方向
,對于此處求最小化的目標,我們實際上是希望xxx??f(x)-\nabla f(x)??f(x)方向移動。如果定義梯度?f(x?)\nabla f(x^{*})?f(x?)是拉力方向,則優化方向是拉力的反方向;
而約束函數gi(x?)g_{i}(x^{*})gi?(x?)的梯度指向gi(x)g_{i}(x)gi?(x)增長最快的方向,實際上指向了非可行域,所以??gi(x?)-\nabla g_{i}(x^{*})??gi?(x?)才是指向可行域,而在λi?≥0\lambda_{i}^{*}\geq0λi??0的前提下,可以保障?λi??gi(x?)-\lambda_{i}^{*}\nabla g_{i}(x^{*})?λi???gi?(x?)面向可行域,所以?λi??gi(x?)-\lambda_{i}^{*}\nabla g_{i}(x^{*})?λi???gi?(x?)是推力的方向。

【2.1.5】互補松弛條件

乘子與不等式約束的乘積為零:
λ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)
實際上有兩種情況:
當約束不起作用,gi(x)≤0g_{i}(x)\leq0gi?(x)0,此時必然有乘子為零即λi?=0\lambda _{i}^{*}=0λi??=0

當約束起作用,gi(x)=0g_{i}(x)=0gi?(x)=0,此時必然有乘子大于零即λi?≥0\lambda _{i}^{*}\geq0λi??0

【3】總結

從數學的角度重新粗糙解讀了KKT條件。

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

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

相關文章

華為云Flexus+DeepSeek征文|Linux命令實現兩種部署的性能捕獲+(硅基+Maas)模型添加教學

前引:“在數字化浪潮洶涌澎湃的今天,企業對云計算服務的需求已從基礎架構支撐,逐步轉向更深層次的AI賦能與業務創新驅動。面對復雜多變的市場環境,選擇一個強大、可靠且具備前瞻性的云服務伙伴,無疑是企業實現高速增長…

langchain--1--prompt、output格式、LCEL示例

環境:本地使用ollama部署的deepseek-r1:1.5b模型 本文示例包含: [1] 非LCEL的調用方法[2] LCEL的調用方法[3] prompt template的簡單使用,除了PromptTemplate模板,還有一些其它模板,可去查看官網[4] 輸出:json格式、py…

【算法】指數滑動濾波器

指數滑動濾波器作用原理特點公式代碼優化升級作用 首先這個濾波器能夠將一些突變的信號對系統的影響降低,能夠平滑輸入信號,濾除噪聲,減少測量數據的瞬間波動和干擾,就是實現輸入信號不能不變,數值不會突然變大&#…

STM32F4—電源管理器

Power supply schemesPower supply supervisorInternal reset ON有PDR_ON pin的MCU,PDR_ON pin被拉高的時候電源監視器被使能。沒有PDR_ON pin的MCU默認一直使能。內部集成了power-on reset (POR) / power-down reset (PDR)POR(上電復位)&…

MySQL鎖的分類 MVCC和S/X鎖的互補關系

各位看官,大家早安午安晚安呀~~~如果您覺得這篇文章對您有幫助的話歡迎您一鍵三連,小編盡全力做到更好 歡迎您分享給更多人哦今天我們來學習:MySQL鎖的分類 && MVCC和S/X鎖的互補關系1.鎖分類1.按鎖粒度分類:全局鎖&#…

第五屆智能通信與計算國際學術會議(ICICC 2025)

重要信息 官網:www.ic-icc.org 時間:2025年8月15-16日 地點:中國 南京 第五屆智能通信與計算國際學術會議(ICICC 2025)定于2025年8月15-16日在中國 南京舉行。隨著信息技術的飛速發展,智能通信與計算領域的研究與…

基于C#和NModbus4庫實現的Modbus RTU串口通信

基于C#和NModbus4庫實現的Modbus RTU串口通信&#xff0c;包含完整的界面設計和功能實現&#xff1a;一、項目依賴配置NuGet包安裝&#xff1a; Install-Package NModbus4 Install-Package System.IO.Ports窗體控件布局&#xff1a; <!-- 基礎控件配置 --> <ComboBox …

想要批量提取視頻背景音樂?FFmpeg 和轉換器都安排上

你是否遇到過這樣的情況&#xff1f;看到一個超贊的短視頻&#xff0c;里面的背景音樂特別好聽&#xff0c;想單獨保存下來當手機鈴聲或收藏&#xff0c;卻不知道怎么把音樂從視頻里“摳”出來&#xff1f;別擔心&#xff01;今天就為大家分享兩種簡單易行的方法&#xff0c;無…

為什么MCP協議是AI集成的未來API

一、企業AI應用的核心挑戰與架構演進 當前企業AI落地面臨三大核心痛點&#xff1a; ??系統集成困境??&#xff1a;需對接企業內部業務系統&#xff08;CRM/ERP等&#xff09;??異構環境兼容??&#xff1a;需整合第三方AI服務與傳統API??數據孤島突破??&#xff1…

Apache Tomcat樣例目錄session操縱漏洞解讀

【漏洞名稱】&#xff1a;Apache Tomcat樣例目錄session操縱漏洞 &#xff08;Apache Tomcat示例目錄漏洞&#xff09;【漏洞等級】&#xff1a;中危&#xff0c;5.9分。【漏洞描述】Apache Tomcat默認安裝頁面中存在examples樣例目錄&#xff0c;里面存放著Servlets、JSP、Web…

Go語言實戰案例:實現HTTP客戶端請求并解析響應

本文是 Go 網絡與并發實戰系列的第2篇&#xff0c;聚焦于如何使用 Go 實現一個 HTTP 客戶端&#xff0c;完成請求發送、響應解析、錯誤處理、Header與Body提取等完整流程。一、前言&#xff1a;為什么學習HTTP客戶端&#xff1f;在日常開發中&#xff0c;無論是調用 RESTful AP…

java的冒泡排序算法

冒泡排序是一種簡單的排序算法&#xff0c;通過重復遍歷待排序序列&#xff0c;比較相鄰元素并在必要時交換位置&#xff0c;最終實現排序。以下是Java實現的詳細說明&#xff1a;核心原理?比較相鄰元素?&#xff1a;從序列第一個元素開始&#xff0c;逐對比較相鄰元素的大小…

玻爾茲曼分布與玻爾茲曼探索

目錄 玻爾茲曼分布定義 玻爾茲曼探索&#xff1a; 1. 玻爾茲曼分布公式 2. 溫度 T 如何影響采樣結果&#xff1f; (1) 高溫 (T→∞)&#xff1a; (2) 低溫 (T→0)&#xff1a; (3) 中等溫度 (T∈(0,∞))&#xff1a; 3. 直觀示例 4. 實際應用中的意義 5.核心誤區澄清…

【工具】jsDelivr CDN完全指南:免費高速的開源項目CDN服務

前言 在現代Web開發中&#xff0c;內容分發網絡&#xff08;CDN&#xff09;已經成為提升網站性能的重要工具。jsDelivr作為一個免費、快速、可靠的開源CDN服務&#xff0c;為全球開發者提供了優質的靜態資源分發服務。無論是加速GitHub倉庫訪問、分發npm包&#xff0c;還是為…

OSPF筆記整理

一、OSPF 基礎特性1. 技術背景&#xff08;對比 RIP&#xff09;RIP 的缺陷&#xff1a;最大跳數 15 限制、周期性發送全路由表&#xff08;占用帶寬&#xff09;、收斂慢、以跳數為度量值、易產生環路、30 秒更新間隔。OSPF 的改進&#xff1a;無跳數限制&#xff08;支持大規…

sqLite 數據庫 (3):以編程方式使用 sqLite,4 個函數,以及 sqLite 移植,合并編譯

&#xff08;22&#xff09; 只有四個函數 &#xff1a;以及 &#xff1a;&#xff08;23&#xff09;以及 &#xff1a;&#xff08;24&#xff09;&#xff08;25&#xff09; sqLite 的源代碼很少 &#xff1a;&#xff08;26&#xff09;&#xff08;27&#xff09;&#x…

Nginx跨域問題與 MIME 類型錯誤深度排錯指南:解決 MIME type of “application/octet-stream“ 報錯

前言&#xff1a;在 Web 開發中&#xff0c;跨域請求和資源加載錯誤是前端工程師和運維人員經常遇到的棘手問題。本文將詳細解析 Nginx 環境下跨域配置的多種方案、gzip 類型參數的優化要點&#xff0c;以及.mjs 文件 MIME 類型錯誤的解決方法&#xff0c;并結合排錯思路和原理…

什么是大端?什么是小端?如何驗證?

什么是大端&#xff1f;什么是小端&#xff1f;如何驗證&#xff1f; 在計算機系統中&#xff0c;大端&#xff08;Big-Endian&#xff09; 和小端&#xff08;Little-Endian&#xff09; 是兩種不同的字節序&#xff08;Byte Order&#xff09;&#xff0c;用于描述多字節數據…

JavaScript 語句和函數

1. JavaScript 語句 1&#xff09;if語句 if (condition) statement1 else statement2這里的條件&#xff08;condition&#xff09;可以是任何表達式&#xff0c;并且求值結果不一定是布爾值。 ECMAScript會自動調用Boolean()函數將這個表達式的值轉換為布爾值。 如果條件…

代碼隨想錄刷題Day22

替換數字 這道題比較簡單&#xff0c;遇到字母就copy到新的字符數組&#xff0c;如果是遇到數字&#xff0c;就在新字符數組中加入number的字符串。代碼如下&#xff1a; #include<stdio.h> #include<ctype.h> #include<string.h> #define Max 1000000 int…