學習的心得|筆記
貝葉斯估計,極大似然估計
前兩天做了一些極大似然估計和貝葉斯估計的筆記,印象挺深的是以就先記錄這一塊。
首先先說明一下估計的方法吧,估計的方法包括參數估計和非參數估計,在參數估計中,又包括了最大似然估計和貝葉斯估計。
極大似然估計
最大似然估計的目的是利用已知的樣本結果,反推最有可能導緻這樣參數值。
似然函數
聯合機率密度函數P(D|θ)稱為相對于{x1,x2,...,xn} θ 的似然函數
l(θ)=P(D|θ)= P(x1,x2,x3,...,xn|θ)=p(x1|θ)p(x2|θ).....*p(xn|θ)
如果 θ'是參數空間中可能使似然函數l(θ)的最大 θ 指則 θ'應該是”最可能“的參數值,那麼 θ'就是 θ 的極大似然估計量。是樣本集的函數,記作
θ^=d(x1,x2,....,xn)=d(D)
θ^(x1,x2,x3,...,xn)稱作極大似然函數估計值
求解極大似然函數
ML估計,求使得出現該組樣本的機率最大的 θ 值
θ^=argmax l(θ)=argmax p(x1|θ)*p(x2|θ)*.....*p(xn|θ)
為了友善分析,定義了對數似然函數
H(θ)=ln(θ)
θ^=argmax ln p(x1|θ)*ln p(x2|θ)*.....*ln p(xn|θ)
當未知參數隻有一個(θ為标量)時
在似然函數滿足連續,可微正則條件下,極大似然估計量是下面微分方程的解:
dl(θ)/dθ=0 或 dln(θ)/dθ=0
當未知參數有多個時(θ為向量)時
則θ可表示為具有S個分量的未知向量 θ=[θ1,θ2,....θs]T
記梯度算子
▽θ=[∂/∂θ1,∂/∂θ2,....∂/∂θn]T
若似然函數滿足連續可導的條件,則最大似然函數估計量就是如下方程的解
▽θln(θ)=Pθln p(x1|θ)ln p(x2|θ).....ln p(xn|θ)=0
例題
為了友善了解,我先用課上的例題作為例子。
例題如下

過程就是先寫出機率函數,再取對數,再求導,再解方程。
貝葉斯估計
已知樣本滿足某種機率分布,但參數未知。貝葉斯估計把待估參數看成符合某種先驗機率分布的随機變量。對樣本進行觀測的過程就是把先驗機率密度轉化為後驗機率密度,這樣就利用樣本資訊修正了對參數的初始估計值。
貝葉斯定理
在參數估計中可以寫成
貝葉斯估計是在MAP上做進一步拓展,此時不直接估計參數的值,而是允許參數服從一定機率分布。極大似然估計和極大後驗機率估計,都求出了參數的值,而貝葉斯估計則不是,貝葉斯估計擴充了極大後驗機率估計MAP(一個是等于,一個是約等于)方法,它根據參數的先驗分布和一系列觀察,求出參數的後驗分布,然後求出的期望值,作為其最終值。另外還定義了參數的一個方差量,來評估參數估計的準确程度。
貝葉斯算法過程
貝葉斯估計和極大似然估計的差別
最大似然估計和貝葉斯估計最大差別便在于估計的參數不同,極大似然估計要估計的參數θ被當作是固定形式的一個未知變量而貝葉斯估計則是将參數視為是有某種已知先驗分布的随機變量,意思便是這個參數他不是一個固定的未知數,而是符合一定先驗分布如:随機變量θ符合正态分布等,那麼在貝葉斯估計中除了類條件機率密度p(x|w)符合一定的先驗分布,參數θ也符合一定的先驗分布。我們通過貝葉斯規則将參數的先驗分布轉化成後驗分布進行求解
在算法的複雜性上,貝葉斯估計要比極大似然估計來的複雜,而當采用的樣本資料很有限時,貝葉斯估計誤差更小。
機器學習等人工智能領域的前沿技術介紹、展望、應用
自然語言處理
自然語言處理(NLP)是語言學和人工智能的交叉科學,旨在讓計算機能夠“讀懂”人類的語言。其包括的主要範疇有(我們這裡說的自然語言處理僅僅指文本相關的):分詞、詞性标注、命名實體識别、句法分析、關鍵詞抽取、文本分類、自動摘要以及資訊檢索等等。傳統的自然語言處理主要是利用語言學領域本身的知識結合一些統計學的方法來擷取語言知識。後來伴随着機器學習淺層模型的發展(如:SVM、邏輯回歸等等),自然語言處理領域的研究取得了一定的突破,但在語義消歧、語言的了解等方面還是顯得力不存心。近年來,随着深度學習相關技術(DNN、CNN、RNN等)[6][7]取得了顯著的進展,其在自然語言處理方面的應用也展現出了明顯的優勢。
從算法上來看,詞向量(word vector)作為深度學習算法在自然語言領域的先驅,有着及其廣泛的應用場景,在機器翻譯、情感分析等方面均取得了不錯的效果。其基本思想是把人類語言中的詞盡可能完整地轉換成計算機可以了解的稠密向量,同時要保證向量的次元在可控的範圍之内,在Bahdanau等人利用LSTM[8]模型結合一些自定義的語料,解決了傳統模型的Out of dictionary word問題之後,更使得基于深度學習的自然語言處理較于傳統方法有明顯的優勢。目前,基于深度學習的自然語言處理在文本分類、機器翻譯、智能問答、推薦系統以及聊天機器人等方向都有着極為廣的應用。
自然語言處理的難點
自然語言處理的困難有很多,但造成困難的根本原因無外乎是自然語言的文本和對話中廣泛存在的各種歧義性或多義性。歧義性指在語義分析等處理語言過程中存在的歧義問題,而消除歧義則需要大量知識。對機器來說也是一樣,翻譯時計算機必須擁有一定的背景知識庫。
自然語言中充滿了大量的歧義,人類的活動和表達十分複雜,而語言中的詞彙和文法規則又是有限的,這就導緻了同一種語言形式可能表達了多種不同含義。以漢語為例,漢語一般由字組成詞,由詞組成句,由句子組成段落,其中含有多層意思的轉換。同樣形式的語句在不同的語境中可能含有不同的意義,反過來,同樣的意思也可以用不同形式的語句表示,這正是語言的魅力所在,卻也給自然語言處理帶來了困難。
在漢語中,分詞問題便屬于消歧任務之一。單詞是承載語義最小的單元,是以自然語言進行中分詞問題是急需解決的。在口語表述中,詞和詞之間是連貫的,在書寫中也是如此。由于漢語不像英語等語言具有天然分詞,中文的處理就多了一層障礙。在分詞過程中,計算機會在每個單詞後面加入分隔符,而有些時候語義有歧義,分隔符的插入就變得困難。