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