有乙個資料集d
=d=\
d=中的每個資料點是這樣產生的,先從k個類別中選擇乙個類別,然後從該類別對應的資料產生分布中產生資料點。若k選1的對應的分布是multinoulli分布,每個類別對應的資料產生分布是不同的高斯分布,估計資料點x對應的分布。
這個問題對應的模型就是乙個混合高斯模型,具體的資料產生過程如下:
我們引入了隱變數z, 假設模型的引數跟圖中的定義一樣,我們可以得到:
p (x
∣α,μ
,σ)=
∑k=1
kαkn
(x∣μ
k,σk
),其中
∑kαk
=1p(x | \alpha, \mu, \sigma) = \sum_^ \alpha_k \mathrm(x | \mu_k, \sigma_k), \quad \quad 其中\sum_k \alpha_k = 1
p(x∣α,
μ,σ)
=k=1
∑kα
kn(
x∣μk
,σk
),其
中k∑
αk=
1這就是混合高斯模型對應的觀察資料概率分布,它是乙個無監督模型的聚類模型,每個類別對應的後驗分量
γ k=
αkn(
x∣μk
,σk)
∑k=1
kαkn
(x∣μ
k,σk
)\gamma_k = \frac(x | \mu_k, \sigma_k)}^ \alpha_k \mathrm(x | \mu_k, \sigma_k)}
γk=∑k
=1k
αkn
(x∣μ
k,σ
k)α
kn(
x∣μk
,σk
)
表示該點屬於某個類別的概率,要想得到某個點對應的分量,我們必須先根據資料集估計出模型引數θ
=\theta = \
θ=,這就是上面問題的目標。
要估計出模型引數,對於含隱變數的無監督模型,絕大部分情況下都是用em演算法求解。
e步(e-step)
其中m時資料點的維度。
e步就是在老的引數的基礎上求出隱藏資料集的分布,並計算聯合變數分布對數的期望。
m步 (m-step)
m步時最大化e步期望,獲得新的引數。
require: 資料集d,類別數k。
step 1: 初始化引數α, μ, σ;
step 2: 執行e步,獲得eγik, enk;
step 3: 執行m步,更新α, μ, σ;
step 4: 重複e步和m步,知道f收斂或者α, μ, σ收斂。
機器學習 高斯混合模型GMM和EM演算法
高斯混合模型就是用高斯 概率密度函式 正態分佈 曲線 精確地量化事物,它是乙個將事物分解為若干的基於高斯概率密度函式 正態分佈曲線 形成的模型。高斯混合模型 gmm 顧名思義,就是資料可以看作是從數個單高斯分布 gsm 中生成出來的。雖然我們可以用不同的分布來隨意地構造 xx mixture mod...
GMM混合高斯模型的EM演算法及Python實現
1.演算法理論p x kk 1 kn x k k n x k k 1 2 d k exp 12 xi k t 1k xi k kk 1 k 1 用極大似然法處理問題 輸入 i 1 n 最小化 e k,k,k ni 1 log p xi ni 1l og kk 1 1 2 d k e xp 12 x ...
高斯混合模型與EM演算法
對於高斯混合模型是幹什麼的呢?它解決什麼樣的問題呢?它常用在非監督學習中,意思就是我們的訓練樣本集合只有資料,沒有標籤。它用來解決這樣的問題 我們有一堆的訓練樣本,這些樣本可以一共分為k類,用z i 表示。但是具體樣本屬於哪類我們並不知道,現在我們需要建立乙個模型來描述這個訓練樣本的分布。這時,我們...