cs224n-naive-softmax-的推导与实现
0、简介
在cs224n(2019)第二次课后作业Assignment 2的手写作业b(推导梯度公式)和编程作业a中对naive softmax的实现。首先手写作业的推导公式,编程作业则是对这些公式的简单实现
1、公式推出
首先看下背景和问题
首先问题a中已经证明了 损失函数 J = C r o s s E n t r o p y ( y , y ^ ) J = CrossEntropy(y, \hat{y}) J=CrossEntropy(y,y^),而且有 y ^ = s o f t m a x ( U T v c ) \hat{y}=softmax(U^Tv_c) y^=softmax(UTvc), 不妨用 θ = U t v c \theta=U^tv_c θ=Utvc,现在有 y ^ = s o f t m a x ( θ ) \hat{y}=softmax(\theta) y^=softmax(θ), 然后用chain rule推导J关于vc的偏导数。
关 于 的 求 导 如 下 : 由 以 上 的 导 数 可 推 : 由 链 式 法 则 : J = − y log y ^ ; ∂ J ∂ y ^ = − y y ^ y