Maximum Likelihood & Maximum a Posteriori-基礎估計模型的詳細介紹

前言

本篇文章將會介紹 maximum likelihood (ML) 以及 maximum a posteriori (MAP) 的基本概念,並且運用簡單的例子使讀者理解兩者的思維即差異。ML 以及 MAP 皆為一種估計的方式,他們的核心思想是:

經過一連串的實驗後得到一組數據,我們應該假設這組實驗數據出現的可能性為最大值

有了這個假設後,我們就可以以此來估計未知參數,這句話代表的意義將會在稍後詳細說明。MAP 與 ML 不同之處在於,MAP 基於對未知參數的理解,額外做一個機率分布的假設,此舉可以避免我們估計出來的參數過多受到蒐集的實驗數據影響,因為可能我們的實驗有某些偏差,或是實驗數據當中有些 outliers 存在,讓我們估計錯誤。以下將會利用一個簡單的例子個別對 ML 和 MAP 講解。

Maximum Likelihood (ML)

我們以一個簡單的例子講解 ML,今我們有一個硬幣,因為製造工藝有些偏差的關係,我們並不知道投擲該硬幣為正面 ($H$) 及反面 ($T$) 的機率為多少,假設投擲出正面的機率為 $\theta$,投擲反面的機率為 $1-\theta$,此 $\theta$ 就是我們想要估計的參數。為了找出 $\theta$ 最有可能為多少,我們做了10次獨立投擲實驗,並且發現10次實驗的結果皆為正面 $\{H, …, H\}$,那請問我們應該如何估計 $\theta$ 這個參數呢?

假設單純以我們的經驗來推斷,投擲出正面及反面的機率應該相同,即 $\theta = 0.5$,那在這個前提下出現這組實驗數據的機率為:$$
P(\{H, …, H\}) = 0.5^{10} = 0.0009765625
$$ 很小對吧?常理來說我們隨機投擲10次硬幣,會出現10次全部都是正面的情況是少之又少,會出現這種數據的原因只有兩個,第一我們真的是太幸運了,剛好出現萬中選一的情況,第二就是這個硬幣不是公正的硬幣,$\theta \neq 0.5$,身為理性的研究者大多數會傾向相信第二個原因,那我們現在假設 $\theta = 0.6$ 會如何呢?我們發現此時出現這組實驗數據的機率稍稍提高:$$
P(\{H, …, H\}) = 0.6^{10} = 0.0060466176
$$ 但對我們來說這個機率還是太小了,此時如果我們大膽的假設 $\theta = 1.0$ 的話,就會發現我們擲出這組實驗數據的機率變成百分之百:$$
P(\{H, …, H\}) = 1.0^{10} = 1.0
$$ 此時我們就可以滿足了,估計出 $\theta = 1$,因為我們相信:

我們做出的實驗數據,它出現的機率應該為最大的,否則該組實驗數據就不會出現了

透過上述例子我們可以大致了解 ML 的核心概念。要執行 ML 估計前,我們都會先假設將要進行的數據符合某種機率分布,如上述投擲硬幣實驗,我們就假設硬幣出現正面、反面的機率分布為 Bernoulli distribution,令 $x_i \in \{H=1, T=0\}$ 為每次實驗結果,並且:$$
p(x_i | \theta) = \theta^{x_i} (1-\theta)^{1-x_i}
$$ 注意此處我們將這個機率假設成一個條件機率,其意義在於已知 $\theta$ 等於某值的情況下,擲出正面 $x_i = H$ 以及擲出反面 $x_i = T$ 的機率為何。此時我們拿到另一個硬幣想要再次估計出它的 $\theta$ 是多少,於是我們再做一次實驗,並且得到6次正面4次反面:$$
\mathbf{X} = \{H, H, T, H, H, T, T, H, H, T\}$$ 要出現這組數據 $\mathbf{X}$ 的機率為 $$
P(\mathbf{X}) = p(\mathbf{X} | \theta) = p(x_1=H | \theta) p(x_2=H | \theta)…p(x_{10}=T | \theta)
$$ 我們將 $p(\mathbf{X} | \theta)$ 稱為 likelihood,接下來的目標就是找到 $\theta$ 值使 likelihood 最大化,整個過程就是我們所說的 maximum likelihood,但是我們發現直接最大化 likelihood 並非易事,於是我們將 likelihood 取 log 後,再對其最大化,因為 log 是 monotonic function,並不會影響極值發生處,又可以方便我們計算,最後我們將這個估計方法稱為 maximum log-likelihood。我們可以將 log-likelihood 的數學式整理如下:$$
\begin{aligned}
\ln p(\mathbf{X} | \theta) &= \ln p(x_1 | \theta) p(x_2 | \theta)…p(x_{10}=T | \theta) \\
&= \sum_{i=1}^{10} \ln p(x_i | \theta) \\
&= \sum_{i=1}^{10} x_i \ln \theta + (1-x_i) \ln (1-\theta)
\end{aligned}$$ 為了求最大值我們可以對 $\theta$ 做偏微分並設為零,進而求出 log-likelihood 為最大時,$\theta$ 應該為何值:$$
\begin{aligned}
&\frac{\partial \ln p(\mathbf{X} | \theta)}{\partial \theta} = 0 \\
\Rightarrow \hspace{0.5cm} &\sum_{i=1}^{10} \frac{x_i}{\theta} – \frac{(1-x_i)}{(1-\theta)} = 0 \\
\Rightarrow \hspace{0.5cm} &\frac{6}{\theta} – \frac{4}{1-\theta} = 0 \\
\Rightarrow \hspace{0.5cm} &\theta = 0.6
\end{aligned}
$$ 因此我們得到當硬幣出現正面的機率為 0.6,即 $\theta = 0.6$ 時,此組實驗出現的可能性最大。

Maximum a Posteriori (MAP)

我們可以利用 likelihood $p(\mathbf{X} | \theta)$ 估測 $\theta$,那我們可不可以利用 $p(\theta | \mathbf{X})$ 這個機率估測 $\theta$ 呢?答案是可以的,這個條件機率被稱為 posterior,或許對一些人來說利用這個機率估測會比較合理,因為這個機率的意義是給定實驗數據 $\mathbf{X}$ 的條件下 $\theta$ 的機率分布,而我們的目標是要找到 $\theta$ 使得 $p(\theta | \mathbf{X})$ 有最大值。我們可以很容易地利用 Bayes theorem 推出 posterior 的數學式:$$
p(\theta | \mathbf{X}) = \frac{p(\mathbf{X} | \theta) p(\theta)}{p(\mathbf{X})}
$$ 我們可以注意到想要求得 posterior,需要給定 $p(\theta)$ 的機率分布,此機率分布稱為 prior,但是我們並沒有任何方法可以得知 $\theta$ 是如何分布的,我們只能依靠我們對 $\theta$ 的了解賦予它某個機率分布。我們延續剛剛的例子,10次硬幣投擲中有6次正面4次反面,但是這次我們想要用 MAP 估計 $\theta$ 值,因此需要假定一個 prior,依照我們對硬幣的了解,我們假設所有的硬幣投出正面機率的 $\theta$ 值是一個平均為 $0.5$、標準差為 $1$ 的高斯 (Gaussian) 分布:$$
p(\theta) = \frac{1}{\sqrt{2\pi}} \exp{\big(\frac{-1}{2} (\theta – 0.5)^2 \big)}
$$ 另外我們注意到 posterior 裡面還有一個 $p(\mathbf{X})$ 的機率分布,該機率分布可以視為一個常數,為了使 posterior 積分為 $1$,並且我們可以從下式發現 $p(\mathbf{X})$ 內沒有任何關於 $\theta$ 的參數因為都被積分積掉了,所以不會影響最佳化的結果。 $$
p(\mathbf{X}) = \int_{-\infty}^{\infty} p(\mathbf{X} | \theta) p(\theta) d\theta
$$ 因此為了使計算容易,我們可以以 $p(\mathbf{X} | \theta) p(\theta)$ 取代 posterior ,另外和 ML 一樣,我們可以先取 log 再進行偏微分,並不會對結果造成影響:$$
\begin{aligned}
\ln p(\theta | \mathbf{X} ) &\propto \ln p(\mathbf{X} | \theta) p(\theta) \\
&= \sum_{i=1}^{10} \bigg\{ \ln p(x_i | \theta) + \ln p(\theta) \bigg\} \\
&= \sum_{i=1}^{10} \bigg\{ x_i \ln \theta + (1-x_i) \ln (1-\theta) – \frac{1}{2}\ln 2 \pi – \frac{1}{2}(\theta – 0.5)^2 \bigg\}
\end{aligned}
$$ 最後透過偏微分可以找出 $\theta$ 值,使得 posterior 最大化:$$
\begin{aligned}
&\frac{\partial \ln p(\mathbf{X} | \theta) p(\theta)}{\partial \theta} = 0 \\
\Rightarrow \hspace{0.5cm} &\sum_{i=1}^{10} \bigg\{\frac{x_i}{\theta} – \frac{1-x_i}{1-\theta} – (\theta – 0.5) \bigg\} = 0 \\
\Rightarrow \hspace{0.5cm} &\frac{6}{\theta} – \frac{4}{1 – \theta} – 10(\theta – 0.5) = 0 \\
\Rightarrow \hspace{0.5cm} &10 \theta^3 – 15\theta^2 – 5\theta + 6 = 0 \\
\Rightarrow \hspace{0.5cm} &\theta \approx 0.5804, 1.5756, -0.6560
\end{aligned}
$$ 三次式求解可以利用牛頓法 (Newton’s method)、三次式公式解或是逼近法求得。其中 $1.5756$ 和 $-0.6560$ 不在機率區間內 $[0, 1]$ 因此可以刪去,最後答案即為 $\theta = 0.5804$。可以發現用相同的數據,利用 ML 估計出來 $\theta = 0.6$ 但是 MAP 估計出來 $\theta = 0.5804$,其中的差異是因為我們加入一個 prior 的知識到 posterior,使得 MAP 稍微抑制了我們對實驗數據的依賴性,轉而稍微依賴先備知識 prior,因此 MAP 的優點在於可以減少受到資料集 outlier 的影響,可以更加 robust,但是缺點是如果我們沒有好的 prior,估計出來的值會偏差得更嚴重,比如說我們讓:$$
p(\theta) = \frac{1}{\sqrt{2\pi}} \exp{\big(\frac{-1}{2} (\theta – 0.7)^2 \big)}
$$ 讀者可以自行推導看看估計出來的 $\theta$ 會變成多少。

相較於 ML,MAP 的優點在於更加 robust,受到資料集的影響較小,但是缺點是必須要有好的 prior 幫助估計,若我們沒有任何先備知識,建議還是用 ML 就好。

其他相關文章

[MobileNet 系列] MobileNetV1-為終端而生
EM Algorithm 詳盡介紹: 利用簡單例子輕鬆讀懂 EM 的原理及概念
k-means Clustering-基礎分群的推導及介紹

Show 3 Comments

3 Comments

Comments are closed