« uploadディレクトリにFTPなどで置いたファイルを登録 | メイン | python の引数のコロン »
2020年12月27日
損失関数あれこれ
tf.keras.losses.SparseCategoricalCrossentropy 入力がラベルidの数値単体の場合
tf.keras.losses.CategoricalCrossentropy 入力がone-hotの場合
■交差エントロピー
真の確率分布pは(1, 0, 0)
推定した確率分布qが(0.8, 0.1, 0.1)
損失 = −(1∗log0.8 + 0∗log0.1 + 0∗log0.1)
#正解の推定確率分布しか見てない
----------------
BinaryCrossentropy
#不正解の確率分布も正しさの確認に含める
損失 = −(1∗log0.8 + 1∗log(1-0.1) + 1∗log(1-0.1)) / 3
----------------
from_logits=True について
基本 from_logits=False なので通常は予測値を渡すときにsoftmaxで値の合計1にして渡すが、それなしにdense(10)とかを放り込むときは from_logits=True にするといけるっぽいが中身までは把握してない。
-----------------
tf.keras.losses.MeanSquaredError
平均2乗誤差 MSE
((y_real_1 - y_yosoku1)^2 + (y_real_2 - y_yosoku2)^2 + ... ) / n
いずれも各データの平均値を返す。合計値ではない。
あんまり関係ないけど googleの検索計算では log(0.6)で計算すると底は10
底を自然対数にするには ln(0.6)とln使います。
投稿者 muuming : 2020年12月27日 11:27