丁寧 賀永會(huì)
摘 要:文章首先對(duì)機(jī)器學(xué)習(xí)進(jìn)行簡(jiǎn)要介紹,然后以支持向量機(jī)為重點(diǎn),分析支持向量機(jī)學(xué)習(xí)的原理及相關(guān)算法,并以支持向量機(jī)對(duì)不同風(fēng)格的歌曲進(jìn)行分類為例,探討支持向量機(jī)機(jī)器學(xué)習(xí)的實(shí)際應(yīng)用,旨在為相關(guān)人員提供參考與借鑒。
關(guān)鍵詞:向量機(jī);機(jī)器學(xué)習(xí);應(yīng)用
支持向量機(jī)(SVM)是一種基于統(tǒng)計(jì)學(xué)習(xí)理論的新型機(jī)器學(xué)習(xí)方法,其能夠?qū)π颖緵Q策具有較好的學(xué)習(xí)推廣性。學(xué)習(xí)是一切智能系統(tǒng)最根本的特征,機(jī)器學(xué)習(xí)是人工智能最具智能特征、最前沿的研究領(lǐng)域之一,研究支持向量機(jī)及其應(yīng)用具有深刻的現(xiàn)實(shí)意義。
1機(jī)器學(xué)習(xí)
在人們對(duì)機(jī)器智能的研究中,希望能夠用機(jī)器(計(jì)算機(jī))來模擬人的推廣能力這種學(xué)習(xí)能力,這就是人們所說的基于數(shù)據(jù)的機(jī)器學(xué)習(xí)問題,或者簡(jiǎn)單地稱作機(jī)器學(xué)習(xí)(MachineLearning)問題。一個(gè)學(xué)習(xí)系統(tǒng)一般應(yīng)該由環(huán)境、學(xué)習(xí)、知識(shí)庫、執(zhí)行價(jià)四個(gè)基本部分組成,如圖1所示。
環(huán)境向系統(tǒng)的學(xué)習(xí)部分提供某些信息;學(xué)習(xí)部分利用這些信息修改知識(shí)庫,以增強(qiáng)系統(tǒng)執(zhí)行部分完成任務(wù)的效能;執(zhí)行部分根據(jù)知識(shí)庫完成任務(wù),同時(shí)把獲得的信息反饋給學(xué)習(xí)部分。在具體應(yīng)用中,環(huán)境、知識(shí)庫和執(zhí)行部分決定了具體的工作內(nèi)容,學(xué)習(xí)部分所需要解決的問題完全由上述三部分確定。
2支持向量機(jī)的機(jī)器學(xué)習(xí)
2.1支持向量機(jī)概述
支持向量機(jī)(SupportVectorMachine,SVM)是CorinnaCortes和Vapnik等于1995年首先提出的,它在解決小樣本、非線性及高維模式識(shí)別中表現(xiàn)出許多特有的優(yōu)勢(shì),并能夠推廣應(yīng)用到函數(shù)擬合等其他機(jī)器學(xué)習(xí)問題中。
在機(jī)器學(xué)習(xí)中,支持向量機(jī)(SVM,還支持矢量網(wǎng)絡(luò))是與相關(guān)的學(xué)習(xí)算法有關(guān)的監(jiān)督學(xué)習(xí)模型,可以分析數(shù)據(jù),識(shí)別模式,用于分類和回歸分析。
簡(jiǎn)單點(diǎn)講,SVM就是個(gè)分類器,它用于回歸的時(shí)候稱為SVR(SupportVectorRegression),SVM和SVR本質(zhì)上都一樣。SVM分類如圖2所示。
圖2中,邊界上的點(diǎn)就是支持向量,這些點(diǎn)很關(guān)鍵,這也是“支持向量機(jī)”命名的由來。
SVM的目的是尋找到一個(gè)超平面使樣本分成兩類,并且間隔最大。而求得的w就代表著人們需要尋找的超平面的系數(shù)。
用數(shù)學(xué)語言描述:
這就是SVM的基本型。
2.2支持向量機(jī)相關(guān)算法
一,SMO。SMO(SequentialMinimalOptimization),針對(duì)SVM對(duì)偶問題本身的特性研究出的算法,能有效地提高計(jì)算的效率。SMO的思想也很簡(jiǎn)單:固定欲求的參數(shù)之外的所有參數(shù),然后求出欲求的參數(shù)。
例如,以下是最終求得的分類函數(shù),也就是SVM的目標(biāo):
SMO算法每次迭代只選出兩個(gè)分量ai和aj進(jìn)行調(diào)整,其它分量則保持固定不變,在得到解ai和aj之后,再用ai和aj改進(jìn)其它分量。
固定其他參數(shù)后,僅優(yōu)化兩個(gè)參數(shù),比起之前優(yōu)化多個(gè)參數(shù)的情況,確實(shí)高效了。然而,與通常的分解算法比較,它可能需要更多的迭代次數(shù)。不過每次迭代的計(jì)算量比較小,所以該算法表現(xiàn)出較好的快速收斂性,且不需要存儲(chǔ)核矩陣,也沒有矩陣運(yùn)算。
二次規(guī)劃。二次規(guī)劃的問題主要用于求最優(yōu)化的問題,從SVM的求解公式也很容易看出來,的確要求最優(yōu)解。
在限制條件為Ax≦b的條件下,找一個(gè)n維的向量x,使得f(x)=(1/2)xTQx+cTx為最小。
其中,c為n維的向量,Q為n×n維的對(duì)稱矩陣,A為m×n維的矩陣,b為m維的向量。
其中,根據(jù)優(yōu)化理論,如果要到達(dá)最優(yōu)的話,就要符合KKT條件(Karush-Kuhn-Tucker)。
三,KKT。KKT是在滿足一些有規(guī)則的條件下,一個(gè)非線性規(guī)則問題能有最優(yōu)解的一個(gè)充分必要條件。也就是說,只要約束條件按照這個(gè)KKT給出的規(guī)則列出,然后符合KKT條件的,就可以有最優(yōu)解,這是一個(gè)廣義化拉格朗日乘數(shù)的成果。
把所有的不等式約束、等式約束和目標(biāo)函數(shù)全部寫為一個(gè)式子:
L(a,b,x)=f(x)+a*g(x)+b*h(x)
KKT條件是說最優(yōu)值必須滿足以下三個(gè)條件L(a,b,x)對(duì)x求導(dǎo)為零、h(x)=0、a*g(x)=0。
3支持向量機(jī)機(jī)器學(xué)習(xí)的實(shí)際應(yīng)用
文章利用Pythonsklearn庫中的SVM模塊對(duì)不同風(fēng)格的歌曲進(jìn)行分類,探析支持向量機(jī)的實(shí)際應(yīng)用。
首先導(dǎo)入后面需要用到的庫和函數(shù),對(duì)歌詞進(jìn)行預(yù)處理,使用jieba庫進(jìn)行分詞,并將類別標(biāo)簽保存在label列表。
構(gòu)建SVM訓(xùn)練模型,選擇參數(shù)gamma=0.001,C為100,核函數(shù)默認(rèn)為rbf核函數(shù),將訓(xùn)練集樣本輸入模型進(jìn)行擬合后,再使用該模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),通過比較預(yù)測(cè)結(jié)果和實(shí)際結(jié)果,發(fā)現(xiàn)精確率、召回率和f1-score的值都比較低。接下來改變核函數(shù),使用線性核linear試試,得到的模型的精確率為0.875,召回率為0.955,f1-score為0.913,如圖3所示。
由圖3可知,使用線性核函數(shù)后模型能夠得到較高的精度。
結(jié)語
總而言之,支持向量機(jī)(SVM)這種基于統(tǒng)計(jì)學(xué)習(xí)理論的新型機(jī)器學(xué)習(xí)方法,能夠深度挖掘隱藏信息,解決了神經(jīng)網(wǎng)絡(luò)等無法避免的局部極值問題,因此,相關(guān)人員應(yīng)加強(qiáng)對(duì)支持向量機(jī)的研究,擴(kuò)大支持向量機(jī)的應(yīng)用范圍,促使其更好地為社會(huì)服務(wù)。
參考文獻(xiàn):
[1]余明華,馮翔,祝智庭.人工智能視域下機(jī)器學(xué)習(xí)的教育應(yīng)用與創(chuàng)新探索[J].遠(yuǎn)程教育雜志,2017,35(03):11-21.
基金項(xiàng)目:山東英才學(xué)院科研項(xiàng)目17YCZDXS04;山東省高等學(xué)校科研計(jì)劃項(xiàng)目J16LN55