趋近智
自回归 (autoregressive)模型按顺序处理数据。这导致了计算瓶颈。虽然它们可以高效地评估概率密度,但生成新样本需要等待前面的元素计算完成。仿射耦合层解决了这种结构限制。通过对输入进行分割,这些层能够实现前向和反向的并行化操作,使其在密度估计和数据生成方面效率极高。
仿射耦合层将输入张量 分为两个部分: 和 。第一部分 完全不加修改地通过该层。然后,该层使用这些未改变的数据来确定如何对第二部分 进行缩放和平移。
设 为输入数据 的维度,设 为分割发生的索引,满足 。分割产生 和 。产生输出 的前向变换使用以下操作:
这里, 表示逐元素相乘。函数 和 表示缩放和平移操作。这些函数通常由神经网络 (neural network)实现。缩放网络 的输出经过指数运算,以确保缩放因子保持严格为正,这是数值稳定性和可逆性的要求。
仿射耦合层在前向传递过程中的数据流。
当你反转变换时,这种架构的实际优势就变得显而易见。由于 与 相同,你可以立即使用 来重新计算完全相同的缩放和平移因子。你不需要求神经网络 和 的逆来恢复原始输入。
这一数学特性非常有利。它允许神经网络 和 根据需要设计得尽可能复杂。你可以集成深层残差网络、注意力机制 (attention mechanism)或稠密卷积层。只要这些网络接受维度为 的输入并产生维度为 的输出,整个仿射耦合层在分析上就保持完美可逆。
在规范化流中,计算准确的概率密度需要计算雅可比矩阵(Jacobian matrix)的行列式。对于仿射耦合层,雅可比矩阵 表示输出相对于输入的偏导数。
我们可以根据前向传递方程来分析这四个具体的块。
左上角的块是 对 的导数。由于 ,其结果为一个单位矩阵 。
右上角的块是 对 的导数。因为 完全不依赖于 ,所以其结果为一个零矩阵 。
左下角的块是 对 的导数。这包含了神经网络 和 的复杂导数。为了计算行列式,我们将这个稠密矩阵块简单地记为 。
右下角的块是 对 的导数。由于 ,对 的导数分离出了缩放因子。这将产生一个包含缩放输出指数值的对角矩阵,记为 。
代入这些评估后的块,就得到了雅可比矩阵的完整结构。
由于右上角的块严格为零,雅可比矩阵构成了一个块下三角矩阵。线性代数的一个基本规则规定,任何三角矩阵的行列式仅仅是其主对角线上元素的乘积。块 中包含的复杂偏导数不会影响行列式。
为了计算变量替换公式所需的雅可比行列式对数,我们对这些对角线元素的自然对数求和。
这种运算在计算上非常简单。你只需要对缩放网络的输出向量 (vector)求和。不需要昂贵的矩阵分解或迭代近似,这使得密度估计变得极快。
单个仿射耦合层总是保持 不变。如果一个模型仅由相同的耦合层组成,它将永远无法学习如何变换数据分布的第一部分。为了构建有效的生成模型,必须堆叠多个仿射耦合层并交替分割策略。
在第一层中,索引从 1 到 的元素可能充当 。在随后的层中,索引从 到 的元素将充当 。这种交替模式确保了输入向量的所有维度最终都能得到变换。为这种交替实现特定的掩码策略,是现代架构扩展到高维图像数据的方式。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•