【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型
Python機器學習算法實現
Author:louwill
Machine Learning Lab
? ? ?
最大熵原理(Maximum Entropy Principle)是一種基于信息熵理論的一般原理,在機器學習領域也有著廣泛的應用價值。基于最大熵原理確定的分類模型也叫最大熵模型。所謂信息熵,即一種描述信息不確定程度的量。而最大熵方法認為熵在由已知信息得到的約束條件下的最大化概率分布是充分利用已知信息并對未知部分作最少的假定的概率分布。
信息熵
已知一個離散型隨機變量,其信息熵可以定義為:
若為連續型隨機變量,其信息熵可定義為:
其中為分布函數的概率密度函數,為離散點的概率分布。最大熵方法就是在給定約束條件下求得或使得熵達到最大值,其本質上就是一個求解約束的最優化問題。
最大熵模型
假設目標分類模型是一個條件概率分布,其中表示輸入,表示輸出,在給定輸入的情況下,以條件概率輸出。在給定訓練數據集的情況下,學習的目標就是選擇最大熵模型作為目標模型。
在給定數據集的情況下,可以確定其聯合概率分布的經驗分布和邊緣概率分布的經驗分布。然后我們用特征函數來描述輸入輸出之間的一個事實,的定義為一個0-1函數,即與滿足某一事實時取值為1,否則取值為0。
特征函數關于經驗分布的期望值為:
特征函數關于模型經驗分布的期望值為:
如果模型能夠從已知數據中獲取足夠的信息,我們就可以假設上述兩個期望值相等,即有:
具體地:
上式即可作為最大熵模型學習的約束條件,如果有個特征函數,即有個約束條件。
假設滿足上述特征函數構造的約束條件的模型集合為,定義在模型集合中的條件熵最大的模型即為最大熵模型:
給定特征函數條件和概率約束條件的情況下,最大熵模型的學習等價于求解約束最優化問題:
將上述最大化問題改寫為最小化問題:
通過拉格朗日乘子法可將上述約束優化轉化為無約束最優化問題,并將其原始問題轉化為對偶問題進行求解,定義拉格朗日函數:
最優化的原始問題為:
其對偶問題為:
針對該對偶問題的求解,我們可以先嘗試求解其內部的極小化問題,令:
其中:
將對求偏導并令為0,可解得:
其中:
由式表示的模型即為最大熵模型。
然后即可求解外部極大化問題:
將其解記為:
最大熵模型可以歸結為對偶函數的極大化,優化求解得到的即為最終的最大熵模型。
最大熵算法實現
最大熵模型求解本質在于求解凸優化問題。本節就不針對該求解過程提供手寫算法實現。借助于maxentropy庫我們看以下最大熵模型的基本實現方式。
基于maxentropy的一個簡單實現案例:
求解過程如下:
查看擬合參數:
實際求解時模型也可能存在不收斂的情況,可以嘗試像BFGS等不同的優化算法進行求解。
參考資料:
李航 統計學習方法 第二版
https://pypi.org/project/maxentropy/
往期精彩:
數學推導+純Python實現機器學習算法21:馬爾科夫鏈蒙特卡洛
數學推導+純Python實現機器學習算法20:LDA線性判別分析
數學推導+純Python實現機器學習算法19:PCA降維
數學推導+純Python實現機器學習算法18:奇異值分解SVD
數學推導+純Python實現機器學習算法17:XGBoost
數學推導+純Python實現機器學習算法16:Adaboost
數學推導+純Python實現機器學習算法15:GBDT
數學推導+純Python實現機器學習算法14:Ridge嶺回歸
數學推導+純Python實現機器學習算法13:Lasso回歸
數學推導+純Python實現機器學習算法12:貝葉斯網絡
數學推導+純Python實現機器學習算法11:樸素貝葉斯
數學推導+純Python實現機器學習算法10:線性不可分支持向量機
數學推導+純Python實現機器學習算法8-9:線性可分支持向量機和線性支持向量機
數學推導+純Python實現機器學習算法7:神經網絡
數學推導+純Python實現機器學習算法6:感知機
數學推導+純Python實現機器學習算法5:決策樹之CART算法
數學推導+純Python實現機器學習算法4:決策樹之ID3算法
數學推導+純Python實現機器學習算法3:k近鄰
數學推導+純Python實現機器學習算法2:邏輯回歸
數學推導+純Python實現機器學習算法1:線性回歸
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進群:總結
以上是生活随笔為你收集整理的【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 川普签署的 H-1B 禁令昨日正式实施
- 下一篇: 【机器学习基础】数学推导+纯Python