机器学习系列-强填EM算法在理论与工程之间的鸿沟(下)
前言
?
在上一篇文章《機器學習系列-強填EM算法在理論與工程之間的鴻溝(上)》中,小夕用優(恐)雅(怖)的數學理論來向讀者解釋了EM算法的工作原理。那么從工程角度出發的EM算法又是怎樣的呢?
?
EM算法在工程上有很多應用場景,例如:
1、????半監督學習:即利用包含缺失類別標簽的數據的混合數據集訓練分類器。
2、????數據預處理:給缺失某一維特征的值的數據補上缺失值。
3、????聚類:對,聚類。
4、????隱馬爾科夫模型:訓練隱馬爾科夫模型中的參數。
5、????…
?
場景辣么多,理論卻只有一個。因此討厭數學的攻城獅可能會記住很多場景下的EM算法,而喜歡數學(最起碼不要跟數學打起來)的攻城獅則以不變應萬變,早已看透一切,2333。
?
小夕搬出大栗子:
比如,我們要做文檔分類。我們手頭有10000篇文章,其中只有600篇標好了類別,其余9400篇均沒有類別標簽。那么如何訓練出一個盡可能高精度的分類器呢?
?
誒?有人可能想,既然9400篇文檔都沒有標簽,難道這些沒有標簽的數據都會有助于提高分類器的精度?怎么可能呢?
????????其實很好理解呀。雖然有些文檔沒有類別標簽,但是這些文檔的內容就包含分類信息啊。這里的信息指的是“詞共現”,或者廣義上說“特征共現”。比如我們利用有標簽的文檔發現“么么噠”是非常有助于文檔分類的強特征,然而我們又在沒有標簽的文檔中發現“么么噠”經常與“抱抱”一起出現!也就是共現!那么就可以從很大程度上說明“抱抱”也是有助于文檔分類的強特征。
????????舉個生動的事實,在UseNet語料庫中做新聞類別分類,若要達到70%的精度,則需要2000篇有類別標記的文檔。但是,如果我們有600篇有類別標記的文檔,還有10000篇無類別標記的文檔,那么同樣可以達到70%的精度。
?
攻城獅眼中的EM算法
在攻城獅眼中,上面那個栗子顯然是一個半監督學習問題(即數據集中既有有類別標記的樣本,也有無類別標記的樣本),因此顯然可以搬出來EM算法呀。
在攻城獅眼中,EM算法非常簡單:
1、????僅利用有標簽的數據,訓練一個樸素貝葉斯分類器。
2、????利用訓練好的分類器給無類別標簽的數據打上標簽,順便記下分類器對該標簽的把握。然后將所有標簽的把握求和,得到值sum。
3、????利用全部數據重新訓練樸素貝葉斯分類器。
4、????重復2、3步,直到sum不再變化(或者說近似于不再變化)。
?
誒?明明思路很簡單啊,怎么會跟上一篇中那么多恐怖的公式扯上關系吶!
然而,機智的你有沒有想過,算法為什么要這樣寫呢?這就是關鍵啦。
好橋梁,小夕造
首先,我們在理論EM中的目標是最大化似然函數!而你還記不記得小夕前面講過,其實最大化后驗概率的本質工作就是最大化似然函數呢?
?
誒?發現了沒有~在工程上,我們在第2步中收集分類器對每個標簽的把握并求和,那不就是收集的整個數據集的后驗概率嘛!不就是在近似計算似然函數嘛!
?
因此,顯然,在工程上的第4步,也就是不停的重復2、3步,肯定會讓分類器的精度越來越大呀,因此分類器會對每個標簽的把握越來越大!因此這不就是相當于理論上的最大化似然函數嘛!
?
再想,在工程上,第3步的訓練樸素貝葉斯分類器的本質是什么?不就是訓練樸素貝葉斯分類器的參數嘛!而樸素貝葉斯分類器的參數是什么?不就是先驗概率跟每個類別下的每個特征的每個值的后驗概率嘛!而先驗概率不用管了,那每個類別下的每個特征的每個值的后驗概率合在一起是什么?不就是理論EM算法中的每個隨機變量的概率分布模型的參數嘛!恍然大悟啊有沒有?!
?
路人某:╮(╯_╰)╭并沒有。
?
小夕:(╯°Д°)╯︵ /(.□ . \)
?
好吧,給你幾分鐘時間接受一下訓練分類器的理論意義竟然是計算隨機變量所服從的概率分布模型的參數這個事實。
?
工程EM的第2、3、4步竟然完完全全的卡到了理論EM算法的相應位置。那么理論EM算法還有哪一步沒有對應上呢?當然是參數θ的初始化啦~相信機智的你已經想到了,那就是工程EM中的第1步所做的事情啦。
?
細心的你又有沒有留意到什么不同之處呢?
藏的再深也要挖出來!
如果能留意到,那就非常厲害了。還記得理論EM中,我們計算似然函數的過程中,是要計算無標簽樣本的每種標簽取值的概率之和的!對,就是下面這貨:
?
(我叫圖片,不叫公式)
然而,我們在工程上計算似然函數則是先用分類器預測一個類別,然后疊加該類別的后驗概率!
?
這意味著什么呢?顯然意味著忽略了樣本為其他類別的概率呀!這樣做,肯定導致導致計算出的后驗概率沒有那么準,但是,卻極大的提高了計算效率!
?
因此,本質上講,工程上,半監督學習中的EM算法不過是簡化了計算、優化了初始化的理論EM模型罷了╮(╯▽╰)╭
?
建造橋梁好辛苦,坐等小紅包買瓶水\(//?//)\
總結
以上是生活随笔為你收集整理的机器学习系列-强填EM算法在理论与工程之间的鸿沟(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Solr空间搜索原理分析与实践
- 下一篇: Spring Cloud构建微服务架构: