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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型

發(fā)布時(shí)間:2025/3/8 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)

Author:louwill

Machine Learning Lab

? ? ?

最大熵原理(Maximum Entropy Principle)是一種基于信息熵理論的一般原理,在機(jī)器學(xué)習(xí)領(lǐng)域也有著廣泛的應(yīng)用價(jià)值。基于最大熵原理確定的分類模型也叫最大熵模型。所謂信息熵,即一種描述信息不確定程度的量。而最大熵方法認(rèn)為熵在由已知信息得到的約束條件下的最大化概率分布是充分利用已知信息并對(duì)未知部分作最少的假定的概率分布。

信息熵

已知一個(gè)離散型隨機(jī)變量,其信息熵可以定義為:

若為連續(xù)型隨機(jī)變量,其信息熵可定義為:

其中為分布函數(shù)的概率密度函數(shù),為離散點(diǎn)的概率分布。最大熵方法就是在給定約束條件下求得或使得熵達(dá)到最大值,其本質(zhì)上就是一個(gè)求解約束的最優(yōu)化問(wèn)題。

最大熵模型

假設(shè)目標(biāo)分類模型是一個(gè)條件概率分布,其中表示輸入,表示輸出,在給定輸入的情況下,以條件概率輸出。在給定訓(xùn)練數(shù)據(jù)集的情況下,學(xué)習(xí)的目標(biāo)就是選擇最大熵模型作為目標(biāo)模型。
在給定數(shù)據(jù)集的情況下,可以確定其聯(lián)合概率分布的經(jīng)驗(yàn)分布和邊緣概率分布的經(jīng)驗(yàn)分布。然后我們用特征函數(shù)來(lái)描述輸入輸出之間的一個(gè)事實(shí),的定義為一個(gè)0-1函數(shù),即與滿足某一事實(shí)時(shí)取值為1,否則取值為0。
特征函數(shù)關(guān)于經(jīng)驗(yàn)分布的期望值為:

特征函數(shù)關(guān)于模型經(jīng)驗(yàn)分布的期望值為:

如果模型能夠從已知數(shù)據(jù)中獲取足夠的信息,我們就可以假設(shè)上述兩個(gè)期望值相等,即有:

具體地:

上式即可作為最大熵模型學(xué)習(xí)的約束條件,如果有個(gè)特征函數(shù),即有個(gè)約束條件。

假設(shè)滿足上述特征函數(shù)構(gòu)造的約束條件的模型集合為,定義在模型集合中的條件熵最大的模型即為最大熵模型:

給定特征函數(shù)條件和概率約束條件的情況下,最大熵模型的學(xué)習(xí)等價(jià)于求解約束最優(yōu)化問(wèn)題:


將上述最大化問(wèn)題改寫為最小化問(wèn)題:


通過(guò)拉格朗日乘子法可將上述約束優(yōu)化轉(zhuǎn)化為無(wú)約束最優(yōu)化問(wèn)題,并將其原始問(wèn)題轉(zhuǎn)化為對(duì)偶問(wèn)題進(jìn)行求解,定義拉格朗日函數(shù):

最優(yōu)化的原始問(wèn)題為:

其對(duì)偶問(wèn)題為:

針對(duì)該對(duì)偶問(wèn)題的求解,我們可以先嘗試求解其內(nèi)部的極小化問(wèn)題,令:

其中:

將對(duì)求偏導(dǎo)并令為0,可解得:

其中:

由式表示的模型即為最大熵模型。

然后即可求解外部極大化問(wèn)題:

將其解記為:
最大熵模型可以歸結(jié)為對(duì)偶函數(shù)的極大化,優(yōu)化求解得到的即為最終的最大熵模型。

最大熵算法實(shí)現(xiàn)

最大熵模型求解本質(zhì)在于求解凸優(yōu)化問(wèn)題。本節(jié)就不針對(duì)該求解過(guò)程提供手寫算法實(shí)現(xiàn)。借助于maxentropy庫(kù)我們看以下最大熵模型的基本實(shí)現(xiàn)方式。

基于maxentropy的一個(gè)簡(jiǎn)單實(shí)現(xiàn)案例:

import numpy as np import maxentropysamplespace = np.arange(6) + 1 model = maxentropy.Model(samplespace) model.verbose = True# 設(shè)置特征期望值 K = [4.5] # 擬合最大熵模型 model.fit(f, K)

求解過(guò)程如下:

查看擬合參數(shù):

model.params array([ 0.37354745])

實(shí)際求解時(shí)模型也可能存在不收斂的情況,可以嘗試像BFGS等不同的優(yōu)化算法進(jìn)行求解。

參考資料:

李航 統(tǒng)計(jì)學(xué)習(xí)方法 第二版

https://pypi.org/project/maxentropy/

往期精彩:

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法21:馬爾科夫鏈蒙特卡洛

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法20:LDA線性判別分析

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法19:PCA降維

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法18:奇異值分解SVD

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法17:XGBoost

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法16:Adaboost

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法15:GBDT

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法14:Ridge嶺回歸

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法13:Lasso回歸

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法12:貝葉斯網(wǎng)絡(luò)

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法11:樸素貝葉斯

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法10:線性不可分支持向量機(jī)

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法8-9:線性可分支持向量機(jī)和線性支持向量機(jī)

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法7:神經(jīng)網(wǎng)絡(luò)

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法6:感知機(jī)

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法5:決策樹之CART算法

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法4:決策樹之ID3算法

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法3:k近鄰

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法2:邏輯回歸

數(shù)學(xué)推導(dǎo)+純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法1:線性回歸

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開(kāi):https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請(qǐng)掃碼進(jìn)群:

總結(jié)

以上是生活随笔為你收集整理的【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。