分享一篇超詳細的對比學習開山作理論推導,快收藏!
作者:KON 來源:投稿
編輯:學姐
1.前言
本次給大家?guī)淼氖前l(fā)表在ICLR2019上的一篇文章:LEARNING DEEP REPRESENTATIONS BY MUTUAL INFORMATION ESTIMATION AND MAXIMIZATION。
這篇文章是對比學習的開山之作之一,為對比學習提供了理論支撐,指導了后來人如何正確選擇合適的對比函數(shù)損失。截至完稿,該論文的引用為1299。
本文只討論該paper的核心部分,也就是理論推導部分,它解釋了我們如何通過最大化互信息來達成我們對比學習的目的。雖然這篇文章主要討論的是CV上的對比學習,但該理論是通用于所有深度學習框架的范式,把它擴展到圖表示、NLP等其它領域也是合適的。
雖然這篇文章非常的經(jīng)典+硬核,但遺憾的是,原論文并沒有給出各公式的詳細推導。如果數(shù)學功底不夠扎實,讀起來往往頗為費勁。本文將給出該paper有關理論詳細推導+詳細解釋,一步步帶大家理解。
2.什么是對比學習?
對比學習是一種自監(jiān)督學習方法,用于在沒有標簽的情況下,通過讓模型學習哪些數(shù)據(jù)點相似或不同來學習數(shù)據(jù)集的一般特征。
讓我們從一個簡單的例子開始:
假設你有兩個蘋果和一個梨,即使沒有人告訴你它們是什么,你仍可能會意識到,與蘋果相比,這兩只梨子看起來很相似。僅僅通過識別它們之間的異同,我們的大腦就可以了解我們的世界中物體的高階特征。

目前主流的深度學習是通過對輸入擬合label來達到學習目的的,但實際情況中,可能根本沒有那么多l(xiāng)abel可言。在上述例子中,并沒有誰來告訴我們label,我們仍然能夠學到大量的信息?;诖藛l(fā),對比學習的概念應運而生。

3.數(shù)學準備
在開始我們的推導之前,我們需要先明確幾個后續(xù)推到會使用到的概念:
KL散度:
KL散度是用來衡量兩個分布差異的度量,它是順序敏感的,D(X|Y)與D(Y|X)是不同的。
互信息:

互信息描述了兩個分布共有信息的度量,它是順序不敏感的,I(X;Y)與I(Y;X)是一樣的。很容易可以看到,這兩個度量都可用來衡量兩分布之相似性。那么,它們之間有沒有關系呢?
答案是有的,推導如下:

原來X與Y的互信息,就等于X與Y之聯(lián)合分布與X Y邊緣分布之乘積。
共軛函數(shù):

這里的sup代表上確界,即最小上界。使上述上確界有限,即差值在f之定義域有上界的所有y構成了共軛函數(shù)的定義域。共軛函數(shù)是我們后續(xù)推導的剪刀,幫助我們把目標函數(shù)剪成我們想要的樣子。
4.如何最大化互信息?
對比學習是一種無監(jiān)督學習,其目的是衡量兩個輸入的相似性。大家應該可以發(fā)現(xiàn),這不恰巧與互信息的定義一致嗎?那么,我們可以使用互信息來當作我們的Loss函數(shù)嗎?
答案當然是可以。但難度也是顯而易見的,我們有的只是樣本,不知道分布具體的表達式。不知道具體的表達式就無法算得互信息的具體數(shù)值,便無法進行反向傳播更新參數(shù)。
其實我們不一定非要求得互信息的解析解。長久以來的經(jīng)驗告訴我們,在實際應用中,數(shù)值解往往就夠了。在F-GAN
嚴格推導和證明了所有散度的下確界都由某個生成函數(shù)f
與某個共軛函數(shù)g
決定,于是我們借用F-GAN
中的思想,希望用逼近的方法讓互信息成為我們的損失函數(shù)。
由于所有散度都可歸納于一般的F-散度
,為了更泛化的結果,我們不止對KL散度進行推導,將上述共軛函數(shù)帶入,我們對F-散度
進行推導:

這里t為f的輸出,g為f的共軛函數(shù)。通過共軛函數(shù)這把剪刀,我們把f散度求解問題變成了求解兩分布下T(x)與g(T(x))期望之最大值問題,把一個抽象的問題具體化了。
于是,當F散度為KL散度時,使用上述推導結果,很容易就可以得到:

在本文中,作者借用MINE(Mutual Information Neural Estimation)
的結論。MINE
中使用的是Donsker-Varadhan Estimator(DV representation of KL divergence)
,該estimator
是互信息的一個下界。DV estimator
對F-GAN
導出的散度解析解作了一丟丟小改動,代入KL散度
便得到:

這里的epsilon
為我們的encoder
編碼器,也就是神經(jīng)網(wǎng)絡;T
為classifier
分類器,也就是最后的FC層或回歸頭。終于,原來那么抽象的問題,現(xiàn)在只要令兩批樣本(如,一張在沙漠的波斯貓圖片和一張在草地上大橘圖片)的期望盡可能大,那么就能盡可能提高互信息的下限,就可以通過曲線救國的方法,最大化兩批樣本MI。
這個過程中,神經(jīng)網(wǎng)絡學到的就是兩批樣本的通用信息,如貓咪眼睛的樣子、貓咪的爪子、貓咪的四肢等,噪音信息(如不同背景,沙漠、草地 etc.)等被忽略。
至此,原來無法解決的問題便解決了,對比學習打下了堅實的理論基礎。再回頭看一眼本文實際代碼中的Global Infomax
的Loss函數(shù)
,其中正樣本來自聯(lián)合分布,負樣本來自邊緣分布之積,是不是就非常清晰了呢?

還在啃論文的同學建議關注【學姐帶你玩AI】
公眾號上還有很多經(jīng)典論文論文解讀哦!
后臺回復“500”還能獲取
100多條論文解讀視頻+200多篇AI必讀論文