最細緻的SVM算法核心思想解析

2021-01-11 黃杰ed

決策邊界

機器學習中監督學習的任務就是如何找出決策邊界。

在訓練集中,有正負樣本,任何監督學習算法就是為了找出區分正負樣本的決策邊界。如下圖,決策邊界是平行於坐標軸y,是決策樹學出來的決策邊界。通過新的點在決策邊界的不同區域,將它預測為正或負類。

不同的算法,就是為了確定不同的決策邊界長什麼樣。

再比如神經網絡(非線性模型)的決策邊界:

所有監督學習算法都是為了確定一個邊界。

SVM 核心思想

Key Idea1

第一個key idea跟確定決策邊界相關,如下圖

有1、2、3,三條決策邊界,哪一條決策邊界會好點呢?

我們先看1,由於1決策邊界過於靠近負樣本,一旦出現一點擾動(噪音)就很容易導致模型將負樣本預測為正樣本,即泛化性能不強。

再看2,對比3,2的抗擾動能力有所不足。

所以,綜上,3作為決策邊界更為恰當。

SVM的目標就是找到區別正負樣本的邊界,使得正負樣本到達這條邊界的範圍最大(模型泛化能力最好)。

那麼我們如何以數學形式,計算這齣這條最寬的路呢?

上圖中橙色的線line是我們想要的那條線,假設這條線的一個法向量為:

已知,直線上任意點x都垂直於法線,有:

假設新來一樣本u,將樣本u的向量投影到法向量w所在的方向,看看u在線的左邊還是右邊,則決策公式:

也可以理解為:

w*u即向量u在w方向上的投影距離。

c可以視為原點到決策邊界的距離,如果小於c,則為負樣本,大於c則為正樣本。

上面的w和b其實就是機器學習算法要學習得出的參數。根據輸入的數據坐標,學出來w和b時,只需要用新點與向量w做點乘(投影距離,定義),再判斷距離與c的大小,就可確定數據是正樣本還是負樣本。

至此,就確定了我們優化的目標——最大邊界範圍。

Key Idea2

看到下圖,根據key idea1,我們知道了我們優化的目標就是找到最寬的那條「路」,「站」在路邊的樣本,我們稱其為支持向量。

對於這些站在街邊的向量,我們對其提出要求,在訓練集中,處於街邊位置的樣本,有:

要注意,上面的向量x都屬於訓練集。

對於那些不處於街邊的向量,如果是正樣本,則有:

數值是大於1,越大越好。

對於負樣本:

數值是小於-1,越小越好。

這就是我們對「街寬」的要求,通過對街寬進行normalize,歸一化後,每一半的街道寬是1。

在訓練集中,不允許有點在街道的範圍內,通過這條路把訓練集中的數據分開。

我們也可以將key idea2的兩個式子給簡化成一個式子,通過加入輔助變量:

通過以上變化,就可以將key idea2的式子簡化為一個表達式。

相對應的,對於支持向量的判斷的表達式也可以被簡化為:

最後,要注意,我們的key idea2 是針對訓練集的要求,key idea1是對任何的樣本點。

Key Idea3

接著,再回顧一下我們key idea2的目標——找到最寬的那條路。

那麼我們如何求「路」的寬呢?

從上圖可知,正負樣本的支持向量之差得出的向量在法向量w方向上的投影就是我們所要求的「路」的寬度。

即:

這裡做個簡單推導:

結合上式1-4與1-3可得:

可推得:

同理可得:

接著結合result1和result2有:

根據式子1-5,可以發現,這條街道得寬度和訓練集本身沒有任何關係,只要知道了這條街的法向量,那麼這個街道的寬度就是以這條「街道」法向量的模為分母,2為分子的分式的值。

我們可以發現,要使得這條街越寬,則法向量的模要儘可能小。

即:

綜上,我們要找到一個法向量w,使得其同時 滿足式子1-3和1-6。

Key Idea4

拉格朗日求解求導

拉格朗日能夠把帶限制條件的函數極值算法給變成一個不帶條件的函數極值算法。

可知上面式子1-6求極值,需要滿足:

通過拉格朗日方法,將帶條件的求函數極值轉化為不帶條件的函數極值求解問題,減少了計算的限制條件。

由此可得拉格朗日函數:

根據拉格朗日乘數法,式1-7中,未知數為w、b,對其求偏導使其等於0,有:

由上式可以發現,向量w其實是訓練集中xi的線性組合,因為yi要麼+1,要麼-1,alpha_i大部分是0。

可以看作支持向量的線性組合。

帶入計算可得:(ij符號意義相同,不必太過在意)

現在的目的就是,找到一些 alpha_i 的值,使得L最大。

即式子裡的alpha不為0,即取決於xi和xj的點乘。

即訓練集中,不需要告訴x是什麼,只需要告訴所有訓練集中兩兩x點乘的結果。(通向核方法的關鍵發現)

Key Idea5

由 key idea1有:

結合key idea4中:

可得:

在上式中,大部分的alphai都為0,只有少部分的alphai不為0,這些不為0的alpha_i對應的xi就是支持向量。

核方法推導

上面的決策邊界都是線性的,但是大部分的分類問題都是非線性的,如下圖:

我們很難找到一條直線,將正負樣本分開。這個時候,如果有一個變換(phi),將二維坐標系變換成另一個坐標系,如下圖:

將每一個數做非線性變化,在變換後的空間中做一個線性的分類,就能夠順利的將其分開。

也就是說,我們要找到一個非線性變換,使得xi,在變換後的空間裡線性可分。

但這並不是核方法。如果我們要用非線性變化的方式,我們不需要對每一個點做非線性變化。在 Key Idea4中,我們發現要求函數極值,我們只需要對訓練的樣本向量兩兩求點乘,我們只需要將兩兩之間的變換之後的點乘,不需要告訴這個變換是什麼。

變換之後的點乘,仍然是xi,xj的函數,即:

即只需要定義出,它在某一個空間中,進行了某種變換後,在這個空間裡的兩兩之間點乘的結果,這個函數就叫kernel(核函數)。

舉個例子,假設非線性變化後的點乘結果:

有了核函數後,在所有的預測過程中,我們只需要將兩兩點乘換為k(核函數)的值即可。

為什麼使用kernel方法會比找變換的函數方法更高效呢?

假設我們用的是RBF核函數,非線性變換會映射到無窮維高的,這個是無法描述的,但是我們可以求在這個無窮維空間裡兩個向量點的點乘,所以核方法更為優秀。

關鍵就是讓優化目標跟決策函數具備一種非線性變換的能力。

如何求alpha

coordinate ascent

這裡只簡單的講個大概,大家能理解就理解,不理解也沒關係,因為前面已經講完了重點——SVM的核心思想了。

coordinate ascent是smo算法的一種基礎思想。

在上式中,只有alpha是變量,我們將式子抽象為求n個變量aplha的最大點:

多個變量的函數求極值比較難做,但是單個變量求極值就比較簡單。那麼,我們如何用單個變量求極值的方法來做多個變量求極值呢?

用上面的方法,依次拿一個alpha當變量,求式子1-8的alpha值仍然無法求出alpha的值,還需要對上述方法進行一定的改進,需要一次拿兩個變量來求。

之前key idea4中有涉及到,單單一個alpha是可以被其他alpha線性表達的,所以需要有兩個alpha變量。

好了,今天分享的內容就到這裡,希望對大家有所關注!

如果大家覺得文有所值,幫忙轉發收藏+關注哦~

相關焦點

  • svm是什麼?如何找到正確的超平面
    在機器學習中,支持向量機是在分類與回歸分析中分析數據的監督式學習模型與相關的學習算法。給定一組訓練實例,每個訓練實例被標記為屬於兩個類別中的一個或另一個,SVM訓練算法創建一個將新的實例分配給兩個類別之一的模型,使其成為非概率二元線性分類器。
  • matlab代寫hmm算法程序(隱馬爾科夫模型)需要注意什麼?
    目前已有svm/rf算法,預測準確率大概為85%左右。我要做的就是把svm/rf算法的輸出,作為hmm算法的輸入,然後來預測行為。1.Svm/rf算法的輸出也是預測意圖,我想通過hmm算法結合svm/rf的輸出得到更好的預測結果。
  • 人臉識別核心算法及技術解析
    1、在檢測到人臉並定位面部關鍵特徵點之後,主要的人臉區域就可以被裁剪出來,經過預處理之後,饋入後端的識別算法。識別算法要完成人臉特徵的提取,並與庫存的已知人臉進行比對,完成最終的分類。最佳結果的對比情況  · 基於AdaBoost的Gabor特徵選擇及判別分析方法  問題:  人臉描述是人臉識別的核心問題之一
  • 如何學習SVM(支持向量機)以及改進實現SVM算法程序 - 雷鋒網
    假設你已經讀懂了 SVM 的原理,並了解公式怎麼推導出來的,比如到這裡:SVM 的問題就變成:求解一系列滿足約束的 alpha 值,使得上面那個函數可以取到最小值。方法有很多,我們先找個起點,比如 Platt 的 SMO算法,它後面有偽代碼描述怎麼快速求解 SVM 的各個係數。
  • 基於SVM和sigmoid函數的字符識別自適應學習算法
    根據這種思想,本文提出了一種基於SVM分類算法和sigmoid函數的自適應學習算法。SVM分類算法是一種判別決策方法,在很多識別問題中都獲得了很好的實驗結果,SVM分類算法的輸出為距離,參數化的sigmoid函數擬合SVM輸出距離的類別後驗概率分布,使SVM的距離輸出變換為概率輸出。
  • 一個簡單的案例帶你了解支持向量機算法(Python代碼)
    介紹掌握機器學習算法並不是一個不可能完成的事情。大多數的初學者都是從學習回歸開始的。是因為回歸易於學習和使用,但這能夠解決我們全部的問題嗎?當然不行!因為,你要學習的機器學習算法不僅僅只有回歸!把機器學習算法想像成一個裝有斧頭,劍,刀,弓箭,匕首等等武器的軍械庫。你有各種各樣的工具,但你應該學會在正確的時間和場合使用它們。
  • 點寬專欄-SVM帶你玩轉期貨品種
    策略概要SVM支持向量機SVM學習問題可以表示為凸優化問題,因此可以利用已知的有效算法發現目標函數的全局最小值。可以通過拉格朗日對偶性變換到對偶變量的優化問題,即線性可分條件下支持向量機的對偶算法,這樣做的優點是:一者對偶問題往往容易求解,二者可以自然的引入核函數,進而推廣到非線性分類問題。通過拉格朗日對偶性變換得到的目標函數為(若x_i是支持向量的話,紅色部分為0):
  • 17個機器學習的常用算法!
    只能處理兩分類問題(在此基礎上衍生出來的softmax可以用於多分類),且必須線性可分; 線性回歸:線性回歸才是真正用於回歸的,而不像logistic回歸是用於分類,其基本思想是用梯度下降法對最小二乘法形式的誤差函數進行優化,當然也可以用normal equation直接求得參數的解
  • 美科學家研究一種新算法來分析——解析夢境
    據《科學》網站近日報導,美國諾基亞貝爾實驗室的科學家建立了一種新算法來分析人的夢境,並通過機器自動分析了來自「夢境銀行」(DreamBank.net)網站的24000份數據,證實了這種算法的有效性。該成果如被應用於心理學領域,可以通過定性、定量地分析夢境中的角色、交互關係和情感,來幫助心理學家快速判斷做夢者的潛在壓力源和心理健康問題。
  • 利用LS-SVM回歸算法辨識模型參數實現傳感器非線性校正的研究
    打開APP 利用LS-SVM回歸算法辨識模型參數實現傳感器非線性校正的研究 吳德會 發表於 2020-04-26 09:32:03
  • 洞察商業思想演化:追溯進化論與機械論的本質區別與核心啟示
    近10年以來,生物學與進化論的思想逐漸被引入企業管理,也從矽谷逐步傳入中國。普遍認為與進化論相對應的思想,是牛頓力學時代以來機械論的思想。究竟進化論與機械論意味著什麼?它們對企業創新與商業思想有什麼指導意義?讓我們對這個主題剖析透徹。一、機械論的核心思想機械論的中心思想,就是找到嚴格的因果規律。找到規律後,如果出現符合這個因的情況,那麼就確定無疑地得出果。
  • 算法原理:大數據處理的分治思想!
    實際上,萬變不離其宗,它的本質就是分治算法思想,分治算法。如何理解分治算法?為什麼說 MapRedue 的本質就是分治算法呢?分治是一種被廣泛應用的有效方法,它的基本思想是把最初的問題分解成若干子問題,然後,在逐個解決各個子問題的基礎上得到原始問題的解。
  • 圖的最短路徑算法-Floyd算法-弗洛伊德算法
    Floyd算法又稱為插點法,是一種利用動態規劃的思想尋找給定的加權圖中多源點之間最短路徑的算法 在計算機科學中,Floyd-Warshall算法是一種在具有正或負邊緣權重(但沒有負周期)的加權圖中找到最短路徑的算法。算法的單個執行將找到所有頂點對之間的最短路徑的長度(加權)。
  • 推薦算法系統/人臉識別/深度學習對話機器人高級實戰課
    二、課程簡介把目前網際網路最熱門、最前沿的項目實戰匯聚一堂,通過真實的項目實戰課程,讓你快速成為項目總監或負責人!!!推薦系統是一個完整的系統工程,從工程上來講是由多個子系統有機的組合,比如基於Hadoop數據倉庫的推薦集市、ETL數據處理子系統、離線算法、準實時算法、多策略融合算法、緩存處理、搜尋引擎部分、二次重排序算法、在線web引擎服務、AB測試效果評估、推薦位管理平臺等,每個子系統都扮演著非常重要的角色,當然大家肯定會說算法部分是核心,這個說的沒錯,的確。
  • 量子通信技術核心——量子計算算法
    Shor算法通過量子傅立葉變換,有效地在多項式時間內解決大數質因子分解問題;以Grover算法為代表的量子搜索算法,極大地提高搜索效率;量子通信技術利用量子的糾纏態實現信息傳遞;量子並行計算可以彌補智能算法中的某些不足,量子智能算法將有很大的發展空間。
  • 卡爾曼濾波算法解析(一)
    在工程領域,只要涉及到信號處理問題,都繞不開一個人,那就是卡爾曼,雖然卡爾曼提出的估計理論已經過去八九十年之久,但是在如今的資訊時代,卡爾曼濾波依舊是機器人導航中最為常見的一種算法最直觀的方法是取平均值,但如果你知道其中一個傳感器要貴很多,測量得到的值也要更加準確,那取平均是不是對貴的那個傳感器不公平?有沒有更好的辦法?當然有了,那就是不同權重的平均,也就是加權平均。如何進行加權?我們還是假設兩個傳感器的誤差都符合正態分布,而且你通過測量知道這兩個正態分布的方差,利用這兩個方差值,我們可以得到一個「最優」的權重分配。
  • SLAM算法解析:抓住視覺SLAM難點,了解技術發展大趨勢
    由於本身包含許多步驟,每一個步驟均可以使用不同算法實現,SLAM 技術也是機器人和計算機視覺領域的熱門研究方向。SLAM 技術大解析SLAM 的英文全程是 Simultaneous Localization and Mapping,中文稱作「同時定位與地圖創建」。
  • 許紀霖作品集合,小編力薦《現代中國思想的核心觀念》
    華東師範大學紫江學者,教育部人文社會科學重點研究基地·華東師大中國現代思想文化研究所常務副所長,華東師範大學歷史系中國近代思想史專業博士生導師,華東師範大學思勉人文高等研究院常務副院長,校學術委員會委員。擔任上海歷史學會副會長、秘書長、中國史學會理事,上海哲學社會科學聯合會委員,香港中文大學《二十一世紀》雜誌編委。 近年來主要從事二十世紀的中國思想史和知識分子的研究以及上海的城市文化研究。
  • 儒家經典思想提煉社會主義核心價值觀
    一、 儒家思想產生的歷史及背景        儒家思想是先秦諸子百家學說之一,由孔子於前5世紀創立,是中國影響最大的流派,也是中國古代的主流思想意識形態。先秦時儒家是最有影響力的學派之一,和墨家並稱顯學。
  • 唯物辯證法:其思想核心是什麼,其思想源頭在哪裡
    唯物辯證法的核心思想是什麼?列寧同志認為,對立統一是唯物辯證法的核心思想。他不僅實踐了馬克思主義理論,而且還推動馬克思主義發展,尤其是對唯物辯證法的完善與拓展,做出了重大歷史貢獻。一戰期間,列寧曾深入研究過黑格爾等人哲學著作,寫出《黑格爾〈邏輯學〉一書摘要》、《黑格爾辯證法(邏輯學)的綱要》等重要文章,這些內容後被彙編成書,名叫《哲學筆記》。