1. 程式人生 > >SMO(Sequential minimal optimization)演算法的詳細實現過程

SMO(Sequential minimal optimization)演算法的詳細實現過程

SMO演算法主要是為優化SVM(支援向量機)的求解而產生的,SVM的公式基本上都可以推到如下這步:

m a x α i

= 1 m α i 1 2
i = 1 m j
= 1
m
α i α j y i y j x i T x j max_{\alpha}\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^{T}x_{j}

s . t . i m α i y i = 0 s.t. \sum_{i}^{m}\alpha_{i}y_{i}=0

0 α i C i = 1 , 2 , 3 , . . . , m 0≤\alpha_{i}≤C,i = 1, 2, 3,...,m

其中,C是SVM中懲罰引數(或正則化常數),可令:

φ ( α ) = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j \varphi(\alpha)=\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^{T}x_{j}

SMO的具體步驟:

第一步:為了滿足 i m α i y i = 0 \sum_{i}^{m}\alpha_{i}y_{i}=0 公式,首先要固定兩個變數 α i α j \alpha_{i}和\alpha_{j} ,這裡以 α 1 α 2 \alpha_{1}和\alpha_{2} 為例,其餘的 α i ( i = 3 , 4 , . . . , m ) \alpha_{i}(i=3,4,...,m)都是已知量 ,則約束條件變成:

α 1 y 1 + α 2 y 2 = c = i = 3 m α i y i ( 0 α 1 C 0 α 2 C ) \alpha_{1}y_{1}+\alpha_{2}y_{2}=c=-\sum_{i=3}^{m}\alpha_{i}y_{i},(0≤\alpha_{1}≤C,0≤\alpha_{2}≤C)

兩邊同乘 y 1 y_{1} ,並記 y 1 y 2 = h 0 y_{1}y_{2}=h_{0} 得:

α 1 + h 0 α 2 = y 1 i = 3 m α i y i = α 1 n e w + h 0 α 2 n e w \alpha_{1}+h_{0}\alpha_{2}=-y_{1}\sum_{i=3}^{m}\alpha_{i}y_{i}=\alpha_{1_{new}}+h_{0}\alpha_{2_{new}}

相關推薦

SMOSequential minimal optimization演算法詳細實現過程

SMO演算法主要是為優化SVM(支援向量機)的求解而產生的,SVM的公式基本上都可以推到如下這步: m a

【智慧演算法】粒子群演算法Particle Swarm Optimization詳細解析+入門程式碼例項講解

喜歡的話可以掃碼關注我們的公眾號哦,更多精彩盡在微信公眾號【程式猿聲】 01 演算法起源 粒子群優化演算法(PSO)是一種進化計算技術(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源於對鳥群捕食的行為研究 。該演算法最初是受到飛鳥叢集

深度增強學習PPOProximal Policy Optimization演算法原始碼走讀

OpenAI出品的baselines專案提供了一系列deep reinforcement learning(DRL,深度強化學習或深度增強學習)演算法的實現。現在已經有包括DQN,DDPG,TRPO,A2C,ACER,PPO在內的近十種經典演算法實現,同時它也在

路徑規劃最短路徑演算法C#實現

    ///<summary>/// RoutePlanner 提供圖演算法中常用的路徑規劃功能。     /// 2005.09.06     ///</summary>publicclass RoutePlanner     {         public RoutePlan

Sequential Minimal OptimizationSMO,序列最小優化演算法初探

什麼是SVM SVM是Support Vector Machine(支援向量機)的英文縮寫,是上世紀九十年代興起的一種機器學習演算法,在目前神經網路大行其道的情況下依然保持著生命力。有人說現在是神經網路深度學習的時代了,AI從業者可以不用瞭解像SVM這樣的古董了。姑且不說SVM是否

【ML1】機器學習之EM演算法演算法詳細推導過程

        寫在前面的話:對於EM演算法(Expectation Maximization Algorithm, 最大期望演算法), 大家如果僅僅是為了使用,則熟悉演算法流程即可。此處的演算法推導過程,僅提供給大家進階 之用。對於其應用,

蟻獅演算法Ant Lion Optimization

蟻獅演算法簡單的說就是一個不斷迭代搜尋最優解的過程。 2015年被人提出來的一種仿生優化演算法,Ant Lion Optimizer即蟻獅優化演算法,具有全域性優化、調節引數少、收斂精度高、魯棒性 好的優點,已被應用到SVM、Elman神經網路、GM(1,1)以及螺旋槳頁面曲線引數尋優等場合。

大數據筆記三十一——SparkStreaming詳細介紹

rgs 啟動 gui sele big 虛擬 ring foreach 單詞 Spark Streaming: Spark用於處理流式數據的模塊,類似Storm 核心:DStream(離散流),就是一個RDD=================================

C++裏面的 RVOReturn value optimization

con ide vector tps wikipedia test case class stl TP 在給 uSTL 裏面的 vector 嘗試加入 C++11 特性的時候,發現 move constructor 在 test case 裏並沒有調用,後來發現是因為 RV

Centos6.5全程手動安裝小白級詳細

虛擬機 db2 ado centos6.5 work 安裝 images aec c89 Centos6.5手動環境安裝步驟:備註:虛擬機模擬安裝步驟 網絡:172.16.100.1IP:172.16.100.65軟件:VMware? Workstation 11.0.0

排程演算法之MCTMinimum Completion Time演算法

最小完成時間演算法MCT(Minimum CompletionTime)是以任意的順序將任務對映到具有最早完成時間的主機上,它並不保證任務被指派到執行它最快的主機上,而僅關心如何最小化任務完成時間,因而可能導致任務在資源上的執行時間過長,從而潛在地增加了排程跨度。 public void run

[Network Architecture]DPNDual Path Network演算法詳解(轉)

https://blog.csdn.net/u014380165/article/details/75676216 論文:Dual Path Networks 論文連結:https://arxiv.org/abs/1707.01629 程式碼:https://github.com/cypw/DPN

感知機演算法Perceptron Learning Algorithm和程式碼實現Python

PLA演算法是機器學習中最為基礎的演算法,與SVM和Neural Network有著緊密的關係。                            &n

快速和改進的二維凸包演算法及其在On log h中的實現實現部分

此篇接上一篇部落格http://blog.csdn.net/firstchange/article/details/78588669 實施選擇 陣列與列表 “List”類是一個C#集合,它使用一個數組作為其底層容器。使用“列表”而不是陣列應該有類似的效能。測試證實,

快速和改進的二維凸包演算法及其在On log h中的實現理論部分

在國外某知名網站上瀏覽資訊時發現了一篇非常好的論文,因為是英文的,自己翻譯、整理了一下,如果想看原始的可以去以下連結:https://www.codeproject.com/Articles/1210225/Fast-and-improved-D-Convex-Hull-algorithm-

深度學習之神經網路CNN/RNN/GAN演算法原理+實戰目前最新

第1章 課程介紹 深度學習的導學課程,主要介紹了深度學習的應用範疇、人才需求情況和主要演算法。對課程章節、課程安排、適用人群、前提條件以及學習完成後達到的程度進行了介紹,讓同學們對本課程有基本的認識。 1-1 課程導學 第2章 神經網路入門 本次實戰課程的入門課程。對機器學習和深度學習做了引入

MPPT演算法恆定電壓、擾動觀察、電導增量介紹與實現過程

1、太陽能板的特性曲線 太陽能板也叫光伏電池。是通過光電效應,把光能轉換為電能的裝置。 先介紹太陽能板的特性。太陽能的額定引數是在地面光伏元件標準測試條件(STC)條件下測量得到的。 STC有三個條件:第一、光線通過大氣的實際距離為大氣垂直厚度的1.5倍。第二、

自適應濾波-----LMSLeast Mean Square演算法

自適應濾波的意義所在 自適應濾波器解決非平穩的過程,因為實際訊號的統計特性可能是非平穩的或者是未知的。 自適應濾波器的特點:                                          1.沒有關於待提取資訊的先驗統計知識    

單源最短路徑——迪傑斯特拉Dijkstra演算法 C++實現

求最短路徑之Dijkstra演算法 Dijkstra演算法是用來求單源最短路徑問題,即給定圖G和起點s,通過演算法得到s到達其他每個頂點的最短距離。 基本思想:對圖G(V,E)設定集合S,存放已被訪問的頂點,然後每次從集合V-S中選擇與起點s的最短距離最小的一個頂點(記為u),訪問並加入集合

【智慧駕駛】車道線檢測中的新IPM逆透視變換演算法實驗效果

1、實驗內容 在車道保持LKA功能實現時,需要對車道線進行精準檢測:①、計算曲率半徑,②、保證測距精度。因此需要對相機的透檢視persImg進行IPM逆透視變換,得到俯檢視birdImg,在birdImg中進行車道線特徵檢測、擬合和測距。 基於以下思路,建立了新的IPM模型:對真實世界座