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 ...
随机推荐
- 【LeetCode】377. Combination Sum IV 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】622. Design Circular Queue 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 用直的代替弯的 数组循环利用 日期 题目地址:htt ...
- 1084 - Winter
1084 - Winter PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Winter is ...
- 文件挂载(一)- Linux挂载Linux文件夹
一.概述 工作中经常会出现不同服务器.不同操作系统之间文件夹互相挂载的情形,例如文件服务器或数据备份服务器. 挂载一般来说就是以下四种类型: 同类型操作系统 a. linux挂载linux文件夹 b. ...
- CS5211完全替代兼容LT7211|PS8625|CH7511方案|EDP转LVDS|Capstone CS5211
CH7511|LT7211|PS8625替代方案--Capstone CS5211AN 设计EDP转LVDS优势方案原理图+PCB板设计 CH7511|LT7211|PS8625这三款都是专门用于设计 ...
- 关于 base64 编码
一.什么是Base64编码 Base64是一种用64个字符来表示任意二进制数据的方法.它是一种编码方式,而非加密方式.它通过将二进制数据转变为64个"可打印字符",完成了数据在HT ...
- Java中的关键字有哪些?「Java中53个关键字的意义及使用方法」
Java中的关键字有哪些? 1)48个关键字:abstract.assert.boolean.break.byte.case.catch.char.class.continue.default.do. ...
- C#自定义转换(implicit 或 explicit)
C#的类型转换分为显式转换和隐式转换,显式转换需要自己声明转换类型,而隐式转换由编译器自动完成,无需我们声明,如: //long需要显式转换成int long l = 1L; int i = (int ...
- 来自MyBatis不一样收获结果的探索之旅-v3.5.9
概述 定义 MyBatis官网 https://mybatis.org/mybatis-3/ 最新版本为3.5.9 MyBatis是一个的ORM框架,支持自定义SQL.存储过程和高级映射.MyBati ...
- golang vue 使用 websocket 的例子
一. 编写golang服务端 1.导入必要的websocket包,golang.org/x/net/websocket 或 github.com/golang/net/websocket 2.编写消息 ...