Ich versuche, den Kippverlust zu berechnen, der wiederum in Keras verwendet wird. Allerdings muss ich etwas falsch machen, da ich negative Verlustwerte bekomme (was nicht möglich sein sollte). Kann jemand darauf hinweisen, was ich falsch gemacht habe? Ich nehme an, es ist die Theano-Syntax, die ich falsch verstanden habe.Tilted Verlust in Theano
Der Verlust definiert wird mathematisch als: wobei $ \ xi_i = y_i - f_i $, wo y_i $ $ die Beobachtung und $ f_i $ ist die Vorhersage. Außerdem bin ich nach dem mittleren Verlust, so habe ich meine Verlustfunktion wie folgt definiert:
$$
\mathcal{L} = \frac{\alpha\sum \xi_i-\sum I(\xi_i<0)\xi_i}{N}
$$
wo $ I() $ ist die Indikatorfunktion und nimmt den Wert 1, wenn wahr.
Daher meine Verlustfunktion ist wie folgt definiert:
def tilted_loss2(y,f):
q = 0.05
e = (y-f)
return (q*tt.sum(e)-tt.sum(e[e<0]))/e.shape[0]
jedoch, wenn ich mein Netzwerk betreibe ich negative Werte erhalten. Ist hier etwas mit der Theano-Syntax nicht in Ordnung? Mein größter Verdacht ist hier: tt.sum(e[e<0]))
. Kannst du es so schneiden?
Alle Gedanken würden geschätzt werden.