查看“︁扩散模型”︁的源代码
←
扩散模型
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[机器学习]]中,'''扩散模型'''或'''扩散概率模型'''是一类[[潜变量模型]],是用[[变分贝叶斯方法|变分估计]]训练的[[马尔可夫链]]。<ref name=":0">{{cite journal |last1=Ho |first1=Jonathan |last2=Jain |first2=Ajay |last3=Abbeel |first3=Pieter |title=Denoising Diffusion Probabilistic Models |date=2020-06-19 |arxiv=2006.11239}}</ref>扩散模型的目标是通过对数据点在[[潜空间 (机器学习)|潜空间]]中的扩散方式进行建模,来学习数据集的潜结构。[[计算机视觉]]中,这意味着通过学习逆扩散过程训练神经网络,使其能对叠加了[[高斯噪声]]的图像进行[[噪音降低|去噪]]。<ref name=":1">{{Cite arXiv |last1=Song |first1=Yang |last2=Sohl-Dickstein |first2=Jascha |last3=Kingma |first3=Diederik P. |last4=Kumar |first4=Abhishek |last5=Ermon |first5=Stefano |last6=Poole |first6=Ben |date=2021-02-10 |title=Score-Based Generative Modeling through Stochastic Differential Equations |class=cs.LG |eprint=2011.13456 }}</ref><ref>{{cite arXiv |last1=Gu |first1=Shuyang |last2=Chen |first2=Dong |last3=Bao |first3=Jianmin |last4=Wen |first4=Fang |last5=Zhang |first5=Bo |last6=Chen |first6=Dongdong |last7=Yuan |first7=Lu |last8=Guo |first8=Baining |title=Vector Quantized Diffusion Model for Text-to-Image Synthesis |date=2021 |class=cs.CV |eprint=2111.14822}}</ref>计算机视觉中使用通用扩散模型框架的3个例子是去噪扩散概率模型、噪声条件得分网络和随机微分方程。<ref>{{cite arXiv |last1= Croitoru |first1=Florinel-Alin |last2= Hondru |first2= Vlad |last3= Ionescu |first3=Radu Tudor |last4= Shah |first4= Mubarak |title=Diffusion models in vision: A survey |date=2022 |class=cs.CV |eprint=2209.04747}}</ref> 扩散模型是在2015年提出的,其动机来自[[非平衡态热力学]]。<ref>{{Cite journal |last1=Sohl-Dickstein |first1=Jascha |last2=Weiss |first2=Eric |last3=Maheswaranathan |first3=Niru |last4=Ganguli |first4=Surya |date=2015-06-01 |title=Deep Unsupervised Learning using Nonequilibrium Thermodynamics |url=http://proceedings.mlr.press/v37/sohl-dickstein15.pdf |journal=Proceedings of the 32nd International Conference on Machine Learning |language=en |publisher=PMLR |volume=37 |pages=2256–2265 |access-date=2023-02-24 |archive-date=2023-04-05 |archive-url=https://web.archive.org/web/20230405222439/http://proceedings.mlr.press/v37/sohl-dickstein15.pdf |dead-url=no }}</ref> 扩散模型可以应用于各种任务,如[[图像去噪]]、[[图像修复]]、[[超分辨率成像]]、[[文本到图像生成模型|图像生成]]等等。例如,一个图像生成模型,经过对自然图像的扩散过程的反转训练之后,可从一张完全随机的噪声图像开始逐步生成新的自然图像。比较近的例子有2022年4月13日[[OpenAI]]公布的文生图模型[[DALL-E]]。它将扩散模型用于模型的先验解释器和产生最终图像的解码器。<ref>{{cite arXiv |last1=Ramesh |first1=Aditya |last2=Dhariwal |first2=Prafulla |last3=Nichol |first3=Alex |last4=Chu |first4=Casey |last5=Chen |first5=Mark |title=Hierarchical Text-Conditional Image Generation with CLIP Latents |date=2022 |class=cs.CV |eprint=2204.06125}}</ref> ==数学原理== ===于所有图像的空间中生成一张图像=== 考虑图像生成问题。令<math>x</math>代表一张图,令<math>p(x)</math>为在所有可能图像上的機率分布。若有<math>p(x)</math>本身,便可以肯定地说给定的一张图的機率有多大。但这在一般情况下是难以解决的。 大多数时候,我们并不想知道某个图像的绝对機率,相反,我们通常只想知道某个图像与它的周围相比,機率有多大:一张猫的图像与它的小变体相比,機率哪个大?如果图像里有一根、两根或三根胡须,或者加入了一些高斯噪声,機率会更大吗? 因此,我们实际上对<math>p(x)</math>本身不感兴趣,而对<math>\nabla_x \ln p(x)</math>感兴趣。这有两个效果: * 其一,我们不再需要标准化<math>p(x)</math>,而是可以用任何<math>\tilde p(x) = Cp(x)</math>,其中<math>C = \int \tilde p(x) dx > 0</math>是任意常数,我们不需要去关心它。 * 其二,我们正在比较<math>p(x)</math>的邻居<math>p(x + dx)</math>,通过<math>\frac{p(x)}{p(x+dx)} =e^{-\langle \nabla_x \ln p, dx \rangle}</math> 令[[分数 (统计学)|分数函数]]为<math>s(x) := \nabla_x \ln p(x)</math>,然后考虑我们能对<math>s(x)</math>做什么。 实际上,<math>s(x)</math>允许我们用[[随机梯度朗之万动力学]]从<math>p(x)</math>中取样,这本质上是[[马尔可夫链蒙特卡洛]]的无限小版本。<ref name=":1" /> ===学习分数函数=== 分数函数可通过加噪-去噪学习。<ref name=":0" /> ==主要变体== ===分类指导器=== 假设我们希望不是从整个图像的分布中取样,而是以图像描述为条件取样。我们不想从一般的图像中取样,而是从符合描述“红眼睛的黑猫”的图片中取样。一般来说,我们想从分布<math>p(x|y)</math>中取样,其中<math>x</math>的范围是图像,<math>y</math>的范围是图像的类别(对y而言,“红眼黑猫”的描述过于精细,“猫”又过于模糊)。 从[[噪声信道模型]]的角度来看,我们可以将这一过程理解如下:为生成可描述为<math>y</math>的图像<math>x</math>,我们设想请求者脑海中真有一张图像<math>x</math>,但它经过多次加噪,出来的是毫无意义可言的乱码,也就是<math>y</math>。这样一来图像生成只不过是推断出请求者心中的<math>x</math>是什么。 换句话说,有条件的图像生成只是“从文本语言翻译成图像语言”。之后,像在噪声信道模型中一样,我们可以用贝叶斯定理得到<math display="block">p(x|y) \propto p(y|x)p(x) </math>也就是说,如果我们有一个包含所有图像空间的好模型,以及一个图像到类别的好翻译器,我们就能“免费”得到一个类别到图像的翻译器,也就是[[文本到图像生成模型]]。 SGLD使用<math display="block">\nabla_x \ln p(x|y) = \nabla_x \ln p(y|x) + \nabla_x \ln p(x) </math>其中<math>\nabla_x \ln p(x)</math>是分数函数,如上所述进行训练,用可微图像分类器便可以找到<math>\nabla_x \ln p(y|x)</math>。 ===温度=== 分类器引导的扩散模型会从<math>p(x|y)</math>中取样,它集中在[[最大后验概率]]<math>\arg\max_x p(x|y)</math>周围。如果我们想迫使模型向[[最大概似估計 |最大似然估计]] <math>\arg\max_x p(y|x)</math>的方向移动,可以用<math display="block">p_\beta(x|y) \propto p(y|x)^\beta p(x) </math>其中<math>\beta > 0 </math>可解释为''[[热力学β|逆温度]]'',在扩散模型研究中常称其为'''制导尺度(guidance scale)'''。较高的<math>\beta </math>会迫使模型在更靠近<math>\arg\max_x p(y|x)</math>的分布中采样。这通常会提高生成图像的[[品質]]。<ref>{{Cite arXiv |last1=Dhariwal |first1=Prafulla |last2=Nichol |first2=Alex |date=2021-06-01 |title=Diffusion Models Beat GANs on Image Synthesis |class=cs.LG |eprint=2105.05233 }}</ref> 这可以简单地通过SGLD实现,即<math display="block">\nabla_x \ln p_\beta(x|y) = \beta\nabla_x \ln p(y|x) + \nabla_x \ln p(x) </math> ===无分类指导器=== 如果我们没有分类器<math>p(y|x)</math>,我们仍可以从图像模型本身提取一个:<ref>{{Cite arXiv |last1=Ho |first1=Jonathan |last2=Salimans |first2=Tim |date=2022-07-25 |title=Classifier-Free Diffusion Guidance |class=cs.LG |eprint=2207.12598 }}</ref><math display="block">\nabla_x \ln p_\beta(x|y) = (1-\beta) \nabla_x \ln p(x) + \beta \nabla_x \ln p(x|y) </math>这样的模型通常要在训练时提供<math>(x, y) </math>和<math>(x, None) </math>,这样才能让它同时为<math>\nabla_x\ln p(x|y) </math>和<math>\nabla_x\ln p(x) </math>建模。 这是GLIDE<ref>{{Cite arXiv |last1=Nichol |first1=Alex |last2=Dhariwal |first2=Prafulla |last3=Ramesh |first3=Aditya |last4=Shyam |first4=Pranav |last5=Mishkin |first5=Pamela |last6=McGrew |first6=Bob |last7=Sutskever |first7=Ilya |last8=Chen |first8=Mark |date=2022-03-08 |title=GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models |class=cs.CV |eprint=2112.10741 }}</ref>、[[DALL-E]]<ref>{{Cite arXiv |last1=Ramesh |first1=Aditya |last2=Dhariwal |first2=Prafulla |last3=Nichol |first3=Alex |last4=Chu |first4=Casey |last5=Chen |first5=Mark |date=2022-04-12 |title=Hierarchical Text-Conditional Image Generation with CLIP Latents |class=cs.CV |eprint=2204.06125 }}</ref>和Google Imagen<ref>{{Cite arXiv |last1=Saharia |first1=Chitwan |last2=Chan |first2=William |last3=Saxena |first3=Saurabh |last4=Li |first4=Lala |last5=Whang |first5=Jay |last6=Denton |first6=Emily |last7=Ghasemipour |first7=Seyed Kamyar Seyed |last8=Ayan |first8=Burcu Karagol |last9=Mahdavi |first9=S. Sara |last10=Lopes |first10=Rapha Gontijo |last11=Salimans |first11=Tim |last12=Ho |first12=Jonathan |last13=Fleet |first13=David J. |last14=Norouzi |first14=Mohammad |date=2022-05-23 |title=Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding |class=cs.CV |eprint=2205.11487 }}</ref>等系统的重要组成部分。 ==另见== * [[扩散过程]] * [[马尔可夫链]] * [[变分贝叶斯方法]] * [[变分自编码器]] ==阅读更多== * [https://benanne.github.io/2022/05/26/guidance.html Guidance: a cheat code for diffusion models] {{Wayback|url=https://benanne.github.io/2022/05/26/guidance.html |date=20230219172546 }}. Good overview up to 2022. ==参考文献== {{reflist}} [[Category:马尔可夫模型]] [[Category:机器学习演算法]]
该页面使用的模板:
Template:Cite arXiv
(
查看源代码
)
Template:Cite journal
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Wayback
(
查看源代码
)
返回
扩散模型
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息