CAU數據挖掘 支持向量機

SVM大致思想

線性分類問題

在一群點中用線性函數分類:
在這里插入圖片描述
但也有線性不可分問題:
在這里插入圖片描述
線性不可分問題:
在這里插入圖片描述

最大間隔法

兩個平行超平面間隔距離最大
在這里插入圖片描述

軟間隔

部分難以區分的點忽略
在這里插入圖片描述

升維

在這里插入圖片描述
通過升維將非線性變為線性
在這里插入圖片描述

計算統計理論基礎

學習過程的一致性

期望風險泛函:定義最優函數在真實數據分布中的期望風險
經驗風險泛函:在有限的數據集上最優函數的期望風險。
由于真實分布未知,機器學習傳統都是用最小化經驗風險來替代最小化期望風險的目標
學習理論的關鍵定理的解讀:如果一個模型方法在最壞情況下仍能表現良好, 則對它的推廣能力才有信心。
函數集的容量

函數容量與VC維

容量( capacity) : 函數集在一組樣本集上可能實現的分類方案數目。
例如:二分類問題中有n個樣本,則有2**n種分類方案
生長函數:容量對數在所有可能樣本集上的上界。
要達成學習過程一致性,函數集的一致性的能力不會跟隨樣本數無限增長
VC維:用函數集中的函數所能夠打散的最大樣本集的樣本數目。
期望風險上限
在這里插入圖片描述
在這里插入圖片描述
推廣能力: 不取決于經驗風險最小能有多小, 而在于期望風險與經驗風險有多大差距, 差距越小則推廣能力越好。
特定的問題樣本數是固定的: VC 維越高→函數集復雜性越高→置信范圍就越大→推廣能力就可能越差。
結構風險最小化原則SRM:
在這里插入圖片描述
在這里插入圖片描述
在小樣本中應該遵循結構風險最小化原則SRM

理論中svm的優勢

為什么要選擇最大間隔
在這里插入圖片描述
為什么要使用核函數升維
在這里插入圖片描述

不適定問題與正則化方法

SVM中用到的最優化技巧

以二維為例子:
在這里插入圖片描述
通過化簡得到下面式子,確定最優化的目標函數
在這里插入圖片描述
由最終式子可知,我們的最終目標是求盡量小的w。
接下來求約束條件:
在兩線段兩端的點被分類為1和-1
由此得到下面的約束條件
在這里插入圖片描述
為了方便求解,目標函數做了一定處理。
接下來對不等式約束條件做一定處理變為等式:
在這里插入圖片描述
在這里插入圖片描述
這里得出 λ i \lambda_i λi? ≥ \geq 0。
因為:可以將 λ i \lambda_i λi?看成一個懲罰系數
在這里插入圖片描述
λ i \lambda_i λi?為正數時,沒有滿足約束條件會加大原式,作為懲罰,而為負數時則變成了鼓勵參數
從幾何角度考慮這個問題:
在這里插入圖片描述
從圖中得出有用的約束條件 λ i \lambda_i λi?必定為正數,作用是保持約束梯度矢量和與目標梯度方向大小一致。
在這里進一步說明拉格朗日對偶問題
在這里插入圖片描述
從求導式子中可以看出,拉格朗日常數法的最終目的是得出一系列常數使目標函數梯度與約束條件梯度相等。
在這里插入圖片描述
直觀的從上圖中來理解,最優點一定滿足這樣一個性質,最優點對于所有過這一點的約束條件上的梯度的可以用 λ i \lambda_i λi?作為參數矢量相加等于目標函數的梯度,而其他點(非最優點)沒有這個性質。因此可以使用這種方法來尋找最優點,這也是拉格朗日常數法的原理。
λ i \lambda_i λi?=0則是說明對應的約束條件對于該最優化問題是無效的,即松弛的約束條件。

拉格朗日對偶問題

為方便理解,我們首先要將原問題變一下形。
在這里插入圖片描述
我們將這個等價問題中的min與max交換一下即可得到等價命題:
在這里插入圖片描述
將對偶函數的最小值部分變為約束條件得到下圖:
在這里插入圖片描述
這時我們將對偶問題展開:
在這里插入圖片描述
g( λ \lambda λ, v)是一個仿射集也會是一個凹凸函數,對他求最大值則是對一個凹函數求最大值,約束條件為半空間 λ \lambda λ,v ≥ \geq 0,則這總是一個凸優化問題

強對偶與弱對偶

雖然對偶問題是一個凸優化問題,但原問題只有在與對偶問題強對偶的情況下才能轉換為對偶問題
在這里插入圖片描述
在這里插入圖片描述
注意A(x)和I( λ \lambda λ, v)都是L(x, λ \lambda λ, v)的衍生函數,均由L(x, λ \lambda λ, v)唯一確定。
由上述推斷出原問題與對偶問題不總是等價的。
在這里插入圖片描述

下面通過圖形的方式直觀說明,為了方便可視化進行如下變換
在這里插入圖片描述
接下來進行可視化
在這里插入圖片描述
解析:原問題求 G 1 G_1 G1?在t軸的最低點,對偶問題的值為一跳直線的截距,且斜率為負數。先取最小值決定了直線只能緊貼取值域的下端,而這些下端中相對取值最大的則真好如圖所示,當對偶問題求最大 λ \lambda λ時必定過 G 1 G_1 G1?最低點。
當可行域的范圍是一個凸集時,則會成為一個強對偶問題。
在下列兩種情況中都是強對偶問題
在這里插入圖片描述
在這里插入圖片描述
強對偶的充分條件
凸優化問題并要滿足Slash條件
在這里插入圖片描述
圖示如下:
在這里插入圖片描述
強對偶的必要條件
在這里插入圖片描述
同時在凸問題中KKT可以推出最優解

回到SVM問題中

在原拉格朗日常數法中已經獲得了原問題可行解和梯度為0條件
在這里插入圖片描述
1,2為原問題可行解,3為梯度為0條件
通過上述描述,用3,4推出互補松弛條件和最后一個對偶可行性。
補松弛條件:
在這里插入圖片描述
對偶可行性:
在這里插入圖片描述
由此所有KKT條件集齊:
在這里插入圖片描述
由于SVM為凸問題,我們已經得到求取最優點的方法。

SVM中使用拉格朗日對偶

原因:為了方便使用核技巧和提升求解效率。
首先根據上述直接給出SVM的對偶問題:
在這里插入圖片描述
接下來證明?Slater條件成立
以硬間隔問題為例:因為數據線性可分,總有( ω \omega ω, b)使得一條直線將所有點分為兩類,即滿足所有不等式約束,Slater條件自動滿足。
軟間隔只是允許一定的誤差,原理相同。
由此證明SVM是強對偶問題。
接下來將KKT條件代入對偶問題
在這里插入圖片描述
然后簡化求解
在這里插入圖片描述
通過對偶問題后約束僅有 λ \lambda λ,并且可以使用核技巧。

核技巧

當處理非線性可分問題時,需要升維。
我們很容易想到方法一:
在這里插入圖片描述
但方法一可以更容易的寫成方法二:
上述核函數可以通過修改參數確定維度
那么有沒有什么核函數可以轉換成無窮維呢?
高斯核函數可以通過無窮級數變為無窮維在這里插入圖片描述

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

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

相關文章

探索理解 Spring AI Advisors:構建可擴展的 AI 應用

Spring AI Advisors API 提供了一種靈活且強大的方式來攔截、修改和增強 Spring 應用程序中的 AI 驅動交互。其核心思想類似于 Spring AOP(面向切面編程)中的“通知”(Advice),允許開發者在不修改核心業務邏輯的情況下…

Linux SSH服務全面配置指南:從基礎到安全加固

Linux SSH服務全面配置指南:從基礎到安全加固 概述 作為網絡安全工程師,SSH(Secure Shell)服務的安全配置是我們日常工作中不可忽視的重要環節。本文將從基礎配置到高級安全加固,全面解析SSH服務的各項參數&#xff…

.NET測試工具Parasoft dotTEST內置安全標準,編碼合規更高效

在追求開發速度的時代,確保代碼安全并滿足嚴苛的行業合規標準如OWASP、CWE、PCI DSS、ISO 26262等已成為開發者的核心挑戰,但開發人員常因復雜的編碼標準和漏洞排查而效率低下。.NET測試工具Parasoft dotTEST內置安全標準,實現即插即用&#…

對象的finalization機制Test

Java語言提供了對象終止(finalization)機制來允許開發人員自定義對象被銷毀之前的處理邏輯。當垃圾回收器發現沒有引用指向一個對象時,通常接下來要做的就是垃圾回收,即清除該對象,而finalization機制使得在清除此對象之前,總會先…

AI初學者如何對大模型進行微調?——零基礎保姆級實戰指南

僅需8GB顯存,三步完成個人專屬大模型訓練 四步實戰:從環境配置到模型發布 步驟1:云端環境搭建(10分鐘) 推薦使用阿里魔塔ModelScope免費GPU資源: # 注冊后執行環境初始化 pip3 install --upgrade pip pi…

“單一職責”模式之裝飾器模式

目錄 “單一職責”模式裝飾器模式 Decorator引例動機 Motivation模式定義結構 Structure要點總結 “單一職責”模式 在軟件組件的設計中,如果責任劃分的不清晰,使用繼承得到的結果往往是隨著需求的變化,子類急劇膨脹,同時充斥著重…

idea, CreateProcess error=206, 文件名或擴展名太長

idea, CreateProcess error206, 文件名或擴展名太長 解決 “CreateProcess error206, 文件名或擴展名太長” 錯誤 CreateProcess error206 是 Windows 系統特有的錯誤,表示命令行參數超出了 Windows 的 32767 字符限制。這個問題在 Java 開發中尤其常見&#xff0c…

一鍵高效率圖片MD5修改工具PHP版

文章目錄 圖片MD5修改工具項目簡介功能特點技術原理系統需求安裝方法使用方法Web界面模式命令行模式文件結構常見問題注意事項開發者信息效果演示更多干貨??1.如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “??點贊” “??評論” “??收藏” 一鍵三連哦!2.??…

跨主機用 Docker Compose 部署 PostgreSQL + PostGIS 主從

q下面是跨主機用 Docker Compose 部署 PostgreSQL PostGIS 主從復制的完整詳細步驟(主庫 從庫),主從都用官方 PostGIS 鏡像 postgis/postgis:15-3.3,并注意網絡與持久化。復制即可。 🚩 跨主機 PostgreSQL PostGIS …

會議動態|千眼狼高速攝像機、DIC測量系統等科學儀器亮相第十五屆全國爆炸力學學術會議

第十五屆全國爆炸力學學術會議于6月28日在紹興盛大召開,會議匯聚來自全國爆炸力學與沖擊領域專家學者2000余人,聚焦“爆炸與沖擊動力學工程應用”、“材料動態力學行為與損傷斷裂“、“工程爆破與毀傷評估”、“含能材料與水中爆炸”、“結構動態響應與安…

vscode一個文件夾有殘余的git倉庫文件,已經失效了,怎樣進行清空倉庫殘余文件并重新初始化git--ubuntu

vscode一個文件夾有殘余的git倉庫文件,已經失效了,怎樣進行清空倉庫殘余文件并重新初始化git–ubuntu 首先要把工作區里重要的文件備份好,防止操作時數據丟失。刪除.git文件夾 rm -rf .git初始化 (base) zd4090zd4090-System-Product-Name:…

6月30日作業

思維導圖 一、讀取文件&#xff0c;效果類似 cat 的功能 代碼 #include <25041head.h>int main(int argc, const char *argv[]) {//打開文件printf("請輸入你要讀取的文件路徑&#xff1a;");char str[128]"";scanf("%s",str);FILE *fpf…

ubuntu源碼安裝python3.13遇到Could not build the ssl module!解決方法

我在Ubuntu 24.04.2 LTS下載源碼安裝Python 3.13.5時&#xff1a; #./configure --enable-loadable-sqlite-extensions --enable-optimizations #make 顯示錯誤信息&#xff1a; Could not build the ssl module! Python requires a OpenSSL 1.1.1 or newer 查詢我的openssl版…

Ai工具分享(2):Vscode+Cline無限免費的使用教程

大家好,我是程序員寒山。 今天給大家分享一個最新的免費使用的Ai插件Cline的方法,之前也給大家分享過一些免費的方案,但是這些都是隨時在變化,之前推薦的很多都不能使用了。 Ai工具分享(2):Vscode+Cline無限免費的使用教 今天再給大家推薦一個,可以免費使用,且沒有token…

Docker 目錄遷移腳本【Windows Junction 類型鏈接】

Docker 目錄遷移腳本完整教程&#xff1a;從誕生到自動化使用 一、腳本誕生背景與開發歷程 1. 為什么需要遷移 Docker 目錄&#xff1f; 系統盤空間壓力&#xff1a;Docker 鏡像和容器數據通常存儲在C:\Users\用戶名目錄下&#xff0c;隨著使用時間增長會占用大量系統盤空間…

spring-ai 工作流

目錄 工作流概念工作流程圖spring-boot 編碼定義節點 (Node)定義節點圖StateGraphcontroller測試瀏覽器測試用戶輸入 工作流概念 工作流是以相對固化的模式來人為地拆解任務&#xff0c;將一個大任務拆解為包含多個分支的固化流程。工作流的優勢是確定性強&#xff0c;模型作為…

重頭開始學ROS(6)---Eigen庫安裝與使用

Eigen庫 矩陣運算是一種非常重要的運算方式&#xff0c;在Matlab中&#xff0c;矩陣運算可以輕松的實現&#xff0c;但在C這種偏底層的語言中&#xff0c;若不借助第三方庫&#xff0c;矩陣運算需要我們進行較為復雜的代碼設計。Eigen庫是一個用于線性運算的C模板庫&#xff0…

【STM32】外部中斷

STM32 外部中斷&#xff08;EXTI&#xff09;概述 這篇文章結合示例代碼&#xff0c;系統性地講述 STM32 外部中斷&#xff08;EXTI&#xff09;實驗的原理、以及配置流程。目的在于輔助讀者掌握STM32F1 外部中斷機制。 STM32F1xx官方資料&#xff1a;《STM32中文參考手冊V10》…

LeetCode Hot100 算法題 (矩陣篇)

1、73. 矩陣置零 給定一個 m x n 的矩陣&#xff0c;如果一個元素為 0 &#xff0c;則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 示例 1&#xff1a; 輸入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 輸出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]// 將第一行…

Flutter基礎(項目創建)

一、使用命令行創建項目 1. 確認 Flutter 環境正常 要保證 Flutter SDK 已經正確安裝&#xff0c;并且環境變量配置無誤。可以通過執行以下命令來驗證&#xff1a; flutter doctor 要保證所有檢查項都顯示綠色對勾&#xff0c;要是有問題&#xff0c;可按照提示進行修復。 …