1. 程式人生 > >【機器學習】轉導推理——Transductive Learning

【機器學習】轉導推理——Transductive Learning

在統計學習中,轉導推理(Transductive Inference)是一種通過觀察特定的訓練樣本,進而預測特定的測試樣本的方法。另一方面,歸納推理(Induction Inference)先從訓練樣本中學習得到通過的規則,再利用規則判斷測試樣本。然而有些轉導推理的預測無法由歸納推理獲得,這是因為轉導推理在不同的測試集上會產生相互不一致的預測,這也是最令轉導推理的學者感興趣的地方。

Transductive Learning:從彼個例到此個例,有點象英美法系,實際案例直接結合過往的判例進行判決。關注具體實踐。

Inductive Learning:從多個個例歸納出普遍性,再演繹到個例,有點象大陸法系,先對過往的判例歸納總結出法律條文,再應用到實際案例進行判決。從有限的實際樣本中,企圖歸納出普遍真理,傾向形而上,往往會不由自主地成為教條。

強調一點,根據Vapnik的Statistical Learning Theory中提出統計學習中考慮兩種不同型別的推理:歸納推理(Inductive inference)和轉導推理(Transductive inference).轉導推理的目的是估計某一未知預測函式在給定興趣點上的值(而不是在該函式的全部定義域上的值).關鍵是,通過求解要求較低的問題,可以得到更精確的解.

傳統的推理方法是歸納-演繹方法,人們首先根據用已有的資訊定義一個一般規則,然後用這個規則來推斷所需要的答案.也就是說,首先從特殊到一般,然後從一般到特殊.但是在轉導模式中,我們進行直接的從特殊到特殊的推理,避免了推理中的不適定部分.

  歸納推理中的一個經典方法是貝葉斯決策,通過求解P(Y|X)=P(X|Y)P(Y)/P(X)得到從樣本X到類別Y的概率分佈P(Y|X),進而使用P(Y|X)預測測試樣本的類別。這一過程的缺點在於,在預測某一測試樣本的類別之前,先要建立一個更通用的判別模型。那麼是否能夠更直接判別測試樣本的類別呢?一個辦法就是通過轉導推理。轉導推理由Vladimir Naumovich Vapnik(弗拉基米爾·萬普尼克)於20世紀90年代最先提出,其目的就在於建立一個更適用於問題域的模型,而非一個更通用的模型。這方面的經典演算法有最近鄰(K Nearest Neighbour)和支援向量機(Support Vector Machine)等。

  特別是當訓練樣本非常少,而測試樣本非常多時,使用歸納推理得到的類別判別模型的效能很差,轉導推理能利用無標註的測試樣本的資訊發現聚簇,進而更有效地分類。而這正是隻使用訓練樣本推導模型的歸納推理所無法做到的。一些學者將這些方法歸類於半監督模型(Semi-Supervised Learning),但Vapnik認為是轉導推理3。這方面的經典演算法有轉導支援向量機(Transductive Support Vector Machine)等。

  轉導推理的產生的第三個動機在於模型近似。在某些工程應用中,嚴格的推導所產生的計算量可能是非常巨大的,工程人員希望找到某些近似模型能適應他們所面臨的特定問題,不需要適用於所有情況。

  如下圖所示。判別模型的任務是預測未標註資料點的類別。歸納推理方法通過訓練一個監督學習模型來預測所有未標註點的類別。這樣,訓練樣本中就只有5個點供以訓練監督學習模型。對於圖中較靠中心的某點(紅色圓圈),利用最近鄰演算法就會將其標記為A或C,但從所有資料組成的類簇來看,此點應標為B。

k近鄰

圖1:少量標註樣本時,使用KNN演算法預測樣本類別。訓練樣本是少量已經標註(A、B、C)的點,而其它大部分的點都是未標註的(記為?)。

轉導推理會利用所有點的資訊進行預測,也就是說轉導推理會根據資料所從屬的類簇進行類別標註。這樣中間紅色圈的點由於非常接近標為B的點所從屬的類簇,就會標註為B。可以看出轉導推理的優勢就在於其能通過少量的標註樣本進行預測。而其不足之處就在於其沒有預測模型。當新未知點加入資料集時,轉導推理可能需要與資料量成正比的計算來預測類別,特別是當新資料不斷地被獲取和加入時,這種計算量的增長顯得猶為突出,而且新資料的新增可能會造成舊資料類別的改變(根據實際應用的不同,可能是好的,也可能是壞的)。相反地,歸納推理由於有模型存在,在計算量上可能會優於轉導推理(模型的更新可能增加計算量)。

文章的後面部分將以二分類為例,先從較簡單的情況開始,即給定大量的標註樣本,判斷測試樣本的類別,討論最近鄰(k Nearest Neighbours,KNN)和支援向量機(Support Vector Machine,SVM)。接著就討論在給定少量標註樣本和大量測試樣本的情況下,判斷測試樣本的方法,主要是轉導支援向量機(Transductive Support Vector Machine,TSVM)。

最近鄰與支援向量機

最近鄰演算法是通過考慮與測試樣本最近的幾個訓練樣本的資訊來分類測試樣本。最近鄰演算法的關鍵有二:

  • 如何度量測試樣本到訓練樣本的距離(或者相似度)
  • 如何利用近鄰的類別等資訊

一種簡單的辦法是度量測試樣本到訓練樣本間的距離,選擇最近的若干個訓練樣本,若某一類別的點佔多數,就簡單地將測試樣本歸為那類。如下圖所示,使用了歐幾里得距離和街區距離度量測試樣本到訓練樣本的距離。

各種距離

圖2:最近鄰示意圖。使用歐幾里得距離和街區距離進行度量

可以發現最近鄰演算法在預測每個測試樣本的類別時,所利用的只是整個訓練樣本集中一部分。最近鄰演算法沒有在訓練樣本集上歸納出一個通用的模型,而是隻通過測試樣本相近的點作判斷。接著再來看看支援向量機又是如何從訓練樣本轉匯出分類面。

對於二分類問題,給定一個訓練樣本,x是特徵,y是類別標籤(正類為1,負類為-1),i表示第i個樣本。定義劃分二類資料的分類面為,其中w為分類面的法向量,b為分類面的偏移量。正類在分類面的上方(),負類在分類面的下方()。定義單個訓練樣本的函式間隔:

可以看出來,當=-1時,訓練樣本是負類,,大於0,反之亦然。良好的分類面應能使訓練樣本的函式間隔最大。函式間隔不僅代表了特徵被判別為正類或反類的確信度,而且是評價分類面的指標。如果同時加大w和b,比如在前面乘個係數(比如2),那麼所有點的函式間隔都會增大二倍,這個對求解是無影響的。這樣,為了限制w和b,可能需要加入歸一化條件,畢竟求解的目標是確定唯一一個w和b,而不是多組線性相關的向量。故單個訓練樣本的函式間隔亦可寫為:

函式間隔亦可從幾何間隔上推導得到。

函式間隔與幾何間隔

圖3:以“×”標記的點是正類資料,以“O”標記的點是負類資料。A點位於分類面之上,B在分類面上,w是分類面的法向量。

設A點為,w方向的單位向量為,則B點橫座標,代入B點所處的分類面方程:

與函式間隔的歸一化結果是一致的。根據轉導推理的原理,我們大可不必使所有訓練樣本到分類面的函式間隔最大,只需讓離分類面比較近點能有更大間距即可。也就是說求得的超平面並不以最大化所有點到其的函式間隔為目標,而是以離它最近的點具有最大間隔為目標。 定義訓練樣本集(m個樣本)上的函式間隔:

也就是訓練樣本集上離分類面最近的樣本點到分類面的距離。求解模型形式化定義如下: 由於,此最大化函式不是凸函式,沒法直接代入Matlab等優化軟體進行計算。注意到幾何間隔和函式間隔的關係,令 這裡除以是為了使求出w和b的確定值,而不是w和b的一組倍數。的意義是使得訓練樣本集上的函式間隔為1,也即是將離超平面最近的點的距離定義為。而其最大值,也就是的最小值,則原最大化函式可改寫為: 以上討論適用於二類可分的情況,當兩類不可分時,引入鬆馳變數替代 最終的求解將使用分類面的對偶表達及相關泛函,但這不是本文的重點。KNN和SVM的分類效果如下圖所示:

knn和svm

圖4:KNN(選擇5個最近鄰)和SVM的分類結果,資料使用Matlab的Fisher Iris的一維和二維資料

在標註樣本充足的情況,最近鄰和支援向量機都表現得不錯。但當標註樣本不足時,最近鄰和支援向量機的表現就顯著下降。如下圖所示。

knn和svm

圖5:標註資料只取x座標值在[4.5 5]和[7 7.5]之間的點時,KNN和SVM的分類結果

觀察分類結果可以看到,因為訓練樣本的x座標只在某一區間,選取的支援向量使得分類面幾乎與y軸平行。如果能使得分類方法“看到”兩類資料(包括訓練樣本和測試樣本)的分佈,那是否就能得到一個較好的分類面了呢?

轉導支援向量機

當訓練資料和測試資料在訓練模型時都可被使用時,如何才能使分類演算法更加有效呢?形式化地說明,在給定訓練資料

和測試資料 的條件下,線上性函式集中找到一個函式,它在測試集上最小化錯誤數。在資料是可分的情況下,可以證明通過提供測試資料的一個分類結果 使得訓練資料和測試資料 可以被最優超平面以最大間隔分開。也就是說我們的目標是找到最優超平面 使得最小,且滿足 當資料不可分時,在不等式中加入鬆馳變數。即在滿足 的情況下,使得最小。如下圖所示。

tsvm

圖6:標註資料以“+”和“-”標記,以青色填充的圓圈表示未標註資料。紅色虛線代表分類面,左邊和中間的分類面由SVM產生,右邊的分類面由TSVM產生。   求解上述問題,實際上是針對固定的找出最優超平面的對偶表達:

為此必須使得泛函 在滿足約束 的條件下達到它的最小值。一般而言,這一最小最大問題的精確解需要搜尋測試集上所有的種分類結果。對於少量的測試樣本(比如3~7),這一過程是可以完成的。但對於大量的測試樣本,可以使用各種啟發式過程,例如先通過聚類測試資料將測試資料暫分類,再應用SVM劃分各類的分類面。如下圖所示。

cluser+svm

圖7:首先對圖5的資料進行K-means聚類,接著對兩個類使用SVM進行劃分分類面。為了比對不同距離對分類的影響,從左至右,從上至下,使用歐幾里得距離、街區距離、餘弦距離和相關距離(1-相關係數,公式見下)進行K-means聚類。圓形和正方形表示正確的分類。

設資料點x有n個特徵,即n維,則任意兩個資料點,的相關距離為

圖中先對資料點進行聚類,再對聚成的兩類做SVM分類。顯然這一做法對聚類得到的類簇很敏感。使用餘弦距離時,分類效果最好,這其中很大一部分原因就在於使用餘弦距離進行K-means聚類後,兩類已經被很好地分開了,再使用SVM顯然能達到更好地結果。為了降低聚類對之後分類的影響,可以在類簇中隨機抽取某些樣本作為訓練樣本,結果如下圖所示:

cluset+svm

圖8:首先對圖5的資料進行K-means聚類,以0.2的概率隨機抽取聚類中樣本作為訓練樣本,接著對兩個類使用SVM進行劃分分類面。從左至右,從上至下,使用歐幾里得距離、街區距離、餘弦距離和相關距離(1-相關係數)進行K-means聚類。圓形和正方形表示正確的分類。

由於訓練樣本是從聚類樣本中隨機抽取得到的,原訓練樣本可能與測試樣本相重疊,所以有些圓形和正方形中是中空的。圖中所示的結果是分類得到的較好結果。各種距離對應的分類結果較之前相互接近,但付出的代價就是概率。好的分類結果並不會總是出現,甚至會很罕見。可改進的方法還有很多,例如隨機抽取時增加原訓練樣本的比重,縮小測試樣本的比重等。這裡就不再贅述。

小結

區別于歸納推理(Inductive Inference)從特殊到一般,再從一般到特殊的學習方式,轉導推理(Tranductive Inference)是一種從特殊到特殊的統計學習(或分類)方法。在預測樣本的類別時,轉導推理試圖通過區域性的標註訓練樣本進行判斷,這與歸納推理先從訓練樣本中歸納得到一般模型有著很大差異。特別是當訓練樣本的數量不足以歸納得到全域性一般模型時,轉導推理能夠利用未標註樣本補充標註樣本的不足。然而轉導推理還有很多問題亟待解決,例如KNN每次預測都要遍歷所有測試樣本,TSVM的精確解如何更好地近似等。

參考文獻

  1. Gammerman A, Vovk V, Vapnik V. Learning by transduction[C]//Proceedings of the Fourteenth conference on Uncertainty in artificial intelligence. Morgan Kaufmann Publishers Inc., 1998: 148-155.
  2. Chapelle O, Schölkopf B, Zien A. Semi-supervised learning[M]. Cambridge: MIT press, 2006. (美)VladimirN.Vapnik著. 統計學習理論[M]. 許建華,張學工譯. 北京: 電子工業出版社, 2004

--------------------- 本文來自 Zhang_P_Y 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/LG1259156776/article/details/52750103?utm_source=copy