前前後後,看了svm也有幾次了。感覺最近才一窺門徑。現在梳理一下學習svm的學習資料和學習過程。
我最開始是在網上找了一些人寫的長篇大論的文章來學習svm的,現在看來,把自己的學習筆記給別人當入門材料是一種極不負責任的行為。
看過這本《統計學習方法》,才發現svm其實並沒有想象中那麼難以理解。當然,第一遍看完svm的章節,仍然有很多不理解的地方。這本書的好處是講的清晰明了,但同時也要求一定的理論基礎(建議先讀前兩個小節)。讀完之後,並不能形成乙個比較直觀的感覺。然後結合下面的例項,就可以有乙個比較直觀的概念了。
svm-tutorial.com 這個**裡面有三篇結合例項的講解,對理解svm的基礎、原理非常有幫助。但是,我在看這幾篇文章的時候,作者還沒有寫到如何求解目標函式及核函式的部分。這部分還要結合andrew ng的機器學習公開課來看。
svm - understanding the math - part 1 - the margin講解了最優超平面(hyperplane)與間隔(margin)之間的關係。
svm - understanding the math - part 2講解了向量間計算距離的基礎知識,在這裡算是複習了一下。然後,結合第三篇部落格看,就很輕鬆了。
svm - understanding the math : the optimal hyperplane這篇文章推導出了用超平面的法向量來表示間隔最優化的目標函式,同時也對限制條件做了一定講解。我在讀這篇文章的時候,結合李航的《統計學習方法》裡面講解svm的知識,受益匪淺。
關於核函式這部分,《統計學習方法》裡面的理論知識比較充足。但是,屬於入門階段的人對這個門很難有乙個直觀的理解。而andrew的公開課在這個地方的講解非常好。
kernels i非常直觀地講解了核函式的作用和效果。理解一下landmarks和相似度函式,就基本上可以理解svm的核函式的機理。看完這節公開課,再回到《統計學習方法》的第三小節,就能夠比較好地理解:為什麼在原特徵空間線性不可分的樣本,通過核函式對映到新的特徵空間就線性可分了。這其中,核函式的作用居功至偉。
通過andrew ng的公開課,我對核函式的直觀理解如下:
而後,通過對新的特徵空間的損失函式的優化,得到新特徵空間的線性分類超平面。而這個過程中,核函式是不變的。
就我個人而言,如果使用了哪個演算法(尤其是需要調參),而我自己又不是很了解其實現機理,那麼用起來會非常彆扭。通過一段時間的學習,對svm的實現原理也算是有了乙個比較直觀的認識,還是蠻開心的。
我在上面總結的資料裡面並沒有涉及目標函式的求解方法,如果以後用到再回來看(因為現在用來到,怕是看到,也會很快就忘了)。
SVM學習資料
svm support vectormachine 被認為是 off the shelf 最好的監督機器學習演算法之一,甚至很多人認為可以把 之一 去掉。svm有著天然的 intuition 大量的數學推導和優雅的解形式 有了大量的數學推導,自然就容易發 啦 實際上 svm在工業界也有著廣泛的應用如...
過程和資料的演化
讀了孟巖老師的理解矩陣 之後,深有感觸。矩陣是線性空間裡的變換的描述。矩陣本身是一種描述如何變換狀態的東西,而變換狀態的主體也是矩陣。並且狀態變換本身也是可以作為變換的主體繼續演化。這種思想和sicp這本書描述的頗為神似。在scheme這種語言中,資料和過程之間的界限非常模糊,過程可以作為資料來對待...
學習SVM過程思考過的問題
1 在低維空間和高維空間中遇到線性可分和不可分的問題應該如何解決?在低維空間中的線性可分問題,可以直接用logistic回歸解,當然也可以用svm 沒有用到核函式或者理解為用了線性核 在低維空間中的線性不可分問題,用svm解,利用核函式將原 低維 空間對映到高維空間,但計算任然在原空間進行,降低了複...