KL散度相关理解以及视频推荐
以下内容基于对[中字]信息熵,交叉熵,KL散度介绍||机器学习的信息论基础这个视频的理解,请务必先看几遍这个视频。
假设一个事件可能有多种结果,每一种结果都有其发生的概率,概率总和为1,也即一个数据分布。我们可以用哈夫曼编码作为最佳编码方案编码这些事件,并将多次事件发生的情况信息以哈夫曼编码的形式传递出去。
有一个结论是:在一个数据分布p上,用p对应的最佳编码方案来传递信息,这样传递的信息的期望量。这个期望量也被称为这个数据分布p作为一个信息的信息熵,是一个信息的一种属性。
信息熵就是,在一个数据分布p上,用p对应的最佳编码方案来传递信息,这样传递的信息的期望量。
交叉熵就是,在真实的数据分布p上,用你预测的分布q对应的最佳编码方案来传递信息,这样传递的信息的期望量。如果p和q完全一致,那么q的最佳编码方案就是p的最佳编码方案,传递的信息总量就是最少的,也就是说,交叉熵的值最小。
KL散度就是,【在一个数据分布p上,用分布q对应的最佳编码方案来传递信息,这样传递的信息的期望量】,与【在数据分布p上用分布p对应的最佳编码方案来传递信息,这样传递的信息的期望量】(也即p的信息熵),的差值。它衡量了两个分布的差别,KL散度越大说明两个分布差别越大,KL散度的最小值为0,表示两个分布完全相同。
在深度学习分类任务训练过程中,真实的数据分布就是p(y|x),其中x是样本特征,y是label向量(one-hot形式),用[0,0,0,1,0,0,0,0]这种形式表示,你可以把它看成一个分布,分别表示x是8种东西中的某一种的概率,由于y是label所以有一个是1,其他的全是0。预测的分布就是p(ŷ|x),其中x还是刚才的那个样本特征,ŷ可以是[0.1,0.2,0.05,0.6,0.01,0.01,0.01,0.02]这种形式,表示我们预测出的x可能是8中东西中的某一种的概率的分布。我们在写代码的时候,通常是使用y和ŷ的交叉熵来作为我们的loss。而实际上,我们也使用的是KL散度作为loss,效果和用交叉熵完全一样。这是因为p(y|x)对应的事件的信息熵的值永远为0. 因为p(y|x)的分布是[0,0,0,1,0,0,0,0]这样的,也就是说表示,x一定属于第四类,也就是说哈夫曼编码根本用不上,不需要编码,肯定是第四个,也就是p(y|x)对应的事件的信息熵的值永远为0。所以此时KL散度就等于交叉熵了。
那么如果是在变分推断VI或者变分自动编码器VAE中呢?在这两个场景下,我们通常要计算p(z|x)这个分布,也就是说给定x,把它编码成什么样的z是最好的。其中z是隐变量,不像前面的y一样是ground truth,不像y一样信息量为零。我们在这两种场景下实际上是将x编码为z,z有它自己的复杂的分布。由于我们要把x编码成z,通常是把一个高维的x编码成低维的z,因此我们需要z本身的分布能表示越多的信息越好,也就是z的分布本身的信息熵越大越好。因此此时我们使用的loss函数就是KL散度,假设我们的样本通过编码器后拿到的隐变量是ẑ,它的分布是p,隐空间中关于对于我们的样本最好的隐变量是z,它的分布是q,那我们就有了两个优化目标了,一个就是找到一个信息量最大的分布q,用来承载样本们将要传递过来的信息,另一个就是让编码器编码的分布p尽量接近q,也就是让原来高维的信息x,尽量的充分利用这个低维空间能承载的信息量。在VAE中,我们实际上把这个q固定为标准高斯分布了,因为在有前提(指x)的情况下,把z的分布建模成指数族分布的信息熵是最高的,也就是能承载更多的信息。在VAE的一般情况下,q是无限个高斯分布的混合,因此我们很难找到一个有公式的p(z|x)来逼近这个q,因此我们使用一个神经网络来作为p(z|x)这个分布,让它去接近q。
KL散度相关理解以及视频推荐的更多相关文章
- KL散度的理解(GAN网络的优化)
原文地址Count Bayesie 这篇文章是博客Count Bayesie上的文章Kullback-Leibler Divergence Explained 的学习笔记,原文对 KL散度 的概念诠释 ...
- (转)KL散度的理解
KL散度(KL divergence) 全称:Kullback-Leibler Divergence. 用途:比较两个概率分布的接近程度.在统计应用中,我们经常需要用一个简单的,近似的概率分布 f * ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- 相对熵(KL散度)
https://blog.csdn.net/weixinhum/article/details/85064685 上一篇文章我们简单介绍了信息熵的概念,知道了信息熵可以表达数据的信息量大小,是信息处理 ...
- 从香农熵到手推KL散度
信息论与信息熵是 AI 或机器学习中非常重要的概念,我们经常需要使用它的关键思想来描述概率分布或者量化概率分布之间的相似性.在本文中,我们从最基本的自信息和信息熵到交叉熵讨论了信息论的基础,再由最大似 ...
- 机器学习、深度学习中的信息熵、相对熵(KL散度)、交叉熵、条件熵
信息熵 信息量和信息熵的概念最早是出现在通信理论中的,其概念最早是由信息论鼻祖香农在其经典著作<A Mathematical Theory of Communication>中提出的.如今 ...
- 【原】浅谈KL散度(相对熵)在用户画像中的应用
最近做用户画像,用到了KL散度,发现效果还是不错的,现跟大家分享一下,为了文章的易读性,不具体讲公式的计算,主要讲应用,不过公式也不复杂,具体可以看链接. 首先先介绍一下KL散度是啥.KL散度全称Ku ...
- 浅谈KL散度
一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence) ...
- 非负矩阵分解(1):准则函数及KL散度
作者:桂. 时间:2017-04-06 12:29:26 链接:http://www.cnblogs.com/xingshansi/p/6672908.html 声明:欢迎被转载,不过记得注明出处哦 ...
随机推荐
- AcWing 239.奇偶游戏 (带权并查集/种类并查集)
题意:你和朋友玩游戏,有个一\(01\)序列,你每次给出一个区间,朋友会回答这个区间中的\(1\)的个数是奇数还是偶数,但是你亲爱的朋友可能在撒谎,问在哪个询问你能确定你的朋友在撒谎,输出回合数. 题 ...
- Codeforces Round #345 (Div. 1) A. Watchmen (数学,map)
题意:给你\(n\)个点,求这\(n\)个点中,曼哈顿距离和欧几里得距离相等的点对数. 题解: 不难发现,当两个点的曼哈顿距离等于欧几里得距离的时候它们的横坐标或者纵坐标至少有一个相同,可以在纸上画一 ...
- Codeforces Round #678 (Div. 2) C. Binary Search (二分,组合数)
题意:有长度\(n\)的序列,让你构造序列,使得二分查找能在\(pos\)位置找到值\(x\).问最多能构造出多少种排列? 题解:题目给出的\(pos\)是固定的,所以我们可以根据图中所给的代码来进行 ...
- 再记一次 应用服务器 CPU 暴高事故分析
一:背景 1. 前言 大概有2个月没写博客了,不是不想写哈
- 查找命令中grep,find,which和whereis的使用及区别
在linux系统中,许多时候需要查找某些文件或者字符,如果用ls, cd 等基础命令就显得很无力了,那么Linux提供了grep,find,which 三种查找命令,在这里我记录一下: 一.grep命 ...
- u-boot 移植 --->4、Tiny210核心板的DDR初始化下详解
RAM的原理简单学习 DDR是RAM的一种,RAM常见的类型有SRAM,SDRAM,DDR他们的共同特点是,随机存储意味着读写速度快,掉电后数据丢失,所以常用来存储程序中的变量. SRAM 静态随机存 ...
- javascript 克隆对象/数组的方法 clone()
1 11 javascript 克隆对象/数组的方法 clone() 1 demo: code: 1 var Obj; 2 let clone = (Obj) => { 3 var buf; ...
- JavaScript this All In One
JavaScript this All In One js, this, bind, call, apply, new, function, arrow function, constructor f ...
- 新兴公链NGK Global如何借助Defi突围?
Defi正在掀起持续不减的热度,在过去的一段时间里,以Uniswap为代表的去中心化交易所,使得以太坊重新焕发生机.币价也较以往上涨了50%有余.而且这波热度同样波及到交易所和其他公链市场. 但是波及 ...
- Mysql的join算法
本文转载自Mysql的join算法 导语 在Mysql中,使用Nested-Loop Join的算法思想去优化join,Nested-Loop Join翻译成中文则是"嵌套循环连接" ...