自然语言处理:重要采样的梯度推导

对于《Deep Learning》一书中12.4.3.3节,公式(12.13)至(12.16)的详细推导过程。
加速神经语言模型训练的一种方式是,避免明确的计算所有未出现在下一位置的词对梯度的贡献。每个不正确的词在此模型下具有低概率。枚举所有这些词的计算成本可能会很高。相反,我们可以仅采样词的子集,梯度的推导过程如下:
∂ l o g P ( y ∣ C ) ∂ θ = ∂ l o g   s o f t m a x y ( a ) ∂ θ = ∂ ∂ θ l o g e a y ∑ i e a i = ∂ ∂ θ ( a y − l o g ∑ i e a i ) = ∂ a y ∂ θ − ∂ ∂ θ l o g ∑ i e a i = ∂ a y ∂ θ − 1 ∑ j e a j ∂ ∂ θ ∑ i e a i = ∂ a y ∂ θ − 1 ∑ j e a j ∑ i ∂ e a i ∂ θ = ∂ a y ∂ θ − 1 ∑ j e a j ∑ i e a i ∂ a i ∂ θ = ∂ a y ∂ θ − ∑ i e a i ∑ j e a j ∂ a i ∂ θ = ∂ a y ∂ θ − ∑ i P ( y = i ∣ C ) ∂ a i ∂ θ \begin {aligned} \frac{\partial {\rm log}P(y|C)}{\partial \theta} &= \frac{\partial {\rm log\ softmax}_y(a) }{\partial \theta} \\ &= \frac{\partial}{\partial \theta} {\rm log} \frac{e^{a_y}}{\sum_i{e^{a_i}}}\\ &= \frac{\partial}{\partial \theta}(a_y - {\rm log}\sum_i{e^{a_i}}) \\ &=\frac{\partial a_y}{\partial \theta} -\frac{\partial}{\partial \theta}{\rm log} \sum_i{e^{a_i}}\\ &=\frac{\partial a_y}{\partial \theta} - \frac{1}{\sum_j{e^{a_j}}}\frac{\partial}{\partial \theta}\sum_i{e^{a_i}}\\ &= \frac{\partial a_y}{\partial\theta} - \frac{1}{\sum_j{e^{a_j}}} \sum_i\frac{\partial e^{a_i}}{\partial \theta}\\ &= \frac{\partial a_y}{\partial\theta} - \frac{1}{\sum_j{e^{a_j}}} \sum_i{e^{a_i}}\frac{\partial a_i}{\partial \theta}\\ &= \frac{\partial a_y}{\partial\theta} - \sum_i\frac{e^{a_i}}{\sum_j{e^{a_j}}} \frac{\partial a_i}{\partial \theta}\\ &= \frac{\partial a_y}{\partial\theta} - \sum_i P(y=i|C) \frac{\partial a_i}{\partial \theta} \end {aligned} θlogP(yC)=θlog softmaxy(a)=θlogieaieay=θ(aylogieai)=θayθlogieai=θayjeaj1θieai=θayjeaj1iθeai=θayjeaj1ieaiθai=θayijeajeaiθai=θayiP(y=iC)θai
本文内容编辑:郑杜磊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值