機器學習與深度學習21-信息論

目錄

    • 前文回顧
    • 1.信息上的概念
    • 2.相對熵是什么
    • 3.互信息是什么
    • 4.條件熵和條件互信息
    • 5.最大熵模型
    • 6.信息增益與基尼不純度

前文回顧

上一篇文章鏈接:地址

1.信息上的概念

信息熵(Entropy)是信息理論中用于度量隨機變量不確定性的概念。它表示了對一個隨機事件發生的預測的平均困惑程度或信息量。對于一個離散型隨機變量X,其信息熵H(X)定義為所有可能取值的負概率加權平均。數學上,可以使用以下公式來計算離散型隨機變量的信息熵:
H ( X ) = ? ∑ i = 1 n P ( x i ) log ? 2 P ( x i ) H(X) = -\sum_{i=1}^{n} P(x_i) \log_2 P(x_i) H(X)=?i=1n?P(xi?)log2?P(xi?)
其中, P ( x i ) P(x_i) P(xi?)是隨機變量X取值為 x i x_i xi?的概率,而 log ? 2 ( ? ) \log_2(\cdot) log2?(?)是以 2 為底的對數運算

信息熵具有以下特點:

  • 當隨機變量的概率分布越集中,信息熵越低,表示不確定性較小
  • 當隨機變量的概率分布越均勻,信息熵越高,表示不確定性較大
  • 信息熵的值始終為非負數

信息熵在機器學習和數據分析中有廣泛應用,例如在決策樹算法中,通過選擇最大化信息增益(原始信息熵與劃分后的條件熵之差)的特征來進行節點劃分,需要注意的是,以上介紹的是離散型隨機變量的信息熵計算方法。對于連續型隨機變量,可通過將連續變量離散化后進行計算

2.相對熵是什么

相對熵(Kullback-Leibler Divergence),也稱為KL散度或信息增益,是一種用于度量兩個概率分布之間差異的非對稱性測量。它衡量了在給定一個概率分布做出預測時,由于使用了錯誤的概率分布而導致的“額外”信息需求,設P和Q是兩個離散型隨機變量的概率分布,其相對熵 D ( P ∥ Q ) D(P \| Q) D(PQ)定義如下:

D ( P ∥ Q ) = ∑ i = 1 n P ( x i ) log ? ( P ( x i ) Q ( x i ) ) D(P \| Q) = \sum_{i=1}^{n} P(x_i) \log \left( \frac{P(x_i)}{Q(x_i)} \right) D(PQ)=i=1n?P(xi?)log(Q(xi?)P(xi?)?)

其中,( x_i ) 是隨機變量可能的取值。需要注意的是,當P和Q中的概率值不同時,相對熵是非對稱的,即 D ( P ∥ Q ) ≠ D ( Q ∥ P ) D(P \| Q) \neq D(Q \| P) D(PQ)=D(QP)

在機器學習中,相對熵常用于以下情況:

  • 模型比較:通過計算模型生成的概率分布與真實分布之間的相對熵,評估模型的擬合程度
  • 特征選擇:通過計算不同特征分布與目標變量分布的相對熵,判斷特征對目標變量的相關性
  • 概率分布對齊:通過最小化兩個概率分布之間的相對熵,將不同分布的數據映射到相同的分布空間中

需要注意的是,相對熵并不是一個距離度量,因為它不滿足非負性、對稱性和三角不等式。因此,在使用相對熵時要注意其性質以及與其他概率分布差異度量方法(如交叉熵)之間的區別

3.互信息是什么

互信息(Mutual Information)是一種用于度量兩個隨機變量之間的相關性或依賴關系的概念。互信息衡量了一個隨機變量中的信息對另一個隨機變量的預測能力,即一個隨機變量中的信息是否提供了關于另一個隨機變量的額外信息

對于兩個離散型隨機變量X和Y,它們的互信息 I ( X ; Y ) I(X;Y) I(X;Y)定義如下:

I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) log ? ( p ( x , y ) p ( x ) p ( y ) ) I(X;Y) = \sum_{x \in X} \sum_{y \in Y} p(x, y) \log \left( \frac{p(x, y)}{p(x) p(y)} \right) I(X;Y)=xX?yY?p(x,y)log(p(x)p(y)p(x,y)?)

其中,p(x, y)是聯合概率分布,p(x)和p(y)分別是邊緣概率分布。

互信息可以用于特征選擇和降維問題:

  • 特征選擇:互信息可用于評估一個特征與目標變量之間的相關性。通過計算每個特征與目標變量的互信息,可以選擇具有高互信息值的特征作為重要的特征進行建模和預測
  • 降維:在降維問題中,互信息可用于度量原始特征與新生成的降維特征之間的相關性。通過選擇具有高互信息值的特征或特征組合,可以保留最具信息量的特征,從而實現維度的減少

注意,互信息在計算特征之間的相關性時不考慮它們的線性關系。在某些情況下,互信息可能無法捕捉到非線性相關性。因此,在實際應用中,需要結合其他方法和技術來綜合考慮特征選擇和降維的需求

4.條件熵和條件互信息

條件熵(Conditional Entropy)和條件互信息(Conditional Mutual Information)是信息論中的重要概念,用于衡量隨機變量之間的關聯性或信息量。它們在分類和聚類任務中有著重要的作用

  1. 條件熵(Conditional Entropy):條件熵用于衡量在已知一個隨機變量的情況下,另一個隨機變量的不確定性或信息量。對于兩個隨機變量X和Y,X的條件熵在給定Y的條件下表示為 H ( X ∣ Y ) H(X|Y) H(XY),計算公式如下: H ( X ∣ Y ) = ? ∑ y ∈ Y ∑ x ∈ X P ( x , y ) log ? ( P ( x , y ) P ( y ) ) H(X|Y) = -\sum_{y \in Y} \sum_{x \in X} P(x, y) \log \left( \frac{P(x, y)}{P(y)} \right) H(XY)=?yY?xX?P(x,y)log(P(y)P(x,y)?)其中, P ( x , y ) P(x, y) P(x,y)表示X和Y同時取值x和y的概率, P ( y ) P(y) P(y)表示Y取值y的概率,在分類中,條件熵可以用來衡量一個特征在給定類別信息的條件下,對分類任務的信息增益。在決策樹算法中,條件熵常用于選擇最佳的分裂特征,以最大化信息增益
  2. 條件互信息(Conditional Mutual Information):條件互信息用于衡量在已知一個隨機變量的情況下,兩個隨機變量之間的相關性或信息共享。對于兩個隨機變量X和Y,X和Y的條件互信息在給定Z的條件下表示為 I ( X ; Y ∣ Z ) I(X; Y|Z) I(X;YZ),計算公式如下:
    I ( X ; Y ∣ Z ) = ∑ z ∈ Z P ( z ) ∑ x ∈ X ∑ y ∈ Y P ( x , y ∣ z ) log ? ( P ( x , y ∣ z ) P ( x ∣ z ) P ( y ∣ z ) ) I(X; Y|Z) = \sum_{z \in Z} P(z) \sum_{x \in X} \sum_{y \in Y} P(x, y|z) \log \left( \frac{P(x, y|z)}{P(x|z) P(y|z)} \right) I(X;YZ)=zZ?P(z)xX?yY?P(x,yz)log(P(xz)P(yz)P(x,yz)?)
    其中,P(x, y|z)表示在給定Z = z的條件下,X和Y同時取值x和y的概率

在聚類中,條件互信息可以用來度量兩個聚類的相似性或相關性。較高的條件互信息表明兩個聚類之間的數據分布更加相似,以下是一個Python實際案例,演示如何計算條件熵和條件互信息:

import numpy as np
from sklearn.metrics import mutual_info_score# 創建示例數據
X = np.array([0, 1, 0, 1, 1, 0])
Y = np.array([0, 1, 1, 0, 0, 1])
Z = np.array([1, 0, 1, 0, 0, 1])# 計算條件熵
def conditional_entropy(X, Y):p_x_given_y = np.array([np.sum((X == x) & (Y == y)) / np.sum(Y == y) for x in np.unique(X) for y in np.unique(Y)])p_x_given_y = p_x_given_y.reshape((len(np.unique(X))), len(np.unique(Y))))p_y = np.array([np.sum(Y == y) / len(Y) for y in np.unique(Y)])conditional_entropy = -np.sum(p_x_given_y * np.log2(p_x_given_y / p_y[:, np.newaxis]))return conditional_entropyce = conditional_entropy(X, Y)
print(f'Conditional Entropy (H(X|Y)): {ce:.2f}')# 計算條件互信息
mi = mutual_info_score(Z, X)
print(f'Conditional Mutual Information (I(X;Y|Z)): {mi:.2f}')

注意,這個示例中使用了示例數據,并且需要導入numpy和sklearn.metrics來計算條件互信息。實際情況下,可以根據自己的數據和問題來使用這些概念來解決分類和聚類任務中的問題

5.最大熵模型

最大熵模型(Maximum Entropy Model)是一種用于建模概率分布的統計模型。它是基于最大熵原理構建的,最大熵原理認為,在給定一些已知的約束條件下,最好的模型是具有最大熵的模型,即最均勻或最不確定的模型。最大熵模型被廣泛應用于自然語言處理和分類問題,其核心思想是在滿足已知約束條件的情況下,選擇一個概率分布,使得熵最大化,以下是最大熵模型的一些關鍵特點和應用:

  1. 特點:
    • 最大熵模型是一種非參數模型,不對概率分布做過多的假設,因此可以適用于各種不同的問題領域
    • 它是一種生成式模型,可以用于建模離散或連續隨機變量之間的關系
    • 可以靈活地添加約束條件,以捕捉不同特征之間的關系,從而適應不同的任務
  2. 應用:
    • 自然語言處理(NLP):最大熵模型在自然語言處理中被廣泛用于文本分類、命名實體識別、語言模型、文本標注等任務。它能夠靈活地捕捉文本中的語言特征,并在不同NLP問題中表現出色
    • 圖像處理:最大熵模型也可用于圖像分割、目標識別和圖像標注等問題,特別是在處理多模態數據時,具有很大的優勢
    • 信息檢索:在信息檢索領域,最大熵模型可以用于建模文檔和查詢之間的相關性,以提高搜索結果的質量
    • 機器學習:最大熵模型在監督學習和強化學習中具有廣泛的應用,可用于分類、回歸、文本生成等任務

在應用最大熵模型時,關鍵的一步是定義約束條件,這些條件可以是特征函數,用來描述觀測數據和模型之間的關系。然后,通過最大化熵函數來確定模型的參數,以便使模型在滿足這些約束條件的情況下達到最大熵。通常,可以使用迭代優化算法,如改進的迭代尺度法(Improved Iterative Scaling)來估計最大熵模型的參數,
最大熵模型在自然語言處理和其他領域的廣泛應用,是因為它能夠靈活地處理復雜的數據關系,以及在建模和分類任務中取得良好的性能。它在處理各種不平衡的、高維度的數據中表現出色,因此是許多自動化任務中的有力工具

6.信息增益與基尼不純度

信息增益(Information Gain)和基尼不純度(Gini Impurity)是在決策樹算法中用于節點分裂和特征選擇的兩種常用的度量方式,它們幫助算法確定在哪里分裂節點,以便構建決策樹模型

  1. 信息增益(Information Gain):
    • 信息增益是基于信息論的概念,用于度量在某個節點上使用某個特征進行分裂后,對于分類任務來說,新節點的不確定性減少了多少。
    • 具體計算步驟:首先計算當前節點的熵(Entropy),然后計算使用特征分裂后各子節點的熵,最后將這些熵的減少量加權求和,得到信息增益。
    • 信息增益的公式如下:
      Information?Gain = Entropy(parent) ? ∑ i = 1 k N i N ? Entropy(child i ) \text{Information Gain} = \text{Entropy(parent)} - \sum_{i=1}^{k} \frac{N_i}{N} \cdot \text{Entropy(child}_i) Information?Gain=Entropy(parent)?i=1k?NNi???Entropy(childi?)
      其中,
      • Entropy(parent) \text{Entropy(parent)} Entropy(parent)是父節點的熵
      • k是子節點的數量
      • N i N_i Ni?是第i個子節點的樣本數量
      • N是父節點的樣本總數
      • Entropy(child i ) \text{Entropy(child}_i) Entropy(childi?)是第i個子節點的熵
  2. 基尼不純度(Gini Impurity):
    • 基尼不純度是一種用于度量節點的純度的度量方式,它表示隨機選擇一個數據點并且錯誤分類的概率
    • 具體計算步驟:對于每個類別,計算該類別出現的概率的平方和,然后從1中減去這個和,得到基尼不純度
    • 基尼不純度的公式如下:
      Gini?Impurity = 1 ? ∑ i = 1 k ( p i ) 2 \text{Gini Impurity} = 1 - \sum_{i=1}^{k} (p_i)^2 Gini?Impurity=1?i=1k?(pi?)2
      其中,
      • k是類別的數量
      • p i p_i pi?是第i個類別出現的概率

在決策樹算法中,通常選擇信息增益高或基尼不純度低的特征進行節點分裂。兩者的選擇往往取決于具體的問題和數據集特點:

  • 信息增益通常用于處理分類任務,它對于多類別問題效果較好
  • 基尼不純度也可用于分類任務,并且它在多類別問題中同樣有效。此外,基尼不純度在計算上相對簡單,計算速度較快,因此在實際應用中更常見

在決策樹的構建過程中,算法會嘗試不同的特征和分裂點,計算它們的信息增益或基尼不純度,然后選擇具有最大信息增益或最小基尼不純度的特征和分裂點來進行節點分裂。這個過程會一直重復遞歸地構建樹,直到滿足停止條件(如達到最大深度、最小葉子節點樣本數等)。這樣就構建了一個決策樹模型,用于分類或回歸任務

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909125.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909125.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909125.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

chrome138版本及以上el-input的textarea輸入問題

描述 項目基于vue2 element UI 問題簡述&#xff1a;Chrome138及以上版本&#xff0c;把組件中的el-input的textarea的disabled屬性從true設為false&#xff0c;無法輸入 封裝了一套表單輸入組件&#xff0c;其中的textarea如下&#xff1a; <div v-if"item.type te…

TCP/IP 網絡編程 | 服務端 客戶端的封裝

設計模式 文章目錄 設計模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 實現&#xff08;implementation&#xff09;三、server.cpp 使用封裝&#xff08;main 函數&#xff09;四、client.cpp 使用封裝&#xff08;main 函數&#xff09;五、退出方法…

TASTE-Rob:推進面向任務的手-目標交互視頻生成,實現可通用的機器人操作

25年3月來自香港中文大學的論文“TASTE-Rob: Advancing Video Generation of Task-Oriented Hand-Object Interaction for Generalizable Robotic Manipulation”。 本文也是在解決現有數據集和模型在面向任務的手部-目標交互視頻生成方面的關鍵限制&#xff0c;這是為機器人模…

Trae AI IDE 全網最全的使用教程

Trae AI IDE 全網最全的使用教程 近期&#xff0c;字節發布了一款 AI Coding 產品 —— Trae&#xff0c;它是一款對標 Cursor 和 Windsurf 的全新 IDE&#xff0c;也是一款真正為中文開發者量身定制的工具&#xff0c;可謂是中文開發者的福音。 其優雅的 UI、絲滑的交互、母語…

GraspCorrect:通過視覺-語言模型引導反饋進行機器人抓握矯正

25年3月來自韓國 POSTECH 的論文 “GraspCorrect: Robotic Grasp Correction via Vision-Language Model-Guided Feedback”。 盡管機器人操作技術取得了顯著進步&#xff0c;但實現一致且穩定的抓取仍然是一項根本挑戰&#xff0c;常常限制復雜任務的成功執行。分析表明&…

瀏覽器兼容-polyfill-本地服務-優化

babel和webpack結合 npx babel src --out-dir dist --presetsbabel/preset-env 這是把src下面的東西都用babel轉化一下 webpack可以和babel結合使用&#xff0c;首先下載一個這東西&#xff1a; npm install babel-loader -D webpack配置&#xff1a; const path requir…

組織結構圖軟件:數據驅動的可視化架構管理工具

1. 組織結構圖軟件概述 組織結構圖概念 組織結構圖是一種圖形化工具&#xff0c;用于展示組織內部的層級關系、部門職能和人員分工。它通過清晰的線條和文本框連接&#xff0c;直觀呈現企業或機構的架構&#xff0c;幫助管理者和員工快速理解組織的運作模式。 重要性 在企業…

大數據學習(138)-Hive數據分析3

????&#x1f34b;&#x1f34b;大數據學習&#x1f34b;&#x1f34b; &#x1f525;系列專欄&#xff1a; &#x1f451;哲學語錄: 用力所能及&#xff0c;改變世界。 &#x1f496;如果覺得博主的文章還不錯的話&#xff0c;請點贊&#x1f44d;收藏??留言&#x1f4…

深度學習環境搭建(pycharm+yolov5)

B站 &#xff1a;道傳科技上位機 觀看教程 一、pycharm的安裝 pycharm windows版本下載地址&#xff1a;Download PyCharm: The Python IDE for data science and web development by JetBrains 下載社區版本&#xff08;日常學習使用夠用了&#xff09;&#xff0c;專業版…

K8S中應用無法獲取用戶真實ip問題排查

現象 領導反饋生產環境的用戶ip有問題。登陸到這個頁面&#xff0c;發現是所有的用戶ip都是172.30.94.97&#xff0c;這是個內部網絡ip. 排查過程 1 登陸到應用前端nginx&#xff0c; 查看nginx的請求日志 172.30.94.97 - - [17/Jul/2024:02:02:54 0000] "POST /***/n…

2.倒排索引

傳統數據庫mysql使用的是正向索引 詞條是不允許重復的&#xff0c;給詞條創建唯一索引&#xff0c;根據詞條查找的速度就很快了。

【Android Studio】新建項目及問題解決

新建項目 按照《Android 第一行代碼》中 1.3 小節的步驟創建項目。 注意&#xff1a;Minimum API Level 用于設置項目的最低兼容版本。Android 5.0 以上的系統已經占據超過了 99.9% 的 Android 市場份額&#xff0c;因此這里指定為 API 21: Android 5.0 即可。 問題解決 &…

SX1268低功耗sub-1g芯片支持lora和GFSK調制

SX1268 射頻收發器是長距離無線應用的理想設備&#xff0c;支持410-810MHZ。它專為長電池壽命而設計&#xff0c;僅消耗4.2 mA的主動接收電流。SX1268 可以使用高效的集成功率放大器在490 MHz傳輸高達 22 dBm 的信號。在 780 MHZ時&#xff0c;SX1268 在天線端口傳輸10dBm的信號…

C#高級:利用反射讓字符串決定調用哪個方法

一、反射的實現 using System; using System.Reflection; using System.Threading.Tasks;public class Calculator {public int Add(int a, int b){return a b;}public int Subtract(int a, int b){return a - b;}public int Multiply(int a, int b){return a * b;}public do…

圖像二分類任務推薦使用Sigmoid函數?

?圖像二分類任務中可以使用Softmax作為激活函數&#xff0c;但通常更推薦使用Sigmoid函數?。Softmax函數可以將多個類別的輸出轉換成概率分布&#xff0c;適合多分類任務。在二分類任務中&#xff0c;雖然可以使用Softmax&#xff0c;但它會生成兩個輸出值&#xff08;每個類…

湖北理元理律師事務所:債務優化的法律邏輯與生活平衡術

在債務糾紛數量年均增長19%的背景下&#xff08;最高人民法院2023年數據&#xff09;&#xff0c;專業法律服務機構的價值不僅在于解決糾紛&#xff0c;更在于重構債務人與生活的平衡關系。湖北理元理律師事務所的實踐顯示&#xff0c;科學的債務優化需同時滿足三個維度&#x…

window 顯示驅動開發-處理視頻幀

Microsoft Direct3D 運行時調用用戶模式顯示驅動程序的 VideoProcessBeginFrame 和 VideoProcessEndFrame 函數&#xff0c;以指示用戶模式顯示驅動程序可以處理視頻幀的這些函數調用之間的時間段。 在用戶模式顯示驅動程序可以處理任何視頻幀之前&#xff0c;Microsoft Direct…

基于 React Native for HarmonyOS5 的跨平臺組件庫開發指南,以及組件示例

基于 React Native for HarmonyOS5 的跨平臺組件庫開發&#xff0c;需融合分層架構設計、鴻蒙原生能力橋接及性能優化技術&#xff0c;核心指南如下&#xff1a; ?一、分層架構設計? 采用 ?模塊化分層結構?&#xff0c;隔離平臺差異邏輯&#xff1a; ├── common_har …

一站式了解單例模式

引言 這是設計模式專欄的第一篇文章&#xff0c;在這個專欄里面會講到我們在開發中經常使用的設計模式&#xff0c;我會用心將它們解析&#xff0c;然后講給你們聽&#xff0c;如果感興趣可以持續關注這個專欄?? 這次我們要講的是單例模式&#xff0c;這個在大廠面試中十分…

Java應用Flink CDC監聽MySQL數據變動內容輸出到控制臺

文章目錄 maven 依賴自定義數據變化處理器flink cdc監聽驗證 maven 依賴 <properties><flink.version>1.14.0</flink.version><flink-cdc.version>2.3.0</flink-cdc.version></properties><dependencies><!-- Flink dependencie…