储备知识

多维高斯公式的表达和推导

一维正态分布都为大家所熟知:
N(x;μ,σ2)=12πσ2exp(−(x−μ)22σ2)N(x;\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}}exp(-\frac{(x-\mu)^2}{2\sigma^2})N(x;μ,σ2)=2πσ2​1​exp(−2σ2(x−μ)2​)
对于多维高斯分布,x⃗=(x1,x2,...,xn)\vec x = (x_1,x_2,...,x_n)x=(x1​,x2​,...,xn​)各个随机变量相互独立,可以表示为
f(x1,x2,..,xn)=f(x1)f(x2)...f(xn)f(x_1,x_2,..,x_n) = f(x_1)f(x_2)...f(x_n)f(x1​,x2​,..,xn​)=f(x1​)f(x2​)...f(xn​)
f(x⃗)=12πσ12exp(−(x−μ1)22σ12)∗12πσ22exp(−(x−μ2)22σ22)∗...∗12πσn2exp(−(x−μn)22σn2)=1(2π)nΠi=1i=nσi2exp(∑i=1i=n−(xi−μi)22σi2)(1)f(\vec x) = \frac{1}{\sqrt{2\pi\sigma_1^2}}exp(-\frac{(x-\mu_1)^2}{2\sigma_1^2})*\frac{1}{\sqrt{2\pi\sigma_2^2}}exp(-\frac{(x-\mu_2)^2}{2\sigma_2^2})*...*\frac{1}{\sqrt{2\pi\sigma_n^2}}exp(-\frac{(x-\mu_n)^2}{2\sigma_n^2}) = \frac{1}{\sqrt{(2\pi)^n\Pi_{i=1}^{i=n}\sigma_i^2}}exp(\sum_{i=1}^{i=n}-\frac{(x_i-\mu_i)^2}{2\sigma_i^2}) \qquad (1)f(x)=2πσ12​​1​exp(−2σ12​(x−μ1​)2​)∗2πσ22​​1​exp(−2σ22​(x−μ2​)2​)∗...∗2πσn2​​1​exp(−2σn2​(x−μn​)2​)=(2π)nΠi=1i=n​σi2​​1​exp(∑i=1i=n​−2σi2​(xi​−μi​)2​)(1)
当然,深度学习这本书中给出的公式如下:
N(x;μ,Σ)=1(2π)2det(Σ)exp⟮(−12(x−μ)TΣ−1(x−μ)⟯(2)N(x;\mu,\Sigma) = \sqrt\frac{1}{(2\pi)^2det(\Sigma)}exp\lgroup(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\rgroup \qquad (2)N(x;μ,Σ)=(2π)2det(Σ)1​​exp⟮(−21​(x−μ)TΣ−1(x−μ)⟯(2)
其中Σ\SigmaΣ和det⁡(Σ)\det(\Sigma)det(Σ)分别表示的是x⃗\vec xx的协方差矩阵和协方差矩阵的行列式。对于相互独立的变量来说,任意两个变量的cov(xi,xj)=0cov(x_i,x_j) = 0cov(xi​,xj​)=0,其中i≠ji \ne ji​=j。
Σ=[σ1120⋯00σ222⋯0⋮⋮⋱⋮00⋯σnn2]\Sigma = \begin{bmatrix} \sigma_{11}^2 & 0 & \cdots & 0 \\ 0 & \sigma_{22}^2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots\ &\sigma_{nn}^2 \\ \end{bmatrix}Σ=⎣⎢⎢⎢⎡​σ112​0⋮0​0σ222​⋮0​⋯⋯⋱⋯ ​00⋮σnn2​​⎦⎥⎥⎥⎤​
所以方程式1和方程式2是等价的,前者用元素表达,后者用矩阵表达。

信息论之KL散度来源

信息论的一个基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息[1]。
首先定义一个事件X=xX=xX=x的自信息(self-information)
I(x)=−log⁡P(x)I(x) = -\log P(x)I(x)=−logP(x)
其中I(x)的单位为奈特(net),以e为底。一奈特表示以1e\frac{1}{e}e1​的概率观测到一个事件的信息量。以2为底成为比特(bit),或者香农(shannons)。
我们可以用香农熵来对整个概率分布中的不确定性总量进行量化:
H(x)=−Ex∼P[log⁡P(x)]H(x) = -E_{x\sim P}[\log P(x)]H(x)=−Ex∼P​[logP(x)]

Jensen不等式

待续

The evidence lower bound

待续

[1] 深度学习

VAE系列之KL散度推导和理解相关推荐

  1. KL散度的通俗易懂理解

    一.第一种理解   相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergenc ...

  2. 关于KL散度的一些理解

    前言 在阅读相关文献时,看到了关于交叉熵和相对熵的概念,交叉熵比较熟悉了,一般用在多分类损失的衡量,但是相对熵见得比较少,故查阅了一些资料,以供自己日后复习查阅. 正文 在概率论或信息论中,KL散度( ...

  3. 一点对 KL 散度的理解

    在深度学习中经常用到的一个概念是 KL散度.之前对KL散度进行过一次理解,但后来随着利用次数的减少,开始忘却其具体的定义与物理意义,仅在印象中记得是"描述两个分布的相似度的度量". ...

  4. 信息熵、交叉熵、KL散度公式的简单理解

    整理:我不爱机器学习 1 信息量 信息量是对信息的度量,就跟时间的度量是秒一样,考虑一个离散的随机变量 x 的时候,当观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢? 例如听到太阳从东方升 ...

  5. kl散度的理解_以曲率的视角理解自然梯度优化

    一个故事 我要讲一个故事:一个你几乎肯定听过的故事,但它的侧重点与你习以为常关注的不同. 所有现代深度学习模型都使用梯度下降进行训练. 在梯度下降的每个步骤中,您的参数值从某个起始点开始,然后将它们移 ...

  6. 如何理解K-L散度(相对熵)

    Kullback-Leibler Divergence,即K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵.在概率学和统计学上,我们经常会使用一种更简单的.近似的分布来替代观察数据或 ...

  7. “交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

    [本文内容是对下面视频的整理和修正] "交叉熵"如何做损失函数?打包理解"信息量"."比特"."熵"."KL散 ...

  8. 熵、KL散度、交叉熵公式及通俗理解

    熵 根据香农信息论中对于熵的定义,给定一个字符集,假设这个字符集是X,对x∈X,其出现概率为P(x),那么其最优编码(哈夫曼编码)平均需要的比特数等于这个字符集的熵. 如果字符集中字符概率越趋于平均, ...

  9. K-L散度(相对熵)的理解

    信息量III 消息中有意义的内容成为信息.信息量函数:I=−lnpiI=-lnp_iI=−lnpi​其中,pip_ipi​是事件xix_ixi​的发生概率. 信息熵HHH 它是用来对信息度量,描述信息 ...

最新文章

  1. css3的动画特效--元素旋转(transition,animation)
  2. SVM针对中文文本分类
  3. IKVM:java代码c#调用
  4. maven的web工程打包为war并部署到服务器
  5. 一文讲透数仓临时表的用法
  6. python时间转换、给定一个以秒为单位的时间t_以秒为单位的历元时间和正常日期的差python...
  7. linux ls命令无法执行,更新了个依赖程序,结果悲剧了,连ls命令都不能用,大神帮帮忙!...
  8. AndroidStudio_安卓原生开发_自定义服务器Token验证_MD5加密方法---Android原生开发工作笔记156
  9. 接受字符串参数,返回一个元组,并分别统计字符串中大小写的个数
  10. fetchxml 汇总_Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧
  11. 助力移动AR应用发展,阿里巴巴推出AR开放平台
  12. 两小时学会ajax,全程无废话,直接上代码,追求速度的来
  13. servlet的配置(映射)以及生命周期
  14. android调起浏览器设置头部,Android开发:调起手机浏览器
  15. 2021莆田六中一高考成绩查询,莆田六中2018年高一新生录取名单完整版
  16. 第九届中国云计算大会讲师团探秘 ——数位院士领衔、近20个国家的学者共聚、多个行业领头人及专家参与, 共话云计算大数据生态、应用...
  17. 重学JavaSE —— Map、Set、Iterator(迭代器) 简单笔记
  18. lpk劫持方式粘滞键后门后门T00ls Lpk Sethc v3.0 正式版下载
  19. PMCAFF转载——网易云课堂产品研习
  20. GRU和LSTM的单元结构

热门文章

  1. python nonetype object is not_python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法...
  2. 软件开发过程与项目管理(13.软件项目集成计划控制)
  3. 超详细的Linux编程之UDP SOCKET全攻略(一文让你彻底了解)
  4. go mod 与govendor 使用与区别
  5. Linux系统清理缓存方法
  6. 关于foreach遍历list删除元素
  7. FreeNas 安装及使用
  8. js小数点保留时的四舍五入问题的处理
  9. vscode 配置安装ege和easyx等第三方图形库失败
  10. 52abp+angular打开页面报“无法加载xxxxx路由”的原因