问题是:
对于使用Sigmoid作为输入->隐藏,softmax用于隐藏->输出的单个隐藏层神经网络,得出具有相对熵损失的输入层的梯度。
我可以使用链式规则来完成大部分推导,但是我不确定如何将它们实际“链式”在一起。
定义一些符号
r=xW1+b1
h=σ(r),是S型函数σ
θ=hW2+b2,
y^=S(θ),是softmax函数S
J(y^)=∑iy日志y^一世,是实标号单热向量ÿ
然后根据链式规则
∂Ĵ∂X= ∂Ĵ∂θ·&∂&θ∂H·&∂&H∂[R·&∂&[R∂X
各个渐变为:
∂&θ
∂Ĵ∂θ= (y^− y )
∂ħ∂θ∂H= ∂∂H[ h W2+ b2] = WŤ2
∂ř∂H∂[R= ħ ⋅ (1 - H ^ )
∂[R∂X= ∂∂X[ X w ^1个+ b1个] = WŤ1个
现在,我们必须将定义链接在一起。在单变量中,这很容易,我们只需将所有内容相乘即可。在向量中,我不确定是否要使用逐元素乘法或矩阵乘法。
∂Ĵ∂X= (y^− y ) * WŤ2⋅ [ ħ ⋅ (1 - ħ)]∗WT1个
其中是向量的逐元素乘法,而是矩阵乘法。这种操作组合是我似乎将它们串在一起以获得维向量的唯一方法,我知道是必须的。⋅∗1 ⋅ dX∂Ĵ∂X
我的问题是:我找出要使用的运算符的原则方法是什么?我对和之间的元素方式的需求感到特别困惑。WT2h
谢谢!