涉及的領域可能有些生僻,騙不了大家點贊。但畢竟是人工智能的主流技術,在園子卻成了非主流。
不可否認的是:乃值錢的技術,提高身價的技術,改變世界觀的技術。
寫在前面
關於變分,通常的課本思路是:
GMM --> EM --> VI --> Variational Bayesian Gaussian Mixture
GMM是個好東西,實用的模型,也是講解收斂算法的一個好載體。
關於這部分內容,如果你懂中文,推薦一個人,徐亦達老師。中文教學,親手推算公式給讀者的視頻,是需要珍惜和珍藏的。
因為提供了ppt,也有配套的視頻,於是上半年將鏈接中的內容都走了一遍,感覺棒棒噠~
基本上涵蓋了該領域主流技術七成的基礎內容,同時也節省了我大量的時間,學完后內力通常都能提高一兩成的樣子。
再次道一句:“好人一生平安“
GMM --> EM
From: http://www-staff.it.uts.edu.au/~ydxu/ml_course/em.pdf
解決的問題也很簡單,一堆點,你通過平移或是縮放,用幾個高斯去擬合數據。到底用幾個高斯,這是個問題,而且是個高級問題。能提出這個問題,說明你是一只有潛力變成鳳凰的菜雞。
我們目前先考慮采用固定個數的高斯去”盡量地”擬合。
已知高斯的個數
這里“通過肉眼”觀察然后知道了“是三個高斯”。
Figure, fitting with three Gaussian distribution
注意,這里的高斯是多維高斯;
總有人說數學基礎很重要,確實如此,問問自己兩個最最基本的問題:
-
- 多維高斯的表達形式是?
- 有一個滿足多維高斯的變量x,那么x2滿足的分布以及參數是?
暫時不會也沒關系,畢竟不是每個人都想當牛人拿高薪求創業。怕得就是不願懂但還是想當牛人拿高薪求創業的孩子們。
如何懂?可以拿一本《多元變量分析》or《矩陣論》打基礎。
公式解析
說到底,就是個如何估參的問題。
考慮每個點屬於各個高斯的概率。
公式1
圖中的每個點,你可以說屬於任何一個高斯,只是概率不同罷了。
自然而然地,需要加上一個隱變量z來表示這個意思: p(Z|X, Θ) #某個點X屬於哪一個高斯的概率
公式2:更新θ
關於這個更新theta的公式,其實這么想會容易理解一些:
A君:我覺得目前的Θ(g)已經是最優了。
B君:真得?如果你說的沒錯,那么argmax后對p(Z,X|Θ)中Θ的求解結果就應該是你說的這個最優Θ(g),你確定?賭一把?
A君:這個嘛,你說的沒錯,如果得出的結論Θ(g+1)不等於我這個最優Θ(g),那么我就說錯了,得修正Θ(g) = Θ(g+1)。
B君:問題來了,我也不知道如此更新下去,收斂的目的地是否是最優的Θ。
A君:恩,需要去證明。
B君:是的。
權衡關系
3漲是目的;更新Θ后,若1漲,2跌就能達到目的
先證明了:只要θ在變,【2】就會跌;【詳見原視頻講解,有用到Jensen's inequality】
所以,【1】漲【3】肯定也漲。
那么,如何讓【1】漲呢?這不就是【公式2】的意思么(argmax)!
注意數學基礎,【公式2】就是【1】部分,只是表達方式不同,一個是期望的形式,一個是積分的形式。
【公式2】中明顯有兩個概率,把每個概率展開,寫出具體的形式:
Likelihood 形式
把這個具體的形式帶入【公式2】,然后……<看視頻中計算過程>……,【公式2】變為了:
這就是EM方法中的likelihood,使其最大化即可;同時也是更新θ的公式。
通常,有了likelihood也就有了一切,之后求導便是。
對誰求導?你想優化誰就對誰求導!
要優化誰?當然是θ這個向量代表的各個具體的參數咯!
Θ = {α1, . . . αk , µ1, . . . µk , Σ1, . . . Σk }
EM過程
既然是EM,那么,
Iterate:
1. [E-step] Infer missing values {latent variables} given current parameters --> 根據公式求p(Z|X,θ),其實有點高斯采樣的感覺,得到了下圖中每個采樣點的p(l|Xi,θ(g))
2. [M-step] Optimize parameters {θ} given the “filled-in” data --> 套入下面公式即可;公式通過求導的結果而來,具體會用到“拉格朗日乘子法+KKT條件”
就是這么一回事,感覺也沒什么可說。 但細細想來有一個問題,上述過程中涉及到大量的貝葉斯定理,也就會有求后驗分布這樣的過程,如果涉及的分布不是高斯這樣的友好分布,導致求后驗分布困難,那上述的這段流程豈不是走不下來了么?
整體思路
簡單易懂的理解變分其實就是一句話:用簡單的分布q去近似復雜的分布p。
首先,為什么要選擇用變分推斷?
因為,大多數情況下后驗分布很難求啊。如果后驗概率好求解的話我們直接EM就搞出來了。
當后驗分布難於求解的時候我們就希望選擇一些簡單的分布來近似這些復雜的后驗分布,至於這種簡單的分布怎么選,有很多方法比如:Bethe自由能,平均場定理。而應用最廣泛的要數平均場定理。為什么?
因為它假設各個變量之間相互獨立砍斷了所有變量之間的依賴關系。這又有什么好處呢?
我們拿一個不太恰當的例子來形象的說明一下:用古代十字軍東征來作為例子說明一下mean field。十字軍組成以騎兵為主步兵為輔,開戰之前騎兵手持重標槍首先沖擊敵陣步兵手持刀斧跟隨,一旦接戰就成了單對單的決斗。那么在每個人的戰斗力基本相似的情況下某個人的戰斗力可以由其他人的均值代替這是平均場的思想。這樣在整個軍隊沒有什么戰術配合的情況下軍隊的戰斗力可以由這些單兵的戰斗力來近似這是變分的思想。
當求解Inference問題的時候相當於積分掉無關變量求邊際分布,如果變量維度過高,積分就會變得非常困難,而且你積分的分布p又可能非常復雜因此就徹底將這條路堵死了。采用平均場就是將這種復雜的多元積分變成簡單的多個一元積分,而且我們選擇的q是指數族內的分布,更易於積分求解。如果變量間的依賴關系很強怎么辦?
那就是structured mean field解決的問題了。
說到這里我們就知道了為什么要用變分,那么怎么用?
過程很簡單,推導很復雜。整個過程只需要:
- 根據圖模型寫出聯合分布
- 寫出mean filed 的形式(給出變分參數及其生成隱變量的分布)
- 寫出ELBO(為什么是ELBO?優化它跟優化KL divergence等價,KL divergence因為含有后驗分布不好優化)
- 求偏導進行變分參數學習
EM --> VI
From: http://www-staff.it.uts.edu.au/~ydxu/ml_course/variational.pdf
該頁表述很清晰,p是未知的真實分布,如何找一個q分布來盡可能地近似p,以下就是理論依據。
Figure, ln (p(X)) = Evidence Lower Bound (ELOB) + KL divergence
近似方法
做一個iid假設來近似真實分布p:
之后,將L(q)替換為iid假設后,成為如下形式。
Figure, Evidence Lower Bound (ELOB)
到此,菜雞可能會有點迷惑,這么做到底為了什么?不用怕,其實當初我也迷惑,:)
但到此,我們至少知道做了一個iid的假設,這個很重要,記住這一步。
那么,為了理解這個假設,趁熱先直接上個例子如何:[Bayes] Variational Inference for Bayesian GMMs
鏈接中的目的:
-
- 推導出近似各個變量的公式。
為什么不能用EM?
-
- 例子中涉及的分布除了高斯還有好多,情況太復雜,一看就是后驗不好求。
為什么要折騰這個復雜的東東?
-
- 示意圖很明了,與普通GMM相比,模型加了dirichlet,就跟突然有了大腦。
變分的必要性
看來,模型加了先驗(變得復雜),對 performance 確實有莫大的好處。
模型復雜就不好估參,其中后驗計算復雜也是原因之一。
看上去,變分推斷的必要性成了顯而易見的常識。
寫到這里,希望菜雞對變分有了更深的認識,本文的初衷不是教材,更多的是充當tutor,幫助大家理清思路,加深認識,建立知識體系。
“學習”這種東西,最終還是自己的事兒,但“引導”確實需要他人來給予。
書歸正傳,這個結論就是使用變分的核心:
迭代過程:注意一一對應的關系,變量命名有區別,注意分辨
求近似公式的方法用起來很方便啊,如何得到的呢?
這就要回頭到 Figure, Evidence Lower Bound (ELOB) ,繼續我們的思路。
“做了一個iid的假設,這個很重要”,實例中也就是:
為什么一定要做這個假設?
因為變分中迭代過程兩部分變量的關系:第一部分迭代結果給第二部分;第二部分迭代結果給第一部分;
當然,這兩部分變量要假設為iid咯。
突然,就這么好理解了……
至於具體的原理推導過程,在此不添加“網絡信息冗余”,建議看原視頻講解。
VI --> Variational Bayesian GMM
From: http://www.cnblogs.com/jesse123/p/7501743.html
Ref: 公式推導過程
這部分內容得請高人,為什么會自動調整擬合混合分布,涉及到Dirichlet process的研究,讀者姑且把Dirichlet看做是每個高斯的權重調整,就相當於圖像中的透明屬性。
不太清楚目前研究的進展如何,理論基礎可能還未完備,但實踐效果往往挺好。
不管是GMM還是Variational Bayesian GMM,都是一種聚類方法,聚類方法除了貝葉斯統計派,還有其他很多種,如下:
Comparing different clustering algorithms on toy datasets
本篇就到這里,關於變分的使用,未來還會有涉及,慢慢體會。
願菜雞們建立起人工智能的知識體系,與硅谷接軌,而非被路人忽悠。
End.