自然语言处理(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)=xXp(x)log2p(x)
约定:0log20=00log_20=00log20=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.5log20.5+0.5log20.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.3log20.3+0.7log20.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)=xXyYp(x,y)log2p(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)=xXp(x)H(YX=x)=xXp(x)[yYp(yx)log2p(yx)]=xXyYp(x)p(yx)log2p(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)=xXyYp(x,y)log2p(x,y)=xXyYp(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)]=xXyYp(x,y)[log2p(yx)+log2p(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)=xXyYp(x,y)log2p(yx)+xXyYp(x,y)log2p(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)=xXyYp(x)p(yx)log2p(yx)+xXyYp(x,y)log2p(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)=xXp(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)=xp(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)2n1logq(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)=xXyYp(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(cici+1)+N(C(...cici+1...))N(cici+1))
其中:ci,cI+1c_i,c_{I+1}ci,cI+1是有序字对。N(cici+1)N(c_ic_{i+1})N(cici+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(...cici+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)maxI(X;Y)
依据上式定义,我们能够设计一个输入编码器X,其概率分布为p(x),其使得输入与输出之间的互信息达到最大值。那么,我们的设计就达到了信道的最大传输容量。在语言处理中,我们不需要进行编码,只需进行解码,使得系统的输出更加接近与输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.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. 允许有万分之一的判断…