扩散模型学习

第一章

1.1

的原理

给定一批训练数据X,假设其服从某种复杂的真实 分布p(x),则给定的训练数据可视为从该分布中采样的观测样本x。

生成模型就是估计训练数据的真实分布,使得估计的分布q(x)和真实分布p(x)差距尽可能能的小。

使得所有训练数据样本采样自q(x)的概率最大。

DDPM假设扩散过程是马尔可夫过程(即每一个时间步状态的概率分布仅由上一个时间步状态的概率分布加上当前时间步的高斯噪声得到),以及假设扩散过程的逆过程是高斯分布等

DDPM推导见DDPM推导.pdf

1.2 扩散模型的发展

论 文 “Score-Based Generative Modeling through Stochastic Differential Equations”证明了DDPM的采样过程是更普遍的随机微分方程,因此只要能够更离散化地求解该随机微分方程,就可以将1000步的采样过程缩减至50步、20步甚至更少的步数。

扩散模型学习_第1张图片

很多基于现有的扩散模型进行“再学习”的技术自然而然地涌现,这也使得个人在消费级显卡上训练自己的扩散模型成为可能。

DreamBooth可以实现使用现有模型再学习到指定主体图像的功 能,只要通过少量训练将主体绑定到唯一的文本标识符后,就可以通过输入文本提示语来控制自己的主体以生成不同的图像。

扩散模型学习_第2张图片

LoRA可以实现使用现有模型再学习到自己指定数据集风格或人物 的功能,并且还能够将其融入现有的图像生成中。

ControlNet可以再学习到更多模态的信息,并利用分割图、边缘 图等功能更精细地控制图像的生成。

1.3 扩散模型的应用
1.3.1 计算机视觉
  • 图像分割与目标检测
    Meta AI 的SegDiff分割扩散模型可以生成分割Mask图(如图1-14所示),检测扩散模型DiffusionDet同样可以端到端地从随机矩形框逐步生成检测框(如图1-15所示)。
    不过,扩散模型仍然存在生成速度慢的问题,在应用于一些需要实时检测的场景时还需继续优化。

扩散模型学习_第3张图片

  • 图像超分辨率
    图像超分辨率是一项能够将低分辨率图像重建 为高分辨率图像,同时保证图像布局连贯的技术。
    CDM(Cascaded Diffusion Model,级联扩散模型)通过采用串联多个扩散模型的方 式,分级式地逐步放大分辨率,实现了图像超分辨率。
    扩散模型学习_第4张图片

  • 图像修复、图像翻译和图像编辑

图像修复、图像翻译和图像编辑是对图像的部分或全部区域执行的操作,包括缺失部分修补、风 格迁移、内容替换等。Palette是一个集成了图像修复、图像翻译和图像编辑等功能的扩散模型,它可以在一个模型中完成不同的图像级任务。

扩散模型学习_第5张图片

1.3.2 时序数据预测

时序数据预测旨在根据历史观测数据预测未来可能出现的数据。
TimeGrad是首个在多元概率时序数据预测任务中加入扩散思想 的自回归模型。
为了将扩散过程添加到历史数据中,TimeGrad首先 使用RNN(Recurrent Neural Network,循环神经网络)处理历史 数据并保存到隐空间中,然后对历史数据添加噪声以实现扩散过程, 由此处理数千维度的多元数据并完成预测任务。

扩散模型学习_第6张图片

1.3.3 自然语言

只要将自然语言类的句子分词并转换为词向量之后,就可以通过扩散的方法来学 习自然语言的语句生成,进而完成自然语言领域一些更复杂的任务, 如语言翻译、问答对话、搜索补全、情感分析、文章续写等。
Diffusion-LM是首个将扩散模型应用到自然语言领域的扩散语言模型。该模型旨在解决如何将连续的扩散过程应用到离散的非连续化文本的问题,由此实现语言类的高细粒度可控生成。

1.3.4 基于文本的多模态
  • 文本生成图像
    文本生成图像是扩散模型最流行、最成熟的应 用,输入文本提示语或仅仅输入几个词,扩散模型就能根据文字描述 生成对应的图片。
    DALLE-2、Imagen以及完全开源的Stable Diffusion
  • 文本生成视频
    文本生成视频扩散模型能够将输入的文本提示语转换为相应的视频流。
    不同的是,视频的前 后帧需要保持极佳的连贯性。
    Meta AI的Make-A-Video以及能够精细控制视频 生成的ControlNet Video。
  • 文本生成3D
    3D物体的表征有多种方式,如 点云、网格、NeRF等。
    DiffRF提出了通过扩散的方法实现从文本生成3D辐射场的扩散模型,3DFuse实现了基于二维图像生成对应的3D点云。
1.3.5 AI基础科学

SMCDiff创建了一种扩散模型,该扩散模型可以根据给定的模体结构生成多样化的支架蛋白质。
CDVAE则提出了一种扩散晶体变分自编码器模 型,旨在生成和优化具有固定周期性原子结构的材料。

第二章

Gradio是一个开源的Python库,由Hugging Face推出,用于构建机器学习和数据科学演示以及Web应用。
借助Gradio,你可以快速 为机器学习模型或数据科学工作流创建美观的用户界面,让用户能够 通过浏览器拖放自己的图片、粘贴文本、录制自己的声音并与你的演 示互动。交互式应用。
扩散模型学习_第7张图片

  • 使用pip安装Gradio

  • 以经典的“Hello World!”程序为例,输入代码。
    扩散模型学习_第8张图片

  • 使用gradio命令运行Gradio应用脚本
    扩散模型学习_第9张图片

“Hello World!”程序代码,可以看出,我们 调用了gr.Interface接口。
fn:目标函数的名称(我们将要为该目标函数创建用户界 面)。
inputs:用于输入的组件(如"text" “image"或"audio”)。
outputs:用于输出的组件(如"text" “image"或"label”)。

你可能感兴趣的:(扩散模型,学习,计算机视觉,机器学习)