Vektorisierung des Kreuzentropieverlustes


9

Ich habe es mit einem Problem zu tun, das mit dem Finden des Gradienten der Kreuzentropieverlustfunktion für den Parameter θ wobei:

CE(θ)=−∑iyi∗log(y^i)

Wobei y i = s o f t m ein x ( θ i ) und θ i ist ein Vektoreingang.y^i=softmax(θi)θi

Auch y ist ein One - hot - Vektor mit der richtigen Klasse und y ist die Vorhersage für jede Klasse unter Verwendung von Softmax - Funktion.y^

Somit kann beispielsweise aufweisen yi=(00010) und y i = ( 0,10 0,20 0,10 0,40 0,20 )y^i=(0.100.200.100.400.20)

Um die partielle Ableitung ∂CE(θ)∂θik=−yik−y^ik

Von dort aus sind für jedes die einzelnen Teilgradienten ∂ C E ( θ )i∂CE(θ)∂θi=(yi1−y^i1yi2−y^i2yi3−y^i3yi4−y^i4yi5−y^i5)

Dies ist jedoch nicht der Fall, da die Verläufe für alle anderen Zeilen mit Ausnahme der 4. Zeile tatsächlich 0 sein sollten, da wir die Eigenschaft des einen heißen Vektors verwendet haben. Der tatsächliche Gradient sollte also ∂CE(θ)∂θi=(000yi4−y^i40)

Und daher die Gradienten für alle sollte ∂ C E ( θ )i∂CE(θ)∂θ=(000yi4−y^i4000yi3−y^i300...0yi2−y^i2000)

Aber dies ist nicht gleich y - y . Wir sollten den Gradienten der Kreuzentropiefunktion also nicht als Vektordifferenz zwischen vorhergesagt und ursprünglich bezeichnen.y^−y

Kann jemand dies klarstellen?

UPDATE: Meine Ableitung wurde behoben

θ=(θ1θ2θ3θ4θ5)

CE(θ)=−∑iyi∗log(y^i)

Wobei y i = s o f t m ein x ( θ i ) und θ i ist ein Vektoreingang.y^i=softmax(θi)θi

Auch ist ein One - hot - Vektor mit der richtigen Klasse und y ist die Vorhersage für jede Klasse unter Verwendung von Softmax - Funktion.yy^

∂CE(θ)∂θi=−(log(y^k))

UPDATE: Der Index wurde aus y und yy^ Daher kann beispielsweise hat und y = ( 0,10 0,20 0,10 0,40 0,20 )y=(00010)y^=(0.100.200.100.400.20)

θikθi∂CE(θ)∂θi=−yk−y^k

Von dort aus sind für jedes i die einzelnen Teilgradienten ∂ C E ( θ i∂CE(θ)∂θ=(y1−y^1y2−y^2y3−y^3y4−y^4y5−y^5)

Die oben geschieht , weil 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

Antworten:


2

Nein, die Farbverläufe sollten für die anderen Komponenten nicht Null sein. Wenn Ihre Vorhersage isty^iji,jyij=0y^ij


Aber y^ijyijyi∂CE(θ)∂θij=0,∀j≠kyik=1

1
Vielen Dank für Ihre Eingabe @ neil-g Ich konnte meine Ableitung des Gradienten korrigieren.
— Shubhanshu Mishra

15

Das Folgende ist der gleiche Inhalt wie die Bearbeitung, jedoch in (für mich) etwas klarerem Schritt-für-Schritt-Format:

Wir versuchen zu beweisen, dass:

∂CE∂θ=y^−y

gegeben

CE(θ)=−∑iyi∗log(y^i)

und

y^i=exp(θi)∑jexp(θj)

yj=0j≠kyk=1

CE(θ)=− log(y^k)

=− log(exp(θk)∑jexp(θj))

=− θk+log(∑jexp(θj))

∂CE∂θ=−∂θk∂θ+∂∂θlog(∑jexp(θj))

∂θk∂θk=1∂θk∂θq=0q≠k

∂θk∂θ=y

θ

∂∂θilog(∑jexp(θj))=exp(θi)∑jexp(θj)=y^i

Daher,

∂CE∂θ=∂∂θlog(∑jexp(θj))−∂θk∂θ=y^

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.