1. 混合模型簡介
如果我們定義觀測變數和潛在變數的一個聯合概率分佈,那麼對應的觀測變數本身的概率分佈可以通過求邊緣概率的方法得到。這使得觀測變數上的複雜的邊緣概率分佈可以通過觀測與潛在變數組成的擴充套件空間上的更加便於計算的聯合概率分佈來表示。
因此,潛在變數的引入使得複雜的概率分佈可以由簡單的分量組成。
2. 混合模型的一個特例 - KMean聚類
除了提供一個構建更復雜的概率分佈的框架之外,混合模型也可以用於資料聚類,或者說聚類是混合模型一種特定形式。
我們從這小結開始,嘗試從“資料聚類問題”切入對混合模型的討論,我們來討論資料點集合中的聚類的問題。
0x1:K均值聚類
我們首先使用一個非概率的方法解決這個問題,即K均值演算法。
在我們後面談到混合概率分佈的潛在變數的時候,其中離散潛在變數可以被看作將資料點分配到了混合概率分佈具體成分當中。K均值演算法對應於用於高斯混合模型的EM演算法的一個特定的非概率極限
1. 問題場景
我們考慮尋找多維空間中資料點的分組或聚類的問題。假設我們有一個資料集,它由 D 維歐幾里德空間中的隨機變數 x 的 N 次觀測(N次獨立分佈取樣)組成。我們的目標是將資料集劃分為 K 個類別。現階段我們假定 K 的值是給定的。
2. 形式化描述K均值
直觀上講,我們會認為由一組資料點構成的一個聚類中,聚類內部點之間的距離應該小於資料點與聚類外部的點之間的距離。
為了形式化地說明這個概念,引入一組 D 維向量,其中 k = 1,2,....,K,且是與第 k 個聚類關聯的一個代表,我們可以認為表示了聚類的中心。我們的目標是找到資料點分別屬於的哪一個類,使得每個資料點和與它最近的向量之間的誤差評估函式(例如平方和)最小。
我們定義一些記號來描述資料點的聚類情況,對於每個資料點,我們引入一組對應的二值指示變數,其中k = 1,2,....,K 表示資料點屬於 K 個聚類中的哪一個,從而如果資料點被分配到類別 k,那麼=1,且對於 j != k,有=0。這其實就是一種”“one-hot”編碼方法。
之後我們可以定義一個目標函式,也即損失函式(loss function):
它表示每個資料點與它被分配的向量之間的距離的平方和。我們的目標是找到和的值,使得 J 達到最小值。
3. 求解目標函式極值的過程 - EM過程
我們可以用一種迭代的方法完成K均值的目標函式,其中每次迭代涉及到兩個連續的步驟,分別對應於和的最優化。
1)首先,我們為選擇一些初始值。即隨機選擇一些初始的質心。
2)然後,在第一階段,我們關於最小化 J,保持固定。對求偏導我們就會發現,最優化公式可以轉化為。很顯然,即在現有質心的前提下,將資料點歸類為距離最近的聚類點,即使 J 最小。
3)在第二階段,我們關於最小化 J,保持固定。目標函式 J 是的一個二次函式,直接求導求極值即可,,可以很容易地解出,即。這個表示式有一個簡單質樸的含義,即在現有聚類概率分佈的前提下,重新計算各類中新的質心(取均值),這樣即使得 J 最小。
4)不斷重複這個二階段優化直到收斂(直到聚類的分配不改變,或直到迭代次數超過了某個最大值)。
我們看到,更新和更新的兩個階段分別對應於 EM 演算法中的 E(期望)步驟和 M(最大化)步驟。
由於每個階段都減小了目標函式 J 的值,因此演算法的收斂性得到了保證。
0x2:K均值改進 - K中心點演算法(K-medoids algorithm)
K均值演算法的基礎是將平方歐幾里德距離作為資料點與代表向量之間不相似度的度量,這不僅限制了能夠處理的資料變數的型別(例如離散標籤情況),而且使得聚類中心的確定對於異常點不具有魯棒性。
我們可以這樣推廣K均值演算法:引入連個向量 x 和 x′ 之間的一個更加一般的不相似度的度量,然後最小化如下的失真度量(損失函式):
與普通的K均值一樣
1)對於給定的聚類代表,E步驟涉及到為每個資料點分配聚類,使得與對應的聚類集中資料點間的不相似程式最小。這一步的計算代價為,與標準的K均值演算法的情形相同。
2)對於不相似程度度量的一般選擇,M步驟通常比K均值的情形更加複雜,因此通常會將聚類原型限制為等於某個分配到那個聚類的資料向量,因為這使得演算法可以適用於任何不相似程度的度量,
只要它能夠被計算。因此,對於每個聚類 k,M步驟涉及到在分配到那個聚類的個點上的離散搜尋,這需要次對於的計算。
0x3:硬劃分與概率分佈軟劃分
K均值演算法的一個值得注意的特徵是,在每次迭代中,每個資料點都被分配到一個唯一的聚類中,這友類類似經典決策樹每層葉子的硬劃分。雖然某些資料點與其聚類中心的距離遠小於其他中心的聚類,但是也存在其他的資料點,位於兩個聚類中心的大概中間的位置。在後一種情形中,強行將資料點分配到最近的聚類不是最合適的。
類似於XGboost對決策樹的改進(採用權值的方式代替決策樹的硬分類),通過對K均值採用概率的方法,我們可以得到對資料點聚類的“軟分配”,它反映了在最合適聚類分配上的不確定性,這個概率形式帶來了一些數值計算上的優勢。
3. 混合高斯
我們知道,高斯混合模型可以看成高斯分量的簡單線性疊加,目標是提供一類比單獨的高斯分佈更強大的概率模型(多峰分佈概率分佈)。更進一步探求本質,我們可以使用離散潛在變數來描述高斯混合模型,這會讓我們更加深刻地認識混合高斯模型,也會讓我們瞭解期望最大化演算法。
0x1:通過一個簡單的“1-of-K”例子理解高斯混合分佈的聯合概率形式
讓我們引入一個 K 為二值隨機變數 z,這個變數採用了“1-of-K”表示方法,其中一個特定的元素等於1,其餘所有的元素都等於0。
我們看到的值滿足概率分佈的要求,即,我們根據邊緣概率分佈和條件概率分佈定義聯合概率分佈。
z 的邊緣概率分佈根據混合係數進行賦值,即:,其中以及
因此,給定 z 的一個特定的值(即選定一個特定的基模型),x 的條件概率分佈是一個高斯分佈:
聯合概率分佈為,從而 x 的邊緣概率分佈可以通過將聯合概率分佈對所有可能的 z 求和的方式得到,即:
對於每個觀測資料點,存在一個對應的潛在變數
這非常關鍵,因為這意味著潛在變數不在是一個未知的變數,我們可以將其轉化為對 x 的計算優化過程中(例如求導)。
得到這個聯合概率分佈的好處體現在幾個方面:
1. 我們找到了高斯混合分佈的一個等價的公式,可以將潛在變數 z 顯示地寫出
這麼做的意義在於,我們現在能夠對聯合概率分佈操作。而不是對邊緣概率分佈操作,這會產生極大的計算上的簡化,後面我們將要討論的期望最大化(EM)演算法,將會看到這點。
2. 給定 x 的條件下,潛在變數 z 的條件概率可以用貝葉斯定義求出
我們可以用表示,它的值可以使用貝葉斯定理求出:
我們將看成=1的先驗概率
將看成觀測到 x 之後,對應的後驗概率,也可以理解為分量 k 對於“解釋”觀測值 x 的“責任”(responsibility)
0x2:最大似然公式 - 高斯混合模型求解引數的基本策略
假設我們有一個觀測的資料集,我們希望使用混合高斯模型來對資料進行建模。我們可以將這個資料集表示為一個的矩陣,其中第 n 行為。類似地,對應的隱含變數會被表示一個的矩陣,其中第 n 行表示為。
如果我們假定資料點獨立地從概率分佈中抽取,那麼我們可以使用下圖所示的圖模型來表示這個獨立同分布資料集的高斯混合模型。
它對應的對數似然函式為:
最大化高斯混合模型的對數似然函式,比單一的高斯分佈的情形更加複雜。困難的來源在於公式中,對 k 的求和出現在對數計算內部,從而對數函式不再直接作用於高斯分佈。如果我們令對數似然函式的導數等於零,那麼我們不會得到一個解析解,這給求導計算帶來很大的困難。
一種方法是使用基於梯度的優化方法。雖然梯度的方法是可行的,並且梯度方法在混合密度網路的計算中起到了重要作用。但是我們這裡討論另一種主流的演算法,被稱為EM演算法。它具有廣泛的適用性,同時也是變分推斷的基礎。
0x3:用於高斯混合模型的EM
一種優雅並且強大的,用於尋找帶有潛在變數的模型的最大似然解方法,被稱為期望最大化演算法(expectation-maximization algorithm),或者EM演算法 。實際上,EM演算法是可以推廣到更一般化的變分推斷框架中的,但是我們在這小結不著急,我們從高斯混合模型作為切入點,給出EM演算法的一種非形式化的描述。
首先,讓我們寫下似然函式的最大值必須滿足的條件,令公式中關於高斯分量的均值的均值等於零,我們有:
值得注意的是,後驗概率(或者說是“責任”)很自然地出現在了等式右側分母中。兩側同乘(假設矩陣是非奇異的),整理,可得:
,其中
我們可以將看作分配到聚類 k 的資料點的有效數量。仔細觀察這個公式會發現,第 k 個高斯分量的均值通過對資料集裡所有的資料點求加權平均的方式得到,而這裡所謂的權因子又是由後驗概率給出,而表示分量 k 對生成的責任(也可以理解為資料集分佈的概率分佈)。
如果我們對關於的導數為零,然後用一個類似的推理過程,使用單一高斯分別協方差矩陣的最大似然結果,我們有:
這與一元高斯分佈的對應的結果具有相同的函式形式,但是所不同的是,每個資料點都有一個自己的權值(不像K均值那樣是硬劃分),權值等於對應的後驗概率,分母為與對應分量相關聯的資料點的有效數量(分類集中的樣本數量)。
最後,我們關於混合係數最大化,把限制條件考慮進去,即混合係數的累加和等於1。使用拉格朗日乘數法,最大化下面的量:
求導可得:
在右側分母中,我們再次看到了“責任”這一項。將兩側乘以,對 k 求和,會發現。使用這個結果消去,整理可得:。
一個非常質樸的表徵含義:第 k 個分量的混合係數為那個分量對於解釋資料點的“責任”的平均值。
值得注意的是,上式並沒有給出混合模型引數的一個解析解,因為“責任”在公式中是以一種複雜的方式依賴這些引數。
然而,這些結果給出了一個簡單的迭代方法來尋找問題的最大似然解。整個迭代過程是EM演算法應用於高斯混合模型的一個例項。
1)我們首先為均值、協方差、混合係數選擇一個初始值,計算對數似然函式的初始值。
2)然後,我們交替進行兩個更新,被稱為
2.1)E步驟(使用當前引數值計算責任):在E步驟中,我們使用引數的當前計算公式給出的後驗概率(也被稱為責任)
2.2)M步驟(使用當前的責任重新估計引數):然後在M步驟中,我們將E步驟計算出的概率用於最大化步驟,重新對模型引數(均值、協方差、混合係數)進行估值。,,
。然後使用新的模型引數進入下一輪E步驟
3)計算對數似然函式::檢查引數或者對數似然函式的收斂性,如果沒有滿足收斂的準則,則返回第2)步。
每次通過E步驟和接下來的M步驟對引數的更新確保了對數似然函式的增大,在實際應用中,當對數似然函式的變化量或者引數的變化量地域某個閾值時,我們就認為演算法收斂。
上圖給出了將兩個⾼斯分佈組成的混合概率分佈的EM演算法應⽤於⽼忠實間歇噴泉資料集的情形。這⾥,我們使⽤了兩個⾼斯分佈的混合(K=2)。
分佈中⼼的初始值與圖中的K均值演算法使⽤了相同的初始值,精度矩陣被初始化為正⽐於單位矩陣。
圖(a)⽤綠⾊標記出了資料點,以及初始的混合模型的配置,其中兩個⾼斯分量的⼀個標準差位置的輪廓線分別⽤紅⾊圓圈和藍⾊圓圈標記。
圖(b)給出了初始E步驟的結果,其中每個資料點的顏⾊中,藍⾊所佔的⽐重等於由藍⾊分量⽣成對應資料點的後驗概率,紅⾊所佔的⽐重等於由紅⾊分量⽣成對應資料點的後驗概率。因此,對於屬於兩個聚類的後驗概率都較⼤的資料點來說,顏⾊看起來是紫⾊的。
圖(c)給出了第⼀個M步驟之後的結果,其中藍⾊⾼斯分佈的均值被移⾄資料點的均值,同時根據屬於藍⾊類別的每個資料點的概率進⾏加權。換句話說,它被移到了藍⾊標記資料點的質⼼。類似地,藍⾊⾼斯分佈的協⽅差被設定為藍⾊標記資料點的協⽅差。紅⾊分量的情形與此類似。圖(d),(e)和(f)分別給出了2次、5次、20次完整的EM迴圈之後的結果。在圖(f)中,演算法接近收斂。
注意:
1. 與K均值演算法相比,EM演算法在達到(近似)收斂之前,經歷了更多次的迭代,每個迭代需要更多的計算量。因此,通常執行K均值演算法找到高斯混合模型的一個合適的初始化值,輸入EM,接下來使用EM演算法進行微調節。 2. 協方差矩陣可以初始化為通過K均值演算法找到的聚類的樣本協方差。 3. 混合係數可以被設定為分配到對應類別中的資料點所佔的比例。
4. EM的另一種觀點 - 泛化討論
我們繼續討論EM演算法的另⼀種觀點,其中潛在變數起著重要的作。我們⾸先使⽤⼀種抽象的⽅式討論這種⽅法,然後我們再次考慮⾼斯混合模型的例⼦,來具體說明這個模型。
EM演算法的目標是找到具有潛在變數的模型的最大似然解。
我們將所有觀測資料的集合記作,其中第 n 行表示,所有潛在變數的集合記作,對應的行為。所有模型引數的集合被記作。
因此對數似然函式為:,該式同樣適用於連續潛在變數的情形,只需要對的求和替換為積分即可。
一個關鍵的現象是,對於潛在變數的求和位於對數的內部。即使聯合概率分佈屬於指數族分佈,但是由於這個求和式的存在,求和得到的結果邊緣概率分佈通常也不是指數族分佈。求和式的出現阻止了對數運算直接作用於聯合概率分佈,使得最大似然接的形式更加複雜。
現在假設對於中的每個觀測,我們都有潛在變數的對應值。我們將稱為完整(completely)資料集,並且我們稱實際的觀測資料集是不完整的(incomplete)。
完整資料集的對數似然函式的形式為,並且我們假定對這個完整資料的對數似然函式進行最大化是很容易的。然而遺憾的是,在實際應用中,我們沒有完整資料集(事實上如果有完整資料集就不要建模預測了),只有不完整的資料。我們關於潛在變數的取值的知識僅僅來源於後驗概率分佈。
1)由於我們不能使用完整資料的對數似然函式,因此我們反過來考慮使用當前的引數值,在潛在變數的後驗概率分佈下,使用這個後驗概率分佈計算完整資料對數似然函式對於一般的引數值的期望。這個期望被記作,這對應於EM演算法中的E步驟:
2)在接下來的M步驟中,我們最大化該式:來確定修正後的引數估計。如果當前對於引數的估計為,那麼一次連續的E步驟和M步驟會產生一個修正的估計。
注意,在的定義中,對數操作直接作用於聯合概率分佈,因此根據假設,對應的M步驟的最大化是可以計算的。
每個EM迴圈都會增大不完整資料的對數似然函式(除非已經達到區域性極大值),EM的迭代過程是由資料集本身的概率分佈驅動的,如果資料集本身存在區域性最優區域,EM演算法就有可能在EM過程中落入該區域。
0x1:重新考察高斯混合模型
我們繼續考慮將EM演算法的潛在變數的觀點應用於高斯混合模型例子。我們知道,在高斯混合模型的求解中,我們的目標是最大化對數似然函式:
(1)
它是使用觀測資料集進行計算的,我們看到這個計算比單一高斯分佈的情形更加困難,因為對 k 的求和出現在對數運算內部。
現在考慮對完整資料進行最大化。根據公式和公式,似然函式的形式為:,其中表示的第 k 個分量。取對數,我們有:(2)
(2)公式和(1)公式對比,我們看到在 k 上的求和與對數運算的順序交換了。對數運算現在直接作用於高斯分佈上,而高斯分佈本身是指數族分佈的一個成員,這個方法產生了最大似然問題的一個簡單得多的解。
因此我們看到,完整資料的對數似然函式可以用一種簡單的方法求出最大值的解析解。然而,在實際應用中,我們並沒有潛在變數的值,因此,與之前討論的一樣,我們考慮完整資料對數似然函式關於潛在變數後驗概率分佈的期望,形式為:
。
因此後驗概率分佈可以在 n 上進行分解,從而是獨立的,指示值的期望為:
它就是 k 分量對於資料點的“責任”,於是,完整資料的對數似然函式的期望值為:,接下來可以使用EM步驟進行迭代求解。在後面的討論中,我們會繼續深入討論完整資料的對數似然函式的期望的作用。
0x2:與K均值的關係
高斯模型的EM演算法和K均值演算法,在本質上有很強的相似性。
1. K均值演算法對資料點的聚類進行了“硬”分配,即每個資料點只屬於唯一的聚類。 2. 而EM演算法基於後驗概率分佈,進行了一個“軟”分配
實際上,我們可以將K均值演算法看成高斯混合模型的EM演算法的一個特殊的極限情況。下面我們來討論這種情況:
考慮一個稍微特殊的高斯混合模型,其中混合分量的協方差矩陣為,是一個被所有分量共享的方差引數,是單位矩陣,從而:。
我們現在考慮K個這種形式的高斯分佈組成的混合模型的EM演算法,其中我們將看作一個固定的常數,而不是一個需要重新評估的引數。
對一個特定的資料點,後驗概率(“責任”)為:。
如果我們考慮極限情況(所有的資料點都有且只屬於一個分類,不存在概率分佈,則方差為0),那麼我們看到,在分母中,最小的項將會慢慢地趨近於零,因此對於資料點,只有項 j 的“責任”趨近於1,其他的項的責任都趨近於0.
因此,在這種極限情況下,我們得到對資料點聚類的一個硬分類,與K均值演算法相同,從而,因此,每個資料點都被分配為距離最近的均值的聚類。這樣,EM重估計就簡化為了K均值的結果。
最後,在極限的情況下,公式給出的完整資料的對數似然函式變成了:。
因此在極限的情況下,最大化完整對數似然函式的期望等價於最小化K均值演算法的失真度量J。
0x3:與伯努利分佈的混合
我們之前的討論集中在由混合高斯模型描述的連續變數的概率分佈上,為了更加泛化的討論混合模型(混合模型不依賴具體的概率分佈先驗假設),我們現在討論由伯努利分佈描述的離散二值變數的混合,這個模型也被稱為潛在分佈(latent class analysis)。這個模型不僅具有實際應用的價值,還是我們討論離散變數上的馬爾科夫模型的基礎。
考慮D個二值變數組成的集合,其中,每個變數都由一個引數為的伯努利分佈控制,即:
,其中,,且。我們看到,在給定的條件下,各個變數是獨立的。
因此,在獨立同分布情況下,這個分佈的均值和方差可以很容易求得:。
我們先來嘗試討論這種分佈的有限混合,即:,其中,,且。
這個混合分佈的均值和方差為:,其中。
由於協方差矩陣不再是對角矩陣,因此混合分佈可以描述變數之間的相關性,這與單一的伯努利分佈不同。
如果我們有一個資料集,那麼這個模型的對數似然函式為:。
和在高斯混合模型中一開始的情況一樣,我們看到求和運算位於對數運算內部,從而最大似然解沒有解析解。
為了解決這個問題,我們需要引入混合伯努利分佈的最大化似然函式的EM演算法。
1. 混合伯努利分佈的最大化似然函式的EM演算法推導
我們首先引入一個潛在變數 z,它與 x 的每個例項相關聯。與高斯混合模型的情形相同,是一個二值 K 維變數,其中只有一個元素等於1,其餘元素等於0。這樣,給定潛在變數,我們可以寫出 x 的條件概率分佈,形式為:。
而潛在變數的先驗概率分佈與高斯混合模型的形式相同,即:。
如果我們將和相乘,然後對 z 求和,我們同樣得到該公式:
為了推導EM演算法,我們首先寫出完整資料的對數似然函式,形式為:
,其中。
接下來我們取完整資料對數似然函式關於潛在變數後驗概率分佈的期望,得:
,其中是給定資料點的條件下,分量 k 的後驗概率分佈,或者“責任”。
在E步驟中,這些後驗概率使用貝葉斯定理計算,形式為:
在上面關於潛在變數後驗概率分佈的期望公式中,我們可以看到,如果我們對 n 求和,“責任”只出現在兩項中,這兩項可以寫成:
,其中是與分量 k 的均值組成的集合等於資料的加權平均值,權係數為分量 k 對於資料點的“責任”。對於關於的最大化,我們需要引入一個拉格朗日乘數來滿足限制條件。採用與高斯混合模型中類似的步驟,我們有:,即分量 k 的混合係數等於資料集裡那個分量的資料點所佔的比例,
伯努利分佈引數的共軛先驗是Beta分佈。我們已經看到一個Beta先驗分佈等價於引入 x 的額外的有效觀測。類似地,我們可以引入伯努利混合模型的先驗分佈,然後使用EM演算法最大化後驗概率分佈。
Relevant Link:
http://sklearn.apachecn.org/cn/stable/modules/mixture.html
5. 一般形式的EM演算法
期望最大化演算法,或者EM演算法,是尋找具有潛在變數的概率模型的最大似然解的一種通用的方法。
這裡,我們考慮一個概率模型,其中我們將所有的觀測變數聯合起來記作,將所有的隱含變數記作。聯合概率分佈由一組引數控制,記作。我們的目標是最大化似然函式:
這裡,我們假設是離散的,但是當是連續變數或者離散變數與連續變數的組合時,方法是完全相同的,只需要把求和換成適當的積分即可。
我們假設直接優化比較困難,但是最優化完整資料似然函式就容易得多。接下來,我們引入一個定義在潛在變數上的分佈。我們觀察到,對於任意的,下面的分解成立:
注意,是概率分佈的一個泛函,並且是引數的一個函式。
根據上式,我們看到是和後驗概率分佈之間的Kullback-Leibler散度。我們知道,Kullback-Leibler散度滿足,當且僅當時等號成立。因此,根據公式我們得。換句話說,是的一個下界,如下圖:
0x1:從KL散度角度看EM一般化過程
EM演算法是一個兩階段的迭代優化演算法,用於尋找最大似然解。我們可以使用公式來定義EM演算法,證明它確實最大化了對數似然函式。
假設引數向量的當前值為
在E步驟中,下界關於被最大化,而保持固定。最大化問題的解很容易看出來。我們注意到不依賴於,因此的最大值出現在Kullback-Leibler散度等於0的時候,換句話說,最大值出現在與後驗概率分佈相等的時候。此時,下界等於對數似然函式,如下圖所示:
在接下來的M步驟中,分佈保持固定,下界關於進行最大化,得到了某個新值。這會使得下界增大(除非已經達到了極大值),這會使得對應的對數似然喊增大。由於概率分佈 q 由舊的引數值確定,並且在M步驟中保持固定,因為它不會等於新的後驗概率分佈,從而KL散度非零。於是,對數似然函式的增大量大於下界的增加量,如下圖所示:
此時,下界的形式為:
其中,常數就是分佈 q 的熵,因此與無關。從而在M步驟中,最大化的量是完整資料對數似然函式的期望,正如我們在之前的混合高斯模型的情形中看到的一樣。
0x2:從引數空間角度看EM一般化過程
EM演算法的計算也可以被看作引數空間中的運算,如下圖所示:
紅色曲線表示(不完整資料)對數似然函式,它的最大值是我們想要得到的。我們首先選擇某個初始的引數值,然後在第一個E步驟中,我們計算潛在變數上的後驗概率分佈,得到的一個更小的下界,它的值等於在處的對數似然函式值,用藍色曲線表示。注意,下界與對數似然函式在處以切線的方式連線,因此兩條曲線的梯度相同。這個界是一個凹函式,對於指數族分佈的混合分佈來說,有唯一的最大值。
在M步驟中,下界被最大化,得到新的值,這個值給出了比處更大的對數似然函式只。
接下來的E步驟構建了一個新的下界,它在處與對數似然函式切線連線,用綠色線白哦是。如此迴圈往復。