【flow-based model [二]】 Block Neural Autoregressive Flow

一、论文信息

1 标题

Block Neural Autoregressive Flow

2 作者

Nicola De Cao, Wilker Aziz, Ivan Titov

3 研究机构

University of Edinburgh, University of Amsterdam

二、主要内容

本文提出了一种新型的归一化流(Normalizing Flows, NFs),称为块神经自回归流(Block Neural Autoregressive Flow, B-NAF),这是一种用于密度函数的通用逼近器。B-NAF通过直接使用单个前馈网络来建模双密度函数之间的可逆变换,并通过精心设计的仿射变换来确保流的自回归性和(严格)单调性。与神经自回归流(Neural Autoregressive Flow, NAF)相比,B-NAF在参数数量上大幅减少,同时保持了竞争力。

三、相关研究

相关研究包括归一化流(NFs)的设计,特别是自回归流(AFs)和逆自回归流(IAFs)。此外,还有神经自回归流(NAF)的研究,它通过学习双射来实现AFs的变换。其他相关工作还包括用于密度估计的MADE网络,以及用于变分推断的连续归一化流(CNF)和FFJORD。

四、解决方案

B-NAF通过使用块矩阵来组织密集层的权重矩阵,独立地转换变量子集,并约束这些块以保证自回归性和单调性。这种方法使得B-NAF在保持通用逼近器特性的同时,大大减少了参数数量。
第四段中提到的解决方案主要涉及了块神经自回归流(B-NAF)的设计和实现。B-NAF的核心思想是通过构建一个自回归的神经网络来逼近复杂的密度函数,同时保持模型的可逆性和参数的高效性。具体方法和公式如下:

  1. 自回归性(Autoregressive):为了确保流的自回归性,B-NAF使用了一个特殊的权重矩阵W,它是一个下三角块矩阵。这个矩阵的构造方式是,对于每个变量xi,都有一个对应的权重块Bii,这些块通过一个元素级的函数g(例如指数函数exp)映射到正实数空间。这样,每个变量xi的变换只依赖于它之前的变量xj(j < i),从而实现了自回归性。

    权重矩阵W的构造公式如下:
    W = [ g ( B 11 ) 0 ⋯ 0 B 21 g ( B 22 ) ⋯ 0 ⋮ ⋮ ⋱ ⋮ B d 1 B d 2 ⋯ g ( B d d ) ] W = \begin{bmatrix} g(B_{11}) & 0 & \cdots & 0 \\ B_{21} & g(B_{22}) & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ B_{d1} & B_{d2} & \cdots & g(B_{dd}) \end{bmatrix} W= g(B11)B21Bd10g(B22)Bd200g(Bdd)

    其中,Bij是权重块,i和j是变量的索引,g(·)是应用到每个权重块上的元素级函数。

  2. 单调性(Monotonicity):为了确保每个变换 f ( i ) θ f(i)θ f(i)θ关于 x i x_i xi是严格单调递增的,B-NAF在权重矩阵W的对角块 B i i B_{ii} Bii上施加了正性约束。这意味着对于每个 i i i,变换 f ( i ) θ f(i)_θ f(i)θ在处理xi时是严格单调递增的,而对于 x j ( j > i ) x_j(j > i) xjj>i则没有这种约束。

  3. 参数化(Parameterization):在实践中,为了更方便地参数化W,作者使用了全矩阵KaTeX parse error: Unexpected end of input in a macro argument, expected '}' at end of input: \hat{W】,然后通过两个掩码操作来选择和转换元素。一个掩码 M d M_d Md选择对角块,另一个掩码 M o M_o Mo选择非对角和下三角块。这样,每一层的权重矩阵 W ( ℓ ) W(ℓ) W()可以通过以下公式得到:
    W ( ℓ ) = g ( W ^ ( ℓ ) ) ⊙ M ( ℓ ) d + W ^ ( ℓ ) ⊙ M ( ℓ ) o W(ℓ) = g(\hat{W}(ℓ)) \odot M(ℓ)_d + \hat{W}(ℓ) \odot M(ℓ)_o W()=g(W^())M()d+W^()M()o

    其中, ⊙ ⊙ 表示元素级乘积, M ( ℓ ) d M(ℓ)_d M()d M ( ℓ ) o M(ℓ)_o M()o分别是选择对角块和非对角块的掩码。

  4. 雅可比矩阵的计算(Jacobian Computation):为了高效计算雅可比矩阵的行列式,B-NAF利用了自回归性,使得雅可比矩阵是下三角块矩阵。这样,只需要计算对角块的元素,从而简化了计算过程。

    雅可比矩阵$J fθ(x)¥的对角元素的对数可以通过以下公式计算:
    log ⁡ ∣ J f θ ( x ) ∣ = ∑ i = 1 d log ⁡ ( J f θ ( x ) i i ) \log |Jfθ(x)| = \sum_{i=1}^{d} \log \left( Jfθ(x)_{ii} \right) logJfθ(x)=i=1dlog(Jfθ(x)ii)

    其中, J f θ ( x ) i i Jfθ(x)_{ii} Jfθ(x)ii是雅可比矩阵对角块的元素。

通过这些方法,B-NAF能够在保持模型表达能力的同时,显著减少参数数量,提高了模型的效率和可扩展性。

五、实验环节

实验包括在玩具数据集上的密度估计和密度匹配,以及在真实数据集上的密度估计。此外,还在变分自编码器(VAE)设置中测试了B-NAF的性能。实验结果表明,B-NAF在多个数据集上与现有的NFs相比具有竞争力,同时使用了更少的参数。

六、进一步探索点:

  • 获取B-NAF流的逆的闭式形式。
  • 在自然语言处理等应用中,探索具有大型解码器的深度生成模型。

七、总结

本文提出了B-NAF,这是一种新型的归一化流,用于有效和高效地逼近复杂密度函数。B-NAF通过直接参数化变换来确保自回归性和单调性,同时显著减少了参数数量。实验结果表明,B-NAF在多个任务上与现有的NFs相比具有竞争力,为未来的研究提供了新的方向。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gradient-based neural dag learning(梯度优化的神经有向无环图学习)是一种用于构建和训练神经网络结构的方法。它通过学习网络的拓扑结构,即神经网络的连接方式和层次结构,来优化网络性能。 传统的神经网络结构通常是由人工设计的,而在gradient-based neural dag learning中,网络的结构可以通过梯度下降算法进行优化。该方法的核心思想是在训练过程中不仅学习网络的权重参数,还学习网络的拓扑结构。 在gradient-based neural dag learning中,网络的结构可以表示为有向无环图(DAG),图中的节点表示网络中的层或操作,边表示连接。我们可以用一组变量来表示每个节点的状态和连接关系,通过优化这些变量,实现网络结构的优化。 具体地,gradient-based neural dag learning通过计算网络中每个操作或层对目标函数的梯度来优化变量。在梯度下降的过程中,网络的结构随着反向传播算法的迭代而逐渐优化。这种方法可以使得网络自动完成结构的搜索和选择,提高了网络的表达能力和性能。 由于gradient-based neural dag learning可以自动进行网络结构的学习和优化,它可以减轻人工设计网络结构的负担,并且在处理复杂任务时能够获得更好的性能。然而,由于网络结构的搜索空间非常大,优化过程可能会很复杂,需要大量的计算资源和时间。 总之,gradient-based neural dag learning是一种通过梯度下降优化网络结构的方法,能够自动学习和优化神经网络的拓扑结构,提高网络性能。这种方法在深度学习领域有着广泛的应用潜力,并且为网络的设计和训练带来了新的思路和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值