浅析扩散模型与图像生成【应用篇】(十一)——DDIBs

11. Dual Diffusion Implicit Bridges for Image-to-Image Translation

  该文提出一种双扩散隐式桥(Dual Diffusion Implicit Bridges, DDIBs)方法用于图像转换,其最大的特点在于处理源域图像的模型和处理目标域图像的模型是彼此分开独立的。使用源域图像训练一个扩散模型 v θ ( s ) v^{(s)}_{\theta} vθ(s),然后使用目标域图像训练另外一个模型 v θ ( t ) v^{(t)}_{\theta} vθ(t),给定一个源域图像 x ( s ) x^{(s)} x(s),首先利用 v θ ( s ) v^{(s)}_{\theta} vθ(s)将其转化为潜在特征 x ( l ) x^{(l)} x(l),然后再经过 v θ ( t ) v^{(t)}_{\theta} vθ(t)将其转化为目标域图像 x ( t ) x^{(t)} x(t)。这带来一个好处,训练过程中不需要同时使用源域和目标域图像对模型进行训练,这在一些对数据私密性要求较高的领域是十分必要的。此外,源域和目标域模型是可以相互转换的,即源域扩散模型,反过来也可以当作目标域的生成模型使用,这就能够实现从目标域向源域的转换。而且一个训练好的扩散模型可以跟任意的目标域生成模型结合,这就使得许多图像转换任务所需模型的数量是随着域的数量线性增长,而不是原本的二次方增长。还有一个重大优势,就是这个方法采用了DDIM模型中的常微分方程ODE建模方式,这就在理论上保证了转化过程具有非常好的循环一致性,即由源域图像 x ( s ) x^{(s)} x(s),生成的目标域图像 x ( t ) x^{(t)} x(t),再经过反向生成得到的伪源域图像 x ′ ( s ) x'^{(s)} x(s)与初始的源域图像 x ( s ) x^{(s)} x(s)之间仅存在一个微小的ODE求解过程中的离散化误差。最后,就是这个方法其实对于扩散模型和生成模型 v θ v_{\theta} vθ是没有什么限制的,我们可以使用各种最新的模型来进行扩散和生成。
在这里插入图片描述
  作者首先对基于分数的生成模型(SGMs)进行了回顾,提到其中的两个重要代表作SMLD(NCSN)和DDPM算法都是可以用随机微分方程SDEs来描述的,其扩散和生成过程如下 d x = f ( x , t ) d t + g ( t ) d w , d x = [ f − g 2 ∇ x log ⁡ p t ( x ) ] d t + g ( t ) d w (1) \mathrm{d} \mathbf{x}=\mathbf{f}(\mathbf{x}, t) \mathrm{d} t+g(t) \mathrm{d} \mathbf{w}, \quad \mathrm{d} \mathbf{x}=\left[\mathbf{f}-g^{2} \nabla_{\mathbf{x}} \log p_{t}(\mathbf{x})\right] \mathrm{d} t+g(t) \mathrm{d} \mathbf{w}\tag{1} dx=f(x,t)dt+g(t)dw,dx=[fg2xlogpt(x)]dt+g(t)dw(1)同时,也提到任何的扩散过程都可以通过确定性的常微分方程来表示,称之为概率流常微分方程(PF ODEs),其扩散过程表示如下 d x = [ f ( x , t ) − 1 2 g ( t ) 2 ∇ x log ⁡ p t ( x ) ] d t (2) \mathrm{d} \mathbf{x}=\left[\mathbf{f}(\mathbf{x}, t)-\frac{1}{2} g(t)^{2} \nabla_{\mathbf{x}} \log p_{t}(\mathbf{x})\right] \mathrm{d} t\tag{2} dx=[f(x,t)21g(t)2xlogpt(x)]dt(2)如果我们用 v θ = d x / d t v_{\theta}=\mathrm{d} \mathbf{x}/\mathrm{d} t vθ=dx/dt来表示参数为 θ \theta θ的一个速度场(velocity field),也就是公式(2)中方括号里的内容,则使用ODE求解由 x ( t 0 ) x(t_0) x(t0) x ( t 1 ) x(t_1) x(t1)的映射关系过程表示如下 ODESolve ⁡ ( x ( t 0 ) ; v θ , t 0 , t 1 ) = x ( t 0 ) + ∫ t 0 t 1 v θ ( t , x ( t ) ) d t (3) \operatorname{ODESolve}\left(\mathbf{x}\left(t_{0}\right) ; v_{\theta}, t_{0}, t_{1}\right)=\mathbf{x}\left(t_{0}\right)+\int_{t_{0}}^{t_{1}} v_{\theta}(t, \mathbf{x}(t)) \mathrm{d} t\tag{3} ODESolve(x(t0);vθ,t0,t1)=x(t0)+t0t1vθ(t,x(t))dt(3) t 0 = 0 , t 1 = 1 t_0=0,t_1=1 t0=0,t1=1时就表示扩散过程,而当 t 0 = 1 , t 1 = 0 t_0=1,t_1=0 t0=1,t1=0时就表示生成过程,DDIBs的扩散和生成流程如下图所示,其中求解器ODESolve本文使用的是DDIM,当然其他的求解器也是可以的。此外 v θ v_{\theta} vθ中的未知量 ∇ x log ⁡ p t ( x ) \nabla_{\mathbf{x}} \log p_{t}(\mathbf{x}) xlogpt(x)通常用一个噪声估计网络或者叫做分数估计网络 s θ s_{\theta} sθ来进行估计, s θ s_{\theta} sθ可采用带有注意力机制的UNet模型或者条件UNet模型。
在这里插入图片描述
  其实讲到这里,DDIBs方法的过程和特点就已经介绍完了,下面作者又分析了其背后的理论依据,作者是从薛定谔桥问题(Schrodinger Bridges Problem,SBP)的角度来描述DDIBs的理论基础的。假设 Ω = C ( [ 0 , 1 ] ; R n ) \Omega=C\left([0,1];\mathbb{R}^{n}\right) Ω=C([0,1];Rn)是在时间[0,1]范围内 n n n维实值连续函数的路径空间, D ( p 0 , p 1 ) \mathcal{D}\left(p_{0}, p_{1}\right) D(p0,p1)是空间 Ω \Omega Ω上所有的分布集合,其在时刻 t = 0 , t = 1 t=0,t=1 t=0,t=1上的边缘分布分别为 p 0 , p 1 p_0,p_1 p0,p1。给定一个先验的参考度量 W W W,则SBP就是要寻找在 p 0 p_0 p0 p 1 p_1 p1之间随时间 t t t变化的概率最大的进化路径,也就是说从 D ( p 0 , p 1 ) \mathcal{D}\left(p_{0}, p_{1}\right) D(p0,p1)寻找一个分布使得其与参考度量 W W W之间的KL散度最小,即下式所示 P S B P : = arg ⁡ min ⁡ { D K L ( P ∥ W ) ∣ P ∈ D ( p 0 , p 1 ) } (4) P_{S B P}:=\arg \min \left\{D_{K L}(P \| W) \mid P \in \mathcal{D}\left(p_{0}, p_{1}\right)\right\}\tag{4} PSBP:=argmin{DKL(PW)PD(p0,p1)}(4)作者还解释到SBP实际上是一个带有额外熵正则项的Monge-Kantorovich (MK)最优传输问题(OT)。上面这一大段,其实我也没怎么看懂,大概的意思是SBP就是寻找一个时间跨度为 t t t,边缘分布分别为 p 0 p_0 p0 p 1 p_1 p1的概率分布 P P P。那么SBP与上面提到的SGMs又有什么关系呢?作者引用他人研究的结果证明SGMs是一种隐式的最优传输模型,对应着带有线性或退化漂移(linear or degenerate drifts)的SBP。简单理解为SGMs是退化版的SBP,是SBP的一个特例。那么用SBP来描述扩散和生成过程如下: d x = [ f + g 2 ∇ x log ⁡ Φ t ( x ) ] d t + g ( t ) d w , d x = [ f − g 2 ∇ x log ⁡ Φ ^ t ( x ) ] d t + g ( t ) d w (5) \mathrm{d} \mathbf{x}=\left[\mathbf{f}+g^{2} \nabla_{\mathbf{x}} \log \Phi_{t}(\mathbf{x})\right] \mathrm{d} t+g(t) \mathrm{d} \mathbf{w}, \quad \mathrm{d} \mathbf{x}=\left[\mathbf{f}-g^{2} \nabla_{\mathbf{x}} \log \hat{\Phi}_{t}(\mathbf{x})\right] \mathrm{d} t+g(t) \mathrm{d} \mathbf{w}\tag{5} dx=[f+g2xlogΦt(x)]dt+g(t)dw,dx=[fg2xlogΦ^t(x)]dt+g(t)dw(5)其中 Φ t , Φ ^ t {\Phi}_{t},\hat{\Phi}_{t} Φt,Φ^t为薛定谔因子,其满足 p t ( x ) = Φ t ( x ) Φ ^ t ( x ) p_{t}(\mathbf{x})=\Phi_{t}(\mathbf{x}) \hat{\Phi}_{t}(\mathbf{x}) pt(x)=Φt(x)Φ^t(x)。式中 z t = g ( t ) ∇ x log ⁡ Φ t ( x ) \mathbf{z}_{t}=g(t) \nabla_{\mathbf{x}} \log \Phi_{t}(\mathbf{x}) zt=g(t)xlogΦt(x) z ^ t = g ( t ) ∇ x log ⁡ Φ ^ t ( x ) \hat{\mathbf{z}}_{t}=g(t) \nabla_{\mathbf{x}} \log \hat{\Phi}_{t}(\mathbf{x}) z^t=g(t)xlogΦ^t(x)能够充分的表征SBP的动态变化过程,因此可以被看作是扩散和生成过程所遵循的策略。从对数似然的角度来看,当 z t , z ^ t \mathbf{z}_{t}, \hat{\mathbf{z}}_{t} zt,z^t满足以下条件时,SBP和SGMs是等价的 ( z t , z ^ t ) = ( 0 , g ( t ) ∇ x log ⁡ p t ( x ) ) (6) \left(\mathbf{z}_{t}, \hat{\mathbf{z}}_{t}\right)=\left(0, g(t) \nabla_{\mathbf{x}} \log p_{t}(\mathbf{x})\right)\tag{6} (zt,z^t)=(0,g(t)xlogpt(x))(6)当然与SGMs相似,SBP也能够推导出其对应的确定性概率流常微分方程PE ODE,如下所示 d x = [ f ( x , t ) + g ( t ) z − 1 2 g ( t ) ( z + z ^ ) ] d t \mathrm{d} \mathbf{x}=\left[\mathbf{f}(\mathbf{x}, t)+g(t) \mathbf{z}-\frac{1}{2} g(t)(\mathbf{z}+\hat{\mathbf{z}})\right] \mathrm{d} t dx=[f(x,t)+g(t)z21g(t)(z+z^)]dt其中 z \mathbf{z} z只与 x \mathbf{x} x有关,与时间 t t t无关。
  费了这么多力气,作者就想说明一点DDIBs是两个级联的薛定谔桥,分别连接了源域和潜在空间以及潜在空间和目标域。这就是该文提出方法名字的来源,双扩散隐式桥(Dual Diffusion Implicit Bridges, DDIBs)是基于去噪扩散隐式模型(Denoising Diffusion Implicit Models, DDIM)的且包含两个独立的薛定谔桥以连接数据和潜在空间分布。后面作者在一个2维图像数据集上,验证了DDIBs方法所具备的图像转换的平滑性和循环一致性,如下图所示
在这里插入图片描述
由图a可以看出来,当图像从一种形状转换到另一种形状时,其颜色的分布情况几乎与源图像保持一致;由图b可以看出,当图像从形状A转换到B再转换回A时,两者之间几乎没有任何差别,这就显著表明了生成过程具备很好的循环一致性。
  此外,作者还利用条件扩散模型测试了DDIBs由一个源域转换到多个目标域的表现,如下图所示
在这里插入图片描述
可以看到,当源域图像(狮子,类别代号291)转化为其他多个类别时,再保留原有的吼叫姿态的同时,又能很好的兼顾目标类别的特征。

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

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

相关文章

华为防火墙二层墙(VAN/SVI/单臂路由)

二层墙只能做地址池形式的NAT。 交换机安全策略防火墙二层墙 路由器安全策略防火墙三层墙 交换机的光口是不能直接插线的,光模块,包括进和出 长距离:单模 短距离:多模 防火墙自身的ping流量需要单独配置

一篇复现Docker镜像操作与容器操作

华子目录 Docker镜像操作创建镜像方式1docker commit示例 方式2docker import示例1:从本地文件系统导入示例2:从远程URL导入注意事项 方式3docker build示例1:构建镜像并指定名称和标签示例2:使用自定义的 Dockerfile 路径构建镜像…

Unity连接MySQL踩坑,问题处理记录

用的unity2021版本,MySQL是官方下载的最新版8.0.36. 安装MySQL时,过去如果安装过,一定要删干净,单纯的卸载不行,网上有很多教程。 MySQL安装完成后,将安装目录的MySql.Data.dll文件放入unity项目的Plugin…

数据运营常用的8大模型

✅作者简介:《数据运营:数据分析模型撬动新零售实战》作者、《数据实践之美》作者、数据科技公司创始人、多次参加国家级大数据行业标准研讨及制定、高端企培合作讲师。 🌸公众号:风姑娘的数字视角,免费分享数据应用相…

202447读书笔记|《围炉夜话》——多记先正格言,胸中方有主宰 闲看他人行事,眼前即是规箴

202447读书笔记|《围炉夜话》——多记先正格言,胸中方有主宰;闲看他人行事,眼前即是规箴 围炉夜话 《围炉夜话(读客三个圈经典文库)》作者王永彬。读《围炉夜话》,可以掌握君子安身立业的大智慧&#xff01…

【Canvas与艺术】暗蓝网格汽车速度仪表盘

【关键点】 采用线性渐变色&#xff0c;使上深下浅的圆有凹下效果&#xff0c;使上浅下深的圆有凸起效果&#xff0c;两者结合就有立体圆钮的感觉。 【图例】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type&quo…

2015年认证杯SPSSPRO杯数学建模C题(第二阶段)荒漠区动植物关系的研究全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 C题 荒漠区动植物关系的研究 原题再现&#xff1a; 环境与发展是当今世界所普遍关注的重大问题, 随着全球与区域经济的迅猛发展, 人类也正以前所未有的规模和强度影响着环境、改变着环境, 使全球的生命支持系统受到了严重创伤, 出现了全球变暖…

R语言基础入门

1.保存或加载工作空间 改变工作目录——进行文件读写&#xff0c;默认去指定文件进行操作。&#xff08;使用R时&#xff0c;最好先设定工作目录&#xff08;setwd(),getwd()&#xff09;&#xff09; setwd(“工作文件路径”)&#xff1a;建立工作目录 getwd&#xff08;&…

【STM32嵌入式系统设计与开发】——9Timer(定时器中断实验)

这里写目录标题 一、任务描述二、任务实施1、ActiveBeep工程文件夹创建2、函数编辑&#xff08;1&#xff09;主函数编辑&#xff08;2&#xff09;USART1初始化函数(usart1_init())&#xff08;3&#xff09;USART数据发送函数&#xff08; USART1_Send_Data&#xff08;&…

【论文阅读】Probabilistic Imputation for Time-series Classification with Missing Data

Probabilistic Imputation for Time-series Classification with Missing Data 论文链接&#xff1a;https://icml.cc/virtual/2023/poster/23522 作者&#xff1a;SeungHyun Kim Hyunsu Kim EungGu Yun Hwangrae Lee Jaehun Lee Juho Lee 机构&#xff1a;韩国科学技术…

Qt登录页面

#include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//接收动图QMovie *mv new QMovie(":/pictrue/luori.gif");ui->loglab->setMovie(…

修复编译RK3568-buildroot时提示不能使用root权限编译的问题

问题 使用 rk3568 的 sdk 中的 buildroot 来编译根文件系统的时候&#xff0c;出现 "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE1 in environment&#xff09;" 的错误。 解决方法 根据错误提示&#xff0c;我们将 set FORCE_UNSAFE_CON…

算法打卡day16

今日任务&#xff1a; 1&#xff09;513.找树左下角的值 2&#xff09;112.路径总和 3&#xff09;113.路径总和Ⅱ 4&#xff09;106.从中序与后序遍历序列构造二叉树 5&#xff09;105.从前序与中序遍历序列构造二叉 513.找树左下角的值 题目链接&#xff1a;513. 找树左下角…

如何在软件测试行业走的更远?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 时间往前推10年&#xff0c;IT业如日中天。 其中测试更是一个极具包容性的行业。那些希望在技术…

【云开发笔记No.9】Kanban与敏捷开发

Kanban看板起源于丰田。 看板&#xff08;Kanban&#xff09;一词来自日文&#xff0c;本义是可视化卡片。如下图所示&#xff0c;看板工具的实质是&#xff1a;后道工序在需要时&#xff0c;通过看板向前道工序发出信号——请给我需要数量的输入&#xff0c;前道工序只有得到看…

Orangedx:引领新一轮 BTCFi 浪潮

“OrangeDx 作为新一轮 BTCFi 浪潮引领者被市场寄予厚望 &#xff0c;前不久在 FinceptorApp 的平台的公开销售 20 万美元的额度仅在几秒售罄&#xff0c;而其即将以 Startup 方式登陆 Gate 平台也同样备受市场期待。” 自 Ordinals 面向市场为比特币生态带来全新的资产发行方案…

翻过DP这座大山

1.AcWing 跳台阶 第一种方法:暴力搜索DFS #include <iostream> using namespace std;int dfs(int n) {if(n 1) return 1;else if(n 2) return 2;else return dfs(n-1)dfs(n-2); }int main() {int x; cin>>x;cout<<dfs(x)<<endl;return 0; }显然如…

银河麒麟系统安装设备类型选择lvm简单模式之后,数据写入导致失败导致系统重启无法正常加载

银河麒麟系统安装设备类型选择lvm简单模式之后&#xff0c;数据写入导致失败导致系统重启无法正常加载 一 系统环境1.1 系统版本信息1.2 通过镜像安装的过程中选择设备类型选择的是lvm简单模式 二 问题描述三 问题修复过程3.1 挂载ISO镜像&#xff0c;引导到字符终端界面3.2 修…

茶饮品牌抖音账号规划流量运营策划方案

【干货资料持续更新&#xff0c;以防走丢】 茶饮品牌抖音账号规划流量运营策划方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 抖音运营资料合集&#xff08;完整资料包含以下内容&#xff09; 目录 冷启动期 1. 直播前期准备 - 进行DOUA/B测试&#xff0…

jupyter操作LSTM模型,词向量模型理解

1.jupyter没有torch模块&#xff0c;参考下面链接的解决办法 【jupyter notebook安装配置教程&#xff0c;导入pytorch解决No module named torch-哔哩哔哩】 https://b23.tv/jYGvyVR 2.jupyter中没有某一模块怎么办&#xff0c;可以用pycharm打开一个项目&#xff0c;在该项…