Wie kann man in Keras mehrere Verlustfunktionen separat optimieren?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie kann man in Keras mehrere Verlustfunktionen separat optimieren?

by Guest » 07 Jan 2025, 05:37

Ich versuche derzeit, in Keras ein Deep-Learning-Modell mit drei verschiedenen Verlustfunktionen zu erstellen. Die erste Verlustfunktion ist der typische mittlere quadratische Fehlerverlust. Die anderen beiden Verlustfunktionen sind die, die ich selbst erstellt habe und die den Unterschied zwischen einer Berechnung aus dem Eingabebild und dem Ausgabebild ermitteln (dieser Code ist eine vereinfachte Version meiner Arbeit).

Code: Select all

def p_autoencoder_loss(yTrue,yPred):

def loss(yTrue, y_Pred):
return K.mean(K.square(yTrue - yPred), axis=-1)

def a(image):
return K.mean(K.sin(image))

def b(image):
return K.sqrt(K.cos(image))

a_pred = a(yPred)
a_true = a(yTrue)

b_pred = b(yPred)
b_true = b(yTrue)

empirical_loss = (loss(yTrue, yPred))
a_loss = K.mean(K.square(a_true - a_pred))
b_loss = K.mean(K.square(b_true - b_pred))
final_loss = K.mean(empirical_loss + a_loss + b_loss)
return final_loss
Wenn ich jedoch mit dieser Verlustfunktion trainiere, konvergiert sie einfach nicht gut. Ich möchte versuchen, die drei Verlustfunktionen einzeln zu minimieren und nicht zusammen, indem ich sie zu einer Verlustfunktion zusammenfüge.

Ich möchte hier im Wesentlichen die zweite Option Tensorflow ausführen: Mehrere Verlustfunktionen vs. mehrere Trainingsoperationen, aber in Keras-Form. Ich möchte auch, dass die Verlustfunktionen unabhängig voneinander sind. Gibt es eine einfache Möglichkeit, dies zu tun?

Top