PRML 1.6 信息论

信息内容的度量以来于某个概率分布p(x)p(x)p(x)。为了表达我们接受到的信息,我们寻找一个函数h(x)h(x)h(x),它是概率p(x)p(x)p(x)的单调函数。如果我们有两个不相关的事件xxx和yyy那么我们观察到两个事件同时发生接收到的信息之和
h(x,y)=h(x)+h(y)h(x,y)=h(x)+h(y) h(x,y)=h(x)+h(y)
而两个事件的概率关系:
p(x,y)=p(x)p(y)p(x, y) = p(x)p(y) p(x,y)=p(x)p(y)
可以看出概率关系和信息量的多少有一定的对数关系,因此:
h(x)−log2p(x)h(x)-log_2p(x) h(x)−log2​p(x)
其中负号保证了信息为正数或者是零。不难看出,概率越低(不确定性越大)信息量越多(大),h(x)h(x)h(x)的单位是比特(bit,binary digit)
接着,我们用熵来评价整个随机变量x平均的信息量,而平均最好的量度就是随机变量的期望,即熵的定义如下:
H[x]=−∑xp(x)log2p(x)H[x]=-\sum_{x}p(x)log_2p(x) H[x]=−x∑​p(x)log2​p(x)

header 1 1 2 3 4 5 6 7 8
随机变量 a b c d e f g h
状态 1/2 1/4 1/8 1/16 1/64 1/64 1/64 1/64

根据公式可以计算出熵为2bit

从现在开始,我们会将熵的定义中的对数变成自然对数,这种情况下,熵的度量的单位是nat,而不是bit。两者的差别是⼀个ln 2的因子。

如上图所示,如果分布p(xi)p(x_i)p(xi​)在几个值周围有尖锐的峰值,熵就会相对降低,如果相对平稳地跨过许多值,那么熵就会很高。

1.6.1 相对熵和互信息

我们已经知道了,信息熵是衡量随机变量或者整个系统的不确定性,不确定性越大,熵越大,呈正相关关系

每一个系统都会有一个真实的概率分布,我们根据真实的概率分布找到一个最优的策略,以最小的代价消除系统的不确定性,这个"大小"就是信息熵。而如果我们以非真实的分布来选择策略来消除系统的不确定性,这个"大小"就是交叉熵。
∑k=1Npklog⁡21qk\sum_{k=1}^Np_k\log_2\frac{1}{q_k} k=1∑N​pk​log2​qk​1​

其中pkp_kpk​表示真实分布,而qkq_kqk​表示非真实分布。交叉熵越低,则策略越好,所以在机器学习中,我们需要最小化交叉熵,这样我们的策略才会越接近最优策略。

我们又如何去衡量不同策略之间的差异呢?相对熵,顾名思义,相对熵是用来衡量两个取值为正的函数或概率分布之间的差异

KL(p∣∣q)=−∫p(x)ln⁡q(x)dx−(−∫p(x)ln⁡p(x)dx)KL(p∣∣q)=−∫p(x)ln⁡{q(x)p(x)}dxKL(p||q)=-\int p(x)\ln q(x) \mathrm{d}x - (-\int p(x)\ln p(x) \mathrm{d}x) \\\\ KL(p||q)= -\int p(x)\ln\{\frac{q(x)}{p(x)}\}\mathrm{d}x KL(p∣∣q)=−∫p(x)lnq(x)dx−(−∫p(x)lnp(x)dx)KL(p∣∣q)=−∫p(x)ln{p(x)q(x)​}dx
这被称为分布p(x)和分布q(x)之间的相对熵(relative entropy),或者叫KL散度(Kullback and Leibler, 1951)。相对熵不是一个对称量,即KL(p∣∣q)≠KL(q∣∣p)KL(p||q) \neq KL(q||p)KL(p∣∣q)​=KL(q∣∣p)

  • 先介绍凸函数(convex function)的概念

如果⼀个函数具有如下性质:每条弦都位于函数图像或其上⽅(如下图所⽰),那么我们说这个函数是凸函数。

如图所示,我们可以将位于[a,b][a, b][a,b]之间的任何一个xxx的值都可以写成λa+(1−λ)b\lambda a+(1-\lambda)bλa+(1−λ)b,其中0≤λ≤10\leq \lambda \leq 10≤λ≤1,弦上对应的点可以写成λf(a)+(1−λ)f(b)\lambda f(a)+(1-\lambda)f(b)λf(a)+(1−λ)f(b)。函数对应的值可以写为f(λa+(1−λ)b)f(\lambda a + (1-\lambda)b)f(λa+(1−λ)b)。所以凸函数具有以下的性质:

f(λa+(1−λ)b)≤λa+(1−λ)bf(\lambda a + (1-\lambda)b)\leq\lambda a+(1-\lambda)b f(λa+(1−λ)b)≤λa+(1−λ)b

典型的凸函数有: x2x^2x2,xln⁡x(x>0)x\ln x (x>0)xlnx(x>0)

现在要证明,KLKLKL散度满足KL(p∣∣q)≥0KL(p||q)\geq0KL(p∣∣q)≥0,并且当且仅当p(x)=q(x)p(x)=q(x)p(x)=q(x)时等号成立。

使用归纳法,可以证明凸函数满足:

f(∑i=1Mλixi)≤∑i=1Mλif(xi)f(\sum^M_{i=1}\lambda_i x_i)\leq \sum^M_{i=1}\lambda_if(x_i) f(i=1∑M​λi​xi​)≤i=1∑M​λi​f(xi​)

如果将λi\lambda_iλi​看成取值为xi{x_i}xi​的离散变量xxx的概率分布,那么上面的公式可以写成:

f(E[x])≤E[f(x)]f(E[x])\leq E[f(x)] f(E[x])≤E[f(x)]

就是Jensen不等式,即函数的期望大于期望的函数。

连续变量,Jensen不等式的形式为
f(∫xp(x)dx)≤∫f(x)p(x)dxf(\int xp(x)\mathrm {d}x) \leq \int f(x)p(x)\mathrm {d}x f(∫xp(x)dx)≤∫f(x)p(x)dx

那么对KLKLKL散度,我们有:

KL(p∣∣q)=−∫p(x)ln⁡q(x)p(x)dx≥−ln⁡∫q(x)dx=0KL(p||q)=-\int p(x)\ln{\frac{q(x)}{p(x)}}\mathrm{d}x \geq -\ln \int q(x) \mathrm{d}x=0 KL(p∣∣q)=−∫p(x)lnp(x)q(x)​dx≥−ln∫q(x)dx=0

因为−ln⁡x-\ln x−lnx是凸函数。又因为归一化条件∫q(x)dx=1\int q(x) \mathrm{d}x=1∫q(x)dx=1,−lnx-lnx−lnx是严格凸函数,因此只有q(x)=p(x)q(x)=p(x)q(x)=p(x)对于所有的xxx都成立时,等号成立

因此我们可以把Kullback-Leibler散度看做两个分布p(x)p(x)p(x)和q(x)q(x)q(x)之间不相似程度的度量

假设数据通过未知分布p(x)p(x)p(x)生成,我们想要对p(x)p(x)p(x)建模。我们可以试着使用⼀些参数分布q(x∣θ)q(x|\theta)q(x∣θ)来近似这个分布。确定θ\thetaθ的方式是最小化p(x)p(x)p(x)和q(x∣θ)q(x|\theta)q(x∣θ)之间关于θ\thetaθ的KLKLKL散度。但事实上,我们并不知道p(x)p(x)p(x),不过我们想到:

如果我们给定有限数量的N个点,这些点满足某个概率分布或者概率密度函数,那么期望可以通过求和的方式估计。
E[f]≃1N∑f(xn)E[f] \simeq \frac{1}{N}\sum f(x_n) E[f]≃N1​∑f(xn​)

所以,假设我们已经观察到服从分布p(x)p(x)p(x)的有限数量的训练点xnx_nxn​,其中n=1,...,Nn=1,...,Nn=1,...,N,那么根据上述公式近似,即:
KL(p∣∣q)≃1N∑n=1N{−ln⁡q(xn∣θ)+ln⁡p(xn)}KL(p||q) \simeq \frac{1}{N}\sum^N_{n=1}\{-\ln q(x_n|\theta)+\ln p(x_n)\} KL(p∣∣q)≃N1​n=1∑N​{−lnq(xn​∣θ)+lnp(xn​)}

可以看出,该公式的第二项和θ\thetaθ无关,第一项是θ\thetaθ的负对数似然函数,我们对该公式最小化,就是最大化似然函数。

下面考虑两个变量组成的数据集

p(x,y)p(x,y)p(x,y)给出两个变量xxx和变量yyy组成的数据集。如果变量的集合是独立的,那么他们的联合分布可以分解为边缘分布的乘积p(x,y)=p(x)p(y)p(x,y)=p(x)p(y)p(x,y)=p(x)p(y)。但是如果变量不独立,那么我们可以通过考察联合概率分布与边缘概率分布乘积之间的KL\mathrm{KL}KL散度来判断他们是否"接近"于相互独立。此时,KL\mathrm{KL}KL散度为:

I[x,y]=KL(p(x,y)∣∣p(x)p(y))=−∬p(x,y)ln⁡(p(x)p(y)p(x,y))dxdyI[x,y]=\mathrm{KL}(p(x,y)||p(x)p(y))= -\iint p(x,y)\ln(\frac{p(x)p(y)}{p(x,y)})\mathrm{d}x\mathrm{d}y I[x,y]=KL(p(x,y)∣∣p(x)p(y))=−∬p(x,y)ln(p(x,y)p(x)p(y)​)dxdy

这被称为变量xxx和变量yyy之间互信息(mutual information)。根据KL\mathrm{KL}KL散度的性质,可以看到I[x,y]≥0I[x,y]\geq 0I[x,y]≥0,当且仅当xxx和yyy相互独立时等号成立。使⽤概率的加和规则和乘积规则,我们看到互信息和条件熵之间的关系为:
I[x,y]=H[x]−H[x∣y]=H[y]−H[y∣x]I[x,y]=H[x]-H[x|y]=H[y]-H[y|x] I[x,y]=H[x]−H[x∣y]=H[y]−H[y∣x]

因此我们可以把互信息看成由于知道y值而造成的x的不确定性的减小(反之亦然)。从贝叶斯的观点来看,我们可以把p(x)p(x)p(x)看成x的先验概率分布,把p(x∣y)p(x | y)p(x∣y)看成我们观察到新数据yyy之后的后验概率分布。因此互信息表示⼀个新的观测yyy造成的xxx的不确定性的减小。

PRML 1.6 信息论相关推荐

  1. 机器学习方法(四):决策树Decision Tree原理与实现技巧

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面三篇写了线性回归,lass ...

  2. 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介

    今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介 前面有朋友说写的东西太理论了,我想 ...

  3. PRML(2)--绪论(下)模型选择、纬度灾难、决策论、信息论

    PRML绪论 1.3 模型选择 1.4 纬度灾难 1.5 决策论 1.5.1最小错误分率 1.5.2最小化期望损失 1.5.3拒绝选项 1.5.4推断和决策 1.5.5 回归问题的损失函数 1.6 信 ...

  4. PRML(1)--绪论(上)多项式曲线拟合、概率论

    PRML绪论 1.1 多项式曲线拟合 1.1.1 问题描述 1.1.2 最小化平方和误差 1.1.3 多项式阶数确定 1.1.4 有趣问题--高阶模型为什么效果不好 1.1.4 数据集规模对模型的影响 ...

  5. 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书

    文章目录 机器学习百科全书目录 Pattern Recognition and Machine Learning The Elements of Statistical Learning (Secon ...

  6. PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)...

    主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...

  7. 模式识别 | PRML概览

    PRML全书概览 PRML全称Pattern Recognition and Machine Learning,个人认为这是机器学习领域中最好的书籍之一,全书的风格非常Bayesian,作者试图在贝叶 ...

  8. PRML笔记:1-介绍

    打算去读PRML这本书,用两遍来读完,第一遍弄懂基本思想,以便看其他任何相关文献能够明白他们在说什么:第二遍细看,重点要做书后面的习题,弄清每个知识点的细节部分.第二遍可能不会连续,甚至会挑选部分章节 ...

  9. 《数据科学家养成手册》第九章信息论

    事先声明: 兴趣使然,阅读书籍的过程中看了一些资料,但并不能看太懂 信息论是围绕数据存储于传输量化等一系列问题所展开的一门专门研究信息的学科. 一句话总结作者:"在某一种设定情况下,最简洁可 ...

  10. 附下载|Python带你实践机器学习圣经PRML

    新智元报道   来源:Github.知乎  编辑:白峰 将 Bishop 大神的 PRML 称为机器学习圣经一点也不为过,该书系统地介绍了模式识别和机器学习领域内详细的概念与基础.书中有对概率论基础知 ...

最新文章

  1. unity集成openinstall流程
  2. 动态内存的基本功能和使用
  3. POJ2019(二维RMQ问题 ST)
  4. (转)threadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别
  5. html隐藏块元素过度动画,CSS3实现DIV图层隐藏到显示的过渡效果
  6. 云存储精华问答 | 如何选择混合云提供商?
  7. mybatis对java自定义注解的使用——入门篇
  8. 程序员如何备战全国计算机二级(Python)考试?
  9. Ubuntu不能挂载移动硬盘问题Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t ntfs -o
  10. Javascript第四章变量的作用域第三课
  11. memcached 快速入门
  12. 运维工程师绩效考核表_运维服务工程师考核表
  13. guice android,android – 如何使用Guice的@Singleton?
  14. 弘辽科技:新手拼多多店铺该怎么引流
  15. Modern CMake 简介
  16. 【转】小玄子和小桂子
  17. python xlwt安装linux_Linux安装Python xlrd、xlwt、xlutils模块
  18. 荣联云发送短信验证码--python3接口
  19. 利用Python+opencv进行视频文件的读取和保存,打开笔记本摄像头拍照保存、图像在窗口显示等操作
  20. 最大实体原则_在原则实体中使用特征

热门文章

  1. matlab 数字全息图,基于MATLAB的数字全息成像仿真研究
  2. OneDrive更换要同步文件夹
  3. BiliBili后台源码45MB全部泄露,中奖概率写在注释里,密码硬编码,看懂了你就欧气满满(提供下载)!
  4. 冒泡排序算法之C语言实现
  5. 用安卓设备通过otg完成电脑启动盘装机盘的制作,通过手机在U盘写入iso镜像
  6. c语言小游戏如何编写,如何用c语言编写小游戏.docx
  7. jdk1.8 新特性(中英文)及中文版帮助文档
  8. 勇者游戏C语言,c语言命令行-勇者斗恶龙
  9. java 铁路管理信息系统_基于Java铁路售票系统的设计与实现(含录像)(SqlServer)
  10. Mac M1 安装 iTerm2+Oh My Zsh+zsh-syntax-highlighting 真香!