自然語言處理(2)-信息論基礎

自然語言處理-數學基礎

  • 概述
  • 1.信息論基礎
    • 1.1熵
    • 1.2 聯合熵和條件熵
    • 1.3 相對熵和交叉熵
    • 1.4 互信息和雙字耦合度
    • 1.5 噪聲信道模型

概述

本系列文章計劃總結整理中國科學院大學宗成慶老師《自然語言處理》課程相關知識,參考數目《統計自然語言處理》-第二版,宗成慶。

1.信息論基礎

1.1熵

熵是信息論中的基本概念 ,又稱為自信息(self-information)。表示信號源X每發送一個符號(不論發什么符號)所提供的平均信息量。熵經常被用來描述一個隨機變量的不確定性,一個隨機變量的熵越大,這個隨機變量的不確定性越大;那么正確估計其隨機變量值的可能性就越小。

如果X是一個離散型的隨機變量,其概率分布p(x)=P(X=x),x∈Xp(x)=P(X=x),x\in Xp(x)=P(X=x),xX。X的熵H(X)為:
H(X)=?∑x∈Xp(x)log?2p(x)H(X)=-\sum_{x\in X}p(x)\log_{2}p(x) H(X)=?xX?p(x)log2?p(x)
約定:0log20=00log_20=00log2?0=0。對數以2為底時,熵的單位為比特(bit)。

定性理解:熵越大不確定性越大。
隨機實驗1:擲一枚均勻的硬幣,結果等可能的出現正反兩面,即P(X=正面)=0.5,P(X=反面)=0.5P(X=正面)=0.5,P(X=反面)=0.5P(X=)=0.5P(X=)=0.5,則
H(X)=?(0.5log?20.5+0.5log20.5)=1H(X)=-(0.5\log_20.5+0.5log_20.5)=1H(X)=?(0.5log2?0.5+0.5log2?0.5)=1
隨機實驗2:擲一枚不均勻的硬幣(一面鍍鉛),結果不等可能的出現正反兩面,其中P(X=正面)=0.3,P(X=反面)=0.7P(X=正面)=0.3,P(X=反面)=0.7P(X=)=0.3P(X=)=0.7,則
H(X)=?(0.3log?20.3+0.7log20.7)=0.88H(X)=-(0.3\log_20.3+0.7log_20.7)=0.88H(X)=?(0.3log2?0.3+0.7log2?0.7)=0.88
實驗1等可能的出現正反面,不難理解出現其正面的不確定性比實驗2中出現正面的不確定性大,通過計算,實驗1結果的熵確實比實驗二結果的熵大。

1.2 聯合熵和條件熵

聯合熵: 描述一對隨機變量所需要的平均信息量。一對離散型隨機變量X,Y的聯合概率概率分布為p(x,y)p(x,y)p(x,y),X,Y的聯合熵為:
H(X,Y)=?∑x∈X∑y∈Yp(x,y)log2p(x,y)H(X,Y)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x,y)H(X,Y)=?xX?yY?p(x,y)log2?p(x,y)

條件熵: 給定隨機變量X的條件下,隨機變量Y的熵:
H(Y∣X)=∑x∈Xp(x)H(Y∣X=x)=∑x∈Xp(x)[?∑y∈Yp(y∣x)log2p(y∣x)]=?∑x∈X∑y∈Yp(x)p(y∣x)log2p(y∣x)H(Y|X)=\sum_{x\in X}p(x)H(Y|X=x)=\sum_{x\in X}p(x)[-\sum_{y\in Y}p(y|x)log_2p(y|x)]=-\sum_{x\in X}\sum_{y\in Y}p(x)p(y|x)log_2p(y|x)H(YX)=xX?p(x)H(YX=x)=xX?p(x)[?yY?p(yx)log2?p(yx)]=?xX?yY?p(x)p(yx)log2?p(yx)

連鎖規則: 聯合熵可以表示為條件熵與熵的和,通過數學變換:
H(X,Y)=?∑x∈X∑y∈Yp(x,y)log2p(x,y)=?∑x∈X∑y∈Yp(x,y)log2[p(y∣x)p(x)]H(X,Y)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x,y)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2[p(y|x)p(x)]H(X,Y)=?xX?yY?p(x,y)log2?p(x,y)=?xX?yY?p(x,y)log2?[p(yx)p(x)]

=?∑x∈X∑y∈Yp(x,y)[log2p(y∣x)+log2p(x)]=-\sum_{x\in X}\sum_{y\in Y}p(x,y)[log_2p(y|x)+log_2p(x)]=?xX?yY?p(x,y)[log2?p(yx)+log2?p(x)]

=?∑x∈X∑y∈Yp(x,y)log2p(y∣x)+?∑x∈X∑y∈Yp(x,y)log2p(x)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(y|x)+-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x)=?xX?yY?p(x,y)log2?p(yx)+?xX?yY?p(x,y)log2?p(x)

=?∑x∈X∑y∈Yp(x)p(y∣x)log2p(y∣x)+?∑x∈X∑y∈Yp(x,y)log2p(x)=-\sum_{x\in X}\sum_{y\in Y}p(x)p(y|x)log_2p(y|x)+-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x)=?xX?yY?p(x)p(yx)log2?p(yx)+?xX?yY?p(x,y)log2?p(x)

=H(Y∣X)+H(X)=H(Y|X)+H(X)=H(YX)+H(X)

同理可以推導:
H(X,Y)=H(Y)+H(X∣Y)H(X,Y)=H(Y)+H(X|Y)H(X,Y)=H(Y)+H(XY)

1.3 相對熵和交叉熵

(之后公式中底數2將被省略)

相對熵: 又稱為KL散度,用于衡量兩個隨機分布的差距。當兩個隨機分布相同時其相對熵為0.當兩個隨機分布的差別增加時,其相對熵也增加 。兩個概率分布p(x),q(x)p(x),q(x)p(x),q(x)d的相對熵為:
D(p∣∣q)=∑x∈Xp(x)logp(x)q(x)D(p||q)=\sum_{x\in X}p(x)log \frac{p(x)}{q(x)}D(pq)=xX?p(x)logq(x)p(x)?

KL散度不對稱與不滿足三角不等式例子博客:https://blog.csdn.net/qq_44702847/article/details/95190388

交叉熵: 用于衡量估計模型與真實概率分布之間的差異,隨機變量X~p(x),q(x)為p(x)的近似概率分布,則隨機變量X與模型q之間的交叉熵為:
H(X,q)=?∑xp(x)logq(x)H(X,q)=-\sum_xp(x)logq(x)H(X,q)=?x?p(x)logq(x)
通過數學推導可得,交叉熵=隨機變量的熵+真實分布與模型分布的差距:
H(X,q)=H(X)+D(p∣∣q)H(X,q)=H(X)+D(p||q)H(X,q)=H(X)+D(pq)

分析:因為,在同一隨機變量的前提下,真實分布與模型分布的差距(即相對熵)越小越好;所以,真實分布與模型分布之間的交叉熵越小,估計模型越逼近真實概率分布。

困惑度: 在實際應用中經常用困惑度來代替交叉熵衡量語言模型的好壞(交叉熵計算的時候會過小溢出?)給定語言L的樣本l1n=l1...lnl_1^n=l_1...l_nl1n?=l1?...ln?,L的困惑度PPqPP_qPPq?為:
PPq=2H(L,q)≈2?1nlogq(l1n)=[q(l1n)]?1nPP_q=2^{H(L,q)}\approx 2^{-\frac{1}{n}logq(l_1^n)=[q(l_1^n)]^{-\frac{1}{n}}}PPq?=2H(L,q)2?n1?logq(l1n?)=[q(l1n?)]?n1?
小結:語言模型設計任務就是:尋求與真實概率分布差距較小的模型,也就是要尋找交叉熵較小的模型,也就是要尋找困惑度較小的模型。

1.4 互信息和雙字耦合度

互信息: 定義:
I(X;Y)=H(X)?H(X∣Y)I(X;Y)=H(X)-H(X|Y)I(X;Y)=H(X)?H(XY)
I(x;y)I(x;y)I(x;y)表示在知道了Y的值之后X不確定量的減少程度。
經過推導
I(X;Y)=∑x∈X∑y∈Yp(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 \frac{p(x,y)}{p(x)p(y)}I(X;Y)=xX?yY?p(x,y)logp(x)p(y)p(x,y)?
例子:漢語分詞問題:利用互信息估計兩個漢字結合強度,互信息越大表示兩個漢字之間的結合越緊密,越有可能成詞。反之斷開的可能性較大。 當兩個漢字x和y 的關聯度較強時,其互信息的值I(x,y)>0I(x,y)>0I(x,y)>0;關系較弱時I(x,y)≈0I(x,y)\approx 0I(x,y)0.。當I(x,y)<0I(x,y)<0I(x,y)<0時,x與y稱為互補分布。

互信息統計的是兩個漢字連續出現在一個詞中的概率,有些漢字單個使用時跟頻繁,連續與其他字在一起成詞的情況較少,但是,一旦連續在一起出現很有可能會成詞。這中情況下兩個漢字之間的互信息很小。用互信息來判斷,該字對應該分開。

因為,互信息在上述情況下并不能很好工作。所以,就有學者提出雙字耦合度的概念。

雙字耦合度:
Couple(ci,ci+1=N(cici+1)N(cici+1)+N(C(...ci∣ci+1...)))Couple(c_i,c_{i+1}=\frac{N(c_ic_{i+1})}{N(c_ic_{i+1})+N(C(...c_i|c_{i+1}...))}) Couple(ci?,ci+1?=N(ci?ci+1?)+N(C(...ci?ci+1?...))N(ci?ci+1?)?)
其中:ci,cI+1c_i,c_{I+1}ci?,cI+1?是有序字對。N(cici+1)N(c_ic_{i+1})N(ci?ci+1?)表示字符串ci,cI+1c_i,c_{I+1}ci?,cI+1?成詞的次數,N(C(...ci∣ci+1...))N(C(...c_i|c_{i+1}...))N(C(...ci?ci+1?...))表示字符串ci,cI+1c_i,c_{I+1}ci?,cI+1?不成詞(cic_ici?為上一個詞的詞尾, ci+1c_{i+1}ci+1?為下一個詞的詞頭)的次數。雙字偶爾度考慮的是兩個字連續出現的情況下,兩者成詞的概率,有效規避互信息將二者不連續出現的次數也考慮在計算式中所造成的麻煩。

1.5 噪聲信道模型

在信號傳輸的過程中要進行雙重性處理:一方面盡量消除冗余,另一方面增加冗余利于恢復信號。噪聲信道模型的目標就是優化噪聲信道中信號的吞吐量和準確率,其基本假設是:一個信道的輸出以一定的概率依賴于輸入。

信道容量:
C=max?p(x)I(X;Y)C=\max_{p(x)}I(X;Y)C=p(x)max?I(X;Y)
依據上式定義,我們能夠設計一個輸入編碼器X,其概率分布為p(x),其使得輸入與輸出之間的互信息達到最大值。那么,我們的設計就達到了信道的最大傳輸容量。在語言處理中,我們不需要進行編碼,只需進行解碼,使得系統的輸出更加接近與輸入。

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

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

相關文章

servlet基礎總結

什么是servlet Servlet&#xff08;Server Applet&#xff09;是Java Servlet的簡稱&#xff0c;是小服務程序或服務連接器&#xff0c;是用Java編寫的服務器端程序&#xff0c;主要功能在于交互式地瀏覽和修改數據&#xff0c;生成動態Web內容. 狹義的Servlet是指Java語言實…

大數據學習(3)- 分布式文件系統HDFS

文章目錄目錄1.分布式文件系統1.1 計算機集群概念1.2 分布式文件系統結構2.HDFS簡介2.1 HDFS設計的目標2.2HDFS的局限性2.3 塊的概念2.4 HDFS主要組件及其功能2.4.1 名稱節點2.4.2 第二名稱節點2.4.3 數據節點3.HDFS體系結構3.1 HDFS體系結構介紹3.2 HDFS體系結構的局限性4.HDF…

Python 圖片轉簡單字符畫

字符畫是一系列字符的組合&#xff0c;我們可以把字符看作是比較大塊的像素&#xff0c;一個字符能表現一種顏色&#xff08;暫且這么理解吧&#xff09;&#xff0c;字符的種類越多&#xff0c;可以表現的顏色也越多&#xff0c;圖片也會更有層次感。 灰度值&#xff1a;指黑…

大數據學習(4)--分布式數據庫HBase

文章目錄目錄1.HBase概述1.1BigTable1.2 HBase簡介1.3 HBase和傳統的關系型數據庫之間的區別2.HBase訪問接口3.HBase數據模型3.1 數據模型概述3.2 數據模型相關概念3.3 數據坐標3.4 概念視圖3.5 物理視圖3.6 面向列的存儲4.HBase的實現原理4.1 HBase功能組件4.2 表和region4.3 …

servlet中的數據存儲

在servlet基礎中&#xff0c;我們&#xff1a; 用以下幾種方式實現數據存儲和共享&#xff1a; 1&#xff09;在客戶端頁面和服務器端程序之間&#xff0c;用request中的getParameter()方法共享數據 2&#xff09;在請求和請求之間&#xff0c;可以用get/setAttribute方法來共…

Linux(2)-tar,find,grep,xargs

常用命令1. 打包壓縮/解包解壓縮 tar1.1 打包 tar -czvf xxx.tar.gz xxx1.2 解壓 tar -xzvf xxx.tar.gz2.文件/目錄搜索2.1 find文件/目錄查找2.2 grep文本匹配3. 復合命令3.1 > 重定向3.2 | 管道.shutdown1. 打包壓縮/解包解壓縮 tar tar和gzip是對黃金搭檔&#xff1a;ta…

Event Recommendation Engine Challenge(基礎版)---代碼

第一步&#xff1a;統計user和event相關信息 #查看train_csv的數據 import pandas as pd df_train pd.read_csv(train.csv) df_train.head()usereventinvitedtimestampinterestednot_interested03044012191877122502012-10-02 15:53:05.75400000:000013044012150228424802012…

servlet——三兄弟的另外兩個:過濾器/監聽器

過濾器 我們寫多了servlet會發現&#xff0c;很多代碼和功能是重復的&#xff0c;比如&#xff1a;解決中文亂碼問題、權限驗證、日志的記錄等&#xff0c;他們的特點是&#xff1a;代碼相同或相似、分散在不同位置、不利于維護。 過濾器就是他們的解決辦法。 過濾器是請求到…

矩陣論-線性變換的特征值與特征變換

線性空間與線性變換綜述1.2 線性變換及其矩陣1.2.3 特征值與特征向量綜述 本系列博文主要總結學習矩陣論的心得筆記&#xff0c;參考數目《矩陣論》–張凱院&#xff1b;整個文章的整理體系參照行書過程。 1.2 線性變換及其矩陣 1.2.3 特征值與特征向量 本節討論如何選擇線…

Python(1)-源起、設計目標、設計哲學、特點

python簡介1. python的起源2. 解釋器3. python 語言的設計目標4. python 語言的設計哲學5. Python 特點人生苦短&#xff0c;我用python–吉多范羅蘇姆&#xff08;Guido van Rossum&#xff09;1. python的起源 1989年吉多在圣誕節想寫一個新的解釋程序作為ABC語言的繼承者。…

kaggle(05)---Event Recommendation Engine Challenge(基礎版)

文章目錄目錄1.比賽相關介紹1.1 比賽介紹1.2 數據集介紹1.3 評價標準介紹1.4 個人理解2. 解決方案2.1 統計用戶和event信息2.2 計算用戶相似度2.3 用戶社交關系信息處理2.4 構建event和event相似度數據2.5 活躍度/event熱度數據2.6 構建特征2.7 模型構建和預測3. 遇到的問題4. …

多校一道KMP+DP的題

難啊&#xff0c;多校當時根本不會做 題目描述 White Cloud has a rectangle carpet of n*m. Grid (i,j) has a color colorA[i][j] and a cost costA[i][j]. White Rabbit will choose a subrectangle B of p*q from A and the color of each grid is colorB[0...p-1][0..…

Python(2)-第一個python程序、執行python程序三種方式

第一個Python 程序1. 第一個Python 程序2. 常用兩Python個版本3. 程序執行的三種方式3.1 解釋器3.2 交互式運行Python程序3.3 IDE&#xff08;集成開發環境&#xff09;-pycharm1. 第一個Python 程序 Python 源程序就是一個特殊格式的文本文件&#xff0c;所以可以采用任意的文…

推薦算法---FM,協同過濾

文章目錄目錄1.FM算法產生背景2.FM算法模型3.FM算法VS其他算法4.推薦算法總結目錄 1.FM算法產生背景 在傳統的線性模型如LR中&#xff0c;每個特征都是獨立的&#xff0c;如果需要考慮特征與特征直接的交互作用&#xff0c;可能需要人工對特征進行交叉組合&#xff1b;非線性…

借助桶排序思想完成的一道題

問題&#xff1a; 數組排序之后的相鄰數的最大差值&#xff1b; 嗯&#xff0c;你可以排序&#xff0c;然后找相鄰的最大差值。 但是你覺得這么簡單我寫他干啥。 最優解&#xff1a;時間復雜度O(N)&#xff0c;空間O(1) 那我們開始說這種方法&#xff1a; 1&#xff09;遍…

Python(3)-Pycharm基本使用技巧

初識Pycharm1.界面2.恢復初始設置3.第一次打開Pycharm4.打開一個項目5.設置解釋器的版本。6.新建項目7.編輯器、控制臺的字體設置Pycharm–適合于開發管理大型項目&#xff0c;項目是用以解決復雜功能的軟件。1.界面 導航區–主要有什么文件 編輯區–編輯具體的文件 控制臺窗口…

推薦算法概述(01)

1.什么是推薦系統 用戶沒有明確的需求&#xff0c;你需要的是一個自動化的工具&#xff0c;它可以分析你的歷史興趣&#xff0c;從龐大的電影庫中找到幾部符合你興趣的電影供你選擇。這個工具就是個性化推薦系統。 推薦系統的主要任務 推薦系統的任務就是聯系用戶和信息&…

CSDN-Markdown編輯器使用小技巧

Markdown編輯器使用小技巧1.圖片無法顯示1.圖片無法顯示 1.檢查圖片的命名格式是否正確&#xff0c;數字不能作為圖片名稱開頭&#xff0c;雖然window操作系統下能夠識別&#xff0c;但是導入圖片的時候會造成無法顯示的錯誤。

何為布隆過濾器

問題的提出 我們有一個不安全網頁的黑名單&#xff0c;包含了100億個黑名單網頁的URL,每個網頁URL最多占用64B.。 現在我們要設計一個網頁過濾系統&#xff0c;這個系統要判斷該網頁是否在黑名單里&#xff0c;但是我們的空間有限&#xff0c;只有30GB. 允許有萬分之一的判斷…