ControlNet:Adding Conditional Control to Text-to-Image Diffusion Models
初衷是解决数据有限情况下,图像作为粗粒度来扩充模型的能力。属于
微调神经网络即模型fintune技术范畴。零卷积可以让网络确保训练开始时,控制信号不影响生成模型的输出以及可以让网络通过训练逐步学习控制信号的作用。
微调神经网络的一种方法是直接用额外的训练数据继续训练它。但这种方法可能会导致过拟合、模式崩溃和灾难性的遗忘。广泛的研究集中在制定避免微调策略的问题。常见的技术有:HyperNetwork、Adapter、Additive Learning、LoRA,以及本文用到的“零卷积”。
【HyperNetwork】:目的是训练一个小的递归神经网络来影响一个较大的权重;
【Adapter】:通过在扩散模型中嵌入新的模块层,定制预先训练好的变压器模型到其他任务。
【Additive Learning】:加性学习通过冻结原始模型的权值和使用学习到的权重掩模、剪枝或硬注意添加少量新参数来规避遗忘。
【LoRA】 (Low-Rank Adaptation) 微调是一种用于在预训练模型上进行高效微调的技术。它可以通过高效且灵活的方式实现模型的个性化调整,使其能够适应特定的任务或领域,同时保持良好的泛化能力和较低的资源消耗。这对于推动大规模预训练模型的实际应用至关重要。低秩自适应(LoRA)通过学习低秩矩阵下的参数偏移量来防止灾难性遗忘,这是基于许多过参数化模型存在于低内在维子空间中的观察。LoRA通过在预训练模型的关键层中添加低秩矩阵来实现。这些低秩矩阵通常被设计成具有较低维度的参数空间,这样它们就可以在不改变模型整体结构的情况下进行微调。在训练过程中,只有这些新增的低秩矩阵被更新,而原始模型的大部分权重保持不变。
【零卷积】神经结构与“零卷积”(零初始化的卷积层)相连,它使参数从零逐步增长,并确保没有有害的噪声会影响微调。对数据有限的大型预训练模型进行直接微调或持续训练,可能会导致过拟合和灾难性遗忘.研究人员已经表明,这种遗忘可以通过限制可训练参数的数量或等级来缓解(lora)。本文提出了一种控制网络,一种端到端神经网络架构,用于为大型预训练的文本到图像扩散模型学习条件控制。ControlNet通过锁定其参数,并制作其编码层的可训练副本,从而保持了大型模型的质量和能力。该体系结构将大型预训练模型视为学习不同条件控制的强大主干。
【为什么通过零卷积来连接1】Zero-Initialized Layers微调,可训练的副本和原始的锁定模型通过零卷积层连接,权值初始化为零,使它们在训练过程中逐渐增长。这种体系结构确保了在训练开始时不会将有害的噪声添加到大扩散模型的深层特征中,并保护了可训练副本中的大规模预训练主干不受这种噪声的破坏。同时因为刚开始,可训练的模型的输入依然为x,使得本来就是通过x训练得到的网络可以继续学习。
【为什么使用零卷积来连接2】零卷积层可以帮助控制网络中的参数,并产生控制信号,以调整网络行为。 它们不涉及通常与卷积相关的高度可变性的权重,因此不需要对任务进行复杂的特征提取。 这使得零卷积层在控制任务中具有优势,并且在控制应用中通常比传统的卷积层更有效。
【为什么随机使用空字符串作为条件输入】在训练过程中,我们随机用空字符串替换50%的文本提示。这种方法增加了控制网直接识别输入条件反射图像中的语义的能力(例如,边缘、姿态、深度等)。
【为什么不是逐渐收敛学习控制条件,而是突然好了】在训练过程中,由于零卷积不会给网络增加噪声,因此模型应该始终能够预测高质量的图像。我们观察到,该模型并没有逐渐学习控制条件,而是突然成功地跟随输入条件图像;通常在不到10K的优化步骤。如图4所示,我们称之为“突然收敛现象”。
问:如果卷积层的权重为零,梯度也将为零,网络将不会学到任何东西,为什么“零卷积”有效?
答:由于卷积核w初始化为零,反向传播时虽然 W对输出没有直接影响,但它的梯度会随着反向传播的过程通过输入 x 计算出来。
【为什么采用CFG】Classifier-free diffusion guidance 可以显著提高样本生成质量。
【零卷积的意义总结】
保持初期训练的稳定性、渐进式学习、反向传播学习
在ControlNet中,一些卷积层的连接可能会初始化为零,这可能看起来很奇怪,因为通常我们认为初始化为零会导致梯度消失或训练失败。然而,在ControlNet中,这样的初始化是有特殊意义的,并且实际上能够在训练过程中有效地学习。要理解为什么这可以工作,我们需要了解一下背景和训练机制。
确保训练开始时,控制信号不影响生成模型的输出:将卷积层初始化为零,实际上是在网络训练的初期,保持这些控制信号对模型输出的影响为零。也就是说,在网络的开始阶段,模型本身(如原始的生成模型)可以自由地生成图像,而不会立即受到控制信号的干扰。这对于模型的稳定性非常重要。通过这样初始化,生成模型的先验知识(例如在没有控制信号的情况下如何生成图像)可以在没有外部控制的影响下训练和优化。这样,生成器首先学习到如何生成图像,再通过控制信号逐步引导生成过程
通过训练逐步学习控制信号的作用:初始化为零的卷积层在训练开始时没有作用,但随着训练的进行,模型会根据训练数据中的目标(例如条件图像或目标任务)逐步调整这些卷积层的权重,使得控制信号能够正确地引导生成过程。
这种策略有助于控制信号和生成模型的逐步融合。通过这种方式,控制信号的影响是渐进式的,训练过程中卷积层的权重会逐渐从零开始调整,最终学习到如何利用这些控制信号来改变图像的生成过程。
通过反向传播学习控制信号:初始化为零的卷积层并不意味着它们在训练过程中不能学习。通过反向传播,梯度会传递到这些卷积层,逐渐更新它们的权重。随着训练的进行,这些卷积层会根据训练数据和目标逐渐调整,使得控制信号能够在生成过程中发挥作用。
换句话说,虽然控制信号最初没有影响,但在反向传播和优化过程中,卷积层的权重会根据损失函数调整,最终学会如何使用控制信号来影响生成图像。
领取专属 10元无门槛券
私享最新 技术干货