论文《Continual Unsupervised Representation Learning》解读

这篇论文提出了他们的表示学习的模型,即CURL(Continual Unsupervised Representation Learning)。这个模型包含以下三大部分,推断任务。动态拓展,混合生成回放。

推断任务

论文《Continual Unsupervised Representation Learning》解读_第1张图片

在上图中,x是输入到数据,经过共享层的编码,将数据进行处理。其中,经过softmax,根据 q ( y ∣ x ) q(y|x) q(yx)确定输入的数据属于哪个任务。此外,经过特定组件的编码获得这个任务对应的高斯参数即 μ z ( y ) 、 σ z ( y ) \mu_z(y)、\sigma_z(y) μz(y)σz(y),高斯参数确定后即可确定潜在变量 z z z的表示,然后对z通过解码器输出重构后的 x x x x ′ x^{'} x

关于这块如何将 x x x z z z,可参照源码:在reparameterize函数中,可以看到 z z z被在期望与方差的作用下被编码。

论文《Continual Unsupervised Representation Learning》解读_第2张图片

上面模型的loss公式为:

论文《Continual Unsupervised Representation Learning》解读_第3张图片

对于给定的数据点,模型可以选择高熵的 q ( y ∣ x ) q(y|x) q(yx),在这种情况下,所有的组件损失必须是低的,或者为某个 k k k指定高 q ( y = k ∣ x ) q(y = k|x) q(y=kx),并使用该组件对数据进行建模。通过利用输入数据的多样性,该模型可以学会对数据中不同的离散结构(例如类)使用不同的组件。

在上图中, y y y代表当前的任务, z z z代表针对 y y y生成的特定任务参数的分布。 z z z会在解码器中解码再生成 x ′ x^{'} x

动态拓展

在这一部分,模型会维护一些差建模的样本即无法良好提取特征的 x x x,当样本集(任务集)大小达到临界值时,则初始化新的组件到上图Figure 2中。那么何时创建新的组件呢,在CURL模型中,主要通过阈值来控制新组件的创建。即:存在一个集合 D n e w D_{new} Dnew,当任意一个带有对数极大似然值小于 c n e w c_{new} cnew的样本,都添加到 D n e w D_{new} Dnew,当 D n e w D_{new} Dnew中的样本数达到 N n e w N_{new} Nnew,我们就创建新组件,每个组件对应一个概念(或者说一种类型的任务)。这个组件的各个参数的赋值如下,即将既有的组件中能够与 D n e w D_{new} Dnew中样本集既有的任务满足近似条件概率之和最大:

直观的说,就是新的组件(概念/任务类型)与既有的组件(概念/任务类型)关联尽可能大。也就是循序渐进的插入新的不同的组件。

混合生成回放

为了对抗灾难性遗忘,本模型提出了混合生成回放。这个方法的的思想是交替的将真实数据 x d a t a ∈ D x_{data} \in D xdataD与生成数据 x g e n x_{gen} xgen(这种数据是基于先前的模型快照生成的)交替的用于训练。为了充分利用此前的信息,模型会保持一个count,这个count由此前的组件使用情况所决定,这将有利于使用的最频繁的组件,这个过程称为混合生成回放。

你可能感兴趣的:(论文阅读)