其他機器學習系列文章見於專題:機器學習進階之路——學習筆記整理,歡迎大家關注。
1. 支持向量機
支持向量機主要內容包含:線性可分支持向量機與硬間隔最大化、線性支持向量機與軟間隔最大化、非線性支持向量機與核函數、序列最小最優化算法、支持向量迴歸。劉建平老師的SVM系列寫的很清晰易懂,大家可以參考。這裏只把在SVM學習過程中的一些要注意的點記錄下來。
(1)表示點距離超平面的相對距離,而的符號與類標記的符號是否一致能夠表示分類是否正確。所以可用表示分類的正確性和確信度,這就是函數間隔的意義。
(2)由於成倍增加和,就會使函數間隔也成倍增加,因此對分離超平面的法向量規範化(),就得到了幾何間隔。
(3)根據拉格朗日對偶性,原始問題可以表示爲廣義極小極大問題:
對應的對偶問題可以表示爲極大極小問題:
可以先求優化函數對,的極小值,再求對的極大,即對偶問題。
這個過程與《機器學習——周志華》第六章中,將約束函數與原目標函數聯立,從而求出使原函數取得極值的各個變量的解,代入新函數,並將極小問題轉化爲極大問題,得到的對偶問題是一致的。
(4)是通過求偏導得到的,而是通過KKT條件中,任意支持向量都滿足得到的。
2. 序列最小最大算法SMO
由於《統計學習方法》中對序列最小最大算法(Sequential Minimal Optimization,SMO)描述太複雜,這一節根據《機器學習》對SMO進行簡要描述。
SMO的基本思路是先固定之外的所有參數,然後求上的極值。由於存在約束,若固定之外的所有變量,則可以有其他變量導出。
SMO每次選擇兩個變量和,並固定其他參數,這樣,在參數初始化後,SMO不斷執行如下兩個步驟直至收斂:
(1)選取一對需要更新的變量和;
(2)固定和以外的參數,獲得更新後的和。
SMO先選取違背KKT條件程度最大的變量,然後選取一個使目標函數值增長最快的變量。但由於比較各變量所對應的目標函數值增幅的複雜度過高,因此SMO採用了一個啓發式:使選取的兩邊兩變量所對應樣本之間的間隔最大。
SMO算法之所以高效,是因爲固定其他參數後,僅優化兩個參數的過程能做到十分高效。
參考文獻:
- 《統計學習方法》第七章支持向量機——李航
- 《機器學習》第六章支持向量機——周志華
- 支持向量機原理(一) 線性支持向量機
- 支持向量機原理(二) 線性支持向量機的軟間隔最大化模型
- 支持向量機原理(三)線性不可分支持向量機與核函數
- 支持向量機原理(五)線性支持迴歸