KL散度非负性证明
1 KL散度
KL散度(Kullback–Leibler divergence) 定义如下:
$D_{K L}=\sum\limits_{i=1}^{n} P\left(x_{i}\right) \times \log \left(\frac{P\left(x_{i}\right)}{Q\left(x_{i}\right)}\right)$
目标:证明上式非负。
2 凸函数与凹函数
连续函数 $f(x)$ 的定义域为 $I$ ,如果对 $I$ 内任意两个实数 $x_{1}$ , $x_{2}$ 及任意实数 $\lambda \in(0,1)$ ,都有
$f\left(\lambda x_{1}+(1-\lambda) x_{2}\right) \leq \lambda f\left(x_{1}\right)+(1-\lambda) f\left(x_{2}\right) \quad \quad \quad (1)$
则称 $f(x)$ 为 $I $ 上的凸函数(下凸)。
若有
$f\left(\lambda x_{1}+(1-\lambda) x_{2}\right) \geq \lambda f\left(x_{1}\right)+(1-\lambda) f\left(x_{2}\right) \quad \quad \quad (2)$
则称 $f(x)$ 为 $I$ 上的凹函数(上凹)。
举例:
$log(x)$ 是凹函数,反之$-log(x)$ 是凸函数。
3 加权Jensen不等式
若 $f(x)$ 是区间 $[a, b]$ 上的凸函数,则对任意的实数 $x_{1}, x_{2}, \cdots, x_{n} \in[a, b] $,对所有非负实数 $a_{1}, a_{2}, \cdots a_{n} \geq 0$ , 且 $a_{1}+a_{2}+\cdots+a_{n}=1 $ ,则下列不等式成立。
$f\left(a_{1} x_{1}+a_{2} x_{2}+\cdots+a_{n} x_{n}\right) \leq a_{1} f\left(x_{1}\right)+a_{2} f\left(x_{2}\right)+\cdots+a_{n} f\left(x_{n}\right)$
4 证明KL散度非负性
KL散度(Kullback–Leibler divergence) 定义如下:
$D_{K L}=\sum\limits_{i=1}^{n} P\left(x_{i}\right) \times \log \left(\frac{P\left(x_{i}\right)}{Q\left(x_{i}\right)}\right)$
其中:
$\sum \limits_{i=1}^{n} P\left(x_{i}\right)=1$
由于 $\log (x)$ 是凹函数,$-\log (x)$ 是凸函数,因此将 KL散度定义式先变形再应用加权Jensen不等式,得:
$\begin{array}{l}D_{K L}&=\sum\limits_{i=1}^{n} P\left(x_{i}\right) \times \log \left(\frac{P\left(x_{i}\right)}{Q\left(x_{i}\right)}\right)\\ &=\sum\limits_{i=1}^{n} P\left(x_{i}\right) \times\left(-\log \left(\frac{Q\left(x_{i}\right)}{P\left(x_{i}\right)}\right)\right) \\&\geq-\log \left(\sum\limits_{i=1}^{n} P\left(x_{i}\right) \times \frac{Q\left(x_{i}\right)}{P\left(x_{i}\right)}\right)\\&=-\log \left(\sum\limits_{i=1}^{n} Q\left(x_{i}\right)\right)\end{array}$
Tips:Jensen不等式中的 $x_i$ 在这里相当于 $\frac{P\left(x_{i}\right)}{Q\left(x_{i}\right)}$; $f $ 相当于 $-\log()$ ;$a_i$ 相当于 $P\left(x_{i}\right)$ 。
由于 $Q\left(x_{i}\right)$ 是一个概率分布,因此和 $P\left(x_{i}\right)$ 一样满足下面的式子 $\sum\limits _{i=1}^{n} Q\left(x_{i}\right)=1$
因此可以得到
$D_{K L} \geq-\log (1)=0$
到此KL散度非负性得证。
KL散度非负性证明的更多相关文章
- 机器学习、深度学习中的信息熵、相对熵(KL散度)、交叉熵、条件熵
信息熵 信息量和信息熵的概念最早是出现在通信理论中的,其概念最早是由信息论鼻祖香农在其经典著作<A Mathematical Theory of Communication>中提出的.如今 ...
- 【原】浅谈KL散度(相对熵)在用户画像中的应用
最近做用户画像,用到了KL散度,发现效果还是不错的,现跟大家分享一下,为了文章的易读性,不具体讲公式的计算,主要讲应用,不过公式也不复杂,具体可以看链接. 首先先介绍一下KL散度是啥.KL散度全称Ku ...
- KL散度与JS散度
1.KL散度 KL散度( Kullback–Leibler divergence)是描述两个概率分布P和Q差异的一种测度.对于两个概率分布P.Q,二者越相似,KL散度越小. KL散度的性质:P表示真实 ...
- 【机器学习基础】熵、KL散度、交叉熵
熵(entropy).KL 散度(Kullback-Leibler (KL) divergence)和交叉熵(cross-entropy)在机器学习的很多地方会用到.比如在决策树模型使用信息增益来选择 ...
- 从香农熵到手推KL散度
信息论与信息熵是 AI 或机器学习中非常重要的概念,我们经常需要使用它的关键思想来描述概率分布或者量化概率分布之间的相似性.在本文中,我们从最基本的自信息和信息熵到交叉熵讨论了信息论的基础,再由最大似 ...
- 信息论相关概念:熵 交叉熵 KL散度 JS散度
目录 机器学习基础--信息论相关概念总结以及理解 1. 信息量(熵) 2. KL散度 3. 交叉熵 4. JS散度 机器学习基础--信息论相关概念总结以及理解 摘要: 熵(entropy).KL 散度 ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- 浅谈KL散度
一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence) ...
- ELBO 与 KL散度
浅谈KL散度 一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information dive ...
随机推荐
- Hamburger Magi(hdu 3182)
Hamburger Magi Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Centos 切换中文输入法
切换输入法看起来是一个非常简单的操作,但是对于初学者来说,也并非那么简单,开始会发现按Ctrl+space无法切换中文输入法,原因是系统没有安装中文输入法,运行以下命令可以安装中文输入法: yum i ...
- iGPT and ViT
目录 概 主要内容 iGPT ViT 代码 Chen M., Radford A., Child R., Wu J., Jun H., Dhariwal P., Luan D., Sutskever ...
- Java EE数据持久化框架 • 【第1章 MyBatis入门】
全部章节 >>>> 本章目录 1.1 初识MyBatis 1.1.1 持久化技术介绍 1.1.2 MyBatis简介 1.1.2 Mybatis优点 1.1.3 利用Mav ...
- 使用 Eclipse 可视化插件 windowbuilder 进行Java GUI开发(插件安装的两种方法)
对于Java GUI开发 其实最方便的方法是用插件制作,当然先了解完代码原理是最好的. eclispe安装windowbuilder有两种方式,一种是离线安装,一种是在线安装. 一.第一种在线安装: ...
- 简单查看windows蓝屏原因
相信各位在使用windows(xp.7.8.1.10...)过程中都遇到过蓝屏的情况,而蓝屏时,系统会将其记录起来,并追踪到引起蓝屏的程序,以下内容将简单介绍一下如何查看引起windows蓝屏的原因: ...
- iNeuOS工业互联网操作系统,增加设备驱动的自定义参数模板,适配行业个性化设备的应用场景
目 录 1. 概述... 2 2. 平台演示... 2 3. 应用过程... 2 1. 概述 增加设备驱动的自定义参数模板,适配行业个性化设备的应用场景. ...
- Swoole 中使用通道(Channel)实现协程间通讯(消息队列)
通道 Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的. 只能在同一进程的不同协程内进行 push 和 pop 操作. Co::set(['hook_flags'=> ...
- pytest执行用例:明明只写了5个测试用例, 怎么收集到33个!?
pytest收集测试用例的顺序: 同一个项目中搜索所有以test_开头的测试文件.test_开头的测试类.test_开头的测试函数 执行测试用例的顺序: 是按照先数据(0~9)>再字母(a~z) ...
- Gitlab如何进行备份恢复与迁移?
https://blog.csdn.net/ouyang_peng/article/details/77070977 1.Gitlab 创建备份 1.1 创建备份文件 首先我们得把老服务器上的Gitl ...