Một chút về Maximum Likelihood Estimation (MLE)

descriptive-statistics

#1

Chào mọi người! Mình là Hoàng và Huy. Hôm nay mình muốn chia sẻ với mọi người một góc nhìn sâu hơn về Maximum Likelihood. Vấn đề này mình đã thấy nhiều tài liệu giảng dạy về ML viết về nó (cuốn Machine Learning cơ bản của anh Tiệp),…Hôm nay tụi mình xin phép được nói rõ và sâu hơn về bản chất và cách xây dựng của phương pháp này (mình chỉ nói đến các khía cạnh mà mình cho rằng cái cuốn sách thông dụng chưa nói đến hoặc nói chưa sâu).

Để bắt đầu thì mình sẽ nói về Tổng khoảng cách biến đổi của một model (Total variation distance):

  • Cho (E,(\mathbb{E}_\theta)_{\theta \in \Theta}) là một mô hình thống kê với tập mẫu là các biến ngẫu nhiên độc lập. Giả sử tồn tại \theta^{\ast} sao cho X_i \sim \mathbb{P}_{\theta^{\ast}}: \theta^{\ast} là tham số đúng của mô hình.
  • Mục tiêu thống kê: cho X_1, X_2,....,X_n, tìm một estimator \hat{\theta}=\hat{\theta}(X_1, X_2,....,X_n) sao cho \mathbb{P}_{\hat{\theta}} gần với \mathbb{P}_{\theta^{\ast}}. Có nghĩa là: |\mathbb{P}_{\hat{\theta}}(A)- \mathbb{P}_{\theta^{\ast}}(A) | nhỏ với mọi A\subset E.

Định nghĩa: Tổng khoảng cách biến đổi giữa 2 probability measures \mathbb{P}_{\theta}\mathbb{P}_{\theta'} được đinh nghĩa như sau:

TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})=max_{A\subset E}|\mathbb{P}_{\hat{\theta}}(A)- \mathbb{P}_{\theta^{\ast}}(A)|

Trong trường hợp rời rạc: TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})=\frac{1}{2}\sum_{x\in E}p_{\theta}(x)-p_{\theta'}(x).

Trường hợp liên tục: TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})=\frac{1}{2}\int_{E}(f_{\theta}(x)-f_{\theta'}(x))dx

Bản chất TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'}) là một đại lượng đo khoảng cách nên chúng ta có vài tính chất sau:

  1. TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})=TV(\mathbb{P}_{\theta'}, \mathbb{P}_{\theta}) (symmetric).
  2. TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})\geq 0
  3. If TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})= 0 then \mathbb{P}_{\theta}= \mathbb{P}_{\theta'} (definite)
  4. TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})\leq TV(\mathbb{P}_{\theta}, \mathbb{P}_{\theta''}) + TV(\mathbb{P}_{\theta''}, \mathbb{P}_{\theta'}) (triangle inequality).

Estimation strategy: Xây dựng ước lượng \hat{TV}(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'}) cho tất cả \theta \in \Theta. Sau đó tìm \hat{\theta} sao cho hàm: \theta \rightarrow \hat{TV}(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'}) đạt giá trị nhỏ nhất.

Tuy nhiên, rõ ràng chúng ta không thể làm được vì cả \mathbb{P}_{\theta}\mathbb{P}_{\theta^{\ast}} chúng ta đều chưa biết. Chính vì thế có một phương pháp đánh giá khác thay thế cho total variation. Có rất nhiều phương pháp thay thế, nhưng ta chọn phương pháp dễ dàng và tiện lợi nhất đó ra Kullback-Leibler (KL) divergence.

Đinh nghĩa: Kullback-Leibler divergence giữa 2 probability measures \mathbb{P}_{\theta}\mathbb{P}_{\theta^{\ast}} được tính như sau:

KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta^{\ast}})=\sum_{x\in E}p_{\theta}(x)log\Big( \frac{p_{\theta}(x)}{p_{\theta'}(x)} \Big) nếu E là rời rạc và \int_{x\in E}f_{\theta}(x)log\Big( \frac{f_{\theta}(x)}{f_{\theta'}(x)} \Big) nếu E là liên tục.

Lưu ý: KL-divergence không phải là một đại lượng đo khoảng cách (đó là lí do tại sao ta gọi nó là divergence). Để thấy điều đó chúng ta quan sát một vài tính chất sau:

  1. KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'}) \neq KL(\mathbb{P}_{\theta'}, \mathbb{P}_{\theta}) in general.
  2. KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})\geq 0
  3. If KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})= 0 then \mathbb{P}_{\theta}= \mathbb{P}_{\theta'} (definite)
  4. KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})\nleq KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta''}) + KL(\mathbb{P}_{\theta''}, \mathbb{P}_{\theta'}) in general.

Tính bất đối xứng là chìa khóa về khả năng ước lượng nó!

Dựa vào định nghĩa ta có:

KL(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})=\mathbb{E}_{\theta^\ast}\Big[ log\Big( \frac{p_{\theta^\ast}(X)}{p_\theta(X)} \Big) \Big]=\mathbb{E}_{\theta^\ast}[log(p_{\theta^\ast}(X))]- \mathbb{E}_{\theta^\ast}[log(p_{\theta}(X))].

Vì thế ta có thể xem hàm số \theta \rightarrow \hat{KL}(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'}) có dạng:

“hằng số” - \mathbb{E}_{\theta^\ast}[log(p_{\theta}(X))]

Dựa vào luật số lớn (law of large number) ta có: \mathbb{E}_{\theta^\ast}[h(X)] \approx \frac{1}{n}\sum_{i=1}^nh(X_i). Từ đó ta có thể ước lượng:

\hat{KL}(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'})= “hằng số”- \frac{1}{n}\sum_{i=1}^nlog(p_{\theta}(X_i))

Từ đó:

min_{\theta \in \Theta} \hat{KL}(\mathbb{P}_{\theta}, \mathbb{P}_{\theta'}) \Leftrightarrow min_{\theta \in \Theta} -\frac{1}{n}\sum_{i=1}^nlog(p_{\theta}(X_i))

\Leftrightarrow max_{\theta \in \Theta}\frac{1}{n}\sum_{i=1}^nlog(p_{\theta}(X_i))

\Leftrightarrow max_{\theta \in \Theta}\sum_{i=1}^nlog(p_{\theta}(X_i))

\Leftrightarrow max_{\theta \in \Theta} \prod_{i=1}^{n} p_{\theta}(X_i).

Đây là nguyên lí maximum likelihood. Biểu thức \prod_{i=1}^{n} p_{\theta}(X_i) được gọi là biểu thức likelihood. Về mặt bản chất, cái ta muốn đó là tìm ước lượng \hat{\theta} sao cho khoảng cách (trong trường hợp này được thay thế bằng KL-divergence) giữa 2 probability measures là nhỏ nhất. Và điều đó tương đương với việc tìm \hat{\theta} để biểu thức likelihood đạt giá trị lớn nhất.

Mình sẽ không đi qua các ví dụ về maximum likelihood vì các vì dụ này trong hầu hết các sách xác suất thống kê cơ bản đều có nhắc qua. Ta chỉ đi vào các vấn đề mà mình nghĩ trong hầu hết các cuốn sách chưa nói rõ hoặc sâu.

Nhìn lại quá trình chúng ta xây dựng biểu thức likelihood thì đâu là bước chìa khóa? Theo mình đó là việc chúng ta thay thế hàm khoảng cách (total variation) bằng hàm KL-divergence. Trong thực tế, liệu sự thay thế này có mang lại một kết quả hoàn hảo hay không? Có tồn tại một chỉ số nào để đánh giá sự thay thế này không? Chúng ta cùng xem xét các trường hợp sau. Trong các hình phía thì:

Đường màu xanh biểu thị hàm số: \theta \rightarrow TV(\mathbb{P}_\theta, \mathbb{P}_{\theta^\ast})

Đường màu đỏ biểu thị hàm số: \theta \rightarrow KL(\mathbb{P}_\theta, \mathbb{P}_{\theta^\ast})

Trục tung biểu thị giá trị sai số (khoảng cách) của 2 probability measures, trục hoành biểu thị các giá trị của \theta. \hat{\theta} biểu thik giá trị ước lượng (ứng với giá trị làm cho đường màu đỏ đạt giá trị 0 ở trục tung), \theta^\ast biểu thị giá trị tham số đúng của mô hình (ứng với giá trị làm cho đường màu xanh đạt giá trị 0 ở trục tung).

Vì ta đã xấp xỉ hàm tính KL-divergence nên đường màu đỏ sẽ có độ lồi lõm sai số nhưng nếu lượng dữ diệu đủ lớn thì nhìn chung hình dạng của đường màu đỏ sẽ có độ biến thiên gần như tương tự đường màu xanh. Để đánh giá độ chính xác của MLE mình sẽ đưa ra một số trường hợp sau:

Trong trường hợp này sự thay thế có vẻ cho chúng ta một ước lượng khá tốt khi mà \theta^\ast khá gần với \hat{\theta} (và cũng gần với giá trị minimun).

Chúng ta xét một trường hợp khác: image

Trong trường hợp này mặc dù KL-divergence cho chúng ta một kết quả khá tốt nhưng về mặt tổng quát thì do \theta^\ast\hat{\theta} khá xa nhau.

Một trường hợp khác: image

Ta có thể thấy trong trường hợp trên thì mặc dù \hat{\theta} rất gần với \theta^\ast nhưng rõ ràng đây là một kết quả rất tệ. Ứng với \hat{\theta} giá trị khoảng cách của total variance rất lớn => model tệ.

Tóm lại, để đánh giá maximum likelihood cho kết quả tốt hay không, chúng ta phải quan tâm đến hình dạng của hàm KL-divergence. Nếu nó bằng phẳng thì mặc dù \hat{\theta} xa với \theta^\ast thì chúng ta vẫn có thể có một kết quả tốt (trường hợp 2). Ngược lại nếu hình dạng của hàm dốc cao thì cho dù \hat{\theta} gần với \theta^\ast thì vẫn chưa chắc kết luận đó là một ước lượng tốt.

Vậy khi áp dụng maximum likelihood chúng ta cần quan tâm thêm chỉ số nào của hàm log likelihood. Có một đại lượng giúp ta hình dung độ dốc (hay độ bằng phẳng) xung quanh điểm cực trị của hàm likelihood, đó chính là đạo hàm bậc 2 của hàm log likelihood. Tại sao? Để giải thích thì chúng ta nhìn vào khai triển Taylor của hàm bất kì:

f(x)\approx f(a)+f'(a)(x-a)+\frac{f''(a)}{2}(x-a)^2+....

Vì ta chỉ quan tâm đến độ dốc xung quanh điểm cực trị của hàm số nên ta có f'(a)=0. Suy ra:

\Delta f(x) phụ thuộc vào độ lớn của f''(a)

Chính vì những điều đó, người ta đưa ra một đinh nghĩa Fisher information: Gọi log-likelihood của 1 quan sát (observation) như sau:

l(\theta)=logL_{1}(X,\theta), \theta \in \Theta \subset \mathbb{R}^d.

Giả sử l có đạo hàm bậc 2. Áp dụng vài điều kiện hợp thức (regularity conditions), Fisher information của một mô hình thống kê được định nghĩa:

I(\theta)=\mathbb{E}[\nabla l(\theta) \nabla l(\theta)^\intercal]-\mathbb{E}[\nabla l(\theta)]\mathbb{E}[\nabla l(\theta)]^\intercal= -\mathbb{E}[\nabla^{2}l(\theta)].

Để đơn giản thì chúng ta chỉ quan tâm tới các điểm dữ liệu 1 chiều, khi đó:

I(\theta)=var[l'(\theta)]=-\mathbb{E}[l''(\theta)]=\int\frac{(\frac{\partial}{\partial \theta}f_\theta(x))^2}{f_\theta(x)}dx.

Vì bài viết đã khá dài nên để chứng minh đẳng thức trên thì mình xin để ở một bài khác.

Nhìn vào đẳng thức trên thì phù hợp cái chúng ta quan tâm là đạo hàm bậc 2 của log-likelihood (cụ thể hơn là kỳ vọng của đại lượng này).

Hơn thế nữa, áp dụng regularity conditions, những đẳng thức sau đây thoả mãn:

\hat{se}=\sqrt{\frac{1}{I(\theta)}} and \frac{(\hat{\theta}-\theta^\ast)}{\hat{se}} \sim N(0,1)

Đối với dữ liệu 1 chiều ta còn có các kết quả sau:

1.\hat{\theta} converges to \theta^\ast in probability

2.\sqrt{n}(\hat{\theta}-\theta^\ast) converges to N(0, I(\theta^\ast)^{-1}) in probability

Bình luận về 2 nhận định này xin để lại bài viết sau vì mình nghĩ chúng ta sẽ thấy được vẻ đẹp của 2 nhận định này khi hiểu về chứng minh của nó.

Cám ơn các anh/chị đã đọc hết bài. Nếu phát hiện lỗi sai hoặc chưa rõ ràng mong anh/chị hãy để lại cmt.

Tham khảo: Các định nghĩa được trích dẫn từ cuốn sách “All of statistics” của Larry Wasserman và “Statistical Inference” của George Casella.


#2

Nếu diễn đàn cho tính năng clap như medium thì mình sẽ click 100 clap để bạn viết phần tiếp theo :))


#3

Mình đang hoàn thành phần tiếp theo:)) Cơ mà thấy ít tương tác quá. Những bài như vậy khá nặng về toán nên kén người đọc quá. Cám ơn bạn nhiều:)


#4

Trước đây mình có hiểu sơ sơ cái MLE này dùng để học tham số cho mấy model dạng probabilistic graphical model kiểu như mô hình trộn, LDA các kiểu Nếu bạn học sâu về lý thuyết mấy cái này thì có thể phân tích giúp chi tiết hơn ví dụ vào mấy loại mô hình đó xem hàm log-likelihood của mấy cái đó là thuộc loại nào được ko - về độ dốc, độ bằng phẳng mà bạn có nói ở cuối bài ấy