当前位置:   article > 正文

卑微且强大的Gumbel分布

gumbel

GAN从诞生开始,广泛应用于计算机视觉领域,并取得了巨大地成功,相比而言,GAN在NLP领域的应用还是相对较少,这是因为GAN对离散型数据序列的处理显得无能为力,从离散分布中采样的数据时不可导的,在使用梯度下降算法时,无法正常更新模型中参数,Gumbel-softmax分布成功地使GAN摆脱了这个困境,为GAN在NLP领域地发展奠定了基础。文本数据是离散数据,可以使用one-hot编码来进行表示,可对softmax函数的输出(其输出接近于one-hot编码)进行采样,选取最大概率对应的词作为生成词,但是,这种采样过程是不可微的,无法通过反向传播梯度,于是采用Gumbel-softmax,并对其采用可以得到一个可微的近似值。
因此本文将对Gumbel分布、Gumbel-max以及Gumbel-softmax进行总结。

Gumbel分布:

p ( x ) = 1 β e x p ( − z − e x p [ − z ] ) p(x)=\dfrac{1}{\beta}exp(-z-exp[-z]) p(x)=β1exp(zexp[z])

其中 z = x − μ β z=\dfrac{x-\mu}{\beta} z=βxμ

Gumbel分布通常用于对一组独立样本地最大值进行建模。假设您对冰淇淋的饥饿感呈正态分布,平均值为 5/10。你每天记录你的饥饿 100 次,持续 10,000 天。(我们还假设您的饥饿感非常不稳定,以至于所有样本都是独立的。)您记下您每天经历的最大饥饿感。然后,每日最大饥饿值的分布将遵循 Gumbel 分布。

Gumber Trick

Gumber Trick用于从离散分布中进行随机采样,可以采用对一个可微分的分布取样来近似从离散分布中取样,
Gumber-softmax所得到的概率向量是近似的样本,Gumber-softmax得到的概率向量与真实样本的相似度就由 τ \tau τ的大小决定,当 τ \tau τ越小,其相似度越高,当 τ \tau τ越大,就接近于n-class的均匀分布,常用于需要对离散分布进行采样,而且还希望采样是可导的;
在这里插入图片描述
softmax得到的概率分布是样本的均值(也就是取概率最大的词)此时的均值与真实样本的差距一般都比较大

reparameterization trick :常参数本质是希望将带训练参数从分布转移到样本之中,这样求参数的梯度就可以通过对样本求梯度来完成。常用于处理如下目标函数的期望:
L θ = E z ∼ p θ ( z ) [ f ( z ) ] L_{\theta}=E_{z\sim p_{\theta}(z)}[f(z)] Lθ=Ezpθ(z)[f(z)]
此时z可能服从连续分布,也可能服从离散分布,上式的期望求解可以分为如下两种:
连 续 情 况 : L θ = ∫ p θ ( z ) f ( z ) d z 连续情况:L_{\theta}=\int p_{\theta}(z)f(z)dz Lθ=pθ(z)f(z)dz
离 散 情 况 : L θ = ∑ z p θ ( z ) f ( z ) 离散情况:L_{\theta}=\sum_z p_{\theta}(z)f(z) Lθ=zpθ(z)f(z)
连续情况: 为了最小化期望 L θ L_{\theta} Lθ,则需要求出其积分值,精确地计算出期望值是难以实现,则会使用采样的方式,在采样的过程中还需要保留 θ \theta θ的信息(即,梯度),直接的采样将会失去 θ \theta θ信息(例:如分布 p θ p_\theta pθ中直接采样得到5,此时是无法知道5与 θ \theta θ之间的关系,也就更无法计算出梯度值),此时就需要使用到reparameterization trick

具体步骤:

  • step1:从与 θ \theta θ参数无关的分布中直接采样,例:从分布 q ϵ ( x ) q_\epsilon(x) qϵ(x)中采样得到 x x x
  • step2:然后使用含 θ \theta θ参数的函数 g θ ( x ) g_\theta(x) gθ(x)将从 q ϵ ( x ) q_\epsilon(x) qϵ(x)中采样得到 x x x转化成 z z z
    L θ = E x ∼ q ϵ ( x ) [ f ( g θ ( x ) ) ] L_{\theta}=E_{x\sim q_{\epsilon}(x)}[f(g_\theta(x))] Lθ=Exqϵ(x)[f(gθ(x))]
    通过重参数转化后,就可以直接在 q ϵ ( x ) q_{\epsilon}(x) qϵ(x)上进行采样(例:加入从 q ϵ ( x ) q_{\epsilon}(x) qϵ(x)中直接采样得到了0.2,然后带入 g θ ( x ) g_{\theta}(x) gθ(x)中得到5,这样就知道5与参数 θ \theta θ的关系,就可以正常地求出梯度)

离散情况 z z z服从离散分布,其值是有限的,此时 p θ ( z ) p_\theta(z) pθ(z)就相当于一个 k k k分类
p θ ( z ) = s o f t m a x ( o 1 , o 2 , . . . , o k ) p_\theta(z)=softmax(o_1,o_2,...,o_k) pθ(z)=softmax(o1,o2,...,ok)
对于离散情况下,期望 L θ L_\theta Lθ的计算就是对有限项进行求和,在使用GAN生成文本任务中,词典大小为 ∣ V ∣ |V| V,句子的长度为 l l l,则所有句子的数量就有 ∣ V ∣ l |V|^l Vl个,这种情况下,进行求和操作是相当困难的,此时就需要使用采样来有效地估计出期望 L θ L_\theta Lθ
Gumbel Max:提供了从类别分布中进行采样
在这里插入图片描述
证明:Gumbel Max输出值为 i i i的概率是 p i p_i pi,可证输出1的概率是 p 1 p_1 p1
在这里插入图片描述
其中argmax是不可导的,则梯度信息会消失,于是就采用softmax来光滑近似argmax,也就是Gumbel softmax
在这里插入图片描述
τ > 0 \tau>0 τ>0则为退火参数,其值越小,输出的结果就越接近one-hot,此时梯度消失就越严重,Gumbel softmax比Gumbel max更加地光滑,原始的softmax退火后只能到达最大位置为1的one-hot向量,Gumbel softmax也有可能达到非最大位置的one-hot向量,相比于原始softmax,Gumber softmax更由随机性,采样后的数据有助于模型进行训练。

参考:

gumbel分布
重参数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/78601
推荐阅读
  

闽ICP备14008679号