遷移學習怎麽做?遷移成分分析 (TCA) 方法簡介">遷移學習怎麽做?遷移成分分析 (TCA) 方法簡介

分類:IT技術 時間:2017-09-28

雷鋒網 (公眾號:雷鋒網) 按:本文原作者王晉東不在家,本文原載於知乎專欄——機器有顆玻璃心。雷鋒網已獲得轉載授權。王晉東 (不在家),中國科學院計算技術研究所博士生,目前研究方向為機器學習、遷移學習、人工智能等。

之前整理總結遷移學習資料的時候有網友評論,大意就是現在的類似資料大全的東西已經太多了,想更深入地了解特定的細節。從這篇文章開始我將以《小王愛遷移》為名寫一系列的介紹分析性的文章,與大家共享遷移學習中的代表性方法、理論與自己的感想。由於我的水平有限,請各位多多提意見,我們一起進步。今天第一篇必須以我最喜愛的楊強老師的代表性方法 TCA 為主題!(我的第一篇文章也是基於 TCA 做的)

【我剛整理重寫好的加速版 TCA 代碼(matlab): jindongwang/transferlearning 】

問題背景

機器學習中有一類非常有效的方法叫做降維(dimensionality reduction),用簡單的話來說就是,把原來很高維度的數據(比如數據有 1000 多列)用很少的一些代表性維度來表示(比如 1000 多維用 100 維來表示)而不丟失關鍵的數據信息。這些降維方法多種多樣,比如:主成分分析(PCA,principal component analysis)、局部線性嵌入(LLE,locally linear embedding)、拉普拉斯特征映射(Laplacian eigen-map)等。這些方法的過程大體都是一個大的矩陣作為輸入,然後輸出一個小矩陣。那麽在遷移學習中,有沒有這樣的方法,通過降維來達到數據維度減少,而且能達到遷移學習目的呢?答案是顯然的,就是我們要說的遷移成分分析(TCA,transfer component analysis)。看,名字就跟 PCA 很像。

TCA 最早是由香港科技大學楊強教授團隊提出,首次出現在 AAAI-09 上,後來整理豐富成了一篇期刊文章,發表在 11 年的 IEEE Trans. Neural Network(現在這個期刊名字後面多了 and Learning system)上。這個方法是遷移學習領域經典性的文章,從 2011 年到現在接近 6 年過去,在 Google scholar 上引用量為 569 次,並且在持續增長。

簡介

TCA 屬於基於特征的遷移學習方法。那麽,它做了一件什麽事呢?用通俗的語言來說,跟 PCA 很像:PCA 是一個大矩陣進去,一個小矩陣出來,TCA 呢,是兩個大矩陣進去,兩個小矩陣出來。從學術角度講,TCA 針對 domain adaptation 問題中,源域和目標域處於不同數據分布時,將兩個領域的數據一起映射到一個高維的再生核希爾伯特空間。在此空間中,最小化源和目標的數據距離,同時最大程度地保留它們各自的內部屬性。直觀地理解就是,在現在這個維度上不好最小化它們的距離,那麽我就找個映射,在映射後的空間上讓它們最接近,那麽我不就可以進行分類了嗎?

我一直強調,任何問題都要看它的本質,TCA 本質是什麽呢?完成遷移學習的要求。遷移學習的要求是什麽呢?讓源域和目標域距離盡可能小唄。

方法

有許多種方法都在試圖減小源域和目標域的距離,那麽,TCA 的貢獻在哪裏?以我的理解,TCA 將這個計算距離的方法變得通用而簡單,這就是它最大的貢獻。下面我以自己的理解介紹 TCA 方法的基本流程。

假設

任何方法都基於一定的假設。胡適說過,大膽假設,小心求證。但是他那個時候沒有計算機,我們搞計算機的人則是,大膽假設,更大膽求證。為啥?我們就算失敗了也沒有什麽嘛,最多把電腦搞崩潰了我再重裝系統麽。所以,搞學術一定不要怕假設。假設是學術成功的基石呢!

TCA 的假設是什麽呢?很簡單:源域和目標域的邊緣分布是不一樣的,也就是說, ,所以不能直接用傳統的機器學習方法。但是呢,TCA 假設存在一個特征映射 $\phi$,使得映射後數據的分布 ,更進一步,條件分布 。這不就行了麽。好了,我們現在的目標是,找到這個合適的 $\phi$,一作映射,這事就解決了。

具體

但是世界上有無窮個這樣的 ,也許終我們一生也無法找到這樣的 。莊子說過,吾生也有涯,而知也無涯,以有涯隨無涯,殆已!我們肯定不能通過窮舉的方法來找 的。那麽怎麽辦呢?

回到遷移學習的本質上來:最小化源域和目標域的距離。好了,我們能不能先假設這個 是已知的,然後去求距離,看看能推出什麽呢?

更進一步,這個距離怎麽算?世界上有好多距離,從歐氏距離到馬氏距離,從曼哈頓距離到余弦相似度,我們需要什麽距離呢?TCA 利用了一個經典的也算是比較 “高端” 的距離叫做最大均值差異(MMD,maximum mean discrepancy)。這個距離的公式如下:

看著很高端(實際上也很高端)。MMD 是做了一件什麽事呢?簡單,就是求映射後源域和目標域的均值之差嘛。

事情到這裏似乎也沒什麽進展:我們想求的 仍然沒法求。

TCA 是怎麽做的呢,這裏就要感謝矩陣了!我們發現,上面這個 MMD 距離平方展開後,有二次項乘積的部分!那麽,聯系在 SVM 中學過的核函數,把一個難求的映射以核函數的形式來求,不就可以了?於是,TCA 引入了一個核矩陣

以及 :

這樣的好處是,直接把那個難求的距離,變換成了下面的形式:

trace 是矩陣的跡,用人話來說就是一個矩陣對角線元素的和。這樣是不是感覺離目標又進了一步呢?

其實這個問題到這裏就已經是可解的了,也就是說,屬於計算機的部分已經做完了。只不過它是一個數學中的半定規劃(SDP,semi-definite programming)的問題,解決起來非常耗費時間。由於 TCA 的第一作者 Sinno Jialin Pan 以前是中山大學的數學碩士,他想用更簡單的方法來解決。他是怎麽做的呢?

他想出了用降維的方法去構造結果。

這裏的 W 矩陣是比 K 更低維度的矩陣。最後的 W 就是問題的解答了!

求解

好了,問題到這裏,整理一下,TCA 最後的優化目標是:

這裏的 $H$ 是一個中心矩陣, .

這個式子下面的條件是什麽意思呢?那個 min 的目標我們大概理解,就是要最小化源域和目標域的距離,加上 W 的約束讓它不能太復雜。那麽下面的條件是什麽呢?下面的條件就是要實現第二個目標:維持各自的數據特征。TCA 要維持的是什麽特征呢?文章中說是 variance,但是實際是 scatter matrix,就是數據的散度。就是說,一個矩陣散度怎麽計算?對於一個矩陣 ,它的 scatter matrix 就是 。這個 就是上面的中心矩陣啦。

解決上面的優化問題時,作者又求了它的拉格朗日對偶。最後得出結論,W 的解就是的前 m 個特征值!簡單不?數學美不美?然而,我是想不出的呀!

小結

好了,我們現在總結一下 TCA 方法的步驟。輸入是兩個特征矩陣,我們首先計算 L 和 H 矩陣,然後選擇一些常用的核函數進行映射(比如線性核、高斯核)計算 K,接著求 的前 m 個特征值。僅此而已哦。然後,得到的就是源域和目標域的降維後的數據,我們就可以在上面用傳統機器學習方法了。

總結

怎麽樣,到此為止我們把 TCA 方法介紹完了。我們回顧一下,它的最核心工作是什麽呢?我認為有兩點:一是把問題轉化成數學問題轉化得很徹底;二是最優化求解方法很厲害。我們能從中學習什麽呢?求解問題的方法感覺是學不來了,我們又不是數學出身。我們只能照貓畫虎,學習人家對問題的轉化方式,怎麽就能很好地把一個問題轉化成數學表示?這也是機器學習和人工智能相關方向研究生最重要的能力!關於 TCA 的 python 和 Matlab 代碼可以參考我的 Github: jindongwang/transferlearning 。

最後說一個 TCA 的優缺點。優點是實現簡單,方法本身沒有太多的限制,就跟 PCA 一樣很好用。缺點就是,盡管它繞開了 SDP 問題求解,然而對於大矩陣還是需要很多計算時間。主要消耗時間的操作是,最後那個偽逆的求解以及特征值分解。在我的電腦上(i7-4790CPU+24GB 內存)跑 2000*2000 的核矩陣時間大概是 20 秒。

References

[1] TCA 原版文章:S. J. Pan, I. W. Tsang, J. T. Kwok and Q. Yang, "Domain Adaptation via Transfer Component Analysis," in IEEE Transactions on Neural Networks, vol. 22, no. 2, pp. 199-210, Feb. 2011.doi: 10.1109/TNN.2010.2091281

[2] Scatter matrix: Scatter matrix | Wikiwand

雷鋒網版權文章,未經授權禁止轉載。詳情見 轉載須知 。


Tags: 遷移 學習 方法 維度 雷鋒 代表性

文章來源:


ads
ads

相關文章
ads

相關文章

ad