变分推断的数学推导

2023-11-13

这里只给出变分推断的数学推导(变分颇为高深,这里只是简单介绍一下基本概念,想了解更多详见:https://blog.csdn.net/weixin_40255337/article/details/83088786):

变分推断的目的是构造 q ( w ∣ θ ) q(w| \theta) q(wθ) ,通过优化得到最优的 θ*,从而使得 q(w| θ) 逼近未知的后验分布 P(w |X)。

由贝叶斯公式可知:
P ( X ) = P ( X , w ) P ( w ∣ X ) P(X) = \frac{P(X,w)}{P(w | X)} P(X)=P(wX)P(X,w)
等式两边取对数:
log ⁡ P ( X ) = log ⁡ P ( X , w ) − log ⁡ P ( w ∣ X ) \log P(X) = \log P(X, w) - \log P(w |X) logP(X)=logP(X,w)logP(wX)
等式右侧 + log ⁡ q ( w ∣ θ ) +\log q(w| θ) +logq(wθ) − log ⁡ q ( w ∣ θ ) - \log q(w | θ) logq(wθ)
log ⁡ P ( X ) = log ⁡ P ( X , w ) q ( w ∣ θ ) − log ⁡ P ( w ∣ X ) q ( w ∣ θ ) \log P(X) = \log \frac{P(X, w) }{q(w| θ)} -\log \frac{P(w | X)}{q(w | θ)} logP(X)=logq(wθ)P(X,w)logq(wθ)P(wX)
等式两侧对 w w w(服从分布 q ( w ∣ θ ) q(w| \theta) q(wθ))取期望,由于等式左侧与 q ( w ∣ θ ) q(w| \theta) q(wθ) 无关,因此有:
log ⁡ P ( X ) = E [ log ⁡ P ( X ∣ w ) + log ⁡ P ( w ) − log ⁡ q ( w ∣ θ ) ] + E [ log ⁡ q ( w ∣ θ ) P ( w ∣ X ) ] \log P(X) = \mathbb{E} \big[ \log P(X | w) + \log P(w) - \log q(w| \theta) \big] + \mathbb{E} \Bigg[ \log \frac{q(w| θ)}{P(w| X)} \Bigg] logP(X)=E[logP(Xw)+logP(w)logq(wθ)]+E[logP(wX)q(wθ)]

等式左侧为定值,右侧第一项为定义为ELBO,第二项为 K L { q ( w ∣ θ ) ∣ ∣ P ( w ∣ X ) } KL\{q(w| θ) || P(w| X)\} KL{q(wθ)P(wX)},即:
E L B O + K L { q ( w ∣ θ ) ∣ ∣ P ( w ∣ X ) } = C o n s t a n t ELBO+ KL\{q(w| θ) || P(w| X)\} = Constant ELBO+KL{q(wθ)P(wX)}=Constant
因此 arg ⁡ min ⁡ θ K L { q ( w ∣ θ ) ∣ ∣ P ( w ∣ X ) } = arg ⁡ max ⁡ E L B O \arg \min_\theta KL\{q(w| θ) || P(w| X)\} = \arg\max ELBO argminθKL{q(wθ)P(wX)}=argmaxELBO
论文原文中的ELBO还有另一种形式:
E B L O = E [ log ⁡ P ( X ∣ w ) + log ⁡ P ( w ) − log ⁡ q ( w ∣ θ ) ] = E [ log ⁡ P ( X ∣ w ) ] − E [ log ⁡ q ( w ∣ θ ) P ( w ) ] = ∫ q ( w ∣ θ ) log ⁡ P ( X ∣ w ) d w − K L { q ( w ∣ θ ) ∣ ∣ P ( w ) } \begin{aligned} EBLO &= \mathbb{E} \big[ \log P(X | w) + \log P(w) - \log q(w| \theta) \big] \\ &= \mathbb{E} \big[ \log P(X | w) \big] - \mathbb{E} \Bigg[ \log \frac{q(w| \theta)}{P(w)} \Bigg] \\ &= \int q(w | \theta) \log P(X | w) dw - KL\{ q(w| \theta) || P(w) \} \end{aligned} EBLO=E[logP(Xw)+logP(w)logq(wθ)]=E[logP(Xw)]E[logP(w)q(wθ)]=q(wθ)logP(Xw)dwKL{q(wθ)P(w)}

而对于一个深度学习问题,给定数据集D,神经网络的参数为 w w w,输出为 P ( D ∣ w ) P(D | w) P(Dw)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

变分推断的数学推导 的相关文章

随机推荐

  • 解决maven项目jdbc报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    博主使用flink连接数据库时报错 完整报错是 switched from INITIALIZING to FAILED with failure cause java lang ClassNotFoundException com mys
  • 环形链表II

    原题链接 本题要求找到环的入口 且 O n O n O n 的时间复杂度 O 1
  • 猴博士数电模电,百度网盘亲测有效。

    模电 https pan baidu com s 1pLzPtvnNsslxs 3RMOpsGQ n n 提取码 xx8j n n n n 数电 https pan baidu com s 1IZnpeLNiX5 Y4ePtMfyXdA n
  • vite和webpack的区别及优势

    webpack会先打包 然后启动开发服务器 请求服务器时直接给予打包结果 vite直接启动开发服务器 请求哪个模块再对该模块进行实时编译 打包原理 vite优点 webpack服务器启动速度比vite慢 由于vite启动的时候不需要打包 也
  • 双向链表删除节点时间复杂度_Leetcode简洁笔记 第19题:删除链表的倒数第N个节点...

    给定一个链表 删除链表的倒数第 N 个节点 并且返回链表的头结点 本文答案参考自leetcode官方题解 方法1 先遍历再删除 时间复杂度 O L 空间复杂度 O 1 删除链表的倒数第 N 个节点 即 删除链表的 第 L n 1 个节点 因
  • SQL注入-堆叠注入

    SQL注入 堆叠注入 原理 数据库支持堆叠查询 所谓堆叠查询就是执行多条语句 语句以 隔开 并且代码使用了支持堆叠查询的函数 列如PHP的mysqli multi query 堆叠注入就是在第二条语句中构造payload 注 页面只返回第一
  • Linux下docker的常用命令

    我们来了解一下常用的docker命令 其中docker container命令中的参数 有同于docker命令的参数的 其用法相同 效果一样 docker container命令的参数和docker命令的参数不同的有prune ls 其中d
  • 若依框架项目部署后路由报错

    若依框架部署到服务器后 动态路由报错 无法访问 原因是有些版本不支持动态import导入 解决 找到 store modules permission js 将 import引入改为require export const loadView
  • BigDecimal的使用

    1 初始化 推荐使用字符串初始化 直接使用数字会导致精度问题 直接使用数字 BigDecimal num new BigDecimal 0 05 使用字符串 BigDecimal num1 new BigDecimal 0 05 BigDe
  • 入侵杂草算法matlab,一种基于入侵杂草算法改进的差分进化算法

    1 引言 进化算法是模仿生物进化过程设计的现代优化方法 作为一种有效的随机优化方法 被广泛应用于求解复杂优化问题 DE算法 1 使用浮点矢量进行个体编码 通过简单的变异 交叉及竞争算子实现在连续空间中的随机搜索 DE算法原理简单 易于理解和
  • 网页常用JS/VBS代码

    nc ntextmenu window event returnValue false 将彻底屏蔽鼠标右键 table border border td no td table 可用于Table 2 取消选取 防止复制 3 npaste r
  • WEB靶场搭建教程(PHPstudy+SQLllib+DVWA+upload-labs)

    WEB靶场搭建教程 PHPstudy SQLllib DVWA upload labs 0x00 简介 0x01 PHPstudy 0x02 搭建SQLi labs靶场 0x03 搭建DVWA靶场 0x04 搭建upload labs靶场
  • 深入浅出Redis-redis底层数据结构

    相信使用过Redis 的各位同学都很清楚 Redis 是一个基于键值对 key value 的分布式存储系统 与Memcached类似 却优于Memcached的一个高性能的key value数据库 在 Redis设计与实现 这样描述 Re
  • ideagit回退回滚到以前的指定版本

    idea git gitee gitlab 回退回滚到以前的指定版本分为三步 1 本地库硬 hard 回滚 2 远程库混合 mixed 回滚 3 最好等待一分钟让代码回滚后可以被git识别代码状态 提交到远程库 首先是准备工作 我下面先提交
  • Spring中对于@RequestBody的参数解析问题

    文章目录 问题起源 问题延伸 代码实现 前置准备阶段 选择解决方案 如何自定义Resolver 处理类型 如何自定义HttpMessageConverter 思考总结 问题起源 今天后端与前端同事在讨论对于只有一个参数的接口 能否不将参数当
  • Linux文件系统简单认识学习笔记

    Linux文件系统简单认识 ReadMe 1 什么是文件系统 2 文件系统 文件管理系统的方法 的种类有哪些 3 什么是分区 4 什么是文件系统目录结构 5 什么虚拟文件系统Virtual File System 6 虚拟文件系统有什么作用
  • C语言头文件和源文件差异,#include两种引用方式差异

    一些初学c语言的人 不知道头文件 h文件 原来还可以自己写的 只知道调用系统库函数时 要使用 include语句将某些头文件包含进去 其实 头文件跟 c文件一样 是可以自己写的 头文件是一种文本文件 使用文本编辑器将代码编写好之后 以扩展名
  • Java将一个List中的值赋值给另一个List

    刷leetcode中的一道dfs题时 添加结果集时如果不新创建list所有添加的list都是同一个 并且回溯得到时候会删掉所有元素 Java中 的作用有两个 1 赋值 2 指向地址 当对基本数据类型进行赋值时 的作用就是单纯的赋值 例如 i
  • 使用zabbix监控avamar【一】

    1 介绍 avamar是dell的一款数据备份产品 用于公司私有云平台虚拟机备份 虽然不是与业务直接相关 关注度不是特别高 也正因为如此偶尔出现备份失败问题不能及时发现 所以要加入公司的智慧运维系统 以zabbix为底层开发 2 选择模式
  • 变分推断的数学推导

    这里只给出变分推断的数学推导 变分颇为高深 这里只是简单介绍一下基本概念 想了解更多详见 https blog csdn net weixin 40255337 article details 83088786 变分推断的目的是构造 q w