支援向量機學習(一)

2021-08-19 06:22:04 字數 1258 閱讀 5825

好像現在寫這個有點晚了,大家都用的少了,現在都在用卷積神經網路來進行模式識別。但是了解下內部的原理還是很好的,畢竟知識都是互通的,只有懂得多了才能在原有的基礎上進行創新,站在巨人的肩膀才能看的遠,我好像又在灌雞湯了,言歸正傳,快跑題了,哈哈

先說支援向量機是用來幹什麼的,簡單點就是用來分類的乙個演算法,其實就是乙個分類方法,一般分為線性可分,非線性可分,線性可分就是幾類資料可以用線性的方法進行分類,用幾條直線就能把資料分開。非線性的就稍微複雜一點了,資料在原有的維數空間就變得交錯混亂,但是有一位大牛說過一句話(具體是誰我忘記了),不管多複雜的資料在進行一定的變換域之後,所謂的變換域就是公升維或者降維的操作,通俗點說就是經過乙個函式去給原有資料進行計算變換,這樣原來的兩維資料(先按二維的說)就會加入乙個z軸,這樣原有的輸出值就會變化,這樣就會使原本看起來很複雜的資料看起來有條理,用線性分割就能完成資料分類的任務,同樣還有資料降維,在三維空間中顯示的雜亂無章,只要你把資料投影到特定的平面上,你就會驚奇的發現,原來兩類資料之間的差距這麼大啊,這麼明顯,這就叫山重水複疑無路,柳暗花明又一村。

有一句詩我很想說,橫看成嶺側成峰,遠近高低各不同。你看古人都這麼聰明,都能從簡單的東西中得到這麼有哲理的東西,一件事物你從不同的角度去看,你會發現不同的規律。專業點就是縮小類內間距,加大類外間距,這不就是典型的分類思想嗎?當然如果這個你不懂的話,沒關係,人話就是把同類的資料近可能的放在一起,把不相干的特徵近可能的顯示出來。這不就驗證了剛那句是橫看成嶺側成峰,正面看的時候都是嶺都差不多,側著看的時候就會發現遠近高低各不同。這就是一種資料的變換域轉換,對山峰進行一種對映投影,將二維的資料變成一維的,將差距明顯的顯現出來了。

說了這麼多廢話,不是真的廢話啊,是幫助你理解的,來點實際的吧。支援向量機到底什麼是個支援向量呢,我個人的理解就是資料分類之間的類外間距,比如在兩類資料的情況下,你中間用來分類的直線,就需要近可能的理兩類樣本的間距最大,如果你離一類樣本的間距過於近的話,那你這個分類器的抗干擾性就會變差,有一點干擾分類器就不能很好的對資料進行分類。當分類的直線離兩類樣本距離近可能遠的情況下,分類器的抗干擾性就會比較好。

下面就介紹下這直線怎麼求,先說比較簡單的二類劃分,簡單的會了,難的還難嗎?是不是。最粗糙的求法就是把兩類的樣本資料分別求均值,然後兩點連成直線,取中值平分線就可以了,當然這是一種很不嚴謹的做法,只有小學生才會這麼做,哈哈,又在黑小學生了。嚴謹點說求這條直線就是乙個求函式最大值的問題,你先假設這條直線的方程式y=kx+b;然後直線就有了,這時你就能求出各個樣本點,到達直線的距離,只要讓兩類樣本點距離直線的距離都取到最大,這時你得到的直線就是想要的線性分類直線方程。今天就先寫這麼多了,有時間再繼續分析公升維和降維的問題。

支援向量機(一)

本篇是學習svm的初學講義,希望能夠對大家有所幫助。svm涉及到很多拉格朗日對偶等最優化知識,強烈推薦大家學習 最優化計算方法 不然理解svm會遇到很多困難。學習之前強烈推薦先玩一玩林智仁的svm toy.exe,對理解svm很有幫助,鏈結在 好了,接下來我們開始svm的學習。在本文中,會盡量避免一...

支援向量機 一)

最近在看史丹福大學的機器學習的公開課,學習了支援向量機,再結合網上各位大神的學習經驗總結了自己的一些關於支援向量機知識。一 什麼是支援向量機 svm 1 支援向量機 support vector machine,常簡稱為svm 是一種監督式學習的方法,可廣泛地應用於統計分類以及回歸分析。支援向量機屬...

支援向量機(一)

支援向量機 svm 有嚴格的數學基礎和推導理論的模式識別方法,是針對小樣本的的統計學理論,基於結構風險最小化原則,演算法在優化過程中具有全域性最優解,泛化能力也比較突出,是一套優秀的機器學習技術。機器學習是乙個不斷學習發展加深的過程,正如乙個讀書人學習svm的時候,他看書的境界分為三層,如先讀資料探...