數值計算和SVM講解(中)

2021-08-07 16:05:03 字數 3391 閱讀 5327

在《線代和pca詳解》一文中,我們介紹了降維的工具——pca,並且簡單說明了它的兩種方式。更樸實意義而言,svd其實本身就充當著壓縮的角色。降維有好處,那麼公升維又能不能給予我們一定的幫助呢。這一節,我們就談談資料維度的問題。

維度這個概念我們都並不陌生,維度在數學中也稱作維數,代表的是引數的數目。我們說零維是點,一維是線,二維是面,三維是立體。

我們跳出數學的視角,而上公升到哲學的角度,我們說維度其實代表的是我們看一件事物的視角,每個視角都有著乙個對應的描述,於是我們將這個描述數位化,並且將這些視角的描述綜合起來,放到一起,我們將之成為多維向量。例如說,我們審視乙個長方體,需要看他的長度,高度,寬度,重量,那麼我們用多維向量來描述這個長方體便可能是 < 1,1,2,4 >,這裡面我們引入了4個維度,我們把它叫做四維向量。

上公升到機器學習的領域,這個維度主要指資料特徵向量的各維,即每乙個樣本點的各個屬性。實際中,例如某個商品的買賣交易,時間、地點、數量、單價,都可以作為評價的維度。另外,維度和維度之間,還會有相似度的衡量,它代表著這兩種維度之間的潛在關係。這裡我們要理解乙個常識性的概念,叫做維度災難。維度災難通常都被用作是不要處理高維資料的最好藉口。維度災難通常是指在高維空間中,所有的資料都很稀疏,於是導致在相似度度量上,距離計算上都會出現很大的偏差,因為平時我們採用的演算法也都會變得很低效。

在現實中初始的維度範圍很可能會很大,導致我們在後面的演算法優化和特徵選取都會有影響,這時候我們會採取降維的方式。另外在svm中我們會遇到維度災難的問題,那時候我們運用核技巧。

對於降維,我們通常的做法有pca和svd。這就和前面的知識呼應了,既然有降維,那麼肯定有公升維。公升維的作用主要體現在非線性分類當中,即線性分類已經不能滿足我們的需要,我們把資料對映到高維空間中,這時候再利用線性分類器可能會起作用。公升維主要有boosting和核技巧。在下面的svm中我們會介紹核技巧相關知識。

例如下圖10,在機器學習所要解決的問題當中,一類是對於所有樣本點,它們滿足了一定的關係,我們可以按照這種關係來**某一點的趨勢;另外,有些訓練集中,它們分布了兩個甚至多個關係(集群),這時候我們如果想**趨勢,仍然可以(下圖中黑、紅線)。但更多的,我們希望能拿出乙個分界(直觀上來說,這裡的分界可以是點、線、面,更高維的我們稱為超平面)來作為分類的標準,這裡的**也是針對某個點作為哪個集群而言的。

從上述問題我們引出回歸與分類這兩類在機器學習(特指監督學習)中最重要的問題。接著我們拿出二者的定義:回歸問題,**值為連續值;分類問題,**值為離散值,又分為二分類和多分類。總結上述,一言以蔽之:回歸問題中我們要求w和b,是為了構造擬合樣本基的趨勢、走向的y =wtx+b;分類問題中我們要求w和b引數,是為了得到超平面wtx+b=c(c為常數,值等於閾值大小)。

具體例如有這樣的乙個問題:體重和運動時間的關係,先驗知識告訴我們可能為負相關,那麼其滿足f(x)=wtx+b,其中x為運動時間,f(x)為體重。那麼當我們求出w和b的時候,我們再有乙個新的x,既可以**f(x)的大小。若作圖,f(x)=wtx+b這條直線是迎合樣本點的,反映大部分樣本點的走勢。

上面討論的是回歸問題,繼續深入,當問題變為分類問題時,舉例為x為腫瘤大小,f(x)為良性與否,當f(x)>0.5時,為惡性;反之為良性。這時候我們把線性回歸加上閾值(也就是線性分類器,或者狹義上就特指感知機),解決了分類的問題。如下圖11所示:

更具體的,對待分類問題,我們的目標是得到乙個判定分界(wtx+b=c最優超平面)。特別地,對於二分類當特徵向量x為二維時,判定邊界表現為直線,直線兩邊即為0和1類。而上述的腫瘤與其良性與否的問題,判定邊界為閾值點(注意這裡的特徵為標量,也就是腫瘤大小這乙個指標。其他圖形x,y軸有的為x1、x2,表示特徵為二維向量)。另外,我在這邊再提一點關於感知機的損失函式,它主要是以誤分類點為驅動,形式為yi(wtxi+b),這在後面會提到,它有個專業名稱——函式間隔。(感知機相關細節可參考《統計學習方法》第二章)

當然,感知機去解決分類問題是遠遠不夠的。一方面模型選取的決策函式太過僵硬(硬閾值);另一方面樣本中如若存在雜訊,模型受到影響很大,所以整個模型魯棒性很差。如下圖12所示:

所以我們設想能不能採取一種統計的方法,從概率的角度來分類:將f(x)值對映到[0,1]之間,使其符合概率的範圍;同時sigmoid函式可以達到這個效果(多分類利用softmax函式),所以logistic回歸起到的是分類的效果。

接著從策略上來說,我們需要設計代價函式,並選擇結構化風險函式最小化策略,即在原將目標函式正則化,使其能「對抗」雜訊,具有更好地泛化能力。設計完優化模型後,我們採用演算法進行求解,得到最優的w和b。從圖形上說,最終的wtx+b=0也就是在眾多超平面中選擇出的最優超平面。

繼續深挖,logistic回歸對於分類的確可以起到作用。但是我們又有了新的問題,那就是在超平面附近的點,我們是否有信心去判斷到底是哪一類呢?因為這時候可能超平面稍微變化下,可能這些點的判別就會完全相反。那麼是否還有其他的方式呢?答案是肯定的,這就是咱們本篇的主角——支援向量機svm。

當然,為了更好地介紹svm,接下來我們會說明其與logistic回歸的關係和區別。一方面,為了減小上面那些靠近最優超平面的樣本點所帶來的影響,我們把所有的焦點全部關注在這些點上。也就是說,logistic考慮的全域性的樣本點,而svm則只是考慮到靠近最優超平面周圍區域性點(這些點稱為「支援向量」)的作用。舉例而言,logistic回歸類似於高中老師,抓的是班上同學整體的成績;而svm則是大學輔導員,他們關注的是那些及格線附近的「不安穩分子」。

另一方面,從結構化風險函式最小化策略來說,二者的代價函式(或者說風險函式,即平均代價函式)可以統一,如下圖13所示:

其中,g(z)=1/(1+exp(-z))

當然上式對於看過svm的童鞋有點疑惑(譬如svm的目標函式好像和我們看到不太一樣),具體推導我們在後邊擺出svm優化模型的時候(參見2.2.2一節)再進行推導。

具體說來,logistic回歸考慮到全域性樣本點,通過非線性對映(對數線性),減小離判斷分界較遠樣本點的權重,而相對提公升與分類最相關的樣本點的權重;而svm也是把焦點關注在對最優超平面有重大影響的點上,只是這些點都是支援向量。

綜上所述,logistic回歸與svm既有區別又有聯絡,兩者都是分類的方法,在代價函式具有統一性。但是思考的角度乙個全域性,乙個區域性。但目的都是一致的,最後希望得到的也是判斷分界。

oracle 中數值的計算

運算子 含義 加 加法 加 字串相加 減 減法 乘 乘法 除 除法 mod 模 返回乙個除法的整數餘數 例如,12 5 2,這是因為 12 除以 5,餘數為 2 示例 select5 6 5 nullfromdual select5 6fromdual select5 6fromdual selec...

Oracle中數值的計算

運算子 含義 加 加法 加 字串相加 減 減法 乘 乘法 除 除法 mod 模 返回乙個除法的整數餘數 例如,12 5 2,這是因為 12 除以 5,餘數為 2 示例 select5 6 5 nullfrom dual select5 6from dual select5 6from dual se...

數值計算中矩陣運算

1.矩陣運算最簡單的方法是使用matlib,因為在matlib中,矩陣是基本的資料型別,其語法與數 算基本一致,所以適合新手入手,但matlib也有很多不足之處。比如軟體比較龐大,收費,以及效率等問題。2.使用python的numpy庫,幾乎能代替matlib,但是程式的除錯難度上公升了一些,花的時...