什麼是機器學習中的 EM 算法? 【舉例說明】
已發表: 2021-03-10EM 算法或期望最大化算法是由 Arthur Dempster、Nan Laird 和 Donald Rubin 在 1977 年提出的潛變量模型。
潛變量模型包括可觀察變量和不可觀察變量。 觀察到的變量是可以測量的,而未觀察到的(潛在/隱藏的)變量是從觀察到的變量中推斷出來的。
正如三人所解釋的那樣,EM 算法可用於確定統計模型中潛在變量(需要從可觀察變量推斷的不可觀察變量)的局部最大似然 (MLE) 參數或最大後驗 (MAP) 參數。 它用於預測這些值或確定缺失或不完整的數據,前提是您知道與這些潛在變量相關的概率分佈的一般形式。
簡而言之,機器學習中 EM 算法背後的一般原理涉及使用潛在變量的可觀察實例來預測學習不可觀察的實例中的值。 這樣做直到值收斂。
該算法是機器學習中相當強大的工具,是許多無監督算法的組合。 這包括 k-means 聚類算法以及其他 EM 算法變體。
加入來自世界頂級大學的在線機器學習課程——碩士、高管研究生課程和 ML 和 AI 高級證書課程,以加快您的職業生涯。

目錄
期望最大化算法
讓我們探索一下機器學習中期望最大化算法的機制:
資源
- 第 1 步:我們有一組缺失或不完整的數據和另一組起始參數。 我們假設觀測數據或參數的初始值是從特定模型生成的。
- 步驟2:根據可用數據的可觀察實例中的可觀察值,我們將預測或估計數據的不可觀察實例或缺失數據中的值。 這被稱為期望步驟(E - 步驟)。
- 第三步:使用E-step生成的數據,我們將更新參數,完成數據集。 這被稱為最大化步驟(M - 步驟),用於更新假設。
重複步驟 2 和步驟 3,直到收斂。 這意味著如果這些值沒有收斂,我們將重複 E - 步驟和 M - 步驟。
.
資源
EM算法的優缺點
EM算法的缺點 | |
1 | EM 算法中的每次迭代都會保證增加可能性。 |
2 | 期望步驟和最大化步驟相當簡單,後者的解決方案大多以封閉形式存在。 |
EM算法的優點 | |
1 | 期望最大化算法同時考慮了前向和後向概率。 這與僅考慮前向概率的數值優化形成對比。 |
2 | EM 算法的收斂速度非常慢,只能達到局部最優。 |
EM算法的應用
潛變量模型在機器學習中有大量實際應用。
- 它用於無監督數據聚類和心理測量分析。
- 它還用於計算函數的高斯密度。
- EM 算法廣泛用於預測隱馬爾可夫模型 (HMM) 參數和其他混合模型。
- EM 算法在自然語言處理 (NLP)、計算機視覺和數量遺傳學中有大量用途。
- EM算法的其他重要應用包括醫學和結構工程領域的圖像重建。
讓我們了解使用高斯混合模型的 EM 算法。
高斯混合模型的EM算法
為了估計高斯混合模型的參數,我們需要一些由兩個獨立過程生成的觀測變量,其概率分佈是已知的。 但是,這兩個過程的數據點是結合在一起的,我們不知道它們屬於哪個分佈。

我們的目標是使用 EM 算法的最大似然估計來估計這些分佈的參數,如上所述。
這是我們將使用的代碼:
# 給定一個函數,我們必須計算它的密度
# 給定 x_i 點的高斯 mu, sigma: G(x_i, mu, sigma); 和
# 另一個計算對數似然的函數:L(x, mu, sigma, pi)
def 估計_gmm(x, K, tol=0.001, max_iter=100):
'' 估計 GMM 參數。
:param x: 觀察到的實值變量列表
:param K: 高斯數的整數
:param tol: 對數似然的容忍變化
:return: mu, sigma, pi 參數
''
# 0. 初始化 theta = (mu, sigma, pi)
N = 長度(x)
畝,西格瑪 = [rand()] * K,[rand()] * K
pi = [rand()] * K
curr_L = np.inf
對於範圍內的 j(max_iter):
prev_L = 當前_L
# 1. E-step: 責任 = p(z_i = k | x_i, theta^(t-1))
r = {}
對於範圍內的 i (N):
部分 = [pi[k] * G(x_i, mu[k], sigma[k]) for i in range(K)]
總計 = 總和(部分)
對於 k 中的 i:
r[(i, k)] = 部分[k] / 總計
# 2. M-step:更新 mu、sigma、pi 值
rk = [sum([r[(i, k)] for i in range(N)]) for k in range(K)]
對於範圍內的k(K):
pi[k] = rk[k] / N
mu[k] = sum(r[(i, k)] * x[i] for i in range(N)) / rk[k]
sigma[k] = sum(r[(i, k)] * (x[i] – mu[k]) ** 2) / rk[k]
# 3. 檢查退出條件
curr_L = L(x, mu, sigma, pi)
如果 abs(prev_L – curr_L) < tol:

休息
返回 mu、sigma、pi
在 E-Step 中,我們可以使用貝葉斯定理來確定從算法的過去迭代中得出的給定數據點的期望值。 在 M 步中,我們假設潛在變量的值是固定的,以使用最大似然估計未觀察到的實例中的代理。 最後,我們使用標準均值和標準差公式來估計高斯混合模型的參數。
結論
這將我們帶到了文章的結尾。 有關機器學習概念的更多信息,請通過upGrad的機器學習和 AI 理學碩士課程與班加羅爾 IIIT 和利物浦約翰摩爾斯大學的頂尖教師取得聯繫。
這是一個 18 個月的課程,提供 450 多個小時的學習內容、12 個以上的行業項目、10 個 Capstone 項目選項和 10 多個編碼作業。 您還可以享受來自行業專家的個性化指導,以及通過現場課程提供的職業指導諮詢。 下一批將於 2021 年 2 月 28 日開始!
EM 聚類是什麼意思?
為了優化觀測數據的概率,EM 聚類用於估計每個聚類(分佈)的均值和標準差。 基於不同集群中不同分佈的組合,EM 算法試圖逼近觀察到的值分佈。 EM 使用有限高斯混合模型對數據進行聚類,並迭代地估計一組參數,直到達到所需的收斂值。 EM 聚類產生的結果與通過 K 均值聚類獲得的結果不同。
EM算法的實際應用是什麼?
在醫學領域,EM算法用於圖像重建。 它還用於預測隱馬爾可夫模型(HMM)和其他混合模型的參數。 它還有助於完成特定樣本中的缺失數據。 項目反應理論模型中的項目參數和潛在能力是使用心理測量學中的 EM 估計的。 它也廣泛應用於結構工程領域。
MLE 算法與 EM 算法有何不同?
在存在隱藏變量的情況下,最大似然估計過程只是簡單地挑戰數據。 MLE 最初收集所有數據,然後利用它來構建最有可能的模型。 對於潛在變量,期望最大化算法為最大似然估計提供了一種迭代解決方案。 EM 首先對參數進行有根據的估計,然後檢查缺失的數據,然後更改模型以適應有根據的猜測和觀察到的數據。