机器学习.周志华《6 支持向量机》
生活随笔
收集整理的這篇文章主要介紹了
机器学习.周志华《6 支持向量机》
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
間隔與支持向量?
- 分類學習的最基本想法就是基于訓練集D在樣本空間中找到一個劃分超平面,將不同類別的樣本分開。
- 能將訓練樣本劃分開的平面可能有很多個,選擇位于兩類訓練樣本正中間的劃分超平面,原因是這個超平面的分類結果最魯棒,泛化能力最強。
- 在樣本空間中,劃分超平面可通過以下線性方程來描述?
- 樣本空間中任意點?x到超平面?(w,b)的距離可以寫成?
- 假設超平面能夠正確分類樣本,則可以通過對w縮放可以使得下式成立?
- 距離超平面最近的幾個樣本點使得上式等號成立,稱作“支持向量”。兩個異類支持向量到超平面的距離之和稱為“間隔”.
- 欲最大化間隔,需要找到可以滿足不等式組組3條件的能使γ最大的w和b?, 這就是支持向量機SVM的基本型。?
對偶問題:鏈接必看
- 上述問題是一個凸二次規劃問題,能直接用現成的優化計算包求解。但是通過拉格朗日乘子法變換到對偶變量的優化問題之后,可以找到一種更加有效的方法來進行求解。
- 為SVM基本型添加拉格朗日乘子,則原問題的拉格朗日函數為?
- L對w、b求偏導為零可以得到 :
- 代入拉格朗日函數消去w、b得到SVM基本型的對偶問題為:
- 解α,求出w、b,得到模型為?
- 上述過程需要滿足KKT(Karush-Kuhn-Tucker)條件,即?
- 對任意訓練樣本(xi,yi),總有αi=0?或yif(xi)=1。因此訓練完成后,大部分的樣本都不需要保留,最終模型僅與支持向量有關。
- 二次規劃算法求解對偶問題,則問題的規模正比于訓練樣本數,在實際任務中會造成很大開銷,因此提出SMO(Sequential Minimal Optimization)算法。
SMO算法:
- 步驟:不斷執行以下兩個步驟直到收斂?
- 選取一對需要更新的變量αi和αj
- 固定αi和αj以外的參數,求解對偶問題更新后的αi?和αj
- 只要選取的αi和αj中有一個不滿足KKT條件, 目標函數就會在迭代后減小。KKT條件違背的程度越大,變量更新后可能導致的目標函數值減幅越大。
- 使選取的兩變量所對應樣本之間的間隔最大(兩個變量有很大的差別,對它們進行更新會帶給目標函數值更大的變化)。
核函數
- 原始樣本空間線性不可分:將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分。如果原始空間是有限維,那么一定存在一個高維特征空間使樣本可分。
- 模型變成:
- 對偶問題為?
- 重寫對偶問題:
此處k(x,xi)即為核函數;
結論:任何核函數都隱式的定義成了“再生核希爾伯特空間RKHS”的特征空間- 常用核函數:?
軟間隔和正則化
引入:現實任務中往往很難確定合適的核函數使得訓練樣本在特征空間中線性可分,即便線性可分,也很難判定這個結果不是由于過擬合造成的。緩解這個問題的一個方法是允許支持向量機在一些樣本上出錯,引入“軟間隔”概念。
允許某些樣本不滿足約束?
- 在最大化優化間隔期間,使得不滿足約束的樣本盡量少,優化目標可寫成?
????????????????????????????????????????????????
其中?
- 0/1函數非凸、非連續、數學性質不好,使得上式難以求解,因此人們用其他一些函數來代替它,稱為“替代損失”。
- 三種常見的替代損失:?
- 引入松弛變量ξi>=0(每個樣本都有一個松弛變量,標準不滿足約束的程度),常用的軟間隔支持向量機:?
- 與硬間隔支持向量機相似,軟間隔支持向量機也是一個二次規劃問題,可以通過拉格朗日乘子法得到拉格朗日函數:?
- 求偏導為零可以得到?
- 對偶問題為?
- 上述過程需要滿足KKT(Karush-Kuhn-Tucker)條件,即?
- 實際上支持向量機和對率回歸的優化目標相近,通常情況下他們的性能相當。對率回歸的優勢主要對于其輸出具有自然的概率意義,即在給出預測標記的同時也給了概率,而支持向量機的輸出不具有概率意義,欲得到概率需要進行特殊處理;此外,對率回歸能夠直接用于多分類任務,支持向量機為此需要進行推廣。另一方面,可以看出hinge損失函數有一塊平攤的零區域,這使得支持向量機的解具有稀疏性,而對率損失是光滑的而單調遞減函數,不能導出類似支持向量的概念。因此對率回歸的解依賴于更多的訓練樣本,其預測開銷大。
支持向量回歸SVR
- SVR問題華為:
:正則化常數;
:不敏感損失函數
- 引入松弛變量ξi和ξi^,重寫為:
- 拉格朗日函數:
- 求導得0:
- 代入求SVR對偶問題:
- 滿足KKT條件:
- 求得SVR的解:
- 進而求得:
- 考慮特征映射:
- 代入得SVR:
核方法
給定訓練集,若不考慮偏移項b,SVM和SVR學得的模型均可以表示成核函數的線性組合。
核化(引入核函數):
目的:將現行學習期拓展為非線性學習器;
案例:線性判別分析LDA------>核線性判別分析KLDA
-----------------------------------------------------------------------------------------------------------*-*----
更多詳細內容請關注公眾號:目標檢測和深度學習
---------------------------------------------------------------------------------------------------------------…^-^……---------
總結
以上是生活随笔為你收集整理的机器学习.周志华《6 支持向量机》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中的队列
- 下一篇: qnap备份文件服务器,完整的数据备份方