MMD講解


MMD講解

描述一個隨機變量

去描述一個隨機變量,最直接的方法就是給出它的概率分布函數\(f(x)\)。一些簡單的分布可以這么干,比如正態分布給出均值和方差就可以確定,但是對於一些復雜的、高維的隨機變量,我們無法給出它們的分布函數。

這時候我們可以用隨機變量的來描述一個隨機變量,比如一階中心矩是均值,二階中心矩是方差等等。如果兩個分布的均值和方差都相同的話,它們應該很相似,比如同樣均值和方差的高斯分布和拉普拉斯分布。但是很明顯,均值和方差並不能完全代表一個分布,這時候我們就需要更高階的矩來描述一個分布。

舉個例子,就好比描述人一樣,如果兩個人身高、輪廓都一樣,我們會說這兩個人很像。但是如果要說這兩個人是一個人的話,我們如要更多的信息,比如血型、DNA等更加復雜的信息

而MMD的基本思想就是,如果兩個隨機變量的任意階都相同的話,那么兩個分布就是一致的。而當兩個分布不相同的話,那么使得兩個分布之間差距最大的那個矩應該被用來作為度量兩個分布的標准。

衡量兩個隨機變量的差異

MMD常被用來度量兩個分布之間的距離,是遷移學習中常用的損失函數。定義如下,\(x\)的分布為\(p\)\(y\)的分布為\(q\)

\[MMD[F,p,q]=\sup\limits_{\Vert f\Vert_{\mathcal{H}\leqslant1}}({E_p[f(x)]-E_q[f(y)])} \]

其中sup表示求上界,\(E_p\)表示求期望,\(f(·)\)表示求映射函數,sup下面表示的式子在再生希爾伯特空間中的范數應該小於等於1。

式子中的\(f\)就相當於將x映射到高階上去,比如\(x^n\),那么對應的期望值就相當於在求n階矩,然后將他們的上確界(最大值)作為MMD的值。

如何表示一個隨機變量的任意階矩

兩個分布應該是由高階矩來描述的,那么如何獲得一個隨機變量的高階矩呢?核函數。高斯核函數,它對應的映射函數恰好可以映射到無窮維上,映射到無窮維上再求期望,正好可以得到隨機變量的高階矩,這個方法有一個更高大上的名字,叫做kernel embedding of distributions,這個簡單理解就是將一個分布映射到再生希爾伯特空間(每個核函數都對應一個RKHS)上的一個點,這樣兩個分布之間的距離就可以用兩個點的內積進行表示!

\[MMD[F,p,q]=\sup\limits_{\Vert f\Vert_{\mathcal{H}}\leqslant1}({E_p[f(x)]-E_q[f(y)])} \]

其中\(E_p[f(x)]=\int_{\mathcal{X}}p(dx)f(x)=\int_{\mathcal{X}}p(dx)\left< k(x,·),f\right>_{\mathcal{H}_k}=\left<\int_{\mathcal{X}}p(dx)k(x,·),f \right>_{\mathcal{H}_k}=\left<\mu_p,f \right>_{\mathcal{H}_k}\)

\(\Vert f\Vert_{\mathcal{H}}\leqslant1\)目的也是為了上界避免隨意取到無窮大

第一個等號就是利用期望展開;第二個等號利用的是RKHS的再生性,其實就是RKHS中的\(f(x)\)都可以寫成一個無窮維的向量 \(k(x,·)\)與基底向量\(f\)的內積;第三個等號利用的是內積的性質;最后一個等號\(\mu_p\)表示的就是kernel mean embedding。意義就是將\(x\)利用\(k(x,·)\)映射到無窮維上,然后在每一個維度上都求期望。

這樣一來MMD的公式就變為

\[MMD[F,p,q]=\sup\limits_{\Vert f\Vert_{\mathcal{H}\leqslant1}}(\left<\mu_p-\mu_q,f \right>_{\mathcal{H}}) \]

根據內積的性質\(\left< a,b\right>\leqslant \Vert a\Vert\Vert b\Vert\),MMD公式可以寫為

\[MMD(p,q,\mathcal{H})=\Vert \mu_p-\mu_q\Vert_{\mathcal{H}} \]

但是\(\mu_p\)無法直接計算,可以使用均值代替,因為均值是期望的無偏估計。

假設\(\mathbf{X}\sim p,\mathbf{Y}\sim q\),而且\(\mathbf{X}\)有n個樣本,\(\mathbf{Y}\)有m個樣本,則

\[MMD[F,X,Y]=\Vert \frac{1}{n}\sum\limits_{i=1}\limits^{n}f(x_i)-\frac{1}{m}\sum\limits^{m}\limits_{j=1}f(y_i) \Vert_{\mathcal{H}} \]

到這里我們還算是沒有辦法求,因為\(f(x_i)\)是無窮維的。但是核技巧的關鍵就在於不需要顯式地表示映射函數\(f(x)\)來求兩個向量的內積。因此我們對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) \]

轉載/參考:https://zhuanlan.zhihu.com/p/163839117

https://www.cnblogs.com/zhangcn/p/13710192.html


免責聲明!

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



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