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】950. Reveal Cards In Increasing Order 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 模拟 日期 题目地址:https://leetcod ...
- 【系统分析】《系统分析与设计方法》 Jeffrey L.Whitten 第1部分 系统开发环境 第3章 信息系统开发
1.解释为什么对企业来说,拥有一个标准的系统开发过程很重要. 开发过程的成熟,使项目时间和费用减少,生产率和质量提高 2.如何关联系统生命周期和系统开发方法学? 系统生命周期包含系统开发阶段,其中使用 ...
- Spring企业级程序设计 • 【目录】
章节 内容 实践练习 Spring企业级程序设计目录(作业笔记) 第1章 Spring企业级程序设计 • [第1章 Spring之旅] 第2章 Spring企业级程序设计 • [第2章 Spring ...
- 编写Java程序,实现简单的五子棋博弈游戏(美和易思Java练习习题)
package com.qq.gb; import java.util.Scanner; public class GoBang { Scanner sc = new Scanner(System.i ...
- emqx的acl.conf使用
allow_anonymous=true就不说了,打开这个就像开了挂 现在讨论一下allow_anonymous=false,这样的话你会发现,client连接不上了 后来发现连接和权限 是两个事.. ...
- Storm集群开启HA高可用
Storm开启HA高可用,包括Nimbus和UI开启两个及以上的进程. 基于已经安装好的Storm集群,开启关键节点角色的HA高可用. Storm安装请参考Storm集群安装Version1.0.1 ...
- GeoWave实践2:使用命令行将本地矢量数据注入hbase并发布至GeoServer
目录 步骤 补充 步骤 在GeoWave所在的节点打开两个会话窗口. 会话1 //运行GeoServer,默认端口8080 geowave gs run 会话2 //为GeoWave创建数据库Test ...
- python (伪)私有属性和私有方法
1.定义方式 在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法. 2.为什么要定义私有属性和私有方法 在实际开发中,对象的某些属性或方法只希望在对象的内部被使用,而不希 ...
- [ vue ] quasar框架踩坑:在vue文件外导入路由,执行router.push('/')没有效果
问题描述: 1. 如图所示的项目结构目录, axios.js 文件负责拦截全局请求和回复,我在拦截回复的代码中写了:如果服务器回复了一个401错误,则执行Router.push('/'),但是该方法失 ...
- 在CentOS7上安装 jq
安装EPEL源: yum install epel-release 安装完EPEL源后,可以查看下jq包是否存在: yum list jq 安装jq: yum -y install jq 命令参考资料 ...