詳解最大似然估計(MLE)、最大后驗概率估計(MAP),以及貝葉斯公式的理解

詳解最大似然估計(MLE)、最大后驗概率估計(MAP),以及貝葉斯公式的理解

聲明:本文為原創文章,發表于nebulaf91的csdn博客。歡迎轉載,但請務必保留本信息,注明文章出處。
本文作者: nebulaf91
本文原始地址:http://blog.csdn.net/u011508640/article/details/72815981

最大似然估計(Maximum likelihood estimation, 簡稱MLE)和最大后驗概率估計(Maximum a posteriori estimation, 簡稱MAP)是很常用的兩種參數估計方法,如果不理解這兩種方法的思路,很容易弄混它們。下文將詳細說明MLE和MAP的思路與區別。

但別急,我們先從概率和統計的區別講起。

概率和統計是一個東西嗎?

概率(probabilty)和統計(statistics)看似兩個相近的概念,其實研究的問題剛好相反。

概率研究的問題是,已知一個模型和參數,怎么去預測這個模型產生的結果的特性(例如均值,方差,協方差等等)。 舉個例子,我想研究怎么養豬(模型是豬),我選好了想養的品種、喂養方式、豬棚的設計等等(選擇參數),我想知道我養出來的豬大概能有多肥,肉質怎么樣(預測結果)。

統計研究的問題則相反。統計是,有一堆數據,要利用這堆數據去預測模型和參數。仍以豬為例。現在我買到了一堆肉,通過觀察和判斷,我確定這是豬肉(這就確定了模型。在實際研究中,也是通過觀察數據推測模型是/像高斯分布的、指數分布的、拉普拉斯分布的等等),然后,可以進一步研究,判定這豬的品種、這是圈養豬還是跑山豬還是網易豬,等等(推測模型參數)。

一句話總結:概率是已知模型和參數,推數據。統計是已知數據,推模型和參數。

顯然,本文解釋的MLE和MAP都是統計領域的問題。它們都是用來推測參數的方法。為什么會存在著兩種不同方法呢? 這需要理解貝葉斯思想。我們來看看貝葉斯公式。

貝葉斯公式到底在說什么?

學習機器學習和模式識別的人一定都聽過貝葉斯公式(Bayes’ Theorem):
P(A∣B)=P(B∣A)P(A)P(B)【式1】P(A|B)=\frac{P(B|A)P(A)}{P(B)}\ \ \ \ \ \ \ \ \ 【式1】 P(AB)=P(B)P(BA)P(A)??????????【式1
貝葉斯公式看起來很簡單,無非是倒了倒條件概率和聯合概率的公式。

把B展開,可以寫成:

P(A∣B)=P(B∣A)P(A)P(B∣A)P(A)+P(B∣Aˉ)P(Aˉ)【式2】P(A|B)=\frac{P(B|A)P(A)}{P(B|A)P(A)+P(B|\bar{A})P(\bar{A})}\ \ \ \ \ \ \ \ 【式2】 P(AB)=P(BA)P(A)+P(BAˉ)P(Aˉ)P(BA)P(A)?????????【式2
其中 Aˉ\bar{A}Aˉ 表示:非AAA

這個式子就很有意思了。

想想這個情況。一輛汽車(或者電瓶車)的警報響了,你通常是什么反應?有小偷?撞車了? 不。。 你通常什么反應都沒有。因為汽車警報響一響實在是太正常了!每天都要發生好多次。本來,汽車警報設置的功能是,出現了異常情況,需要人關注。然而,由于虛警實在是太多,人們漸漸不相信警報的功能了。

貝葉斯公式就是在描述,你有多大把握能相信一件證據?(how much you can trust the evidence)

我們假設響警報的目的就是想說汽車被砸了。把A計作“汽車被砸了”,B計作“警報響了”,帶進貝葉斯公式里看。我們想求等式左邊 A∣BA|BAB 發生的概率,這是在說警報響了,汽車也確實被砸了。汽車被砸引起(trigger) 警報響,即 B∣AB|ABA。但是,也有可能是汽車被小孩子皮球踢了一下、被行人碰了一下等其他原因(統統計作 Aˉ\bar{A}Aˉ),其他原因引起汽車警報響了,即 B∣AˉB|\bar{A}BAˉ。那么,現在突然聽見警報響了,這時汽車已經被砸了的概率是多少呢(這即是說,警報響這個證據有了,多大把握能相信它確實是在報警說汽車被砸了?)想一想,應當這樣來計算。用警報響起、汽車也被砸了這事件的數量,除以響警報事件的數量(這即【式1】)。進一步展開,即警報響起、汽車也被砸了的事件的數量,除以警報響起、汽車被砸了的事件數量加上警報響起、汽車沒被砸的事件數量(這即【式2】)。

可能有點繞,請稍稍想一想。

再思考【式2】。想讓 P(A∣B)=1P(A|B)=1P(AB)=1,即警報響了,汽車一定被砸了,該怎么做呢?讓 P(B∣Aˉ)P(Aˉ)=0P(B|\bar{A})P(\bar{A}) = 0P(BAˉ)P(Aˉ)=0 即可 。 很容易想清楚 , 假若讓 P(Aˉ)=0P(\bar{A}) = 0P(Aˉ)=0,即杜絕了汽車被球踢、被行人碰到等等其他所有情況,那自然,警報響了,只剩下一種可能——汽車被砸了。這即是提高了響警報這個證據的說服力。

從這個角度總結貝葉斯公式:做判斷的時候,要考慮所有的因素。 老板罵你,不一定是你把什么工作搞砸了,可能只是他今天出門前和太太吵了一架。

再思考【式2】。觀察【式2】右邊的分子,P(B∣A)P(B|A)P(BA) 為汽車被砸后響警報的概率。姑且仍為這是1吧。但是,若 P(A)P(A)P(A) 很小,即汽車被砸的概率本身就很小,則 P(B∣A)P(A)P(B|A)P(A)P(BA)P(A) 仍然很小,即【式2】右邊分子仍然很小,P(A∣B)P(A|B)P(AB) 還是大不起來。 這里,P(A)P(A)P(A) 即是常說的先驗概率,如果 AAA 的先驗概率很小,就算 P(B∣A)P(B|A)P(BA)較大,可能 AAA 的后驗概率 P(A∣B)P(A|B)P(AB) 還是不會大(假設 P(B∣Aˉ)P(Aˉ)P(B|\bar{A})P(\bar{A})P(BAˉ)P(Aˉ) 不變的情況下)。

從這個角度思考貝葉斯公式:一個本來就難以發生的事情,就算出現某個證據和他強烈相關,也要謹慎。證據很可能來自別的雖然不是很相關,但發生概率較高的事情。 發現剛才寫的代碼編譯報錯,可是我今天狀態特別好,這語言我也很熟悉,犯錯的概率很低。因此覺得是編譯器出錯了。 ————別,還是先再檢查下自己的代碼吧。

好了好了,說了這么多,下面言歸正傳,說一說MLE。——————不行,還得先說似然函數(likelihood function)。

似然函數

似然(likelihood)這個詞其實和概率(probability)是差不多的意思,Colins字典這么解釋:The likelihood of something happening is how likely it is to happen. 你把likelihood換成probability,這解釋也讀得通。但是在統計里面,似然函數和概率函數卻是兩個不同的概念(其實也很相近就是了)。

對于這個函數:

P(X∣θ)P(X|\theta) P(Xθ)
輸入有兩個:XXX 表示某一個具體的數據;θ\thetaθ 表示模型的參數。

如果 θ\thetaθ 是已知確定的,XXX 是變量,這個函數叫做概率函數(probability function),它描述對于不同的樣本點 XXX,其出現概率是多少。

如果 XXX 是已知確定的,θ\thetaθ 是變量,這個函數叫做似然函數(likelihood function), 它描述對于不同的模型參數,出現 XXX 這個樣本點的概率是多少。

這有點像“一菜兩吃”的意思。其實這樣的形式我們以前也不是沒遇到過。例如,f(x,y)=xyf(x, y) = x^yf(x,y)=xy , 即 , 即 xxxyyy 次方。如果 xxx 是已知確定的(例如 x=2x=2x=2) ,那這就是 f(y)=2yf(y)=2^yf(y)=2y ,是指數函數;如果 yyy 是已知確定的(例如 y=2y=2y=2 ),那就是 f(x)=x2f(x)=x^2f(x)=x2 ,是二次函數。同一個數學形式,從不同的變量角度觀察,可以有不同的名字。

這么說應該清楚了吧? 如果還沒講清楚,別急,下文會有具體例子。

現在真要先講講MLE了。。

最大似然估計(MLE)

假設有一個造幣廠生產某種硬幣,現在我們拿到了一枚這種硬幣,想試試這硬幣是不是均勻的。即想知道拋這枚硬幣,正反面出現的概率(記為 θ\thetaθ)各是多少?

這是一個統計問題,回想一下,解決統計問題需要什么? 數據!

于是我們拿這枚硬幣拋了10次,得到的數據 x0x_0x0? 是:反正正正正反正正正反。我們想求的正面概率 θ\thetaθ 是模型參數,而拋硬幣模型我們可以假設是二項分布。

那么,出現實驗結果 x0x_0x0?(即反正正正正反正正正反)的似然函數是多少呢?

f(x0,θ)=(1?θ)×θ×θ×θ×θ×(1?θ)×θ×θ×θ×(1?θ)=θ7(1?θ)3=f(θ)\begin{align} f(x_0,\theta)&=(1-\theta)\times\theta\times\theta\times\theta\times\theta\times(1-\theta)\times\theta\times\theta\times\theta\times(1-\theta)\\ &=\theta^7(1-\theta)^3\\ &=f(\theta) \end{align} f(x0?,θ)?=(1?θ)×θ×θ×θ×θ×(1?θ)×θ×θ×θ×(1?θ)=θ7(1?θ)3=f(θ)??
注意,這是個只關于 θ\thetaθ 的函數。而最大似然估計,顧名思義,就是要最大化這個函數。我們可以畫出 f(θ)f(\theta)f(θ) 的圖像:

在這里插入圖片描述

可以看出,在 θ=0.7\theta=0.7θ=0.7 時,似然函數取得最大值。

這樣,我們已經完成了對 θ\thetaθ 的最大似然估計。即,拋10次硬幣,發現7次硬幣正面向上,最大似然估計認為正面向上的概率是0.7。ummm…這非常直觀合理,對吧?

且慢,一些人可能會說,硬幣一般都是均勻的啊! 就算你做實驗發現結果是“反正正正正反正正正反”,我也不信 θ=0.7\theta=0.7θ=0.7

這里就包含了貝葉斯學派的思想了——要考慮先驗概率。 為此,引入了最大后驗概率估計。

最大后驗概率估計(MAP)

最大似然估計是求參數 θ\thetaθ , 使似然函數 P(x0∣θ)P(x_0|\theta)P(x0?θ) 最 大 。 而最大后驗概率估計則是想求 θ\thetaθ 使得 P(x0∣θ)P(θ)P(x_0|\theta)P(\theta)P(x0?θ)P(θ) 最大。求得的 θ\thetaθ 不單單讓似然最大,而且 θ\thetaθ 自己的先驗也得大。這有點像正則化里加懲罰項的思想,不過正則化里是利用加法,而MAP里是利用乘法。

MAP其實是在最大化 P(θ∣x0)=P(x0∣θ)P(θ)P(x0)P(\theta|x_0)=\frac{P(x_0|\theta)P(\theta)}{P(x_0)}P(θx0?)=P(x0?)P(x0?θ)P(θ)? ,不過因為觀測數據 x0x_0x0? 是確定的,即投出的“反正正正正反正正正反”。所以 P(x0)P(x_0)P(x0?) 是一個已知值,所以最終的形式去掉了分母 P(x0)P(x_0)P(x0?) 。比如假設 “投10次硬幣記為一次實驗”,實驗做了 1000 次,出現 “反正正正正反正正正反” 的次數為 nnn ,則 P(x0)=n1000P(x_0)=\frac{n}{1000}P(x0?)=1000n? 。總之,這是由觀測數據所確定的值。最大化 P(θ∣x0)P (\theta ∣ x_0 )P(θx0?) 的意義也很明確,x0x_0x0? 已經出現了,要求 θ\thetaθ 取什么值使 P(θ∣x0)P(\theta|x_0)P(θx0?) 最大。順帶一提,P(θ∣x0)P(\theta|x_0)P(θx0?) 就是后驗概率,這就是最大后驗概率估計名稱的由來。

對于投硬幣的例子來看,我們認為 ”先驗地知道“ θ\thetaθ 取0.5的概率很大,取其他值的概率小一些。我們用一個高斯分布來具體描述我們掌握的這個先驗知識,例如假設 P(θ)P(\theta)P(θ) 為均值 0.5,方差0.1的高斯函數,如下圖:

在這里插入圖片描述

P(x0∣θ)P(θ)P(x_0|\theta)P(\theta)P(x0?θ)P(θ) 的函數圖像為:

在這里插入圖片描述

注意,此時函數取最大值時, θ\thetaθ 取值已向左偏移,不再是 0.7。在 θ=0.558\theta=0.558θ=0.558 時函數取得了最大值。即,用最大后驗概率估計,得到 θ=0.558\theta=0.558θ=0.558

最后,那要怎樣才能說服一個貝葉斯派相信 θ=0.7\theta=0.7θ=0.7 呢?你得多做點實驗。。

如果做了1000次實驗,其中700次都是正面向上,如果仍然假設 P(θ)P(\theta)P(θ) 為均值0.5,方差 0.1 的高斯函數,P(x0∣θ)P(θ)P(x_0|\theta)P(\theta)P(x0?θ)P(θ) 的函數圖像為:

在這里插入圖片描述

θ=0.696\theta=0.696θ=0.696 處取得最大值。

這樣,就算一個考慮了先驗概率的貝葉斯派,也不得不承認得把 θ\thetaθ 估計在0.7附近了。

PS. 要是遇上了頑固的貝葉斯派,認為 P(θ=0.5)=1P(\theta=0.5)=1P(θ=0.5)=1,那就沒得玩了。。 無論怎么做實驗,使用MAP估計出來都是 θ=0.5\theta=0.5θ=0.5。這也說明,一個合理的先驗概率假設是很重要的。通常,先驗概率能從數據中直接分析得到。

最大似然估計和最大后驗概率估計的區別

相信讀完上文,MLE和MAP的區別應該是很清楚的了。MAP就是多了個作為因子的先驗概率 P(θ)P(\theta)P(θ)。或者,也可以反過來,認為MLE是把先驗概率 P(θ)=1P(\theta)=1P(θ)=1 認為等于1,即認為 θ\thetaθ 是均勻分布。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532413.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

elemntui icon 大小_自定義elementui中的圖標

前提elementui圖標庫圖標較少當你想用elementui的控件而不想用它的圖標時,就可以使用自定義的方式來實現實現el-icon-my-export為我自定義的圖標命名導出//使用圖片來替換//before屬性中的content文本是用來占位的,必須有//可以設置字體大小來確定大小//使用visibil…

變分推斷公式推導

變分推斷公式推導 背景介紹 機器學習中的概率模型可分為頻率派和貝葉斯派。頻率派最終是求一個優化問題,而貝葉斯派則是求一個積分問題。 頻率派 舉幾個例子: 線性回歸 樣本數據:{(xi,yi)}i1N\{(x_i,y_i)\}_{i1}^N{(xi?,yi?)}i1N? 模…

重新打開_iPhone 應用停止響應或無法打開的解決辦法

如果當您在 iPhone 上使用某個重要應用時,遇到應用停止響應、意外退出或無法打開的問題,請參考如下步驟嘗試解決:1.強制退出應用:在 iPhone 后臺強制關閉該應用之后,再次重新打開看看。2.重啟您的設備,然后…

機器學習理論——優雅的模型:變分自編碼器(VAE)

機器學習理論——優雅的模型:變分自編碼器(VAE) 轉自:機器學習理論—優雅的模型(一):變分自編碼器(VAE) 另外直觀理解 VAE, 推薦 臺大李宏毅老師的課程&#…

grub引導項修復詳解_重新安裝win7后,修復Grub啟動項

重新安裝win7后,修復Grub啟動項發布時間:2010-09-14 22:14:00來源:紅聯作者:null925[is] 本帖最后由 null925 于 2010-9-14 22:18 編輯 [/i]原先使用Win7,Gentoo,Ubuntu三系統,Grub作為系統引導管理器,今天重新安裝Win…

基于流的(Flow-based)生成模型簡介

基于流的(Flow-based)生成模型簡介 生成任務 我們先回顧一下所謂的生成任務,究竟是做什么事情。我們認為,世界上所有的圖片,是符合某種分布 pdata(x)p_{data}(x)pdata?(x) 的。當然,這個分布肯定是個極其復雜的分布。而我們有一…

iec60870-5-104通訊協議編程_三菱FX編程口通訊協議1——協議解讀

三菱PLC編程口通訊協議:1、三菱PLC編程口通訊協議有四個命令,如下:2、三菱FX系列PLC地址對應表:PLC_X Group Base AddRess128;Const PLC_Y_Group Base AddRess160;M _Group Base_AddRess 256;P…

采用ODP.NET 批量進行數據同步

因開發、測試場景經常需要模擬機生產環境的數據,原同事開發了一個ado.net圖形化同步工具,對非技術人員操作友好,但對技術員使用并不方便,每次同步需源庫數據與目標的數據源字段進行配置,且同步大數據時慢,因…

熔斷器熔斷時間標準_一種熔斷器熔斷時間測試電路的制作方法

本實用新型涉及汽車制造技術領域,尤其涉及一種熔斷器熔斷時間測試電路。背景技術:伴隨著日新月異的科技進步,人們對生活質量的追求也越來越高,汽車已經成為人們日常出行必不可少的交通工具,人們對汽車的舒適性、安全性…

DETR精讀筆記

DETR精讀筆記 論文:End-to-End Object Detection with Transformers (發表于 ECCV-2020) 代碼:https://github.com/facebookresearch/detr 解讀視頻:DETR 論文精讀【論文精讀】 本筆記主要基于 Yi Zhu 老師的解讀 引言…

lcd像素點密度_【教程】設置添加LCD密度(DPI)設置

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓完美—————————————————分割————————————————————————反編譯settings.apk(1.52)1.Settings.apk\res\values\arrays.xml在之前加入以下代碼240242244246248250252254256258260262264266268…

GAN網絡評估指標:IS、FID、PPL

GAN網絡評估指標:IS、FID、PPL 轉自:IS、FID、PPL,GAN網絡評估指標 另外關于GAN的評價指標,推薦李宏毅老師的視頻:【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (三) – 生成器效能評估與條…

降維后輸入分類器分類時報錯_邏輯回歸解決多分類方法及其優缺點分析

眾所周知,邏輯回歸常用于解決二分類任務,但是在工作/學習/項目中,我們也經常要解決多分類問題。本文總結了 3 種邏輯回歸解決多分類的方法,并分析了他們的優缺點。一、One-Vs-Rest假設我們要解決一個分類問題,該分類問…

淺談 PyTorch 中的 tensor 及使用

淺談 PyTorch 中的 tensor 及使用 轉自:淺談 PyTorch 中的 tensor 及使用 這篇文章主要是圍繞 PyTorch 中的 tensor 展開的,討論了張量的求導機制,在不同設備之間的轉換,神經網絡中權重的更新等內容。面向的讀者是使用過 PyTorch …

簡述springmvc過程_spring mvc的工作流程是什么?

展開全部SpringMVC工作流程描述向服務器發送HTTP請求,請求被前端控制器 DispatcherServlet 捕獲。DispatcherServlet 根據 -servlet.xml 中的配置對請62616964757a686964616fe59b9ee7ad9431333365646233求的URL進行解析,得到請求資源標識符(URI)。 然后根…

PyTorch 的 Autograd

PyTorch 的 Autograd 轉自:PyTorch 的 Autograd PyTorch 作為一個深度學習平臺,在深度學習任務中比 NumPy 這個科學計算庫強在哪里呢?我覺得一是 PyTorch 提供了自動求導機制,二是對 GPU 的支持。由此可見,自動求導 (a…

商場樓層導視牌圖片_百寶圖商場電子導視軟件中預約產品功能簡介

百寶圖商場電子導視軟件中預約產品功能簡介 管理端,可配合百寶圖商場電子導視軟件配套使用 1:數據展示:圖形展示總預約數/預約時間峰值/預約途徑/各途徑數量對比 2:數據統計:有效預約數量/無效預約數量/無效預約原因備…

Pytorch autograd.grad與autograd.backward詳解

Pytorch autograd.grad與autograd.backward詳解 引言 平時在寫 Pytorch 訓練腳本時,都是下面這種無腦按步驟走: outputs model(inputs) # 模型前向推理 optimizer.zero_grad() # 清除累積梯度 loss.backward() # 模型反向求導 optimizer.step()…

相對熵與交叉熵_熵、KL散度、交叉熵

公眾號關注 “ML_NLP”設為 “星標”,重磅干貨,第一時間送達!機器學習算法與自然語言處理出品公眾號原創專欄作者 思婕的便攜席夢思單位 | 哈工大SCIR實驗室KL散度 交叉熵 - 熵1. 熵(Entropy)抽象解釋:熵用于計算一個隨機變量的信…

動手實現一個帶自動微分的深度學習框架

動手實現一個帶自動微分的深度學習框架 轉自:Automatic Differentiation Tutorial 參考代碼:https://github.com/borgwang/tinynn-autograd (主要看 core/tensor.py 和 core/ops.py) 目錄 簡介自動求導設計自動求導實現一個例子總結參考資料 簡介 梯度…