重参数化技巧:高斯分布采样

2023-05-16

1、高斯分布采样

我们现在得到了有样本X得到的分布X ~ N( μ \mu μ, σ \sigma σ^2),通过采样我们得到确定的隐变量向量,从而作为解码器的输入。采样这个操作本身是不可导的,但是我们可以通过重参数化技巧,将简单分布的采样结果变换到特定分布中,如此一来则可以对变换过程进行求导。具体而言,我们从标准高斯分布中采样,并将其变换到X ~ N( μ \mu μ, σ \sigma σ^2),过程如下:

ϵ \epsilon ϵ ~ N ( 0 , I ) N(0, I) N(0,I)
Z = μ + σ × ϵ Z=\mu +\sigma × \epsilon Z=μ+σ×ϵ

也就是说,从 N( μ \mu μ, σ \sigma σ^2) 采样 Z Z Z ,等同于从 ϵ \epsilon ϵ ~ N ( 0 , I ) N(0, I) N(0,I)中采样高斯噪声 ϵ \epsilon ϵ,再将其按 Z = μ + σ × ϵ Z=\mu +\sigma × \epsilon Z=μ+σ×ϵ 变换。

import torch

def reparametrize(mean,lg_var): # 采样器方法:对方差(lg_var)进行还原,并从高斯分布中采样,将采样数值映射到编码器输出的数据分布中。
        std = lg_var.exp().sqrt()
        # torch.FloatTensor(std.size())的作用是,生成一个与std形状一样的张量。然后,调用该张量的normal_()方法,系统会对该张量中的每个元素在标准高斯空间(均值为0、方差为1)中进行采样。
        eps = torch.FloatTensor(std.size()).normal_() # 随机张量方法normal_(),完成高斯空间的采样过程。
        return eps.mul(std).add_(mean)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重参数化技巧:高斯分布采样 的相关文章

随机推荐

  • xrdp 远程登录需要输入很多次密码

    本人环境为 Ubuntu 20 04 文章目录 问题描述解决方案解决 色彩管理设备 34 color managed device 34 弹窗解决 刷新系统软件源需要认证 34 refresh the system repositories
  • Xrdp 体验优化 减少/解决画面卡顿

    参考链接 xff1a Default TCP send buffer size too low 1483 调整 Xrdp 配置参数 编辑 etc xrdp xrdp ini tcp send buffer bytes 61 4194304
  • 安装debian8操作系统

    安装参考文档 xff1a https wenku baidu com view 0b5b506f0912a21614792995 html 注意 xff1a 步骤可以参考具体配置看需求 修改IP dedian操作系统的IP文件在 etc n
  • 驱动——LED灯循环闪烁

    使用结构体形式对寄存器地址进行映射 xff0c 实现3盏LED灯的循环点亮 1 创建LED灯点亮所需要的GPIO寄存器的结构体 xff0c 并对寄存器地址进行宏定义 2 通过ioremap函数将物理地址映射为虚拟地址 void iorema
  • ubuntu CA安装 证书申请

    1 安装 xff1a apt get install openssl 2 修改配置文件 xff1a 注意不同于网上 xff0c 位置在 xff1a usr lib ssl openssl cnf xff0c 将以下项改为自己的位置 dir
  • URL后面#号的问题

    一 的涵义 代表网页中的一个位置 其右面的字符 xff0c 就是该位置的标识符 比如 xff0c http www example com index html print 就代表网页index html的print位置 浏览器读取这个UR
  • Swift-UIView的创建和使用

    创建 View let view1 61 UIView let view2 61 UIView frame CGRectMake 20 120 100 100 let view3 61 UIView frame CGRectMake 40
  • kali 运行apktool 报错解决方法

    问题描述 xff1a 系统 xff1a kali 1 9 apktool d 123 apk test Input file 123 apk was not found or was not readable 问题解决方法 xff1a 方法
  • pip安装换清华源

    用python的pip安装时有些包安装的太慢了 解决的方法是 xff1a 换成清华源 pip install 要安装的包 i https pypi tuna tsinghua edu cn simple 或者直接替换下载源设置清华源 pip
  • 操作无法完成,因为该文件已在system中打开

    根据提示 xff0c 我们主要的任务是在system xff08 系统 xff09 中将这个文件关闭 1 打开 任务管理器 方法一 xff1a 快捷键 xff1a ctrl 43 shift 43 esc 方法二 xff1a 右击任务栏底部
  • 在CentOS7上安装和配置Node.js

    本文介绍如何在CSDN云主机实例上搭建Node js环境 Node js 是一个基于 Chrome 的 JavaScript 运行时环境构建的开源平台 xff0c 可帮助开发人员构建快速且可扩展的网络应用程序 它在 V8 引擎上运行 xff
  • C++ 输出cout

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • k8s集群部署单节点gitlab

    k8s集群部署单节点gitlab k8s集群部署单节点gitlab前言gitlab redis yamlgitlab postgresql yamlgitlab server yaml安装结果 k8s集群部署单节点gitlab 前言 前提准
  • win10下Anaconda的安装和配置

    第一步 xff0c 下载anaconda 这是anaconda官网地址 xff0c 点击下载即可 xff1a anaconda官网 第二步 xff1a 安装anaconda 点击下载好的 exe安装包 xff0c 双击安装即可 xff1a
  • pip指定包安装目录

    文章目录 pip install t target dir pandas 设置 pip 默认安装路径 找到 Anaconda home envs py36 Lib site py USER SITE span class token ope
  • 利用VS Code docker 搭建容器开发环境(含WSL2)

    目录 基本软件安装VScode 插件安装连接WSL2及容器linux代码编译查看源码 xff0c 调试linux kernel总结补充学习busyboxvmware真香 这篇文章的灵感来源 感谢UP xff0c 我才有了WSL2 vscod
  • Linux用户和用户组管理

    此博客仅当学习笔记 xff0c 所有内容均参考C语言中文网 xff0c 望支持正版 xff0c 至C语言中文网查看详细内容 用户和用户组管理 xff0c 顾名思义就是添加用户和用户组 更改密码和设定权限等操作 可能有很多人觉得用户管理没有意
  • CCF-炉石传说

    这题原本想的比较复杂 xff0c 因为每次召唤随从或随从死亡时都要对右边的随从编号进行变动 xff0c 然后构建了链表的数据结构 xff0c 但是越写越复杂 xff0c 所以马上放弃这个思路 其实只要构建一个结构体 xff0c 结构体保存随
  • 宝塔面板开启数据库远程登陆权限

    宝塔面板开启数据库远程登陆权限 默认情况下宝塔面板创建的mysql数据库是本地登陆权限 xff0c 如果要远程管理操作需要单独开启权限 xff0c 具体操作如下 xff1a 1 登陆宝塔面板 xff0c 点击 安全 xff0c 在防火墙里面
  • 重参数化技巧:高斯分布采样

    1 高斯分布采样 我们现在得到了有样本X得到的分布X N mu sigma 2 xff0c 通过采样我们得到确定的隐变量向量 xff0c 从而作为解码器