Professional Documents
Culture Documents
Powerpoint-đồ-án - thuật Toán Expectation Maximization
Powerpoint-đồ-án - thuật Toán Expectation Maximization
Powerpoint-đồ-án - thuật Toán Expectation Maximization
Maximization
Algorithm
HELLO!
Thành viên:
p(X|, b) =
∏
= ¿ ¿
i
5
∏
= ¿ ¿
i
Bối cảnh và thuật ngữ
Thử tính với i=1:
p(X1|Z=a,,)p(Z=a| ,)+p(X1|Z= b,)p(Z= b)]
= (1- ) 6 x 0.5 + (1- ) 6 x 0.5
Một mô hình
=0.5 [(1-biến tiềm
) 6 + (1- )6 ] ẩn bao gồm các biến quan sát
được Với
và i=
không
2,3,4,5thể quan sát được.
ta được
𝑑 [log 𝑝( 𝑋 |𝜃𝑎 , 𝜃 𝑏 )]
Giải hệ phương trinh với biến , : =0
𝑑 (𝜃 𝑎 , 𝜃𝑏 )
2
Sai Đúng
Ngừng lặp lại?
E-Step Xuất kết quả
(điều kiện dừng)
(
⏟ 1 : 𝑚 =∑
)
2
2
⏟
2𝜎
ℒ 𝜇 ,𝜎 ; 𝓏 𝑒
𝜃 𝑥
𝑖 =1 √2 𝜋 𝜋 2
√ 2 𝜋 𝜎 2 2 𝜎 2 𝑖=1
𝑖
1
𝑛 ∑ 𝓏 2𝑖
𝜇= 𝓏 = ∑
𝑛 𝑖 =1
𝓏 𝑖 ; 𝜎 2= 𝑖 =1
𝑛
− 𝓏2
Thuật toán EM trong MLE
Thuật toán EM được thiết kế để tận dụng lợi thế của quan sát này. Nó lặp lại
giữa bước kỳ vọng(E-step) và bước tới đa hóa(M-step) để tìm MLE.
Giả sự ới chỉ số trên của (n) là ước lượng thu được ở lần lập thứ n, thuật toán
lặp lại giữa hai bước như sau:
+Bước E: xác định là kỳ vọng có điều kiện của khả năng xảy ra trong nhật ký dữ
liệu đầy đủ với các biến ẩn, dũ liệu quan sát đã cho và ước tinh tham số hiện tại,
tức là
+Bước M: tìm một mới tối đa hóa kỳ vọng ở trên và đặt nó thành
Thuật toán EM trong MLE
Vấn đề biến ẩn:
+Trong đa số trường hợp, ta không có đầy đủ dữ lieu, một số thông tin đã bị ẩn đi.
+Ta chỉ quan sát được biến x mà không quan sát được biến y (ẩn)
Bài toán: Cho mẫu x, ước lượng mật độ với lớp hàm phân bố
+Ước lương hợp lý cực đại (MLE)
Thuật toán EM trong MLE
Bất đẳng thức biến phân cho EM (variational inequality)
✘ Xét một phân bố bất kì q(y), ta có
=
=
Bản chất thuật toán EM là cực đại hóa cận dưới của sự hơp lý
Thuật toán EM trong MLE
Thuật toán 1 cực đại hóa kì vong (EM)
6.
7.End while
Thuật toan EM trong MLE
Thuật toán cực đại hóa kì vọng(EM)
log p(x,y; ) = ⟨ , ⟩]
MLE:
EM:
Expectation step(E-step)
Với tập giá trị xi
Mục tiêu của bước E-Step là tính xác suất của mỗi điểm dữ liệu dựa vào phân phối
Gaussian đa chiều dựa trên tham số t của vòng lặp gần nhất. Xác suất này được tính như sau
ric = P
(x;,)
r , r .66
(x;,) 1 2
Xác suất πj chính là xác suất tiên nghiệm (posteriori probability) bằng với tỷ lệ các quan sát
thuộc về cụm j ở vòng lặp thứ t. Trong khi N(μjt,Σjt|xi) là xác suất của xi rơi vào cụm
thứ j được tính theo phân phối Gaussian đa chiều. Hai xác suất này có thể tính được và sau
cùng ta thu được xác suất rơi vào mỗi cụm tại mỗi một quan sát
Thuật toán EM cho mô hình Gaussian
Maximization step(M-step)
Bắt đầu với xác suất
Cập nhật thông số : trung bình ,Hiệp phương sai
M-step (“Cực đại hóa”)
- Đối với mỗi cụm (Gaussian) z=c.
- Cập nhật các tham số của nó bằng cách sử dụng các điểm dữ liệu (có trọng số)
1
c =
𝑚𝑐 𝑖
∑ ❑
𝑟 𝑖𝑐 𝑥 Giá trị trung bình của dữ liệu được chỉ định
= 1 𝑟 (𝑥¿¿(i) −𝜇c)T (𝑥¿¿(i) −𝜇c)¿¿
𝑚𝑐 ∑𝑖 𝑖𝑐
Thuật toán EM cho mô hình Gaussian
Mỗi step làm tăng log-likelihood của mô hình out
(Tuy nhiên, chúng tôi sẽ không lấy được điều này ở đây)
Như vậy chúng ta đã tìm ra được tham số tối ưu của thuật toán GMM sau mỗi vòng lặp. Việc
giải trực tiếp bài toán tối ưu hàm hợp lý theo ước lượng MLE là bất khả thi trong điều kiện có
nhiều cụm dữ liệu. Chính vì thế thuật toán EM được áp dụng để cập nhật dần dần tham số
của mô hình. Thuật toán sẽ dần dần hội tụ sau một hữu hạn bước. Về lý thuyết của thuật
toán GMM chúng ta sẽ phải trải qua nhiều tính toán đạo hàm tương đối phức tạp.
Model
Tập dữ liệu bao gồm một nhóm bệnh nhân
binh thường và một nhôm bệnh nhân thiếu
máu dựa vào lượng hemoglobin
Model
class Expectation_Maximization:
def __init__(self, num_cluster, max_iter=5):
self.num_cluster = num_cluster
self.max_iter = (max_iter)
def initialize(self, X):
self.shape = X.shape
self.n, self.m = self.shape
Model
def e_step(self, X):
self.weights = self.predict_proba(X)
#Cập nhập trọng số
self.phi = self.weights.mean(axis=0)
#Updating phi
# here mu and sigma is constant
def m_step(self, X):
# Updating mu and sigma but weight and phi is constant
for i in (self.num_cluster):
weight = self.weights[:, [i]]
total_weight = weight.sum()
self.mu[i] = (X * weight).sum(axis=0) / total_weight
self.sigma[i] = np.cov(X.T,
aweights=(weight/total_weight).flatten(), bias=True)
Model
def fit(self, X): # fit the model self.initialize(X)
for iteration in (self.max_iter):
self.e_step(X) self.m_step(X)
Model
def predict_proba(self, X):
# Function for calculating pdf
likelihood = np.zeros( (self.n, self.num_cluster) )
for i in (self.num_cluster):
distribution = multivariate_normal(
mean=self.mu[i],
cov=self.sigma[i])
likelihood[:,i] = distribution.pdf(X)
numerator = likelihood * self.phi
denominator = numerator.sum(axis=1)[:, np.newaxis]
weights = numerator / denominator
return weights
Model
def predict(self, X):
# Predict the cluster
weights =self.predict_proba(X)
return np.argmax(weights, axis=1)
6
0.6
0.8
0.4
0.6 0.4
0.8 0.2
Thuật toan EM với Mô hình Markov
ẩn
Biến trạng thái
Biến nhãn
Tính chất Markov:
[∏ ∏ ]
𝑇 𝑁 𝑁 𝑁 𝐾
𝑃 ( 𝛿 , 𝛿 ; 𝐴 , 𝐵 )=∏ ∏∏ 𝑏
𝑠 𝑠 𝑠 𝑜
𝑠 𝑜 𝛿𝑡 −1 , 𝛿𝑡 , 𝑗 𝛿𝑡 −1 ,𝑖 , 𝛿𝑡 , 𝑗
𝑎
𝑖𝑗 𝑖𝑘
𝑡 =1 𝑖=1 𝑗=1 𝑖=1 𝑘=1
là biến ẩn
là biến hiện
A,B là tham số
Thống kê đủ
𝑁 ,𝑁 𝑁,𝐾
¿ ∑ log 𝑎𝑖𝑗 .𝑈 𝑖𝑗 + ∑ log 𝑏𝑖𝑘 .𝑉 𝑖𝑘
𝑖, 𝑗=1 𝑖, 𝑘=1
𝑇 𝑇
𝑈 𝑖𝑗 =∑ 𝛿𝑡−1, 𝑖 𝛿𝑡 , 𝑗 , 𝑉 𝑖𝑘=∑ 𝛿𝑡 ,𝑖 𝛿𝑡 , 𝑘
𝑠 𝑠 𝑠 𝑜
𝑡=1 𝑡=1
MLE khi biết
tinh aij, bik
Bài toan tối ưu có ràng buộc
bik= , k=1,……,K
EM khi không biết
Thế vào công thức
Tính kì vọng hậu nghiệm
= E[Uij| ; A,B], = E[Vij| ; A,B]
Nhược điểm
• Không thể đưa ra các ước lượng tự động về ma trận hiệp phương sai
của các ước lượng tham số, nhưng nhược điểm đó có thể được loại bỏ
bằng cách áp dụng phương pháp luận thích hợp, liên quan đến thuật
toán EM.
• Đôi khi, nó trở nên rất chậm khi hội tụ và chỉ làm cho hội tụ đến
optima cục bộ.
• Trong một số trường hợp, bước E và bước M có thể không thể quản lý
được về mặt phân tích.
• Nó yêu cầu cả xác suất chuyển tiếp và xác suất lùi (vì tối ưu hóa số chỉ
cần xác suất chuyển tiếp
78
Ứng dụng
Ứng dụng
• Được chọn trong phân tích nhóm dữ liệu và phân tích tâm thần không
giám sát.
• Nó được sử dụng nhiều trong các lĩnh vực khác nhau như Xử lý ngôn ngữ
tự nhiên (NLP) , Thị giác máy tinh
• Được sử dụng rộng rãi trong việc tái tạo hình ảnh trong lĩnh vực y học và
kỹ thuật cấu trúc.(cho ví dụ xứ lý hình siêu âm (PDF) Expectation
Maximization for Joint Deconvolution and Statistics Estimation
(researchgate.net))
• Được sử dụng để đo mật độ Gaussian của một hàm.
• Được sử dụng để dự đoán các tham số Mô hình Markov ẩn (HMM) và các
mô hình hỗn hợp tương tự.
• Được sử dụng để điền vào dữ liệu bị thiếu trong một mẫu.()
• Khám phá giá trị của các biến tiềm ẩn.(MLE)