Keras で加重バイナリ クロスエントロピーを実装しようとしましたが、コードが正しいかどうかわかりません。トレーニングの出力は少し混乱しているようです。数エポックの後、精度が ~0.15 になりました。それは少なすぎると思います(ランダムな推測であっても)。
一般に、出力には約 11% の 1 と 89% のゼロがあるため、重みは w_zero=0.89 および w_one=0.11 です。
私のコード:
def create_weighted_binary_crossentropy(zero_weight, one_weight):
def weighted_binary_crossentropy(y_true, y_pred):
# Original binary crossentropy (see losses.py):
# K.mean(K.binary_crossentropy(y_true, y_pred), axis=-1)
# Calculate the binary crossentropy
b_ce = K.binary_crossentropy(y_true, y_pred)
# Apply the weights
weight_vector = y_true * one_weight + (1. - y_true) * zero_weight
weighted_b_ce = weight_vector * b_ce
# Return the mean error
return K.mean(weighted_b_ce)
return weighted_binary_crossentropy
多分誰かが何が間違っているのを見ますか?
ありがとうございました