パラメータ使用して、クロスエントロピー損失関数の勾配を見つけることに関連する問題を処理しています。θ
CE(θ)=−∑iyi∗log(y^i)
ここで及びθ iは、ベクトル入力されます。y^i=softmax(θi)θi
また、正しいクラスのワンホットベクトルであり、yはソフトマックス関数を用いて各クラスの予測です。yy^
したがって、例えば有することができ
及びY iは = (0.10 0.20 0.10 0.40 0.20)yi=⎛⎝⎜⎜⎜⎜⎜⎜00010⎞⎠⎟⎟⎟⎟⎟⎟y^i=⎛⎝⎜⎜⎜⎜⎜⎜0.100.200.100.400.20⎞⎠⎟⎟⎟⎟⎟⎟
偏微分見つけるには∂CE(θ)∂θik=−yik−y^ik
各そこから取っ個々の部分勾配はなり
∂ C E (θ )i∂CE(θ)∂θi=⎛⎝⎜⎜⎜⎜⎜⎜yi1−y^i1yi2−y^i2yi3−y^i3yi4−y^i4yi5−y^i5⎞⎠⎟⎟⎟⎟⎟⎟
ただし、1つのホットベクトルのプロパティを使用したため、4番目の行を除く他のすべての行の勾配は実際には0になるため、これは当てはまりません。だから、実際の勾配があるべき
∂CE(θ)∂θi=⎛⎝⎜⎜⎜⎜⎜⎜000yi4−y^i40⎞⎠⎟⎟⎟⎟⎟⎟
それゆえ、すべてのための勾配はする必要があり
∂ C E (θ )i∂CE(θ)∂θ=⎛⎝⎜⎜⎜⎜00...000yi2−y^i20yi3−y^i30yi4−y^i400000⎞⎠⎟⎟⎟⎟
しかし、これは等しくないのy - yの。したがって、クロスエントロピー関数の勾配を、予測と元のベクトルの差と呼ぶべきではありません。y^−y
誰かがこれを明確にできますか?
更新:派生を修正しました
θ=⎛⎝⎜⎜⎜⎜⎜⎜θ1θ2θ3θ4θ5⎞⎠⎟⎟⎟⎟⎟⎟
CE(θ)=−∑iyi∗log(y^i)
ここで及びθ iは、ベクトル入力されます。y^i=softmax(θi)θi
また、Yは、正しいクラスのワンホットベクトルであり、yはyy^
∂CE(θ)∂θi=−(log(y^k))
yy^y=⎛⎝⎜⎜⎜⎜⎜⎜00010⎞⎠⎟⎟⎟⎟⎟⎟y^=⎛⎝⎜⎜⎜⎜⎜⎜0.100.200.100.400.20⎞⎠⎟⎟⎟⎟⎟⎟
θikθi∂CE(θ)∂θi=−yk−y^k
各そこから取っI個々の部分勾配はなり
∂ C E (θ i∂CE(θ)∂θ=⎛⎝⎜⎜⎜⎜⎜⎜y1−y^1y2−y^2y3−y^3y4−y^4y5−y^5⎞⎠⎟⎟⎟⎟⎟⎟
CE(θ)=−(yk∗log(y^k))y^k=log(softmax(θk))=θk−log(∑jexp(θj))CE(θ)θi
∂CE(θ)∂θi=−(∂θk∂θi−softmax(θi))
∂θk∂θi=0,i≠k∂θk∂θi=1,i=k∂CE(θ)∂θ=y^−y