扩散模型是一种生成式机器学习方法,它通过逐步去除随机信号中的噪声来创建数据。其核心组成部分是前向过程、反向过程和一个经过训练用于估计噪声的神经网络。这些组件协同工作,通过迭代细化将随机噪声转换为结构化数据,例如图像或音频。让我们分解一下。
前向过程系统地在多个步骤中向输入数据添加噪声。例如,如果输入是图像,则每个步骤根据预定义的计划应用少量高斯噪声。该计划确定每个步骤添加多少噪声,通常遵循线性或余弦模式。结果是原始数据的一系列噪声越来越大的版本,最终变成纯噪声。此过程是固定的且不可训练,用作破坏数据的预定义路径。这里的一个关键参数是噪声计划,它平衡了损坏率并影响训练稳定性。
反向过程是模型尝试撤消前向过程。从随机噪声开始,模型迭代地去除每个步骤中估计的噪声,以重建原始数据。这就是神经网络(通常是 U-Net)发挥作用的地方。该网络经过训练以预测前向过程中每个步骤添加的噪声。例如,给定一个嘈杂的图像和一个时间步(指示已添加了多少噪声),网络会输出噪声的估计值。此预测与实际噪声之间的差异用作训练损失。在推理过程中,模型使用这些预测通过多次迭代逐步对数据进行去噪,通常需要 50-100 个步骤才能生成高质量的输出。
实际实现涉及平衡速度和质量。开发人员通常会调整噪声计划、网络架构或采样方法(例如,DDIM)以减少推理步骤,而不会牺牲结果。例如,使用具有残差连接和注意力层的 U-Net 可以提高噪声预测精度,而像无分类器指导这样的技术可以增强对输出的控制。了解这些组件有助于开发人员优化扩散模型,以用于图像生成、图像修复或音频合成等任务。