首页 > 其他分享 >各种“熵”的理解——最新版《数学之美》第六章读书笔记

各种“熵”的理解——最新版《数学之美》第六章读书笔记

时间:2024-06-23 18:29:37浏览次数:3  
标签:NLP 词汇 读书笔记 互信息 之美 信息熵 相对 最新版 我们

目录

1. 信息熵

1.1 数学表达

1.2 理解NLP中的信息熵概念

2. 消除不确定性

2.1 条件熵

2.1.1 数学表达

2.1.2 理解NLP中的条件熵概念

2.2 互信息

2.2.1 数学表达

2.2.2 理解NLP中的互信息概念

3. 相对熵

3.1 数学表达

3.2 理解NLP中的相对熵概念

4. 引用


 

1. 信息熵

1.1 数学表达

当我们面对一条内容丰富的消息时,我们常常会感叹“这条消息的信息量太大了”。然而,长久以来,如何以科学、客观的方式准确量化这种“信息量”一直是一个难题。直至1948年,这一挑战得到了里程碑式的解决。在这一年,著名的信息论先驱克劳德·香农(Claude Shannon)在其开创性的论文《通信的数学原理》(A Mathematic Theory of Communication)中提出了“信息熵”的概念。这一概念的引入不仅为信息的度量提供了坚实的数学基础,而且使得我们能够量化评估信息在通信系统中的实际作用。信息熵的提出,标志着信息论这一新兴学科的诞生,也为后续的信息科学和技术的发展奠定了坚实的基础。

作者强调,信息量就等于事件的不确定性,并为此举了一个生动的例子。在世界杯的冠军竞猜中,对于一个从未看过比赛的观众,我们可以设定一个猜测机制:每次他给出答案,我们支付一元钱,并告知其答案是否正确。为了最大化效率,观众可以采用二分法,首先将32支球队分为两组,每次缩小猜测范围,直至猜中冠军。基于这种方法,最多需要五次问答和五元钱的支付,即可确定冠军。这样,我们就将“哪只球队是冠军”这一信息的量化价值定为五元,从而实现了信息量的具体量化。如果球队个数变成64支,那么基于二分法,“哪只球队是冠军”的信息量将会变成6块,因为要多问一次。

如果这位观众对各国足球实力有所了解,他能意识到不同球队夺冠的概率各异。因此,他可能会采用更高效的策略,即每次分组时将热门球队(如巴西、阿根廷、法国、德国等)归为一组,非热门球队归为另一组,通过此举显著缩小搜索范围。这样的方法很可能让他在少于五次的问答内就猜出冠军。

香农提出的理论可以将上述“猜冠军”的实例巧妙地抽象化,并以数学公式的形式进行了精准表达(这种能力似乎在科学界的杰出人物中普遍存在,他们都能够将复杂的问题简化为数学模型,从而揭示其内在的规律和逻辑,太羡慕这些聪明的大脑了):

5a5be396fd804e519ae775d2915f6566.png

其中 eq?p_1%2C%20p_2%2C%20p_3%2C%20... 表示每个球队夺冠的概率,eq?log 表示底数为2的对数函数。为了更直观地理解这个概念,我们可以尝试代入前面“猜冠军”例子中的具体值进行计算。例如,当假设32支球队都有相同的夺冠概率时,根据这个公式计算出的结果恰好是5;同样地,当有64支球队时,计算结果则为6。

香农称上面的计算结果 eq?H 为“信息熵”(Entropy),单位是比特(Bit),一个比特是一位二进制数(0或者1)。对于任意一个随机变量 eq?X ,其信息熵的计算公式如下:

fe42c7d41dc647c9811e710d52a3247d.png

之所以称之为‘信息熵’,是因为这一概念与物理学中热力学领域的‘熵’有着异曲同工之妙,两者都揭示了一种秩序与混乱、确定性与不确定性的度量。在热力学中,熵代表着系统的混乱程度,是系统微观状态数量的度量,而信息熵则描述了信息的不确定性和随机性。两者虽然在不同的学科领域中发展,但它们的本质都是对某种‘无序’或‘不确定性’的量化。这种跨学科的联动真令人感叹。

1.2 理解NLP中的信息熵概念

作者指出,目前中文常用汉字的数量大约为7000个。在理想化的假设下,若每个汉字在文本中出现的概率完全相等,则根据信息论的原理,我们大约需要13比特(bit)的编码长度来唯一标识并表达一个汉字,因为 eq?2%5E%7B13%7D 约等于7000。然而,这种假设在实际情况中并不成立,因为每个汉字在实际文本中的使用频率是显著不同的。

事实上,据统计,前10%的最常用汉字占据了常用文本中超过95%的出现频率。这意味着,在实际应用中,如果我们根据汉字的出现频率进行编码,那么编码效率将大大提高。因此,在不考虑上下文信息的情况下,仅从每个汉字单独出现的频率来看,我们大约只需要9比特来编码并表达一个汉字,这显著减少了所需的存储空间或传输带宽。

进一步地,当我们将上下文信息纳入考虑时,编码效率还能得到进一步的提升。这是因为上下文信息可以帮助我们预测某个汉字在特定语境下出现的可能性,从而减少编码时的冗余。因此,在充分考虑上下文信息的情况下,我们可能只需要大约5比特就能有效地表达一个汉字,这进一步体现了自然语言处理中信息编码的复杂性和精妙性。

2. 消除不确定性

2.1 条件熵

2.1.1 数学表达

为有效减少某一事件(如“飞往三亚的机票价格是否高昂?”)的不确定性,最为有效的途径是通过外部渠道引入新的信息。这些信息可以直接针对目标事件本身(例如,“确实昂贵,当前单价已达到4000元”),也可以是与该事件相关联的其他相关事件或数据(例如,“据悉,计划前往三亚的旅客数量激增”)。通过利用这些“相关联的信息”,我们可以有效地降低目标事件的不确定性。这一策略的数学可行性可通过引入条件熵(conditional entropy)的概念加以证明。

假设 eq?X 和 eq?Y 是两个随机事件,eq?X 是我们想搞清楚的事件,则 eq?X 的信息熵(即 eq?X 的不确定性)可表示为:

6a316770da6a4707842f767f8ba7a85f.png

此外,定义在 eq?Y 条件下的条件熵可表示为如下形式,其中 eq?P%28x%2C%20y%29 表示联合概率,eq?P%28x%7Cy%29 表示条件概率:

d3a78a21f21341fa8417960ceac2ca5c.png

有概率论基础的同学可以证明,eq?H%28X%29%5Cgeqslant%20H%28X%7CY%29 ,也就是说,从外部无论引入什么样的新信息 eq?Y ,只有两种情况,要么让原本 eq?X 的信息熵减少( eq?Y 与 eq?X 相关),要么保持不变( eq?Y 与 eq?X 不相关)。

2.1.2 理解NLP中的条件熵概念

为了让大家对前述的概率概念有更深入的理解,我们可以借助在前几章详细探讨的统计语言模型来进行类比和思考。在这个框架下,我们可以将变量 eq?X 视为当前需要预测的单词,变量 eq?Y 则代表该单词之前的单词,即上下文中的前驱词。在前面章节中,我们通过实验已得出结论:在考虑单词间依赖关系的情况下,二元模型(即考虑当前单词与前一个单词之间关系的模型)相较于一元模型(仅考虑单词自身出现频率的模型)能够提供更准确的预测结果。在这里,我们从信息熵和条件熵的角度再次证明了这个观点,即  eq?H%28X%29%5Cgeqslant%20H%28X%7CY%29 。

2.2 互信息

2.2.1 数学表达

前面我们一直在提有关“相关性”的话题(只要引入与 eq?X 相关的额外信息 eq?Y,就能减少 eq?X 的信息熵),那么如何能量化这种信息之间的“相关性”呢?这就要搬出“互信息”的概念了,其数学表达式如下:

3e0a2bcc6ba5455c8b54e4c6ed1c572d.png

上面公式看似复杂,但实则本质上还是遵循信息熵的表达形式。通过简单的对数运算,我们可以得到以下结论:

dd6ab4ff1d3742b6813c3470be0aac1b.png

表达的意思就是:两个随机事件  eq?Y 与 eq?X 互信息,本质上就等于,信息熵 eq?H%28X%29 与条件熵 eq?H%28X%7CY%29 的差值(大家细细品)。如果  eq?Y 与 eq?X 完全相关,那么两者的互信息就等于 eq?H%28X%29 ;如果  eq?Y 与 eq?X 完全不相关,则互信息就等于0。

在自然语言处理场景下,互信息是很好算的,因为只要有足够多的语料,我们就能估算出计算互信息需要的各种概率。

2.2.2 理解NLP中的互信息概念

在阐述自然语言处理领域中机器翻译的挑战时,作者特别提到了互信息在处理一词多义问题上的重要性。众所周知,英语中存在许多常见词汇,它们拥有众多截然不同的含义,这些含义在语境中往往毫无关联。以“布什总统”为例,其中的“bush”一词,在英文中既可以指代人名,即美国前总统“布什”,也可以指代自然界的“灌木丛”。这两个含义在日常使用中均极为普遍。

早期,一些机器翻译软件在处理这类词汇时,由于缺乏足够的上下文理解能力,曾将“布什总统”错误地翻译为“灌木丛总统”,这样的翻译结果显然荒诞不经,引起了广泛的笑话。

为了纠正这一错误,科学家们最初尝试通过制定复杂的语法规则来区分这些词汇的不同含义。然而,他们很快发现,这种方法存在着极大的局限性。因为,无论是哪种语法规则,都难以完全覆盖语言中所有可能出现的特殊情况。更糟糕的是,每当遇到新的特殊语境或用法时,就需要添加新的语法规则,这导致语法规则库不断膨胀,变得庞大而难以管理。

显然,这种依靠语法规则来解决一词多义问题的方法并不实际。于是,研究者们转变了思路,开始利用互信息的概念来解决这一难题。互信息能够量化词汇与其上下文之间的关联性,通过分析文本中各个词汇之间的统计关系,机器翻译系统能够更准确地理解词汇在特定语境下的具体含义。比如首先,我们通过分析海量的文本数据,识别出与“布什总统”这一词组共同出现且互信息值较高的词汇,如“总统”、“美国”、“国会”、“华盛顿”等。这些词汇与“布什总统”形成了强烈的关联性,为我们提供了明确的上下文线索。同样地,我们也运用相同的方法,找出了与“灌木丛”关联紧密且互信息值显著的词汇,如“土壤”、“植物”、“野生”等,这些词汇共同勾勒出了“灌木丛”的自然环境背景。通过这种方法,我们能够更准确地理解词汇在特定上下文中的含义,从而为机器翻译提供更加精确的指导。 

实践证明,这种基于互信息的方法在处理一词多义问题上取得了显著成效,有效地解决了机器翻译中的这一难题。

3. 相对熵

3.1 数学表达

相对熵(也称为KL散度)和互信息是信息论中两个核心概念,它们在衡量信息的不确定性、相似性以及变量间的关系方面起着重要作用。相对熵主要用于度量两个概率分布函数之间的差异,而互信息则是衡量两个随机变量之间共享的信息量。

相对熵的数学表达式如下:

aab49cbd66234f9e84067743931a9703.png

作者说不用关心上面的公式本身,只要记住下面三点结论就行:

1)当两个函数在定义域内的所有取值都完全相同时,它们之间的相对熵等于零。这意味着从信息论的角度来看,这两个函数在描述数据或概率分布时没有差异。

2)相对熵是一种量化两个函数(通常是概率分布或概率密度函数)之间差异程度的度量。当相对熵的值越大时,表示这两个函数之间的差异越大;相反,如果相对熵的值越小,那么这两个函数之间的差异也就越小。

3)对于概率分布或概率密度函数,只要它们的取值都大于零(即没有零概率事件),我们就可以使用相对熵来度量这两个随机分布之间的差异。这种度量方式在信息论和机器学习中非常重要,因为它可以帮助我们理解不同分布之间的相似性或差异性。

另外,值得注意的是,相对熵是一个非对称性的度量指标,即:

65af402416054c48b4810ce5172cd840.png

这样使用起来并不方便,于是詹森和香农提出了一个很“讨巧”新的计算相对熵的公式:

899c77f206814da8b20e75486832d1ec.png

很明显,通过这样的方式,新型的相对熵就变对称了。

3.2 理解NLP中的相对熵概念

文本查重(如学术论文查重)这一场景中,相对熵的应用尤为显著。其基本原理在于通过对比两篇文本的词频分布(即概率分布函数),来评估它们之间的相似性。当两篇文本的相似度极高时,它们所包含的词汇及其频率分布将趋于一致,从而导致这两篇文本之间的相对熵值趋近于0。基于这一原理,我们可以有效地判断是否存在抄袭现象。

此外,在机器翻译领域,相对熵同样展现出其独特的价值。通过计算翻译模型的输出分布与参考翻译的分布之间的相对熵,我们可以量化评估翻译结果的质量。较低的相对熵值意味着翻译模型的输出与参考翻译更为接近,从而反映出更高的翻译质量。这为研究者和工程师提供了一个有力的工具,用于优化翻译模型,提升NLP应用的性能。

4. 引用

7239f91508f547f59652bf9e869cb142.png

 

标签:NLP,词汇,读书笔记,互信息,之美,信息熵,相对,最新版,我们
From: https://blog.csdn.net/weixin_41803016/article/details/139296866

相关文章

  • Internet Download Manager(IDM6.41)软件最新版下载及详细安装教程
    ​根据行业数据显示支持多款浏览器,包括IE,Safari,谷歌浏览器,火狐,MSN还有opera ,通过自带的添加浏览器功能能够支持所有浏览器。实际上一键下载所选文件:当在浏览器中用鼠标选择多个链接时,IDM将显示“使用IDM下载”按钮,您也能够在“选项→常规选项卡→在浏览器中自定义下载面板”......
  • PHP的最新版本是什么?它引入了哪些新特性?
    PHP(全称:PHP:HypertextPreprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言,主要用于服务器端编程。它在服务器上执行,能够生成动态页面内容、处理表单数据、发送和接收Cookies、操作数据库等。PHP语法借鉴了C语言,并吸纳了Java和Perl的特色,发展出自己的独特语法。此外,PHP也......
  • 学生读书笔记共享系统-毕业设计-Springboot+mysql+Vue
    介绍学生读书笔记共享系统是一款专为学生设计的平台,旨在通过信息化手段实现读书笔记的共享和交流。系统分为管理端和用户端两个角色,分别为管理员和学生用户提供不同的功能模块,满足各自的需求。该系统不仅促进了学生之间的学习交流,还提升了学习效率和笔记管理的便捷性。技术栈......
  • 2024年6月最新版波猫商店自动售卡系统源码
    内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍最新版波猫商店自动售卡系统源码适用于各种电商、优惠卷、论坛邀请码、充值卡、激活码、注册码、腾讯爱奇艺积分CDK等,支持手动和全自动发货,还有类似1688的分层批发模式。功......
  • 2024.06.22【读书笔记】丨生物信息学与功能基因组学(第十七章 人类基因组 第一部分)【AI
    第一部分:人类基因组概述与测序历史(详细版)摘要:第十七章深入探讨了人类基因组的复杂性、测序历程以及其对现代科学的意义。人类基因组由约30,000至40,000个蛋白质编码基因组成,这些基因的表达和变异构成了我们生物学特征和疾病倾向的基础。本章节详细回顾了人类基因组计划的......
  • JetBrains PhpStorm 2024 mac/win版:探索PHP之美,智慧编程新境界
    JetBrainsPhpStorm2024是一款卓越的PHP集成开发环境(IDE),专为满足现代PHP开发者的需求而精心打造。它凭借强大的功能和出色的性能,赢得了全球开发者的广泛赞誉。PhpStorm2024mac/win版获取PhpStorm2024提供了智能的代码编辑功能,包括自动补全、语法高亮、代码重构等,使得编写......
  • A tour of C++ 读书笔记
    第一章:C++只是个编译型语言,需要源文件编译成目标文件,再通过链接各种库到可执行文件1.6常量  const  constexpr这个代表是要在编译的时候估值,性能会有所增加吧2.4联合体(union)  联合体所有的成员都是分配在同一地址上面,所以联合体所占的空间是跟其自身内部成员所......
  • Java面试题及答案整理( 2024年 6 月最新版,持续更新)
    秋招金九银十快到了,发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~这套互联网Java工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Springboot、SpringCloud、MQ、Kafka面试专......
  • 2024.6最新版eclipse下载与安装(汉化教程)超详细教程来咯!!!包懂的
    1.eclipse简介        Eclipse是一个开放源代码的集成开发环境(IDE),主要用于Java编程,但也可以通过插件支持其他编程语言,如C/C++、Python、Perl等。Eclipse被广泛应用于企业环境中,特别是在Java社区中,因其强大的功能和灵活性而受到开发者的喜爱。          ......
  • Java面试八股文2024最新版
    一、java基础1、java有哪几种数据类型?基本数据类型:byte(1),char(2),short(2),int(4),long(8),double(8),float(4),boolean(1)引用数据类型:各种类和接口,枚举,数组2、 面向对象和面向过程的区别?面向对象和面向过程都是一种开发思想。面向过程就是根据解决问题所需要的步骤,具体化的一步一步的去实现......