flow model

news2024/12/23 14:18:42
  • https://www.youtube.com/watch?v=uXY18nzdSsM
  • component by component(auto regresive)的生成模型存在的问题(生成的顺序,生成的速度慢);variational auto-encoder存在的问题(optimize a maxihood lower bound,是一个近似);generative adaversarial network(unstable training)
  • generator:
    G G G一个Network,定义了一个probability distribution p G p_G pG,现在有一个从正态分布中采样的 z z z,经过 G G G得到 x = G ( z ) x = G(z) x=G(z) x x x满足 p G ( x ) p_G(x) pG(x)的分布,希望这个分布和 p d a t a ( x ) p_{data}(x) pdata(x)越接近越好, { x 1 , x 2 , ⋯   , x m } ∈ p d a t a ( x ) \{x^1,x^2,\cdots,x^m\}\in p_{data}(x) {x1,x2,,xm}pdata(x)
    – 如何使得两个分布越相近越好,一般是maximize likelihood G ∗ = a r g m a x G ∑ i = 1 m log ⁡ p G ( x i ) G^* = argmax_G\sum_{i = 1}^m\log{p_G}(x^i) G=argmaxGi=1mlogpG(xi),使得 x i x^i xi G G G产生的几率越大越好;
    – flow model直接优化上式;
  • math background
    – jacobian: x = f ( z ) , z = [ z 1 z 2 ] , x = [ x 1 x 2 ] x = f(z), z = \left [\begin{matrix} z_1\\z_2\end{matrix}\right],x = \left [\begin{matrix} x_1\\x_2\end{matrix}\right] x=f(z),z=[z1z2],x=[x1x2],jacobian的定义是 J f = [ ∂ x 1 / ∂ z 1 ∂ x 1 / ∂ z 2 ∂ x 2 / ∂ z 1 ∂ x 2 / ∂ z 2 ] J_f = \left [\begin{matrix} \partial x_1/\partial z_1 & \partial x_1 / \partial z_2 \\ \partial x_2 / \partial z_1 & \partial x_2 / \partial z_2\end{matrix}\right] Jf=[x1/z1x2/z1x1/z2x2/z2],此时 z = f − 1 ( x ) z = f^{-1}(x) z=f1(x), J f − 1 = [ ∂ z 1 / ∂ x 1 ∂ z 1 / ∂ x 2 ∂ z 2 / ∂ x 1 ∂ z 2 / ∂ x 2 ] J_{f^{-1}} = \left [\begin{matrix} \partial z_1/\partial x_1 & \partial z_1 / \partial x_2 \\ \partial z_2 / \partial x_1 & \partial z_2 / \partial x_2\end{matrix}\right] Jf1=[z1/x1z2/x1z1/x2z2/x2];两个jacobian J f ∗ J f − 1 = I J_f * J_{f^{-1}} = I JfJf1=I,两者互逆
    – determinant:行列式det(A),A是一个方阵, d e t ( A ) = 1 / d e t ( A − 1 ) det(A) = 1/det(A^{-1}) det(A)=1/det(A1);行列式可以理解为高维空间中的体积的概念;
    – change of variable: 假设现在有一个正态分布 π ( z ) \pi(z) π(z) x = f ( z ) x = f(z) x=f(z) x x x满足分布 p ( x ) p(x) p(x) p ( x ′ ) Δ x = π ( z ′ ) Δ z → p ( x ′ ) = π ( z ′ ) Δ z Δ x → p ( x ′ ) = π ( z ′ ) ∣ d z d x ∣ p(x')\Delta x = \pi(z')\Delta z\rightarrow p(x') = \pi(z')\frac{\Delta z}{\Delta x}\rightarrow p(x') = \pi(z')\left| \frac{dz}{dx}\right | p(x)Δx=π(z)Δzp(x)=π(z)ΔxΔzp(x)=π(z) dxdz ,接下来扩展到二维,两块的面积相等, p ( x ′ ) ∣ d e t [ Δ x 11 Δ x 21 Δ x 12 Δ x 22 ] ∣ = π ( z ′ ) Δ z 1 Δ z 2 p(x')\left |det\left [\begin{matrix} \Delta x_{11} & \Delta x_{21}\\\Delta x_{12}& \Delta x_{22}\end{matrix}\right ]\right | = \pi(z')\Delta z_1\Delta z_2 p(x) det[Δx11Δx12Δx21Δx22] =π(z)Δz1Δz2,其中 Δ x 12 , Δ x 22 \Delta x_{12},\Delta x_{22} Δx12,Δx22分别是 z 2 z_2 z2改变的时候 x 1 , x 2 x_1,x_2 x1,x2的改变量, Δ x 11 , Δ x 21 \Delta x_{11},\Delta x_{21} Δx11,Δx21是当 z 1 z_1 z1改变的时候 x 1 , x 2 x_1,x_2 x1,x2的改变量;接下来进行整理: π ( z ′ ) = p ( x ′ ) ∣ 1 Δ z 1 Δ z 2 d e t [ Δ x 11 Δ x 21 Δ x 12 Δ x 22 ] ∣ = p ( x ′ ) ∣ d e t [ Δ x 11 / Δ z 1 Δ x 21 / Δ z 1 Δ x 12 / Δ z 2 Δ x 22 / Δ z 2 ] ∣ = p ( x ′ ) ∣ d e t [ ∂ x 1 / ∂ z 1 ∂ x 2 / ∂ z 1 ∂ x 1 / ∂ z 2 ∂ x 2 / ∂ z 2 ] ∣ = p ( x ′ ) ∣ d e t [ ∂ x 1 / ∂ z 1 ∂ x 1 / ∂ z 2 ∂ x 2 / ∂ z 1 ∂ x 2 / ∂ z 2 ] ∣ = p ( x ′ ) ∣ d e t ( J f ) ∣ \pi(z') = p(x')\left |\frac{1}{\Delta z_1\Delta z_2}det\left [\begin{matrix} \Delta x_{11} & \Delta x_{21}\\\Delta x_{12}& \Delta x_{22}\end{matrix}\right ]\right | = p(x')\left |det\left [\begin{matrix} \Delta x_{11} / \Delta z_1 & \Delta x_{21} / \Delta z_1\\\Delta x_{12} / \Delta z_2& \Delta x_{22} / \Delta z_2\end{matrix}\right ]\right | = p(x')\left |det\left [\begin{matrix} \partial x_{1} / \partial z_1 & \partial x_{2} / \partial z_1\\\partial x_{1} / \partial z_2& \partial x_{2} / \partial z_2\end{matrix}\right ]\right | = p(x')\left |det\left [\begin{matrix} \partial x_{1} / \partial z_1 & \partial x_{1} / \partial z_2\\\partial x_{2} / \partial z_1& \partial x_{2} / \partial z_2\end{matrix}\right ]\right | = p(x') |det(J_f)| π(z)=p(x) Δz1Δz21det[Δx11Δx12Δx21Δx22] =p(x) det[Δx11z1Δx12z2Δx21z1Δx22z2] =p(x) det[x1/z1x1/z2x2/z1x2/z2] =p(x) det[x1/z1x2/z1x1/z2x2/z2] =p(x)det(Jf),也可以得到 p ( x ′ ) = π ( z ′ ) ∣ d e t ( J f − 1 ) ∣ p(x') = \pi(z')|det(J_{f^{-1}})| p(x)=π(z)det(Jf1)
    在这里插入图片描述
  • flow model:原目标是maximize likelihood G ∗ = a r g m a x G ∑ i = 1 m log ⁡ p G ( x i ) G^* = argmax_G\sum_{i = 1}^m\log{p_G}(x^i) G=argmaxGi=1mlogpG(xi),而 p G ( x i ) = π ( z i ) ∣ d e t ( J G − 1 ) ∣ , z i = G − 1 ( x i ) p_G(x^i) = \pi(z^i)|det(J_{G^{-1}})|,z^i = G^{-1}(x^i) pG(xi)=π(zi)det(JG1),zi=G1(xi),有 log ⁡ p G ( x i ) = log ⁡ π ( G − 1 ( x i ) ) + log ⁡ ∣ d e t ( J G − 1 ) ∣ \log p_G(x^i) = \log \pi(G^{-1}(x^i)) + \log |det(J_{G^{-1}})| logpG(xi)=logπ(G1(xi))+logdet(JG1);需要计算 d e t ( J G ) , G − 1 det(J_G),G^{-1} det(JG),G1,为了保证invertible,输入和输出保持维度相同;在这里插入图片描述
    p 1 ( x i ) = π ( z i ) ( ∣ d e t ( J G 1 − 1 ) ∣ ) p_1(x^i) = \pi(z^i)(|det(J_{G_1^{-1}})|) p1(xi)=π(zi)(det(JG11))
    p 2 ( x i ) = π ( z i ) ( ∣ d e t ( J G 1 − 1 ) ∣ ) ( ∣ d e t ( J G 2 − 1 ) ∣ ) p_2(x^i) = \pi(z^i)(|det(J_{G_1^{-1}})|)(|det(J_{G_2^{-1}})|) p2(xi)=π(zi)(det(JG11))(det(JG21))
    ⋯ \cdots
    p K ( x i ) = π ( z i ) ( ∣ d e t ( J G 1 − 1 ) ∣ ) ⋯ ( ∣ d e t ( J G K − 1 ) ∣ ) p_K(x^i) = \pi(z^i)(|det(J_{G_1^{-1}})|)\cdots (|det(J_{G_K^{-1}})|) pK(xi)=π(zi)(det(JG11))(det(JGK1))
    log ⁡ p K ( x i ) = log ⁡ π ( z i ) + ∑ h = 1 K log ⁡ ∣ d e t ( J G K − 1 ) ∣ , z i = G 1 − 1 ( ⋯ G K − 1 ( x i ) ) \log p_K(x^i) = \log\pi(z^i) + \sum_{h = 1}^K \log|det(J_{G_K^{-1}})|,z^i = G_1^{-1}(\cdots G_K^{-1}(x^i)) logpK(xi)=logπ(zi)+h=1Klogdet(JGK1),zi=G11(GK1(xi))
    可以看到上式只有 G − 1 G^{-1} G1
  • coupling layer:nice nvp glow
    前向:
    在这里插入图片描述
    逆向在这里插入图片描述
    接下来计算Jacobian
    在这里插入图片描述
    上面是一层的情况,接下来叠起来:
    在这里插入图片描述

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

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

相关文章

【机器学习】隐马尔可夫模型的基本概念和应用领域以及在NLP中如何实现(含python代码)

引言 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,用于描述一个含有隐含状态的马尔可夫过程 文章目录 引言一、隐马尔可夫模型的基本概念1.1 HMM的基本组成1.2 HMM的三个基本问题1.3 解决HMM问题的算法1.4 在python中…

Linux 安装神州通用数据库 ShenTong7.0.8_342.92_linux64

Linux 安装神州通用数据库 ShenTong7.0.8_342.92_linux64 1、准备工作2、安装数据库3、启停数据库4、后续步骤 💖The Begin💖点点关注,收藏不迷路💖 在Linux环境下安装神州通用数据库(ShenTong)是一个相对直…

如何通过 Apache Camel 将数据导入 Elasticsearch

作者:来自 Elastic Andre Luiz 使用 Apache Camel 将数据提取到 Elasticsearch 的过程将搜索引擎的稳健性与集成框架的灵活性相结合。在本文中,我们将探讨 Apache Camel 如何简化和优化将数据提取到 Elasticsearch。为了说明此功能,我们将实…

5G网络建设

题目描述 现需要在基城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接下来需要各个基站之间使用光纤进行连接以确保基 站能互联互通,不同基站之间假设光纤的成本各不相同,且有些节点之间已经存在光纤…

8个动态着陆页案例及最佳实践

动态着陆页是一种让市场营销人员在不必因成百上千变量而抓狂的情况下,利用个性化力量的绝佳方式,从而让他们能够扩大努力并增长业务。使用像光年AI这样的平台,可以更方便地实现这一目标。 在这篇文章中,您将了解到: …

非监督式机器学习:群集

聚类分析是一种非监督式机器学习形式,在此形式下,基于观察值的数据值或特征的相似性,将观察值分组到群集中。 这种就是非监督式机器学习,因为它不使用先前已知的标签值来训练模型。 在聚类分析模型中,标签是群集&#…

【Nacos】健康检查与环境隔离

1. 健康检测 1.1 两种健康检查机制 Nacos作为注册中心,需要感知服务的健康状态,才能为服务调用方提供良好的服务 Nacos 中提供了两种健康检查机制: 1. 客户端主动上报机制 客户端通过心跳上报方式告知服务端(nacos注册中心)健康状态,默认心跳间隔5秒:nacos会在超过15秒未收…

内网穿透之EW使用、判断服务器是否出网

环境搭建 使用的是下面文章的环境 记一次学习--内网穿透-CSDN博客 ew代理 然后同样通过thinkphp漏洞写入文件,然后通过蚁剑连接 然后上传ew的Linux版本,然后加权执行 一层代理 正向代理 设置正向代理(在ubuntu上)&#xff0…

React 发现无webpack相关的配置的目录,使用eject进行创建, 安装插件需要进行配置

React 发现无webpack相关的配置的目录,进行创建, 安装插件需要进行配置 react脚手架将webpack相关的配置隐藏起来了,如果想要看到webpack的配置可以执行package.json文件中的一个脚本:“eject”: “react-scripts eject”&#x…

流媒体之HLS协议(其三)

欢迎诸位来阅读在下的博文~ 在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力! 江山如画,客心如若,欢迎到访,一展风采 文章目录 前期博客参考书籍一、HLS协议简…

TwinCAT3 实时核中ADS实现C++ server、clinet数据传输

一、基本概念 ADS :Automation Device Specification,ADS设备间进行通信的协议规范。协议定义了ADS device之间如何寻址对方、ADS device之间可以执行哪些操作、执行这些操作需要哪些参数,以及操作完成后如何返回结果等。从编程角度看&#…

SVM 监督学习

一、分类问题 利用一条直线分类存在很多问题 二、SVM 支持向量机 其核心思想是通过在特征空间中找到一个最优的超平面来进行分类,并且间隔最大。分类面尽可能远离样本点,宽度越大越好。 适用于中小型复杂数据集的分类。 三、硬间隔和软间隔 硬&#x…

Android Studio -> Android Studio 获取release模式和debug模式的APK

Android Studio上鼠标修改构建类型 Release版本 激活路径:More tool windows->Build Variants->Active Build Variant->releaseAPK路径:Project\app\build\intermediates\apk\app-release.apk Debug版本 激活路径:More tool w…

linux上使用rpm的方式安装mysql

1.从mysql官网上下载需要的版本,根据操作系统版本,CPU架构,下载让rpm bundle,这个版本是个完整版,包含其他所有版本 上传到服务器的一个目录,进行解压 执行tar -xvf mysql*.tar tar -xvf mysql*.tar 2.卸载老版本m…

【Canvas与电脑桌面】用六角回旋镖铺满一个平面(1920*1080)

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>六角回旋镖桌面1920x1080</title><style type"text/cs…

动手学深度学习(pytorch)学习记录27-深度卷积神经网络(AlexNet)[学习记录]

目录 创建模型读取数据集训练AlexNet AlexNet 是由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在 2012 年提出的深度卷积神经网络&#xff0c;它在当年的 ImageNet 大规模视觉识别挑战赛&#xff08;ILSVRC&#xff09;中取得了显著的成绩&#xff0c;从而引起了深度…

动手学深度学习(pytorch土堆)-02TensorBoard的使用

1.可视化 代码使用了 torch.utils.tensorboard 将数据记录到 TensorBoard 以便可视化。具体来说&#xff0c;它将标量数据记录到目录 logs 中&#xff0c;使用的是 SummaryWriter 类。 代码分解如下&#xff1a; SummaryWriter("logs")&#xff1a;初始化一个 Ten…

常用的 git命令的使用

一. 简介 本文简单学习一下&#xff0c;在从远程仓库中拉取代码&#xff0c;或者向远程仓库提交代码时&#xff0c;经常用到的一些 git命令。 二. git的其他命令的使用 1. 重新提交代码的命令 当已经提交过一笔代码&#xff0c;并经过了 CI自动化编译通过。这时可能发现…

WebAPI(二)、DOM事件监听、事件对象event、事件流、事件委托、页面加载与滚动事件、client,offset

文章目录 一、 DOM事件1. 事件监听2. 事件类型(1)、鼠标事件(2)、焦点事件(3)、键盘事件(4)、文本事件 3. 事件对象(1)、获取事件对象(2)、事件对象常用属性 4. 环境对象 this5. 回调函数 二、 DOM事件进阶1. 事件流(1)、 捕获阶段(2)、 冒泡阶段(3)、 阻止冒泡(4) 、阻止元素默…

python绘制3D瀑布图

成品&#xff1a; 代码&#xff1a; def line_3d(x, y, z, x_label_indexs):"""在y轴的每个点&#xff0c;向x轴的方向延伸出一个折线面&#xff1a;展示每个变量的时序变化。x: x轴&#xff0c;时间维&#xff0c;右边。y: y轴&#xff0c;变量维&#xff0c;…