前言
在研究SoftMax交叉熵損失函數(Cross Entropy Loss Function)的時候,一種方法是從概率的角度來解釋softmax cross entropy loss function的物理意義[1]。
我們再來回顧下分類器輸出的Probability Map
,如下:
P ( y i ∣ x i ; W ) = e f y i ∑ j e f j P(y_i \mid x_i; W) = \frac{e^{f_{y_i}}}{\sum_j e^{f_j} } P ( y i ∣ x i ; W ) = ∑ j e f j e f y i
這個公式可以解釋爲對於給定的x i x_i x i 和W W W , 將x i x_i x i 分類爲真實標籤y i y_i y i 的概率爲P P P , 因此從**最大似然估計(Maximum Likelihood Estimation)**的角度來講,交叉熵損失函數的公式如下:
L i = − log ( e f y i ∑ j e f j ) or equivalently L i = − f y i + log ∑ j e f j L_i = -\log\left(\frac{e^{f_{y_i}}}{ \sum_j e^{f_j} }\right) \hspace{0.5in} \text{or equivalently} \hspace{0.5in} L_i = -f_{y_i} + \log\sum_j e^{f_j} L i = − log ( ∑ j e f j e f y i ) or equivalently L i = − f y i + log j ∑ e f j
不就是最大似然估計的公式嗎?
而且有個有意思 的地方在於,使用概率的角度考慮交叉熵損失的意義,如果給分類器的權重增加一個正則項,如R ( W ) R(W) R ( W ) ,我們還可以使用最大後驗估計(Maximmu a Posteriori)的方法 去解釋它。
那麼問題就在於最大似然估計和最大後驗概率估計這樣兩種方法的區別和聯繫是什麼? 查資料的時候發現有個博客 [2]寫的很好,並且我覺得如果讓我寫的話也許還不如他寫的有條理,因此這裏選擇直接翻譯原文,以下的【方法】一節是我翻譯的原文。
方法
最大似然估計(Maximum Likelihood Estimation, MLE, 後文一直用MLE表示
)和最大後驗概率估計(Maximum A Posteriori Estimation, MAP, 後文一直用MAP表示
)都是用於在概率分佈或圖形模型的設置中估計一些變量的方法。它們類似,因爲它們計算單個估計值,而不是完整分佈(這句話很彆扭,原文:They are similar, as they compute a single estimate, instead of a full distribution.
)。
學過Mechine Learning的同學應該都知道MLE的方法。有時候我們甚至都不知道自己使用了MLE的方法,比如,當我們想將一個數據集擬合爲高斯分佈時,我們會直接計算樣本的均值和方差,用來當做擬合的高斯概率密度函數的參數。這就是MLE,因爲如果我們使用高斯的概率密度函數對均值和方差求導,並且最大化它(比如設置導數爲零),我們得到的就將會是求解樣本的均值和樣本的方差。另一個例子,在機器學習和深度學習中,大多數的優化問題都可以解釋爲MLE的問題(這裏就是我們在前言中講過的softmax cross entropy loss function的解釋了
)。
講的更抽象一點,假設我們現在有一個似然函數方程P ( x ∣ θ ) P(x|\theta) P ( x ∣ θ ) ,那麼我們想使用MLE方法估計的參數θ \theta θ 可以表示成如下的公式:
θ M L E = a r g m a x θ P ( X ∣ θ ) = a r g m a x θ ∏ i P ( x i ∣ θ )
\theta_{MLE} = \mathop{\rm arg\,max}\limits_{\theta} P(X \vert \theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \prod_i P(x_i \vert \theta)
θ M L E = θ a r g m a x P ( X ∣ θ ) = θ a r g m a x i ∏ P ( x i ∣ θ )
在實際計算過程中,由於將很多小於1的數相乘會使最終的結果趨近於0,導致數據的下溢出。因此我們將乘法轉化爲log空間中的加法,由於log函數是單調遞增的,因此最大化上面的方程就等價於最大化下面的這個方程:
θ M L E = a r g m a x θ log P ( X ∣ θ ) = a r g m a x θ log ∏ i P ( x i ∣ θ ) = a r g m a x θ ∑ i log P ( x i ∣ θ )
\theta_{MLE} = \mathop{\rm arg\,max}\limits_{\theta} \log P(X \vert \theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \log \prod_i P(x_i \vert \theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \sum_i \log P(x_i \vert \theta)
θ M L E = θ a r g m a x log P ( X ∣ θ ) = θ a r g m a x log i ∏ P ( x i ∣ θ ) = θ a r g m a x i ∑ log P ( x i ∣ θ )
如果使用這個框架,我們只需要計算模型的log形式的似然函數,然後最大化這個似然函數求得參數θ \theta θ 即可,可以使用我們最喜歡的優化函數如梯度下降法。
到此爲止,我們已經理解了MLE是如何操作的,從現在起,我們又要開啓故事的另一條主線了。
MAP通常出現在Bayesian的環景中,因爲,正如其名字顯示,MAP利用了後驗概率的分佈,而不僅僅是似然函數。
回憶一下貝葉斯準則 ,我們可以通過先驗概率和似然函數的乘積得到後驗概率如下:
P ( θ ∣ X ) = P ( X ∣ θ ) P ( θ ) P ( X ) ∝ P ( X ∣ θ ) P ( θ )
P(\theta \vert X) = \frac{P(X \vert \theta) P(\theta)}{P(X)} \\[10pt]
\propto P(X \vert \theta) P(\theta)
P ( θ ∣ X ) = P ( X ) P ( X ∣ θ ) P ( θ ) ∝ P ( X ∣ θ ) P ( θ )
一般情況下我們都會忽略掉歸一化因子,因爲我們嚴格地說這裏是優化,因此只要比例就夠了。
如果我們把之前的MLE估計中的似然函數去掉,換成後驗概率,那麼目標函數變成如下形式:
θ M A P = a r g m a x θ P ( X ∣ θ ) P ( θ ) = a r g m a x θ log P ( X ∣ θ ) P ( θ ) = a r g m a x θ log ∏ i P ( x i ∣ θ ) P ( θ ) = a r g m a x θ ∑ i log P ( x i ∣ θ ) P ( θ )
\theta_{MAP} = \mathop{\rm arg\,max}\limits_{\theta} P(X \vert \theta) P(\theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \log P(X \vert \theta) P(\theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \log \prod_i P(x_i \vert \theta) P(\theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \sum_i \log P(x_i \vert \theta) P(\theta)
θ M A P = θ a r g m a x P ( X ∣ θ ) P ( θ ) = θ a r g m a x log P ( X ∣ θ ) P ( θ ) = θ a r g m a x log i ∏ P ( x i ∣ θ ) P ( θ ) = θ a r g m a x i ∑ log P ( x i ∣ θ ) P ( θ )
對比下MLE和MAP的公式,兩者唯一的區別在於MAP估計中增加了一個先驗概率P ( θ ) P(\theta) P ( θ ) ,否則,二者完全相同。這就意味着,似然函數現在增加了一個權重,並且這些權重來源於先驗概率。
我們假設下如果我們在MAP模型中使用最簡單的先驗概率,比如均勻分佈。這也就意味着,我們在θ \theta θ 的所有可能出現的值上增加了一個相同的權重。也就是說,先驗概率上乘了一個常數。因爲它是個常數,因此不會對優化結果產生影響,故我們可以把這個常數從目標函數中去掉。
更具體一點,假設θ \theta θ 的可能取值有6個。那麼我們就讓p ( θ ) p(\theta) p ( θ ) 的值都爲1 6 \frac{1}{6} 6 1 ,此時,我們就可以在MAP模型中將常數部分去掉,如下:
θ M A P = a r g m a x θ ∑ i log P ( x i ∣ θ ) P ( θ ) = a r g m a x θ ∑ i log P ( x i ∣ θ ) c o n s t = a r g m a x θ ∑ i log P ( x i ∣ θ ) = θ M L E
\theta_{MAP} = \mathop{\rm arg\,max}\limits_{\theta} \sum_i \log P(x_i \vert \theta) P(\theta) \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \sum_i \log P(x_i \vert \theta) \, const \\[10pt]
= \mathop{\rm arg\,max}\limits_{\theta} \sum_i \log P(x_i \vert \theta) \\[10pt]
= \theta_{MLE}
θ M A P = θ a r g m a x i ∑ log P ( x i ∣ θ ) P ( θ ) = θ a r g m a x i ∑ log P ( x i ∣ θ ) c o n s t = θ a r g m a x i ∑ log P ( x i ∣ θ ) = θ M L E
我們又回到了MLE!
如果我們使用了不同的先驗概率,比如高斯分佈函數,那麼其先驗概率就不再是處處相同,由於取決於分佈的區域,概率或高或低,不總是相同了。
至此我們可以得出結論,MLE是MAP的一個特殊情況,也就是當先驗概率爲均勻分佈時,二者相同。
總結
至此文章翻譯完了,並且得出了一個結論:
MLE是MAP的一個特殊情況,也就是當先驗概率爲均勻分佈時,二者相同。
第一次做翻譯工作,感覺真的很彆扭,明明英文讀着很流暢,可就是不知道怎麼用漢語表述,尷尬至極。
以後儘量還是不翻譯了,整合下各種資料就好了 😃
參考
[1]. https://cs231n.github.io/linear-classify/
[2]. https://wiseodd.github.io/techblog/2017/01/01/mle-vs-map/