首页 > 其他分享 >Diffusion models as plug-and-play priors

Diffusion models as plug-and-play priors

时间:2023-05-10 20:57:10浏览次数:58  
标签:Diffusion play mathbf log models bm eta theta Bigg

目录

Graikos A., Malkin N., Jojic N. and Samaras D. Diffusion models as plug-and-play priors. NIPS, 2022.

有了先验分布 \(p(\mathbf{x})\) (用一般的扩散模型去拟合), 我们总是像添加一些约束, 即希望从条件概率分布 \(p(\mathbf{x}|\mathbf{y})\) 中采样. 作者在这里讨论的范围要更大, 只需给定一些约束 \(c(\mathbf{x}, \mathbf{y})\) 即可.

问题

  • 假设我们对后验概率 \(p(\mathbf{x}|\mathbf{y}) \propto p(\mathbf{x}) c(\mathbf{x}, \mathbf{y})\) 感兴趣.

  • 当 \(c(\mathbf{x}, \mathbf{y}) = p(y | \mathbf{x})\) 容易估计的时候, 这个问题是容易的 (这里我们假设先验分布 \(p(\mathbf{x}\)) 容易通过扩散模型近似).

  • 但是当 \(c(\mathbf{x}, \mathbf{y})\) 本身不容易估计的时候, 这个问题会比较麻烦.

  • 作者的想法是, 利用一个替代分布 (or variational posterior) \(q(\mathbf{x})\) 来近似 \(p(\mathbf{x}|\mathbf{y})\), 当然 \(q(\mathbf{x})\) 在形式上必须是容易采样和求解的.

  • 需要注意的是, 虽然这里的符号是 \(q(\mathbf{x})\), 但是不意味着对于所有的 \(\mathbf{y}\) 都用同一个 \(q(\mathbf{x})\) 近似. 实际上, 真正的做法是, 对于每一条件 \(\mathbf{y}\) 求解一个替代分布 \(q(\mathbf{x})\), 所以实际上 \(q_{\mathbf{y}}(\mathbf{x})\) 或许更为贴切, 不过这里还是遵循此惯用用法.

  • 一种简单的做法就是通过最小化 KL 散度:

    \[\tag{1} \begin{array}{ll} \min_{q} \: \text{KL}(q(\mathbf{x}) \| p(\mathbf{x|y})) &= \int q(\mathbf{x}) \log \frac{q(\mathbf{x})}{p(\mathbf{x}|\mathbf{y})} \\ &\Leftrightarrow -\mathbb{E}_{q(\mathbf{x})} \Bigg [\log p(\mathbf{x}) + \log c(\mathbf{x}, \mathbf{y}) - \log q(\mathbf{x}) \Bigg] \\ &=: F. \end{array} \]

    最后的部分, 称为 variational free energy. 最小化 free energy 可以得到一个合适的近似. 注: variational free energy 又名 Evidence Lower Bound.

  • 现在, 我们假设 \(p(\mathbf{x})\) 本身也是难以直接得到的 (正如扩散模型一下), 但我们可以直接的带 \(p(\mathbf{x}, \mathbf{h})\), 但是我们依旧只添加约束 \(c(\mathbf{x}, \mathbf{y})\), 此时 free energy 成为了:

    \[\tag{2} \begin{array}{ll} F &= -\mathbb{E}_{q(\mathbf{x}) q(\mathbf{h}|\mathbf{x})} \Bigg [\log p(\mathbf{x}, \mathbf{h}) + \log c(\mathbf{x}, \mathbf{y}) - \log q(\mathbf{x})q(\mathbf{h}|\mathbf{x}) \Bigg] \\ &=-\mathbb{E}_{q(\mathbf{x}) q(\mathbf{h}|\mathbf{x})} \Bigg [\log p(\mathbf{x}, \mathbf{h}) - \log q(\mathbf{x})q(\mathbf{h}|\mathbf{x}) \Bigg] - \mathbb{E}_{q(\mathbf{x})} [\log c(\mathbf{x}, \mathbf{y})]. \end{array} \]

与扩散模型的联系

  • DDPM 拟合得到了如下的一个联合分布:

    \[p(\mathbf{x}_T, \mathbf{x}_{T-1}, \ldots, \mathbf{x}_0) = p(\mathbf{x}_T) \prod_{t=1}^T p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_t), \\ p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_t) = \mathcal{N}(\mathbf{x}_{t-1}; \bm{\mu}_{\theta}(\mathbf{x}_t, t), \Sigma_{\theta}(\mathbf{x}_t, t)), \quad p(\mathbf{x}_T) = \mathcal{N}(\bm{0}, \mathbf{I}). \]

  • 令 \(\mathbf{x} = \mathbf{x}_0, \mathbf{h} = \mathbf{x}_{1:T}\):

    1. 首先, 根据扩散模型的性质我们可以知道得到:

      \[q(\mathbf{h}|\mathbf{x}=\mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t|\mathbf{x}_{t-1}), \: q(\mathbf{x}_t|\mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1 - \beta_t} \mathbf{x}_{t-1}, \beta_t \mathbf{I}), \quad t=1,\ldots, T. \]

    2. 换言之, 我们需要估计仅仅是 \(q(\mathbf{x})\):

      \[\tag{3} \min_{q(\mathbf{x})} \quad F. \]

  • Ok, 让我们缓一缓, 其实扩散模型的损失和这里的损失是同一个, 只是扩散模型固定 \(q\) (2) 来训练 \(p_{\theta}\), 而现在是固定 \(p_{\theta}\) 来训练 \(q(\mathbf{x})\).

  • 作者直接采用最简单的形式:

    \[q(\mathbf{x}) = \delta(\mathbf{x} - \bm{\eta}), \]

    故 (3) 相当于:

    \[\tag{4} \min_{\bm{\eta}} \quad F. \]

  • 进一步将 \(F\) 写成关于 \(\bm{\eta}\) 的形式:

    \[F(\bm{\eta}) = \sum_t \mathbb{E}_{\bm{\epsilon} \sim \mathcal{N}(\bm{0}, \mathbf{I})} [\|\bm{\epsilon} - \bm{\epsilon}_{\theta}(\mathbf{x}_t, t)\|_2^2] - \log c(\bm{\eta}, \mathbf{y}), \: \mathbf{x}_t = \sqrt{\bar{\alpha}_t} \bm{\eta} + \sqrt{1 - \bar{\alpha}_t} \bm{\epsilon}. \]

  • 关于 \(\bm{\eta}\) 最小化 \(F(\bm{\eta})\) 即可:

  • 考虑如下的优化:

    \[\max_{\bm{\eta}} \int \delta(\mathbf{x} - \mathbf{\eta}) \log p(\mathbf{x}|\mathbf{y}) \mathrm{d}\mathbf{x} = \max_{\bm{\eta}} \: \log p(\mathbf{x}|\mathbf{y}), \]

    \[\mathbf{\bm{\eta}}^* = \arg\max p(\mathbf{x}|\mathbf{y}) \]

    实际上是 MAP 估计.

  • 一个好处是, 我们不需要严格保证 \(c(\mathbf{x}, \mathbf{y}) = p(\mathbf{y}|\mathbf{x})\), 故严格上任意关于 \(\bm{\eta}\) 可导的函数都可以作为约束放在这里.

应用

条件采样

  • 令 \(c\) 为 digit 的不同属性的 score (不用归一化):

  • \[c(\mathbf{x}, \mathbf{y}) = \prod_{y \in \mathbf{y}} p(y | \mathbf{x}), \]

    其中 \(p(y|\mathbf{x})\) 是对 \(\mathbf{x}\) 不同属性的预测, 比如在人脸中: no beard, smiling, blond hair, male 等.

语义分割

  • 没怎么看懂.

解决离散问题

  • 没怎么看懂.

代码

official

标签:Diffusion,play,mathbf,log,models,bm,eta,theta,Bigg
From: https://www.cnblogs.com/MTandHJ/p/17389302.html

相关文章

  • Stable Diffusion 反向提示词 Negative prompts
    反向提示词(Negativeprompts)用于描述图片中不希望出现的内容。常用于阻止生成特定的事物、样式或修复某些图像异常。下面是一些例子从“宁静的精灵森林”中移除“苔藓”宁静的精灵森林peacefulelvenforest,thickforest,largelivingtreesarevisibleinthebackgro......
  • Event Tables for Efficient Experience Replay
    Abstract事件表分层抽样(SSET),它将ER缓冲区划分为事件表,每个事件表捕获最优行为的重要子序列。我们证明了一种优于传统单片缓冲方法的理论优势,并将SSET与现有的优先采样策略相结合,以进一步提高学习速度和稳定性。在具有挑战性的MiniGrid域、基准RL环境和高保真赛车模拟器中的实......
  • AI 绘画基础 - 细数 Stable Diffusion 中的各种常用模型 【
    AI绘画新手魔导士在刚开始玩StableDiffusion时总会遇到各种新的概念,让人困惑,其中就包括各种模型和他们之间的关系。魔法师入门得先认识各种法师装备(各种模型),让我们遇到问题知道使用何种装备来协助自己发挥更大的效果。safetensors在了解各种模型之前,有必须先了解下safeten......
  • EasyPlayer播放H.265视频,播放器快照时间显示的问题优化
    我们的EasyPlayer流媒体播放器可支持H.264与H.265,能支持RTSP、RTMP、HLS、FLV、WebRTC等格式的视频流播放。TSINGSEE的视频平台均集成了EasyPlayer的播放器,实现了无插件网页直播,性能稳定。有用户反馈,EasyPlayer在播放H.265视频的通道时,播放器快照时间显示的是时间戳,并不是日期。......
  • 【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?
    作者:寒斜上一篇讲了如何使用ServerlessDevs和函数计算快速体验部署StableDiffusion,本篇继续聊聊如何解决动态模型加载的问题,从玩起来到用起来。思路其实很简单,我们只需要将镜像里面的动态路径映射到NAS[1]文件存储里面即可,利用NAS独立存储文件模型,扩展,语言包等,并且......
  • ubuntu22.04 部署 stable-diffusion-webui v1.1.0
    anaconda设置anaconda下载地址https://www.anaconda.com/download#downloadsanaconda下载#wgethttps://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh安装anaconda#bashAnaconda3-2023.03-1-Linux-x86_64.sh....Anaconda3willnowbeinstalled......
  • 【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Pr
    文章目录相关信息摘要(Abstract)1.介绍(Introduction)2.相关工作(RelatedWork)3.中文预训练模型(ChinesePre-trainedLanguageModels)3.1BERT-wwm&RoBERTa-wwm3.2MacBERT4.实验设置(ExperimentSetups)4.1SetupsforPre-TrainedLanguageModels4.2SetupsforFine-tuningTask......
  • playwright中定位元素的方法
    playwright中定位元素的方法1.page.$(selector)该方法接受一个CSS选择器作为参数,并返回与选择器匹配的第一个元素。如果不存在匹配的元素,则返回null。该方法常常用于选取指定ID或class的元素。constbutton=awaitpage.$('#myButton');//通过ID选取按钮元素cons......
  • Exploring the Use of Humanized Mouse Models in Drug Safety Evaluation
    Thepurposeofdrugdevelopmentistofindnewsafe,effectivedrugsofhighqualityandstabilitytocurediseasesandsavelives.Developinganewdrugisaverycomplexprocess,butitcanbedividedinto preclinicalresearch andclinicalstudiesofa......
  • How to connect to multiple SSD1306 OLED Displays using Raspberry Pi GPIO I2C PIN
    HowtoconnecttomultipleSSD1306OLEDDisplaysusingRaspberryPiGPIOI2CPINAllInOne如何使用RaspberryPi的GPIOI2CPIN连接多个SSD1306OLED显示器demos(......