26支持向量機瑞客論壇_第1頁
26支持向量機瑞客論壇_第2頁
26支持向量機瑞客論壇_第3頁
26支持向量機瑞客論壇_第4頁
26支持向量機瑞客論壇_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、機器學(xué)習(xí)支持機復(fù)旦大學(xué)博士wdzhao支持機(Support Vector Machine,SVM)屬于有監(jiān)督學(xué)習(xí)模型,主要用于解決數(shù)據(jù)解為多個二元問題。通常SVM用于二元問題,對于多元可將其分、文本分問題,再進行,主要應(yīng)用場景有圖像類、面部識別和郵件檢測等領(lǐng)域。本章共劃分為兩個小節(jié),分別的應(yīng)用過程。支持機模型的基礎(chǔ)以及支持機 章節(jié) 章節(jié)結(jié)構(gòu) 支持機模型核函數(shù)模型原理分析支持機應(yīng)用基于SVM進行基于支持機和主成分分析的人臉識別一個例子:青光眼圖中“+”表示開角型青光眼樣本點,“”表示閉角型青光眼型樣本點。樣本數(shù)據(jù)相互交叉較多,不易進行線性可分。 支持機模型支持空間機在 到維數(shù)或無限中構(gòu)造超平面

2、或超平面集合,將原有限維的空間中,在該空間中進行分離可能會更容易。它可以同時最小化經(jīng)驗誤差和最大化集合邊緣區(qū),因此它也被稱為最大間隔器。直觀來說,邊界距離最近的訓(xùn)練數(shù)據(jù)點越遠越好,因為這樣可以縮小器的泛化誤差。低維不可分問題未必不可分以一個二元問題為例講解模型原理。首先假設(shè)有兩類數(shù)據(jù),如圖需要找出一條邊界來將兩類數(shù)據(jù)分隔開來。模型基本思想下圖中列出一些可行的分隔方式。在當(dāng)前的數(shù)據(jù)集的條件下,三種分隔方式都是可行的,我們該如何做選擇?模型基本思想說來,需要選擇的是具有較強能力的直線,有較的結(jié)果和較強的抗噪能力,比如在數(shù)據(jù)集擴展之后如下圖所示。在這三種分隔方式中,b的分隔效果更好。模型基本思想找到

3、最優(yōu)數(shù)據(jù)的分界線,使得對樣本數(shù)據(jù)的效果更就是要盡可能地遠離兩類數(shù)據(jù)點,即數(shù)據(jù)集的邊緣點到分界線的距離d最大,這里虛線穿過的邊緣點稱作支持,間隔為2d。如下圖所示。模型基本思想支持機原理SVM是從線性可分情況下的最優(yōu)面發(fā)展而來的。超平面:(w.x)+b=0 函數(shù):yi = sgn(wxi + b)yi Î-1,1 最大間隔問題:在間隔固定為1時,尋求最小的w 支持機原理Ø 容易看出,最優(yōu)化目標(biāo)就是最大化幾何間隔,并且注意到幾何間隔與w 反比,因此只需尋找最小的w ,即Ø 對于這個目標(biāo)函數(shù),可以用一個等價的目標(biāo)函數(shù)來替代:支持機原理Ø 為使對所有樣本正確,要

4、求滿足如下約束:支持機原理2Ø優(yōu)化問題:mins.t.w12yi (wxi ) + b -1 ³ 0(i = 1, 2,., n)Ø為解決這個約束問題的最優(yōu)解,引入Lagrange函數(shù):式中i>=0為Lagrange乘子。為求函數(shù)的最小值,分別對w、b、 i求偏微:支持機原理Ø分別對w、b、 求偏微:可以將上述求最優(yōu)平面的問題轉(zhuǎn)化為對偶問題:支持機原理支持機原理Ø這是一個二次函數(shù)尋優(yōu)的問題,:唯一的解。若a*為最優(yōu)解式中束條件:為不為零的樣本,即支持。是閾值,可由約得到最優(yōu)函數(shù)為支持空間機通過線性變換A(x)將輸入空間X到特征空間Y,如果

5、低維函數(shù)K,x,yX,使得K(x,y)=A(x)·A(y),則稱K(x,y)為核函數(shù)。核函數(shù)可以與不同的算法相結(jié)合,形成多種不同的基于核函數(shù)的的核函數(shù)有:,常用線性核函數(shù)多項式核函數(shù)徑向基核函數(shù)Sigmoid核核函數(shù)線性核函數(shù)(Linear Kernel)是最簡單的核函數(shù),主要用于線性可分的情況, 表達式如下:K(x,y) = x·y+c其中c是可選的常數(shù)。線性核函數(shù)是原始輸入空間的內(nèi)積,即特征空間和輸入空間的維度是一樣的,參數(shù)較少運算速度較快。適用的情景是在特征數(shù)量相對于樣本數(shù)量非常多時。線性核函數(shù)多項式核函數(shù)(Polynomial Kernel)是一種非穩(wěn)態(tài)核函數(shù),適合

6、于正交歸一化后的數(shù)據(jù),表達式如下:K(x,y) = a·x·y+c d其中a是調(diào)節(jié)參數(shù),d是最高次項次數(shù),c是可選的常數(shù)。多項式核函數(shù)徑向基核函數(shù)(Radial Basis Function Kernel)具有很強的靈活性,應(yīng)用廣泛。與多項式核函數(shù)相比參數(shù)較少。因此大多數(shù)情況下都有較性能。徑向基核函數(shù)類似于函數(shù),所以也被稱為核函數(shù)。在不確定用哪種核函數(shù)時,可優(yōu)先驗證核函數(shù)。表達式如下:K(x,y) = exp-(|x-y|2)/(2·a2)其中a2越大。核函數(shù)就會變得越平滑,此時函數(shù)隨輸入x變化較緩慢,模型的偏差和方差大,泛化能力差,容易過擬合。 a2越小,核函數(shù)

7、變化越劇烈,模型的偏差和方差越小,模型對噪聲樣本比較敏感。徑向基核函數(shù)Sigmoid核(Sigmoid Kernel)來源于MLP中的激活函數(shù),SVM使用Sigmoid相當(dāng)于一個兩層的感知機網(wǎng)絡(luò),表達式如下:K(x,y) = tanh(a·x·y+c)其中a表示調(diào)節(jié)參數(shù),c為可選常數(shù),情況c取1/n,n是數(shù)據(jù)維度。Sigmoid核 支持機應(yīng)用支持機(SVM)算法比較適合圖像和文本等樣本特征較多的應(yīng)用場合。基于結(jié)構(gòu)風(fēng)險最小化原理,對樣本集進行壓縮,解決了以往需要大樣本數(shù)量進行訓(xùn)練的問題。它將文本通過計算抽象的精確率。量化的訓(xùn)練數(shù)據(jù),提高了的是根據(jù)中與相關(guān)的詞匯來完成的。應(yīng)用S

8、VM對可以劃分為五個步驟:獲取數(shù)據(jù)集將文本轉(zhuǎn)化為可處理的分割數(shù)據(jù)集支持機結(jié)果顯示數(shù)據(jù)集來自于sklearn官網(wǎng)上的20組數(shù)據(jù)集,地址為:dataset數(shù)據(jù)集中一共包含20類0,1,2。部分代碼如下:,選擇其中三類,對應(yīng)的target依次為select = 'alt.atheism', 'talk.religion.misc', 'comp.graphics'newsgroups_train_se = fetch_20newsgroups(subset='train', categories=select)獲取數(shù)據(jù)集sklearn中

9、封裝了化工具TfidfVectorizer,它統(tǒng)計每則中各個單詞出現(xiàn)的頻率,并進行TF-IDF處理,其中TF(term frequency)是某一個給定的詞語在該文件中出現(xiàn)的次數(shù)。IDF(inverse document frequency)是逆文檔頻率,用于降低其它文檔中普遍出現(xiàn)的詞語的重要性,TF-IDF傾向于過濾掉常見的詞語,保留重要的詞語。通過TF-IDF來實現(xiàn)文本特征的選擇,也就是說,一個詞語在當(dāng)前文章中出現(xiàn)次數(shù)較多,但在其它文章中較少出現(xiàn),那么可認(rèn)為這個詞語能夠代表此文章,具有較高的類別區(qū)分能力。使用TfidfVectorizer實例化、建立索引和編碼文檔的過程如下:vectori

10、zer = TfidfVectorizer()vectors = vectorizer.fit_transform(newsgroups_train_se.data) print(vectors.shape)文本轉(zhuǎn)化為使用sklearn中的SVM工具包SVC(C-Support Vector Classification)來進行,核函數(shù)采用的是線性核函數(shù),代碼如下:svc = SVC(kernel='linear')svc.fit(x_train, y_train)支持機print(svc.score(x_test, y_test)Result: 0.955017301038可

11、以看到訓(xùn)練正確率約為95.5%結(jié)果顯示主成分分析(Principal Component Analysis , PCA)是一種降維,可以從多種特征中出主要的影響因素,使用較少的特征數(shù)量表示整體。PCA的目標(biāo)就是找到方差大的維度作為特征。本案例可以被劃分為六個步驟:獲取數(shù)據(jù)集將圖片轉(zhuǎn)化為可處理的n維分割數(shù)據(jù)集PCA主成分分析,降維處理支持機查看訓(xùn)練后的結(jié)果基于支持機和主成分分析的人臉識別主成分分析是最常用的線性降維,它的目標(biāo)是通過某種線性投影,將的數(shù)據(jù)到低維的空間中,并期望在所投影的維度上數(shù)據(jù)的方差最大,以此使用較少的維度,同時保留較多原數(shù)據(jù)的維度盡可能如果把所有的點都到一起,那么幾乎所有的區(qū)分

12、都丟失了,而如果后方差盡可能的大,那么數(shù)據(jù)點則會分散開來,特征更加明顯。PCA是丟失原始數(shù)據(jù)最少的一種線性降維,最接近原始數(shù)據(jù)PCA算法目標(biāo)是求出樣本數(shù)據(jù)的協(xié)方差矩陣的特征值和特征,而協(xié)方差矩陣的特征的方向就是PCA需要投影的方向。使樣本數(shù)據(jù)向低維投影后,能盡可能表征原始的數(shù)據(jù)。協(xié)方差矩陣可以用散布矩陣代替,協(xié)方差矩陣乘以(n-1)就是散布矩陣,n為樣本的數(shù)量。協(xié)方差矩陣和散布矩陣都是對稱矩陣,主對角線是各個隨量(各個維度)的方差主成分分析設(shè)有m條n維數(shù)據(jù),PCA的步驟如下將原始數(shù)據(jù)按列組成n行m列矩陣X計算矩陣X中每個特征屬性(n維)的平均M(平均值)將X的每行(代表一個屬性字段)進行零均值

13、化,即減去M1按照公式𝐶 =𝑋𝑋𝑇求出協(xié)方差矩陣m求出協(xié)方差矩陣的特征值及對應(yīng)的特征將特征按對應(yīng)特征值從大到小按行排列成矩陣,取前k(k < n)行組成基P通過𝑌 = 𝑃𝑋計算降維到k維后的樣本特征主成分分析基于sklearn(語言下的機器學(xué)習(xí)庫)和numpy隨機生成2個類別共40個3的樣本點,生成的代碼如下:mu_vec1 = np.array(0,0,0)cov_mat1 = np.array(1,0,0,0,1,0,0,0,1)class1_sample = np.ran

14、dom.multivariate_normal(mu_vec1, cov_mat1, 20).T mu_vec2 = np.array(1,1,1)cov_mat2 = np.array(1,0,0,0,1,0,0,0,1)class2_sample = np.random.multivariate_normal(mu_vec2, cov_mat2, 20).T主成分分析數(shù)據(jù)集來自于英國劍橋大學(xué)的AT&T人臉數(shù)據(jù)集,此數(shù)據(jù)集共有40×10=400張圖片,圖片大小為112x92,已經(jīng)經(jīng)過灰度處理。一共被劃分為40個類,每類中包含的是同一個人的10張圖像。獲取數(shù)據(jù)集由于每張圖片的

15、大小為112x92,每張圖片共有10304個像素點,這時需要一個圖片轉(zhuǎn)化函數(shù)ImageConvert(),將每張圖片轉(zhuǎn)化為一個10304維下:def ImageConvert():for i in range(1, 41):for j in range(1, 11):path = picture_savePath + "s" + str(i) + "/" + str(j) + ".pgm" # 單通道圖片,代碼如img = cv2.imh, w = img.shape(path, cv2.IM_GRAYSCALE)img_col =

16、img.reshape(h * w)data.append(img_col) label.append(i)圖片轉(zhuǎn)化為data變量中l(wèi)abel中了每個圖片的10304維,格式為列表變量(list)。變量了每個圖片的類別,為數(shù)字140。應(yīng)用numpy生成特征矩陣,代碼如下:import numpy as npC_data = np.array(data) C_label = np.array(label)圖片轉(zhuǎn)化為將訓(xùn)練集與測試集按照4:1的比例進行隨機分割,即測試集占20%,代碼如下:from sklearn.m_selection import train_test_splitx_train

17、, x_test, y_train, y_test = train_test_split(C_data, C_label, test_size=0.2,random_state=256)分割數(shù)據(jù)集引入sklearn工具進行PCA處理:from sklearn.decomposition import PCApca = PCA(n_components=15, svd_solver='auto').fit(x_train)中的15表示處理后保留維度為15個,auto表示PCA會自動選擇合適的SVD算法,進行維度轉(zhuǎn)化: x_train_pca = pca.transform(x_t

18、rain)x_test_pca = pca.transform(x_test)PCA主成分分析,降維處理使用sklearn中的SVM工具包SVC(C-Support Vector Classification)來進行,核函數(shù)采用的是線性核函數(shù),代碼如下:svc = SVC(kernel='linear')svc.fit(x_train, y_train)支持機使用測試集評估器的效果,代碼如下:print('%.5f' % svc.score(x_test_pca, y_test)得到的輸出正確率結(jié)果如下圖所示:查看訓(xùn)練后的結(jié)果進行對比實驗,將保留維度為10和20時的效果依次如下面兩張圖所示:從圖中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論