クロスエントロピーの微分


9

私のコンピューターでニューラルネットワークをトレーニングするプログラムを作成しようとしています。問題のネットワークでは、クロスエントロピーエラー関数を使用することにしました。

E=−∑jtjln⁡oj

ここで、はNeuron jのターゲット出力であり、o jはそのニューロンの出力であり、t jを予測しようとします。tjjojtj

私が何を知りたい、いくつかのニューロンのためであるJ。私の直感(プラス微積分の私の限られた知識)この値がなければならないことを信じるように私を導く-トンのJδEδojj。−tjoj

ただし、これは正しくないようです。クロスエントロピーは、o j = e z jのように、softmax関数と併用されることがよくあります。ここで、zはソフトマックスレイヤー内のすべてのニューロンへの入力のセットです(ここを参照)。

oj=ezj∑kezk

このファイル、私はそれを集める:

δojδzj=oj(1−oj)

よると、この質問: しかし、私の以前の推測と、この競合δE

δEδzj=tj−oj
。どうして?δEδoj

。⇒δEJ

δEjδzj=δEjδojδojδzj
⇒δEjδoj=δEjδzj÷δojδzj
=tj−ojoj(1−oj)
−tjoj
δEjδoj

回答:


6

∂E∂oj∂E∂zj

∂E∂zj=∑i∂E∂oi∂oi∂zj
i=j
∂E∂oj∂oj∂zj=−tjojoj(1−oj)=tjoj−tj
i≠j
∂oi∂zj=∂ezi∑kezk∂zj=−ezi(∑kezk)2ezj=−oioj
∂E∂oi∂oi∂zj=−tioi(−oioj)=tioj
∂E∂zj=∑i∂E∂oi∂oi∂zj=∑itioj−tj
t∑iti=1
∂E∂zj=oj−tj
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.