styleFlow数学推导

news2024/12/25 9:55:59

如果 w 和 z 的变换是线性的,即 w = az + b,那么 dw = a dz,

所以 p(w) dw = p(z) dz 等价于 p(w) a = p(z)

即 w 的概率密度函数是 z 的概率密度函数乘以一个常数因子。

如果 w 和 z 是通过一个可逆的函数 ϕ 相互转换的,即 w = ϕ(z) 和 z = ϕ -1 (w),

那么 w 和 z 的概率密度函数 p(w) 和 p(z) 之间有如下关系:p(w) dw = p(z) dz,其中 dw 和 dz 是微元。

对上式两边取对数,得到 log p(w) + log dw = log p(z) + log dz

由于 dw = |det ∂ϕ/∂z| dz,其中 ∂ϕ/∂z 是雅可比矩阵,det 是行列式,

在线性变换中,|det ∂ϕ/∂z|是**雅可比行列式**,它表示了函数 ϕ 在 z 处的**局部线性近似**对面积或体积的**放缩因子**。¹ 如果 |det ∂ϕ/∂z| 大于 1,那么函数 ϕ 会使得 z 附近的区域扩大;如果 |det ∂ϕ/∂z| 小于 1,那么函数 ϕ 会使得 z 附近的区域缩小;如果 |det ∂ϕ/∂z| 等于 0,那么函数 ϕ 会使得 z 附近的区域退化为一条线或一个点。

log p(w) = log p(z) + log dz - log dw

log dw = log |det ∂ϕ/∂z| + log dz代入上式,得到

log p(w) = log p(z) + log dz  -  log |det ∂ϕ/∂z|  - log dz

得到 log p(w) = log p(z) - log |det ∂ϕ/∂z|。如果 w 的概率密度函数是由属性特征 a t 条件化的,即 p(w |a t ),那么上式仍然成立,只是要加上条件 a t ,即 p(w |a t ) = p(z) |det ∂ϕ/∂z|。¹

 log p(w |a t ) = log p(z) - log |det ∂ϕ/∂z|

 -------------------------------------------------------------

Discrete Normalizing Flows

 

 

 

这个公式的含义是:变量 z 在时间 t1 的值,等于变量 z 在时间 t0 的值,加上从时间 t0 到时间 t1 之间变量 z 的变化量的积分。变量 z 的变化量由函数 ϕ 决定,函数 ϕ 取决于变量 z 、时间 t 和神经网络的参数 θ 。这个公式可以用来求解常微分方程 dz dt = ϕ(z(t),t;θ) ,也就是 CNFs 的变换函数。 

变量 z 在时间 t1 的概率密度的对数,等于变量 z 在时间 t0 的概率密度的对数,减去从时间 t0 到时间 t1 之间,函数 ϕ 对变量 z 的偏导数矩阵的迹的积分。函数 ϕ 对变量 z 的偏导数矩阵是雅克比矩阵,其迹是对角线元素之和。这个公式可以用来计算 CNFs 的变换后的概率密度和对数似然。

其中Tr(***/***)所代表的含义:

函数 ϕ 对变量 z 的偏导数矩阵的迹,即矩阵的对角线元素之和。函数 ϕ 对变量 z 的偏导数矩阵是雅克比矩阵雅克比矩阵的迹表示变量 z 的总变化率。

这段文字是论文中介绍连续正则化流(Continuous Normalizing Flows,CNFs)的部分。它首先介绍了CNFs的数学原理,即使用常微分方程(Ordinary Differential Equations,ODEs)来表示变量之间的可逆变换,以及如何计算变换后的概率密度和对数似然。然后它解释了为什么选择CNFs而不是离散正则化流(Discrete Normalizing Flows,DNFs),主要有三个原因:一是CNFs保证了可逆性,而DNFs需要满足一些条件;二是CNFs的雅克比行列式更容易计算,而DNFs需要计算行列式;三是CNFs可以学习更解耦的内部表示,而DNFs可能存在一些耦合。最后,它说明了在StyleFlow框架中,如何使用CNFs来进行基于属性的采样和编辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/581866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5.29今日黄金最新行情走势分析及多空交易策略

近期有哪些消息面影响黄金走势?今日黄金多空该如何研判? ​黄金消息面解析:上周五(5月26日)美市尾盘,现货黄金收报1946.01美元/盎司,上升4.76美元或0.25%,日内最高触及1957.31美元/盎司,最低触…

1.3 eBPF的工作原理初探 --- 更新中

写在前面 上一节提到过,eBPF程序是面向BPF体系结构指令集编写的,它并不直接运行在Linux内核中,我们可以理解为它是运行在eBPF虚拟机,由eBPF虚拟机来执行eBPF字节码,就像java运行在jvm一样。 我们用一张原理图来看下eBPF程序的编译,加载,验证,钩子,映射等结点。 如上是…

Java学习路线(16)——异常

一、异常 1、概念: 程序在“编译”或“执行”时可能出现的问题。(语法错误不算异常) 2、常见的异常 数组索引越界空指针日期格式化… 3、作用: 触发异常后,如果没有提前处理,JVM将终止,提高…

chatgpt赋能python:Python中None的使用详解

Python中None的使用详解 在Python语言中,None是一个非常常见的值,它在代码中用来表示空值或未定义的值。本文将介绍Python中None的使用方式,包括创建和比较None对象,以及在函数和类中使用None的方法。 创建和比较None对象 在Py…

chatgpt赋能python:Python中Key的作用及使用方法

Python中Key的作用及使用方法 在Python中,key是一个十分重要的概念。它在数据结构中经常被使用,例如list、dict、set、tuple等等。本文将重点介绍Python中key的作用和使用方法,帮助读者更好地理解和应用它。 什么是Key 首先,我…

返回数组中非零元素的索引np.flatnonzero()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 返回数组中非零元素的索引 np.flatnonzero() 选择题 以下程序的运行结果是? import numpy as np anp.array([0,1,2,3]) print("【显示】a:");print(a) print("【执行】print(n…

JLabel默认是透明的,所以JLabel设置背景色setBackground之前要setOpaque(true);

JLabel默认是透明的,所以JLabel设置背景色setBackground之前要setOpaque(true); 将不透明设为true,再setBackground jlabel.setOpaque(true); jlabel.setBackground(new Color(0, 0, 0, 100)); //将不透明设为true,再setBackgroundjlabel.setOpaque(true); jlabel.setBackgro…

chatgpt赋能python:Python中n次方的介绍

Python中n次方的介绍 Python中的n次方是指将一个数值或变量的值提高到某个指定的指数值。这在数据科学、计算机科学和科学计算等领域中非常常见。 在Python中,我们可以使用内置函数**或pow函数来实现n次方。 通过**进行n次方运算 使用**运算符时,将要…

哨兵3号(Sentinel 3)卫星数据处理

李国春 本文介绍使用RSD处理欧空局哨兵3号(Sentinel 3)卫星数据的具体方法。 气象数据多用NetCDF格式交换和存储,气象卫星数据也是如此。气象业内认为HDF5也是NetCDF的一部分,虽然文件扩展名使用的是.nc,但是实际上就…

数据在内存中的存储(1)

目录 一.C语言中数据类型的介绍 1.c语言的内置类型及大小(单位字节) 2.整型家族 3.浮点数家族 4.自定义类型(构造类型) 5.指针类型 6.空类型 二.整型数据在内存中的存储 1.二进制 2.整型数据在内存中的存储(…

读数据压缩入门笔记01_数据压缩导读

1. 建立在数据压缩上的世界 1.1. 数据压缩技术最让人惊异之处在于,它与过去40年里个人计算的很多重大改变有关,但很少有人知道这一点 1.2. 我们当下生活在其中的这个计算世界,完全建立在数据压缩算法之上 1.3. 图像的压缩 1.3.1. 1978年 …

HMM实现中文分词

引言 在隐马尔可夫模型中介绍了HMM的理论部分,为了巩固理论知识,本文基于HMM实现中文分词。具体来说,通过HMM实现基于字级别的分词算法。 HMM 这里简单说明一下,更详细的请参考隐马尔可夫模型。 这里输入序列为 X 1 : N X_{1:N…

【h5】实现语音转文字

【h5】实现语音转文字 一、需求功能概述是: 二、实现过程1、实现按住录音,松开发送。有两个录音按钮。a. 获取用户的麦克风声音和创建一个MediaRecorder对象:b. 启动和停止录音:c. 将音频数据上传到服务器,并在处理完后…

【C++】指针 - 定义和使用,所占内存空间,空指针,野指针,const修饰指针,指针和数组,指针和函数

文章目录 1. 定义和使用2. 所占内存空间3. 空指针4. 野指针5. const修饰指针6. 指针和数组7. 指针和函数 1. 定义和使用 数据类型 * 变量名; 指针的作用是,可以通过指针间接访问内存。 内存编号是从 0 开始记录的,一般用十六进制数字表示。可以利用指…

nodejs+vue社区母婴幼儿用品商城系统

本系统实现了管理员对用户、商品信息、交流论坛、订单信息的管理,是为了满足用户更深层次的需求。除了上述优势外,本系统还具有:查询迅速,搜索资料方便,可靠性强等等在如今这个高速发展的时代,效率决定着你…

十款开源测试开发工具推荐(自动化、性能、混沌测试、造数据、流量复制)

在本篇文章中,我将给大家推荐 10 款日常工作中经常用到的测试开发工具神器,涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。 1、AutoMeter-API 自动化测试平台 AutoMeter 是一款针对分布式服务,微服务 API 做功能和性能一体化…

可靠可用性基本知识

可靠可用性基本知识 1. 基本概念1.1 可靠性1.2 可用性 2. 可靠和可用性指标3. 可靠性工程实践相关概念4. FEMA相关知识4.1 基本概念4.2 FEMA分析流程 5. 产品开发流程中可靠可用性测试如何开展5.1 测试可靠可用性输入\输出5.2 可靠可用性开展流程5.3 测试设计5.4 测试执行5.4.1…

chatgpt赋能python:Numpy读音:是“num-pie”还是“num-pee”?

Numpy读音:是“num-pie”还是“num-pee”? 你是否曾经在想,“numpy”这个词怎么念?很多人都有不同的看法。有些人说“num-pie”,而另一些人则说“num-pee”。那么,谁是正确的呢?在这篇文章中&a…

ad18学习笔记三:关于测量点对点

如何测量? 方法有很多种,比如 1、 点击 ‘放置’–》‘尺寸’–》‘线性尺寸’ 2、 快捷工具栏 3、 快捷键 AD如何使用测量命令?-凡亿课堂 AD中的三种测量距离的方式 清除测量标线? 这个简单,在显示测量结果的…

【论文阅读】GNN在推荐系统中的应用

【论文阅读】GNN在推荐系统中的应用 参考Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions 文章目录 【论文阅读】GNN在推荐系统中的应用1、本文结构2、推荐系统的目的,发展和基于GNN模型的挑战3、推荐系统相应背景&#xff0…