淺談Maximum Mean Discrepancy (MMD)
MMD有什么用
MMD用於檢驗兩堆數據是否是來源於同一分布,即假設
\(D_s = (x_1,x_2,\cdots,x_n) \sim P(x)\)和\(D_t=(y_1,y_2,\cdots,y_n)\sim Q(y)\),MMD用於檢驗\(P=Q\)是否成立。
MMD與KL散度(Kullback–Leibler divergence)的區別?
KL散度定義是
當\(P(x)\)與\(Q(x)\)越相似,KL散度越小。
為了計算KL散度,必須要知道\(P\)和\(Q\)的密度函數。因此KL散度常用於監督學習方法,用於衡量訓練的分布\(P_{model}\)與真實分布\(Q_{real}\)之間的相似性。(交叉熵損失本質上就是KL散度的變形)
而MMD評價兩堆數據是否具有相似性。這與KL散度具有本質上的不同。
例子
假設有兩堆手寫數字的圖片,一堆是數據庫MINIST里面的,一堆是由GAN模型生成的。如何斷別GAN生成圖片的質量呢?(即檢驗兩堆數據是否來自於同一分布)
MMD就是干這個的。而KL散度是無法處理這個問題的。
MMD的定義
尋找一個"well-behaved"函數\(f:\mathcal{x}\mapsto \mathbb{R}\in \mathcal{F}\),使得下面的目標最大:
這個目標為什么能反應出分布\(P\)和\(Q\)之間的差異呢?
函數\(f\)將分布\(P\)和\(Q\)中的所有樣本映射成一個實數,遍歷函數空間\(\mathcal{F}\)中所有的函數,將這兩堆實數的均值差最大值用於衡量分布的差異。
如果\(P=Q\),則對於任意的\(f\),都有\(|\mathbb{E}_{x\sim P(x)}f(x) - \mathbb{E}_{y\sim Q(y)}f(y)|=0\),故最大差異\(R=0\)。
如果\(P\)和\(Q\)很相似,則可能存在很多\(f\)使得\(|\mathbb{E}_{x\sim P(x)}f(x) - \mathbb{E}_{y\sim Q(y)}f(y)|=0\),因此這些\(f\)並不能客觀反映出\(P\)和\(Q\)之間的差異,所以需要選擇一個合適的\(f\),使得兩個分布最不相似的特性被刻畫出來。
在RKHS中計算R
\(R\)中涉及到積分運算,而且我們只關心\(R\)的數值,並不關心\(f\)到底是什么。
為了解決這些問題,我們可以限制\(f\)的形式。
回憶一下
對於核函數\(k\),其對應的特征向量是\(\phi:\mathcal{x}\mapsto \mathcal{H}\),其中\(\mathcal{H}\)是與\(k\)相對應的再生核Hilbert空間。
對於\(\forall f\in \mathcal{H}\),核函數\(k\)滿足重構屬性:
利用重構屬性,可以非常輕松的將\(f\)與樣本\(x\)分開,然后可以非常輕松的對\(f\)取最大值。
因此我們假設\(f\in \mathcal{H}\)。
基於這樣的假設,我們有
進一步限制\(f\):我們假設\(f\)的模小於等於1,即\(\|f\|_\mathcal{H} \leq 1\)。
此時,當
時,\(|\left<f,\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\right>|\)取最大值。
此時,
——————
注:可以將\(f\)和\(\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\)當成是\(\mathbb{R}^n\)中的元素(兩個向量)。當兩個向量相等時,其積取最大值。
——————
MMD定義
假設\(\mathcal{X}\)是一個非空集,函數\(k:\mathcal{X}\times \mathcal{X}\mapsto \mathbb{R}\)是一個正定核函數,其對應的RKHS\(\mathcal{H}\),特征映射是\(\phi:\mathcal{X}\mapsto \mathcal{H}\)。給定兩個數據集,\(D_s = (x_1,x_2,\cdots,x_n) \sim P(x)\)和\(D_t=(y_1,y_2,\cdots,y_m)\sim Q(y)\),則最大均值依賴MMD的定義及其經驗評估為,
MMD如何計算
直接平方展開。
而
同理可得,
所以有,
下面,將會介紹MMD的重要性質,如 \(MMD = 0\)與\(P=Q\)之間的等價性等。