淺談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散度定義是
\[KL(P,Q)=\sum P(x)\log \frac{P(x)}{Q(x)} \]
當\(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}\),使得下面的目標最大:
\[R = \max_{f\in \mathcal{F}} |\mathbb{E}_{x\sim P(x)}f(x) - \mathbb{E}_{y\sim Q(y)}f(y)| \]
\[\hat R=\max_{f\in \mathcal{F}} \frac{1}{n}\sum_x f(x)-\frac{1}{m}\sum_y f(y) \]
這個目標為什么能反應出分布\(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)=\left<f,\phi(x)\right>_\mathcal{H} \]
利用重構屬性,可以非常輕松的將\(f\)與樣本\(x\)分開,然后可以非常輕松的對\(f\)取最大值。
因此我們假設\(f\in \mathcal{H}\)。
基於這樣的假設,我們有
\[R=\sup_{f}|\mathbb{E}_{x\sim P(x)}f(x) - \mathbb{E}_{y\sim Q(y)}f(y)| \]
\[=\sup_{f}|\mathbb{E}_{x\sim P(x)}\left<f,\phi(x)\right> - \mathbb{E}_{y\sim Q(y)}\left <f,\phi(y)\right>| \]
\[=\sup_{f}|\left<f,\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\right>| \]
進一步限制\(f\):我們假設\(f\)的模小於等於1,即\(\|f\|_\mathcal{H} \leq 1\)。
此時,當
\[f=\frac{\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)}{\|\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\|} \]
時,\(|\left<f,\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\right>|\)取最大值。
此時,
\[R = \|\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\|_{\mathcal{H}} \]
——————
注:可以將\(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的定義及其經驗評估為,
\[\text{MMD}(P,Q)=\left \|\mathbb{E}_P \phi(x) - \mathbb{E}_Q \phi(y)\right \| \]
\[\widehat{\text{MMD}}(P,Q)=\left \|\frac{1}{m}\sum_{x_i} \phi(x_i) - \frac{1}{n}\sum_{y_i} \phi(y_i)\right \|_2 \]
MMD如何計算
直接平方展開。
\[\widehat{\text{MMD}}(P,Q)^2=\left \|\frac{1}{m}\sum_{x_i} \phi(x_i) - \frac{1}{n}\sum_{y_i} \phi(y_i)\right \|^2_2 \]
\[=\|\frac{1}{m}\sum_{x_i} \phi(x_i)\|^2 + \|\frac{1}{n}\sum_{y_i} \phi(y_i)\|^2 - 2\|\frac{1}{m}\sum_{x_i} \phi(x_i) \frac{1}{n}\sum_{y_i} \phi(y_i)\| \]
而
\[\|\frac{1}{m}\sum_{x_i} \phi(x_i)\|^2=\frac{1}{m^2} (\phi(x_1)+\phi(x_2)+\cdots+\phi(x_m))^T(\phi(x_1)+\phi(x_2)+\cdots+\phi(x_m)) \]
\[=\frac{1}{m^2}\{\phi(x_1)^T\phi(x_1) + \cdots + \phi(x_1)^T\phi(x_m) \]
\[+\phi(x_2)^T\phi(x_1) + \cdots + \phi(x_2)^T\phi(x_m) \]
\[\cdots+\phi(x_m)^T\phi(x_1) + \cdots + \phi(x_m)^T\phi(x_m)\} \]
\[=\frac{1}{m^2}\{k(x_1,x_1)+k(x_1,x_2)+\cdots +k(x_1,x_m) + k(x_2,x_1)+\cdots+k(x_2,x_m) +\cdots\} \]
\[=\frac{1}{m^2}\sum_{i,j} k(x_i,x_j) \]
同理可得,
\[\|\frac{1}{n}\sum_{y_i} \phi(y_i)\|^2=\frac{1}{n^2}\sum_{i,j} k(y_i,y_j) \]
\[\|\frac{1}{m}\sum_{x_i} \phi(x_i) \frac{1}{n}\sum_{y_i} \phi(y_i)\|=\frac{1}{mn}\sum_{i,j}k(x_i,y_j) \]
所以有,
\[\widehat{\text{MMD}}^2=\frac{1}{m^2}\sum_{i,j} k(x_i,x_j)+\frac{1}{n^2}\sum_{i,j} k(y_i,y_j)-\frac{2}{mn}\sum_{i,j}k(x_i,y_j) \]
下面,將會介紹MMD的重要性質,如 \(MMD = 0\)與\(P=Q\)之間的等價性等。