复现经典:《统计学习方法》第 11 章 条件随机场
本文是李航老師的《統計學習方法》[1]一書的代碼復現。
作者:黃海廣[2]
備注:代碼都可以在github[3]中下載。
我將陸續將代碼發布在公眾號“機器學習初學者”,敬請關注。
代碼目錄
第 1 章 統計學習方法概論
第 2 章 感知機
第 3 章 k 近鄰法
第 4 章 樸素貝葉斯
第 5 章 決策樹
第 6 章 邏輯斯諦回歸
第 7 章 支持向量機
第 8 章 提升方法
第 9 章 EM 算法及其推廣
第 10 章 隱馬爾可夫模型
第 11 章 條件隨機場
第 12 章 監督學習方法總結
代碼參考:wzyonggege[4],WenDesi[5],火燙火燙的[6]
第 11 章 條件隨機場
1.概率無向圖模型是由無向圖表示的聯合概率分布。無向圖上的結點之間的連接關系表示了聯合分布的隨機變量集合之間的條件獨立性,即馬爾可夫性。因此,概率無向圖模型也稱為馬爾可夫隨機場。
概率無向圖模型或馬爾可夫隨機場的聯合概率分布可以分解為無向圖最大團上的正值函數的乘積的形式。
2.條件隨機場是給定輸入隨機變量條件下,輸出隨機變量的條件概率分布模型, 其形式為參數化的對數線性模型。條件隨機場的最大特點是假設輸出變量之間的聯合概率分布構成概率無向圖模型,即馬爾可夫隨機場。條件隨機場是判別模型。
3.線性鏈條件隨機場是定義在觀測序列與標記序列上的條件隨機場。線性鏈條件隨機場一般表示為給定觀測序列條件下的標記序列的條件概率分布,由參數化的對數線性模型表示。模型包含特征及相應的權值,特征是定義在線性鏈的邊與結點上的。線性鏈條件隨機場的數學表達式是
其中,
4.線性鏈條件隨機場的概率計算通常利用前向-后向算法。
5.條件隨機場的學習方法通常是極大似然估計方法或正則化的極大似然估計,即在給定訓練數據下,通過極大化訓練數據的對數似然函數以估計模型參數。具體的算法有改進的迭代尺度算法、梯度下降法、擬牛頓法等。
6.線性鏈條件隨機場的一個重要應用是標注。維特比算法是給定觀測序列求條件概率最大的標記序列的方法。
例 11.1
from numpy import * #這里定義T為轉移矩陣列代表前一個y(ij)代表由狀態i轉到狀態j的概率,Tx矩陣x對應于時間序列 #這里將書上的轉移特征轉換為如下以時間軸為區別的三個多維列表,維度為輸出的維度 T1 = [[0.6, 1], [1, 0]] T2 = [[0, 1], [1, 0.2]] #將書上的狀態特征同樣轉換成列表,第一個是為y1的未規劃概率,第二個為y2的未規劃概率 S0 = [1, 0.5] S1 = [0.8, 0.5] S2 = [0.8, 0.5] Y = [1, 2, 2] #即書上例一需要計算的非規劃條件概率的標記序列 Y = array(Y) - 1 #這里為了將數與索引相對應即從零開始 P = exp(S0[Y[0]]) for i in range(1, len(Y)):P *= exp((eval('S%d' % i)[Y[i]]) + eval('T%d' % i)[Y[i - 1]][Y[i]]) print(P) print(exp(3.2)) 24.532530197109345 24.532530197109352例 11.2
#這里根據例11.2的啟發整合為一個矩陣 F0 = S0 F1 = T1 + array(S1 * len(T1)).reshape(shape(T1)) F2 = T2 + array(S2 * len(T2)).reshape(shape(T2)) Y = [1, 2, 2] #即書上例一需要計算的非規劃條件概率的標記序列 Y = array(Y) - 1P = exp(F0[Y[0]]) Sum = P for i in range(1, len(Y)):PIter = exp((eval('F%d' % i)[Y[i - 1]][Y[i]]))P *= PIterSum += PIter print('非規范化概率', P) 非規范化概率 24.532530197109345參考資料
[1] 《統計學習方法》:?https://baike.baidu.com/item/統計學習方法/10430179
[2] 黃海廣:?https://github.com/fengdu78
[3] github:?https://github.com/fengdu78/lihang-code
[4] wzyonggege:?https://github.com/wzyonggege/statistical-learning-method
[5] WenDesi:?https://github.com/WenDesi/lihang_book_algorithm
[6] 火燙火燙的:?https://blog.csdn.net/tudaodiaozhale
往期精彩回顧
那些年做的學術公益-你不是一個人在戰斗
適合初學者入門人工智能的路線及資料下載
吳恩達機器學習課程筆記及資源(github標星12000+,提供百度云鏡像)
吳恩達深度學習筆記及視頻等資源(github標星8500+,提供百度云鏡像)
《統計學習方法》的python代碼實現(github標星7200+)
機器學習的數學精華(在線閱讀版)
備注:加入本站微信群或者qq群,請回復“加群”
加入知識星球(4300+用戶,ID:92416895),請回復“知識星球”
總結
以上是生活随笔為你收集整理的复现经典:《统计学习方法》第 11 章 条件随机场的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复现经典:《统计学习方法》第 12 章
- 下一篇: 复现经典:《统计学习方法》第 9 章 E