轉導推理——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。可以看出轉導推理的優勢就在於其能通過少量的標注樣本進行預測。而其不足之處就在於其沒有預測模型。當新未知點加入數據集時,轉導推理可能需要與數據量成正比的計算來預測類別,特別是當新數據不斷地被獲取和加入時,這種計算量的增長顯得猶為突出,而且新數據的添加可能會造成舊數據類別的改變(根據實際應用的不同,可能是好的,也可能是壞的)。相反地,歸納推理由於有模型存在,在計算量上可能會優於轉導推理(模型的更新可能增加計算量)。

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

最近鄰與支持向量機

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

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

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

各種距離

圖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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM