ml_t

minimal; manual; machine learning

9『二項分類でのBCE誤差とCE誤差の学習比較』

二項分類であっても、バイナリクロスエントロピー(BCE)誤差ではなくクロスエントロピー(CE)誤差の式で誤差はだせる。そして、これらは結局同じ式になる。ということは、BCEとCEを誤差に用いる違いは、NNの出力が1値(BCE誤差を用いる場合)なのか、2値(CE誤差を用いる場合)なのかの違いと思われる。実際に、ほぼ同じネットワーク構成で同じデータを使い両モデルを比較すると、学習曲線に若干の違いが認められたが共にLossは順調に低下した。

 

modelのoutput(y)

True(t)

torch.nn.

BCELoss()

[[0.60] [0.64] …]、スカラ-→sigmoid→0~1の1値出力,、float32

[[1.] [0.] …]、正解ラベル、float32

torch.nn.

CrossEntropyLoss()

[[0.3 0.7] [-0.2 0.4] …]、スカラ-の2値出力、float32

[1 0 …]、正解ラベル、int64