【Diffusion】李宏毅2023机器学习Diffusion笔记

文章目录

  • [1 想法概述](#1 想法概述)
  • [2 实际过程](#2 实际过程)
    • [阶段1 Add Noise](#阶段1 Add Noise)
    • [阶段2 Denoise](#阶段2 Denoise)
  • [3 数学原理](#3 数学原理)
  • [4 为什么推理时要额外加入noise](#4 为什么推理时要额外加入noise)
  • [5 一些不知道对不对的Summary](#5 一些不知道对不对的Summary)

1 想法概述

从一张充满噪声的图中不断denoise,最终得到一张clear的图片。为了确定当前图片中噪声占比的大小,同时输入原图片和参数 t t t,参数 t t t用于标识一张图片中的噪声占比含量。

显然迭代第1次时图片的噪声含量和迭代第999次是不同的,因此需要输入这种信息t来进行标识。

2 实际过程

阶段1 Add Noise

首先,准备好一组确定的参数 α 1 ˉ , α 2 ˉ , ... , α T ˉ \bar{\alpha_1},\bar{\alpha_2},\dots,\bar{\alpha_T} α1ˉ,α2ˉ,...,αTˉ,用以表示时间步 t t t下样本和噪声的混合情况, t t t越大,噪声占比越高。然后重复以下过程直至收敛:

  1. 采样

    1. 从真实样本集中取出一个样本 x 0 x_0 x0

    2. 从 [ 1 , T ] [1,T] [1,T]的整数中采样出 t t t来表示时间步

    3. 从标准正态分布中采样出噪声 ϵ \epsilon ϵ

  2. 构造带噪声样本 x = α t ˉ x 0 + 1 − α t ˉ ϵ x=\sqrt{\bar{\alpha_t}}x_0+ \sqrt{1-\bar{\alpha_t}} \epsilon x=αtˉ x0+1−αtˉ ϵ

  3. 将构造样本 x x x和时间步 t t t一同输入噪声预测器 ϵ θ ( ) \epsilon_\theta() ϵθ(),得到预测噪声 ϵ θ ( x , t ) \epsilon_\theta(x,t) ϵθ(x,t)。

  4. 目标函数为 ϵ θ ( x , t ) \epsilon_\theta(x,t) ϵθ(x,t)和采样出的真实噪声 ϵ \epsilon ϵ的 M S E MSE MSE

阶段2 Denoise

3 数学原理

  1. 极大似然估计近似等价于最小化KL散度(表示两个分布的相似性):
  1. 对任何分布 q ( z ∣ x ) q(z|x) q(z∣x),有:

log ⁡ P θ ( x ) ≥ ∫ z q ( z ∣ x ) log ⁡ P ( z , x ) q ( z ∣ x ) d z = E q ( z ∣ x ) [ log ⁡ P ( z , x ) q ( z ∣ x ) ] \log P_\theta(x) \ge \int_{z}q(z|x)\log \frac{P(z,x)}{q(z|x)}dz = E_{q(z|x)}[\log \frac{P(z,x)}{q(z|x)}] logPθ(x)≥∫zq(z∣x)logq(z∣x)P(z,x)dz=Eq(z∣x)[logq(z∣x)P(z,x)]

  1. 所以对DDPM来说:

log ⁡ P θ ( x ) ≥ E q ( x 1 : x T ∣ x 0 ) [ log ⁡ P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ] \log P_\theta(x) \ge E_{q(x_1:x_T|x_0)}[\log \frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}] logPθ(x)≥Eq(x1:xT∣x0)[logq(x1:xT∣x0)P(x0:xT)]

  1. 结合正态分布的可加性:做N次独立的正态sampling,可能通过一次的sampling就能解决。
  1. 对式3不断变换,最后可得(这个式子的过程可以不用看,也并不复杂,但是麻烦,理解结论就好):

然后再经过一系列的运算求出来 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1|x_t,x_0}) q(xt−1∣xt,x0)依然是高斯分布,表示首尾 x 0 , x T x_0,x_T x0,xT固定住,产生 x t − 1 x_{t-1} xt−1的概率,是一个和network无关的分布。而 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt−1∣xt)是由网络决定的,我们不考虑它的variance,只考虑mean。如果我们希望这两个分布越接近越好,那就想办法让两个分布的mean越接近越好。

化简:

实际需要预测出的部分:

4 为什么推理时要额外加入noise

李宏毅老师的一点Guess,生成式任务,概率最大的结果,未必就是最好的结果。人写的文章用词可能更suprising。


5 一些不知道对不对的Summary

  • 希望近似 P d a t a ( x ) P_{data}(x) Pdata(x)和 P θ ( x ) P_\theta(x) Pθ(x)的分布,而对给定的 x x x,使 P θ ( x ) P_\theta(x) Pθ(x)最大化可以转换为使其下界最大化,从而转换为使 E q ( x 1 : x T ∣ x 0 ) [ log ⁡ P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ] E_{q(x_1:x_T|x_0)}[\log \frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}] Eq(x1:xT∣x0)[logq(x1:xT∣x0)P(x0:xT)]最大化。

  • 在假设 x t = β t x t − 1 + 1 − β t z t − 1 x_t=\sqrt{\beta_t}x_{t-1}+\sqrt{1-\beta_t}z_{t-1} xt=βt xt−1+1−βt zt−1的前提下,可以推出 x t = α t ˉ x 0 + 1 − α t ˉ z x_t=\sqrt{\bar{\alpha_t}}x_{0}+\sqrt{1-\bar{\alpha_t}}z xt=αtˉ x0+1−αtˉ z

  • 从而可以进一步化简 E q ( x 1 : x T ∣ x 0 ) [ log ⁡ P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ] E_{q(x_1:x_T|x_0)}[\log \frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}] Eq(x1:xT∣x0)[logq(x1:xT∣x0)P(x0:xT)]为三项,其余两项与Network无关,可只考虑中间一项,该项由 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1|x_t,x_0}) q(xt−1∣xt,x0)和 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt−1∣xt)的KL散度之和组成,

  • q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)表示首尾 x 0 , x T x_0,x_T x0,xT固定住产生 x t − 1 x_{t-1} xt−1的概率,可求得是一个和network无关的高斯分布,均值可以表示为:

  • 而 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt−1∣xt)是由网络决定的,我们不考虑它的variance,只考虑mean。

  • 如果我们希望这两个分布越接近越好,那就想办法让两个分布的mean越接近越好。而上式中,仅有 ϵ \epsilon ϵ需要确定,因此我们希望网络能够预测这个值,从而完成推理。预测出这一项 ϵ \epsilon ϵ的过程,可以看作为从 x 0 x_0 x0和 x t x_t xt预测出 x t − 1 x_{t-1} xt−1的过程。

相关推荐
说私域1 分钟前
基于开源 AI 智能名片 S2B2C 商城小程序的视频号交易小程序优化研究
人工智能·小程序·零售
YRr YRr1 分钟前
深度学习:Transformer Decoder详解
人工智能·深度学习·transformer
知来者逆6 分钟前
研究大语言模型在心理保健智能顾问的有效性和挑战
人工智能·神经网络·机器学习·语言模型·自然语言处理
云起无垠16 分钟前
技术分享 | 大语言模型赋能软件测试:开启智能软件安全新时代
人工智能·安全·语言模型
老艾的AI世界29 分钟前
新一代AI换脸更自然,DeepLiveCam下载介绍(可直播)
图像处理·人工智能·深度学习·神经网络·目标检测·机器学习·ai换脸·视频换脸·直播换脸·图片换脸
幸运超级加倍~35 分钟前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
翔云API1 小时前
PHP静默活体识别API接口应用场景与集成方案
人工智能
浊酒南街1 小时前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.9-4.10
人工智能·深度学习·神经网络·cnn
Tony聊跨境1 小时前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
懒惰才能让科技进步1 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝