2016-12-21 11 views

Odpowiedz

2

Jest to proste mnożenie. Strata spowodowana przez próbkę jest powiększona o masę próbki. Zakładając, i = 1 to n próbek, wektor wagowy ciężarów próbki w długości n i że strata dla próbek i oznaczamy L_i:

enter image description here

W Keras w szczególności produkt utraty każdej próbki z jej ciężar jest podzielona przez ułamek wag, które nie są równe 0, tak, że strata na partię jest proporcjonalna do liczby próbek o masie> 0. Niech p będzie proporcją niezerowych wag.

enter image description here

Oto odnośny fragment kodu z repo Keras:

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 jest używany w taki sam sposób jak sample_weight; jest to tylko dla wygody określanie określonych wag dla całej klasy.

Wagi przykładowe nie są obecnie stosowane do metryk, a jedynie do strat.