2016-12-21 2 views

Antwort

2

Es ist eine einfache Multiplikation. Der durch die Probe verursachte Verlust wird durch sein Probengewicht vergrößert. Unter der Annahme, i = 1 to n Proben, ein Gewichtsvektor des Einwaagen w der Länge n, und dass der Verlust für die Proben i wird L_i bezeichnet:

enter image description here

In Keras insbesondere das Produkt jeden Verlust der Probe mit seinem Gewicht ist, geteilt durch den Anteil der Gewichte, die nicht 0 sind, so dass der Verlust pro Charge proportional zur Anzahl der Proben mit Gewicht> 0 ist. Lassen Sie den Anteil der Gewichte ungleich Null sein.

enter image description here

Hier ist der relevante Code-Schnipsel aus dem Keras Repo:

score_array = loss_fn(y_true, y_pred) 

if weights is not None: 
    score_array *= weights 
    score_array /= K.mean(K.cast(K.not_equal(weights, 0), K.floatx())) 

return K.mean(score_array) 

class_weight als sample_weight in der gleichen Art und Weise verwendet wird; Es dient lediglich dazu, bestimmte Gewichtungen über ganze Klassen hinweg anzugeben.

Die Beispielgewichte werden derzeit nicht auf Metriken angewendet, nur Verlust.

Verwandte Themen