日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习 —— 概率图模型(Homework: CRF Learning)

發布時間:2023/12/10 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习 —— 概率图模型(Homework: CRF Learning) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  概率圖模型的作業越往后變得越來越有趣了。當然,難度也是指數級別的上漲啊,以至于我用了兩個周末才完成秋名山神秘車牌的尋找,啊不,CRF模型的訓練。

  條件隨機場是一種強大的PGM,其可以對各種特征進行建模,同時可以使用隨機梯度下降算法進行訓練,訓練的結果就是PGM中那些定義變量交互方式的參數。

1、LR模型的訓練

  LR模型可以看作是CRF模型的低配版,在完全不定義隨機變量交互,只考慮P(Y|X)的情況下,得到的就是LR模型。其數學表達如下:

  這里theta是參數,X是特征也是像素值,該形式成為Logistic Regression。訓練的本質是針對theta在訓練集上進行優化,使得 P_trainSet 的概率達到最大,P_trainSet = P_data1*P_data2.......*P_datan,用公式表達可以寫作:

  

  這里連乘的形式并不利于我們分析,所以可以對目標方程取負對數——nll。同時將最大化問題轉為最小化問題。

  

  函數求最小值只要沿起梯度方向改變自變量即可,所以這里使用梯度下降法來求取目標函數的最小值。所以,使用梯度下降法來訓練核心有就是——找到梯度的表達式??

  對于LR模型來說,其梯度有著非常優雅的解析解,見之前博客。

  解決了梯度表達式之后,還有一個核心問題就是過擬合,這里可以用L2-norm來強迫參數趨近于0.參數趨近于0就代表弱化特征作用。特征被弱化了模型就無法貼近YLabel了。L2-norm的參數Lamda是詩出來的。此時使用的是矯正集,不能使用訓練集。

  LR模型只是小小的熱身。關鍵是CRF的建模與訓練。

2、CRF的訓練

  拿到CRF的訓練對象的時候我是一臉濛逼的。既沒有概率圖,也沒有團樹圖。只有模型參數和訓練集。CRF的數學表達見之前博客。從程序設計的角度,要做的是由CRF模型參數生成FeatureSet.模型參數如下:

  

  1、隱性節點的狀態card;2、觀測節點的狀態card。 除了模型參數之外,還需要定義模型交互方式(PGM factors),以OCR為例,模型有三種交互方式:1、Yi-Yi:表達了每個標簽本身的概率。2、Yi-xi:對于給定像素位置Yi的概率。3、Yi-Yi+1:相鄰標簽各取某值的概率。由此可針對訓練集中的每個數據生成CRF模型。雖然不同數據的模型是相似的(共享theta),但是其本身結構存在差異(單詞長度不同)。

  實際上,每個feature的本質是 最終的table CPD 里的一個assignment. 而每個exp( fi*theta ),則是其中的val。所以 ? feature -- theta 和 table CPD 是聯系在一起的。 所以這里也很好理解為什么一個theta可以對應多個feature. 因為CPD在概率圖節點之間是復制的!(回憶一下遺傳模型,遺傳模式就是CPD,遺傳模式在所有變量(人)之間不斷復制....)CPD的復制就相當與feature的theta share.?

  這里假設L2-norm的lamda是已知的。并且模型采用L2-norm。所以,核心的任務就是針對訓練集中的每對數據,找到grad,然后整個模型按照grad下降尋找最合適的一組theta.求grad的理論分析不贅述,這里只從算法實現的角度來研究。為獲得grad和cost,我們一共有5個量需要求:

2.1 LogZ

  LogZ的計算是全局最難的。其數學表達如下:

  

  其需要對所有Y的取值求和。這代表要對 x 對應的所有可能的標簽求和。換言之,要對最終聯合分布CPD的val進行求和。如果是一個長度為7的單詞,那就是26^7個數據求和。這顯然是不現實的此數目多過太陽系里所有的星球。。。這里的第一個trick是利用團樹標定算法求取Z.

  exp(XXXX)求的是整體概率(每個exp(fi*theta)是一個val),連乘是聯合分布。團樹算法中,每個消息 u 都是對之前變量進行邊際化之后得到的。假設有一個3節點的團樹鏈,團中分別有變量x1x2 ,x2x3, x3x4. 那么消息傳遞可以有以下形式:

  u12?=?Σ1Φ1?? ?

  u23?=?Σ2Φ2?*??u12? ?= ?Σ2Φ2?*?Σ1Φ1 ?=?Σ12 ?Φ21?

  u32?=?Σ4Φ3??

  重點在于?Σ3 u32*u23?=?Σ1234 Φ2?Φ21? = Z

  從定性上而言,消息攜帶了兩邊全部的信息,所以一條邊上兩個方向的消息攜帶了整個概率圖中的信息。注意,這里的消息不能歸一化,而團樹標定中,消息必須歸一化才能傳遞。

2.2 Model Expected feature Count

  第二個難點在于模型feature count的計算。

  對于每次梯度計算,我們手上都有一套完整的模型。模型的特征是一個指示函數,只要模型里有該特征,f取值都是1。ΣP*f 表達了當前模型對這些特征的肯定程度。f 是 table CPD的一個assignment,所以其 var , assignment 會對應一個特定的概率,也就是P。這里要算概率,似乎又要求那個26^7的聯合分布了,然而并不是。由于特征本質是一個factor的assignment,而之前我們已經得到了標定好的團樹模型,只需要在單個團樹里求取Y'assignment對應的概率即可。因為clqiue的scope肯定要比feature大!!!

  這里比較trick的是,形式上,一個特征不止出現一次(意義不同)。比如說相鄰的兩個Y,取值分別為ab,這本質上是一個特征,只對應一個theta。但是這里的theta是share的。所以計算時必須把所有對應相同theta的f 都算進來。其數學表達式應該修正為:

2.3 Data Count

  Data Count 則是一個和數據有關的量了,表達了特征(shared)在當前數據中是否出現,是則置1,否則置0.

 

3、總結

  條件隨機場的訓練中真的充滿了trick,通過此次作業,我加深了對Representation, Inference, Learning 的理解。

  最后,今天是母親節~~親愛的老媽節日快樂~ 

  

轉載于:https://www.cnblogs.com/ironstark/p/5471387.html

總結

以上是生活随笔為你收集整理的机器学习 —— 概率图模型(Homework: CRF Learning)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。