高維度的常態分佈長得像...蛋殼?


隱變量的內插

還記得經典的 word embedding 特性嗎? 在當時 Mikolov 這篇經典的 word2vec 論文可讓人震驚了
eking+(emanewoman)equeen

這樣看起來 embedding space 似乎滿足某些線性特性, 使得我們後來在做 embedding 的內插往往採用線性內插:
enew=te1+(1t)e2
讓我們把話題轉到 generative model 上面
不管是 VAE, GAN, flow-based, diffusion-based or flow matching models 都是利用 NN 學習如何從一個”簡單容易採樣”的分布, e.g. standard normal distribution N(0,I), 到資料分布 pdata 的一個過程.
x=Decoderθ(z),zN(0,I)

Lil’Log “What are Diffusion Models?” Fig. 1. 的 variable z 實務上大多使用 N(0,I) 的設定

(借用 Jia-Bin Huang 影片的圖 How I Understand Diffusion Models 來舉例)

因此如果我們想產生狗和牛的混合體, 是不是可以這樣作?
Decoderθ(tzdog+(1t)zcow),t[0,1]

答案是不行, 效果不好. 那具體怎麼做呢? 其實應該這麼做 [1]
Decoderθ(cos(tπ/2)zdog+sin(tπ/2)zcow),t[0,1]
要使用 spherical linear interpolation [2] 這種內插方式

或簡單說球面內插:

為什麼使用線性內插不好, 而需使用球面內插呢?
聰明的讀者或許會猜因為 z 是 normal distribution 或許是因為空間不是那麼線性的關係?
但就算使用線性內插好了, 也應該是符合 normal distribution 會產生的 sample 點阿?

所以究竟為何線性內插效果不好?
要回答這問題就牽涉到高維度下的常態分佈長相, 可能會跟你想的不一樣, 挺反直覺的!


高維度下的常態分佈

先問一個問題, 我們對一個常態分佈 N(0,σ2I) 採樣, 採樣出來的點大概會落在什麼位置?
我想大部分的回答都是集中在 mean 附近吧.
對, 在低維度下是對的. 但如果維度 D 很大, 其實幾乎只會落在 Dσ 的距離的球面上
[3] 提到, 對常態分佈, 我們將 Cartesian coordinate 換成角度和距離的座標, 並把角度全部積分只留下距離後得到”距離 r 的 pdf”:
p(r)=SDrD1(2πσ2)D/2exp(r22σ2)

其中 SD 是單位圓的球面面積, 跟 r 無關視為常數即可
重新整理一下把跟 r 無關的常數項合併為另一個常數 c
p(r)=crD1exp(r22σ2)
我們微分=0 並使用 chain rule 分析下去:
ddrp=ddrcrD1exp(r22σ2)=0r2=σ2(D1)=σ2D,Dr=Dσ,D
這告訴我們 p(r) 存在一個極大值! (可以驗證二次微分來確定是極大或極小值)
也就是說在 ˆr=Dσ 的距離下 density p(ˆr) 是最大的
[3] 繼續分析到在 ˆr 附近擾動一下 (εˆr) 的 density 變化為:
p(ˆr+ε)=p(ˆr)exp(3ε22σ2)
白話就是在 ˆr 附近的 density 會指數性下降! 下圖為示意圖:

因此我們考慮累積分佈函數 (cdf) 會發現在 ˆr 的值會突然從 0 飆到 1.
高斯分布的 pdf 幾乎存在 ˆr=Dσ 這個半徑的圓表面上!

💡 數學分析是一回事, 如果想更值觀的理解為何如此, 不妨這麼想. 這些 D 個維度只要有任一維度採樣不在 mean 附近, 整個 z 就不會在 mean 了. 所以當維度一高, 似乎不在 mean 也很合理.


回答為何要球面內插

在來回頭看狗和牛的線性內插
Decoderθ(tzdog+(1t)zcow),t[0,1]

因為 zdogzcow 是從 N(0,σ2I) 採樣出來的, 由上面一段討論我們知道, 他們有非常高的機率是在那個半徑為 ˆr 的圓球表面採樣出來的
做了線性內插出來的值, 其實根本不符合從 N(0,σ2I) 採樣出來的點.
所以使用球面內插就清楚了然了
Decoderθ(cos(tπ/2)zdog+sin(tπ/2)zcow),t[0,1]


後記

在看蘇神的 生成扩散模型漫谈(四):DDIM = 高观点DDPM 時看到使用球面內插. 突然間跟學生時代看的 PRML book 裡提到高微度常態分佈的長相 [3] 連結起來, 這種跨越好幾年把兩個東西連結在一起的感覺真有意思!
總之看到高維度的常態分佈, 腦袋要想的就是這個分布長的就像是只有蛋殼的蛋.


Reference

  1. 生成扩散模型漫谈(四):DDIM = 高观点DDPM, 或 DDIM 論文 Appendix D.5 裡面都有提及使用球面內插
  2. scipy.spatial.geometric_slerp, wiki slerp
  3. Bishop PRML book Chapter 1 的 excercise 1.20
  4. 一些圖的.pptx