轉導推理——Transductive Learning


  在統計學習中,轉導推理(Transductive Inference)是一種經過觀察特定的訓練樣本,進而預測特定的測試樣本的方法。另外一方面,概括推理(Induction 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。能夠看出轉導推理的優點就在於其能經過少許的標註樣本進行預測。而其不足之處就在於其沒有預測模型。當新未知點加入數據集時,轉導推理可能須要與數據量成正比的計算來預測類別,特別是當新數據不斷地被獲取和加入時,這種計算量的增加顯得猶爲突出,並且新數據的添加可能會形成舊數據類別的改變(根據實際應用的不一樣,多是好的,也多是壞的)。相反地,概括推理因爲有模型存在,在計算量上可能會優於轉導推理(模型的更新可能增長計算量)。3d

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

最近鄰與支持向量機

最近鄰算法是經過考慮與測試樣本最近的幾個訓練樣本的信息來分類測試樣本。最近鄰算法的關鍵有二:blog

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

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

各類距離

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

能夠發現最近鄰算法在預測每一個測試樣本的類別時,所利用的只是整個訓練樣本集中一部分。最近鄰算法沒有在訓練樣本集上概括出一個通用的模型,而是隻經過測試樣本相近的點做判斷。接着再來看看支持向量機又是如何從訓練樣本轉導出分類面。

對於二分類問題,給定一個訓練樣本$(x_i,y_i)$,x是特徵,y是類別標籤(正類爲1,負類爲-1),i表示第i個樣本。定義劃分二類數據的分類面爲$w^T x+b$,其中w爲分類面的法向量,b爲分類面的偏移量。正類在分類面的上方($w^T x+b$),負類在分類面的下方($w^T x+b$)。定義單個訓練樣本的函數間隔:$$\gamma_i = y_i(w^Tx_i+b)=|w^T x+b|$$

能夠看出來,當$y_i$=-1時,訓練樣本是負類,$w^T x+b<0$,$\gamma_i$大於0,反之亦然。良好的分類面應能使訓練樣本的函數間隔最大。函數間隔不只表明了特徵被判別爲正類或反類的確信度,並且是評價分類面的指標。若是同時加大w和b,好比在前面乘個係數(好比2),那麼全部點的函數間隔都會增大二倍,這個對求解$w^T x+b=0$是無影響的。這樣,爲了限制w和b,可能須要加入歸一化條件,畢竟求解的目標是肯定惟一一個w和b,而不是多組線性相關的向量。故單個訓練樣本的函數間隔亦可寫爲: $$\gamma_i = y_i \left( \left(\frac{w}{\|w \| } \right)^T x_i + \frac{b}{\| w \|} \right)$$ 函數間隔亦可從幾何間隔上推導獲得。

函數間隔與幾何間隔

圖3:以「×」標記的點是正類數據,以「O」標記的點是負類數據。A點位於分類面之上,B在分類面上,w是分類面的法向量。

設A點爲$\left(x_i, y_i \right)$,w方向的單位向量爲$\frac{w}{\Vert w \Vert}$,則B點橫座標$x=x_i-\gamma_i \frac{w}{\Vert w \Vert}$,代入B點所處的分類面方程:

$$\begin{align} w^Tx + b &= 0 \\ w^T \left( x_i - \gamma \frac{w}{\| w \|} \right) + b &= 0 \\ \gamma \frac{w^T w}{\| w \|} &= w^T x +b \\ \gamma_i &= \frac{w^T x + b}{\| w \|} = \left( \frac{w}{\| w \|} \right)^T x +\frac{b}{\| w \|} \end{align}$$

與函數間隔的歸一化結果是一致的。根據轉導推理的原理,咱們大可沒必要使全部訓練樣本到分類面的函數間隔最大,只需讓離分類面比較近點能有更大間距便可。也就是說求得的超平面並不以最大化全部點到其的函數間隔爲目標,而是以離它最近的點具備最大間隔爲目標。 定義訓練樣本集(m個樣本)上的函數間隔: $$\gamma_i = \max \limits_{i-1,\dots,m} \gamma_i$$ 也就是訓練樣本集上離分類面最近的樣本點到分類面的距離。求解模型形式化定義以下: $$\begin{align} \max \limits_{w,b}& \gamma \\ s.t.& y_i \left( w^Tx +b \right) \ge \gamma ,\; i = 1,\dots,m \\ &\| w \| =1 \end{align}$$ 因爲$\Vert w \Vert = 1$,此最大化函數不是凸函數,無法直接代入Matlab等優化軟件進行計算。注意到幾何間隔和函數間隔的關係,令 $$\hat{\gamma} = \frac{\gamma}{\| w \|} = \frac{1}{\| w \|}, \; \gamma = 1$$ 這裏除以$\Vert w \Vert$是爲了使求出w和b的肯定值,而不是w和b的一組倍數。$\gamma = 1$的意義是使得訓練樣本集上的函數間隔爲1,也便是將離超平面最近的點的距離定義爲$\frac{1}{\Vert w \Vert}$。而其最大值,也就是的$\frac{1}{2} \Vert w \Vert^2 $最小值,則原最大化函數可改寫爲: $$\begin{align} \max \limits_{w,b}& \frac{1}{2} \Vert w \Vert^2 \\ s.t.& y_i \left( w^Tx +b \right) \ge 1 ,\; i = 1,\dots,m \ \end{align}$$ 以上討論適用於二類可分的狀況,當兩類不可分時,引入鬆馳變量$\xi_i$替代$\gamma$ $$\xi_i = \max\left( 0, \gamma-y_i \left( \langle w,x_i \rangle + b \right) \right)$$ 最終的求解將使用分類面的對偶表達及相關泛函,但這不是本文的重點。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軸平行。若是能使得分類方法「看到」兩類數據(包括訓練樣本和測試樣本)的分佈,那是否就能獲得一個較好的分類面了呢?

轉導支持向量機

當訓練數據和測試數據在訓練模型時均可被使用時,如何才能使分類算法更加有效呢?形式化地說明,在給定訓練數據 $$\left( x_i, y_i \right), \dots, \left( x_l, y_l \right) \; y \in \left(1 , -1\right)$$ 和測試數據 $$x_1^*, \dots , x_k^*$$ 的條件下,在線性函數集$ y = ( w \centerdot x ) + b$中找到一個函數,它在測試集上最小化錯誤數。在數據是可分的狀況下,能夠證實經過提供測試數據的一個分類結果 $$ y_1^*, \dots , y_k^* $$ 使得訓練數據和測試數據 $$\left(x_1, y_1 \right), \dots, \left(x_l, y_l \right), \left(x_1^*, y_1^* \right), \dots , \left(x_k^*, y_k^* \right) $$ 能夠被最優超平面以最大間隔分開。也就是說咱們的目標是找到最優超平面 $$ y = \left( w^* \centerdot x \right) + b $$ 使得$\frac{1}{2} \Vert w \Vert^2$最小,且知足 $$\begin{align} y_i \left[ \left( w^* \centerdot x_i \right) + b \right] &\geq 1 , \; i = 1,\dots,l \\ y_j \left[ \left( w^* \centerdot x_j^* \right) + b \right] &\geq 1 , \; j = 1,\dots,k \\ \end{align}$$ 當數據不可分時,在不等式中加入鬆馳變量。即在知足 $$\begin{align} y_i \left[ \left( w^* \centerdot x_i \right) + b \right] &\geq 1 - \xi_i , \; \xi_j \ge 0, i = 1,\dots,l \\ y_j \left[ \left( w^* \centerdot x_j^* \right) + b \right] &\geq 1 - \xi_j , \; \xi_j \ge 0, j = 1,\dots,k \\ \end{align}$$ 的狀況下,使得$\frac{1}{2} \Vert w \Vert^2 + C\sum_{i=1}^l \xi_i + C^*\sum_{j=1}^k \xi_j$最小。以下圖所示。

tsvm

圖6:標註數據以「+」和「-」標記,以青色填充的圓圈表示未標註數據。紅色虛線表明分類面,左邊和中間的分類面由SVM產生,右邊的分類面由TSVM產生。   求解上述問題,其實是針對固定的$y_1^*, \dots, y_k^*$找出最優超平面的對偶表達: $$f\left( x \right) = sign \left[ \sum_{i=1}^{l}\alpha_i y_i K\left(x, x_i \right) + \sum_{j=1}^{k} \alpha_j^* y_j ^* K\left(x, x_j^* \right) + b \right]$$ 爲此必須使得泛函 $$\begin{align} W \left( y_1^*,\dots,y_k^* \right) &= \max\limits_{\alpha, \alpha^*} \Bigg\{ \sum_{i=1}^l \alpha_i + \sum_{j=1}^{k} \alpha_j^* \\ &- \frac{1}{2} \bigg[ \sum_{i,r=1}^{l} y_i y_r \alpha_i \alpha_r K\left(x_i, x_r \right) + \sum_{j,r=1}^{k} y_j^* y_r^* \alpha_j^* \alpha_r^* K\left(x_j^*, x_r^* \right) \\ &+ 2\sum_{j}^{k}\sum_{r=1}^{l} y_j y_r^* \alpha_j \alpha_r^* K\left(x_j, x_r^* \right) \bigg] \Bigg\} \end{align}$$ 在知足約束 $$\begin{align} 0 &\leq \alpha_i \leq C \\ 0 &\leq \alpha_j^* \leq C^* \\ \sum_{i=1}^{l} y_i \alpha_i &+ \sum_{j=1}^ky_j^*\alpha_j^* = 0 \end{align}$$ 的條件下達到它的最小值。通常而言,這一最小最大問題的精確解須要搜索測試集上全部的$2^k$種分類結果。對於少許的測試樣本(好比3~7),這一過程是能夠完成的。但對於大量的測試樣本,可使用各類啓發式過程,例如先經過聚類測試數據將測試數據暫分類,再應用SVM劃分各種的分類面。以下圖所示。

cluser+svm

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

設數據點x有n個特徵,即n維,則任意兩個數據點$x_s$,$x_t$的相關距離$d_st$爲 $$\begin{align} d_st = 1 - \frac{ \left( x_s - \overline{x_s} \right) \left( x_t - \overline{x_t} \right)^{'} }{ \sqrt{\left( x_s - \overline{x_s} \right) \left( x_s - \overline{x_s} \right)^{'}} \sqrt{\left( x_t - \overline{x_t} \right) \left( x_t - \overline{x_t} \right)^{'}} } \end{align}$$ 圖中先對數據點進行聚類,再對聚成的兩類作SVM分類。顯然這一作法對聚類獲得的類簇很敏感。使用餘弦距離時,分類效果最好,這其中很大一部分緣由就在於使用餘弦距離進行K-means聚類後,兩類已經被很好地分開了,再使用SVM顯然能達到更好地結果。爲了下降聚類對以後分類的影響,能夠在類簇中隨機抽取某些樣本做爲訓練樣本,結果以下圖所示:

cluset+svm

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

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

小結

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

參考文獻

  1. Transduction (machine learning)[EB/OL]. [2012-5-7]. http://en.wikipedia.org/wiki/Transduction_(machine_learning).
  2. 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.
  3. Chapelle O, Schölkopf B, Zien A. Semi-supervised learning[M]. Cambridge: MIT press, 2006. (美)VladimirN.Vapnik著. 統計學習理論[M]. 許建華,張學工譯. 北京: 電子工業出版社, 2004
相關文章
相關標籤/搜索