图解AI数学基础(3) | 信息论(要点速查清单·完结)

2023-12-09 02:32

本文主要是介绍图解AI数学基础(3) | 信息论(要点速查清单·完结),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 作者:韩信子@ShowMeAI
  • 教程地址:https://www.showmeai.tech/tutorials/83
  • 本文地址:https://www.showmeai.tech/article-detail/164
  • 声明:版权所有,转载请联系平台与作者并注明出处

信息论是运用概率论与数理统计的方法研究信息、信息熵、通信系统、数据传输、密码学、数据压缩等问题的应用数学学科。信息论中包含的知识和概念在机器学习中也有应用,典型的例子是其核心思想『熵』的应用。

例如,决策树模型ID3、C4.5中是利用信息增益来确定划分特征而逐步生长和构建决策树的;其中,信息增益就是基于信息论中的熵。

1.熵(Entropy)

熵是1854年由克劳休斯提出的一个用来度量体系混乱程度的单位,并阐述了热力学第二定律熵增原理:在孤立系统中,体系与环境没有能量交换,体系总是自发的向混乱度增大的方向变化,使整个系统的熵值越来越大。

熵越大,表征的随机变量的不确定度越大,其含有的信息量越多

熵 Entropy

随机变量 X X X 可能的取值为 { x 1 , x 2 , … , x n } \{x_{1},x_{2} ,\dots ,x_{n} \} {x1,x2,,xn},其概率分布为 P ( X = x i ) = p i P(X=x_{i}) =p_{i} P(X=xi)=pi i = 1 , 2 , … , n i = 1, 2, \dots, n i=1,2,,n,则随机变量 X X X 的熵定义为 H ( X ) H(X) H(X)

H ( X ) = − ∑ i = 1 n P ( x i ) l o g P ( x i ) = ∑ i = 1 n P ( x i ) 1 l o g P ( x i ) \begin{aligned} H(X) =&-\sum_{i=1}^{n}{P(x_{i}) logP(x_{i})} \\ &=\sum_{i=1}^{n}{P(x_{i}) \frac{1}{logP(x_{i})}} \end{aligned} H(X)=i=1nP(xi)logP(xi)=i=1nP(xi)logP(xi)1

2.联合熵(Joint Entropy )

联合熵 Joint Entropy

联合熵,就是度量一个联合分布的随机系统的不确定度。分布为 P ( x , y ) P(x,y) P(x,y) 的一对随机变量 ( X , Y ) (X,Y) (X,Y),其联合熵定义为:

H ( X , Y ) = − ∑ i = 1 n ∑ j = 1 n P ( x i , y j ) l o g P ( x i , y j ) = E [ log ⁡ 1 p ( x , y ) ] \begin{aligned} H(X,Y) &=-\sum_{i=1}^{n}{\sum_{j=1}^{n}{P(x_{i},y_{j})}logP(x_{i},y_{j})} \\ &=E[ \log\frac{1}{p(x,y)} ] \end{aligned} H(X,Y)=i=1nj=1nP(xi,yj)logP(xi,yj)=E[logp(x,y)1]

联合熵的物理意义,是观察一个多随机变量的随机系统获得的信息量,是对二维随机变量 ( X , Y ) (X,Y) (X,Y)不确定性的度量。

3.条件熵(Conditional Entropy)

Y Y Y 的条件熵是指『在随机变量 X X X 发生的前提下,随机变量 Y Y Y 发生新带来的熵』,用 H ( Y ∣ X ) H(Y \mid X) H(YX) 表示:

H ( Y ∣ X ) = − ∑ x , y P ( x , y ) l o g P ( y ∣ x ) H(Y \mid X) =-\sum_{x,y}{P(x,y) logP(y \mid x)} H(YX)=x,yP(x,y)logP(yx)

条件熵 Conditional Entropy

条件熵的物理意义,在得知某一确定信息的基础上获取另外一个信息时所获得的信息量,用来衡量在已知随机变量的 X X X 条件下,随机变量 Y Y Y 的不确定性。

4.相对熵(Kullback–Leibler divergence)

相对熵在信息论中用来描述两个概率分布差异的熵,叫作KL散度、相对熵、互熵、交叉熵、信息增益。对于一个离散随机变量的两个概率分布 P P P Q Q Q 来说,它们的相对熵定义为:

D ( P ∥ Q ) = ∑ i = 1 n P ( x i ) l o g P ( x i ) Q ( x i ) D(P \parallel Q) =\sum_{i=1}^{n}{P(x_{i}) log\frac{P(x_{i})}{Q(x_{i})}} D(PQ)=i=1nP(xi)logQ(xi)P(xi)
相对熵 Kullback–Leibler divergence

注意:公式中 P P P 表示真实分布, Q Q Q 表示 P P P 的拟合分布, D ( P ∥ Q ) ≠ D ( Q ∥ P ) D(P \parallel Q) ≠ D(Q \parallel P) D(PQ)=D(QP)

相对熵表示当用概率分布 Q Q Q 来拟合真实分布 P P P 时,产生的信息损耗。

5.交叉熵(Cross Entropy)

交叉熵 Cross Entropy

交叉熵在信息论中用于度量两个概率分布间的差异性。将上述相对熵(KL散度)公式拆开,可以得到 相对熵=交叉熵-熵

D ( P ∣ ∣ Q ) = ∑ i = 1 n P ( x i ) log ⁡ ( P ( x i ) Q ( x i ) ) = ∑ i = 1 n P ( x i ) log ⁡ ( P ( x i ) ) − ∑ i = 1 n P ( x i ) log ⁡ ( Q ( x i ) ) = − H ( P ( x ) ) + [ − ∑ i = 1 n P ( x i ) log ⁡ ( Q ( x i ) ) ] \begin{aligned} D(P || Q) &=\sum_{i=1}^{n} P\left(x_{i}\right) \log \left(\frac{P\left(x_{i}\right)}{Q\left(x_{i}\right)}\right) \\ &= \sum_{i=1}^{n} P\left(x_{i}\right) \log \left(P\left(x_{i}\right)\right) -\sum_{i=1}^{n} P\left(x_{i}\right) \log \left(Q\left(x_{i}\right)\right) \\ &=- H(P(x)) +\left[-\sum_{i=1}^{n} P\left(x_{i}\right) \log \left(Q\left(x_{i}\right)\right)\right] \end{aligned} D(PQ)=i=1nP(xi)log(Q(xi)P(xi))=i=1nP(xi)log(P(xi))i=1nP(xi)log(Q(xi))=H(P(x))+[i=1nP(xi)log(Q(xi))]

因此,对于一个离散随机变量的两个概率分布 P P P Q Q Q 来说,它们的交叉熵定义为:

H ( P , Q ) = − ∑ i = 1 n P ( x i ) l o g ( Q ( x i ) ) H\left( P,Q \right) =-\sum_{i=1}^{n}{P\left( x_{i} \right) log({Q\left( x_{i} \right) } } ) H(P,Q)=i=1nP(xi)log(Q(xi))

使用机器学习训练网络时,输入数据与标签通常是确定的。那么,真实概率分布 P ( x ) P(x) P(x) 是确定的,因此熵 H ( P ( x ) ) H(P(x)) H(P(x)) 是一个可以确定的常量。

由上述推导可得,交叉熵 = 相对熵+熵 = 相对熵+一个常量。所以交叉熵也可以用来描述真实概率分布 P ( x ) P(x) P(x) 与预测概率分布 Q ( x ) Q(x) Q(x) 的差异(值越小表示预测结果越好),且交叉熵的计算公式更简单。因此在机器学习中,通常使用交叉熵损失函数来计算Loss。

6.互信息(Mutual Information)

互信息是信息论里一种有用的信息度量方式,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。

互信息的计算方式定义如下:

I ( X , Y ) = ∑ x ∈ X ∑ y ∈ Y P ( x , y ) l o g 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)

互信息 Mutual Information

7.常用等式(useful equations)

1)条件熵、联合熵与熵之间的关系

H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y \mid X) =H(X,Y) - H(X) H(YX)=H(X,Y)H(X)

推导过程如下

H ( X , Y ) − H ( X ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x p ( x ) log ⁡ p ( x ) (1) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x ( ∑ y p ( x , y ) ) log ⁡ p ( x ) (2) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x , y p ( x , y ) log ⁡ p ( x ) (3) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) (4) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) (5) \begin{aligned} H(X, Y)-H(X) &= -\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x} p(x) \log p(x) \quad \quad \text{(1)} \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x}(\sum_{y} p(x, y)) \log p(x) \quad \text{(2)} \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x, y} p(x, y) \log p(x) \quad \quad \text{(3)} \\ &=-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)} \quad \quad \text{(4)} \\ &=-\sum_{x, y} p(x, y) \log p(y \mid x) \quad \quad \text{(5)} \end{aligned} H(X,Y)H(X)=x,yp(x,y)logp(x,y)+xp(x)logp(x)(1)=x,yp(x,y)logp(x,y)+x(yp(x,y))logp(x)(2)=x,yp(x,y)logp(x,y)+x,yp(x,y)logp(x)(3)=x,yp(x,y)logp(x)p(x,y)(4)=x,yp(x,y)logp(yx)(5)

  • 第(1)行推到第(2)行的依据是边缘分布 P ( x ) P(x) P(x) 等于联合分布 P ( x , y ) P(x,y) P(x,y) 的和;

  • 第(2)行推到第(3)行的依据是把公因子 l o g P ( x ) logP(x) logP(x) 乘进去,然后把 x , y x,y x,y写在一起;

  • 第(3)行推到第(4)行的依据是:因为两个 σ \sigma σ 都有 P ( x , y ) P(x,y) P(x,y) ,故提取公因子 P ( x , y ) P(x,y) P(x,y) 放到外边,然后把里边的 − ( l o g P ( x , y ) − l o g P ( x ) ) -(log P(x,y) - log P(x)) (logP(x,y)logP(x)) 写成 − l o g ( P ( x , y ) / P ( x ) ) - log (P(x,y) / P(x)) log(P(x,y)/P(x))

  • 第(4)行推到第(5)行的依据是: P ( x , y ) = P ( x ) ∗ P ( y ∣ x ) P(x,y) = P(x) \ast P(y \mid x) P(x,y)=P(x)P(yx),故 P ( x , y ) / P ( x ) = P ( y ∣ x ) P(x,y) / P(x) = P(y \mid x) P(x,y)/P(x)=P(yx)

2)条件熵、联合熵与互信息之间的关系

H ( Y ∣ X ) = H ( Y ) − I ( X , Y ) H(Y \mid X) =H(Y) -I(X,Y) H(YX)=H(Y)I(X,Y)

推导过程如下:

H ( Y ) − I ( X , Y ) = − ∑ y p ( y ) log ⁡ p ( y ) − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) = − ∑ y ( ∑ x p ( x , y ) ) log ⁡ p ( y ) − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ) − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) = H ( Y ∣ X ) \begin{aligned} H(Y)-I(X, Y) =&-\sum_{y} p(y) \log p(y)-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ &=-\sum_{y}(\sum_{x} p(x, y)) \log p(y)-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ &=-\sum_{x, y} p(x, y) \log p(y)-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ &=-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)} \\ &=-\sum_{x, y} p(x, y) \log p(y \mid x) \\ &=H(Y \mid X) \end{aligned} H(Y)I(X,Y)=yp(y)logp(y)x,yp(x,y)logp(x)p(y)p(x,y)=y(xp(x,y))logp(y)x,yp(x,y)logp(x)p(y)p(x,y)=x,yp(x,y)logp(y)x,yp(x,y)logp(x)p(y)p(x,y)=x,yp(x,y)logp(x)p(x,y)=x,yp(x,y)logp(yx)=H(YX)

3)互信息的定义

常用等式 useful equations
由上方的两个公式

  • H ( Y ∣ X ) = H ( Y ) − I ( X , Y ) H(Y \mid X) = H(Y) - I(X,Y) H(YX)=H(Y)I(X,Y)
  • H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y \mid X) = H(X,Y) - H(X) H(YX)=H(X,Y)H(X)

可以推出 I ( X , Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X,Y)= H(X) + H(Y) - H(X,Y) I(X,Y)=H(X)+H(Y)H(X,Y),此结论被多数文献作为互信息的定义

8.最大熵模型(Max Entropy Model)

机器学习领域,概率模型学习过程中有一个最大熵原理,即学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型。

通常用约束条件来确定模型的集合,所以最大熵模型原理也可以表述为:在满足约束条件的模型集合中,选取熵最大的模型。

前面我们知道,若随机变量 X X X 的概率分布是 P ( x i ) P(x_{i}) P(xi),其熵的定义如下:

H ( X ) = − ∑ i = 1 n P ( x i ) l o g P ( x i ) = ∑ i = 1 n P ( x i ) 1 l o g P ( x i ) H(X) =-\sum_{i=1}^{n}{P(x_{i}) logP(x_{i})} =\sum_{i=1}^{n}{P(x_{i}) \frac{1}{logP(x_{i})}} H(X)=i=1nP(xi)logP(xi)=i=1nP(xi)logP(xi)1
最大熵模型 Max Entropy Model

熵满足下列不等式: 0 ≤ H ( X ) ≤ l o g ∣ X ∣ 0 \leq H(X) \leq log \left| X \right| 0H(X)logX

  • ∣ X ∣ |X| X X X X 的取值个数
  • 当且仅当 X X X 的分布是均匀分布时,右边的等号成立;也就是说,当 X X X 服从均匀分布时,熵最大。

直观地看,最大熵原理认为:

  • 要选择概率模型,首先必须满足已有的事实,即约束条件;
  • 在没有更多信息的情况下,那些不确定的部分都是『等可能的』。最大熵原理通过熵的最大化来表示等可能性;『等可能』不易操作,而熵则是一个可优化的指标。

ShowMeAI人工智能数学要点速查(完整版)

  • ShowMeAI 图解AI数学基础(1) | 线性代数与矩阵论
  • ShowMeAI 图解AI数学基础(2) | 概率与统计
  • ShowMeAI 图解AI数学基础(3) | 信息论
  • ShowMeAI 图解AI数学基础(4) | 微积分与最优化

ShowMeAI系列教程精选推荐

  • 大厂技术实现:推荐与广告计算解决方案
  • 大厂技术实现:计算机视觉解决方案
  • 大厂技术实现:自然语言处理行业解决方案
  • 图解Python编程:从入门到精通系列教程
  • 图解数据分析:从入门到精通系列教程
  • 图解AI数学基础:从入门到精通系列教程
  • 图解大数据技术:从入门到精通系列教程
  • 图解机器学习算法:从入门到精通系列教程
  • 机器学习实战:手把手教你玩转机器学习系列
  • 深度学习教程:吴恩达专项课程 · 全套笔记解读
  • 自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读
  • 深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读

这篇关于图解AI数学基础(3) | 信息论(要点速查清单·完结)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/472170

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

MySQL复合查询从基础到多表关联与高级技巧全解析

《MySQL复合查询从基础到多表关联与高级技巧全解析》本文主要讲解了在MySQL中的复合查询,下面是关于本文章所需要数据的建表语句,感兴趣的朋友跟随小编一起看看吧... 目录前言:1.基本查询回顾:1.1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J1.2.按照部门

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键