深い神経回路網を使ってバイナリクラス分類をしています。私がbinary_crossentropyを使用しているときはいつでも、私のモデルは良い精度を与えていません(ランダム予測に近い)。しかし、もし私が出力層のサイズを2にすることによってカテゴリクロスティトロピーを使用すると、私は0.90に近いわずか1エポックで良い精度を得ています。誰でもここで起こっていることを説明できますか?Binary_crossentropyとCategorical_crossentropyの混同
10
A
答えて
14
また、出力層でsoftmax
の有効化でbinary_crossentropyを使用しようとすると、この問題が発生します。私の知る限り、softmax
は各クラスの確率を示します。したがって、出力レイヤーに2つのノードがある場合は、p(x1)
,p(x2)
およびx1 + x2 = X
のようになります。したがって、出力ノードが1つだけの場合、常に1.0(100%)になります。そのため、ランダムな予測に近いです(正直なところ、評価セットのカテゴリ分布に近いでしょう)。
sigmoid
またはrelu
などの別の有効化方法に変更してください。
+4
これはもう重要ではないかもしれませんが、レガシーでクリアな理由から、ソフトマックスは確率を返しませんが、出力層のすべてのノードの出力に1が加算されます(確率でそうです) 。 – TheLaurens
+0
あなたの説明のためにありがとう@ TheLaurens! –
関連する問題
- 1. Keras:ビッグワンホットエンコーディング:binary_crossentropyまたはcategorical_crossentropy
- 2. categorical_crossentropyケラスの実装
- 3. プライマリキーとの混同
- 4. UIScrollViewとsetContentSizeとの混同
- 5. .serialize()と.serializeElements()との混同
- 6. シェルグローブワイルドカードとRegexとの混同
- 7. フォーマットと混同 - sqlite
- 8. PKとFKテーブルデザインの混同
- 9. PHPとXMLの混同
- 10. パッケージとの混同.NoClassDefFoundError
- 11. mscordacwks.dllとmscorwks.dllの混同
- 12. SmartSVNとSVNバージョンの混同
- 13. WPF MVVMとの混同
- 14. isNaN()とparseInt()の混同
- 15. onStop()onStop()onResume()との混同
- 16. 作業アカウントとMicrosoftアカウントとの混同
- 17. コレクションとモデルの混同とbackbone.js
- 18. virtualenvsとPythonパッケージとの混同
- 19. ポインタとアドレスとの混同[チートエンジン]
- 20. javascriptのisNaNとNumber.isNaNの混同
- 21. Gitでのマージとコミットの混同
- 22. PHPのコンストラクタ関数との混同
- 23. OpenCv4AndroidとC++のデータタイプの混同
- 24. CruseControl.NETとの混同sourcecontrol exclusionFiltersのパターン
- 25. DLLの作成、__declspec(dllexport)との混同
- 26. Enumの解析との混同
- 27. Vue:イベントメソッド - 混同
- 28. HDFSブロックサイズ混同
- 29. RPNCalculatorコード混同
- 30. ThreadLocalソースコード混同
興味深い現象。使用しているデータセットやコードに関する詳細を教えてください。 –
私はMarcinに同意します。さらに詳しい情報は非常に役に立ちます。 binary_corssentropyを使用しているときとcategorical_crossentropyを使用しているときの出力レイヤーのアクティベーション機能は何ですか?また、トレーニングセットのクラスバランスは10対1ですか? – Dimosthenis
どちらの場合にも私が使用している起動機能はsoftmaxです。モデルは両方のケースで同じままです。バイナリクロスエントロピーの場合のみ、最終層のサイズは1であるのに対して、カテゴリは2である。他の情報が必要な場合は教えてください。 –