5
損失関数とメトリックの計算で、sample_weightとclass_weightをKerasで使用する方法を数学的に教えてもらえますか?簡単な数学的な表現は素晴らしいでしょう。Kerasでのclass_weightとsample_weightの影響
損失関数とメトリックの計算で、sample_weightとclass_weightをKerasで使用する方法を数学的に教えてもらえますか?簡単な数学的な表現は素晴らしいでしょう。Kerasでのclass_weightとsample_weightの影響
単純な乗算です。サンプルによってもたらされる損失は、そのサンプル重量によって拡大される。 i = 1 to n
サンプルを、サンプル重量長n
のw
の重みベクトルを仮定すると、試料i
ための損失はL_i
で示されること:
は、その重量と各サンプルの損失の積でありますバッチ当たりの損失が重量> 0のサンプルの数に比例するように0でない重量の割合で割ったものである。 p
を非ゼロ重みの割合とする。
ここ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
はsample_weight
と同じように使用されています。これはクラス全体の特定の重みを指定するための便宜のために提供されています。
サンプルの重みは現在、メトリックには適用されず、損失のみが適用されます。