1

私は、分類タスクで神経ネットワークを訓練しており、精度は高くはありませんが、学習しています。どのテストの例が自信がないのか把握しようとしているので、何が起きているのかについてさらに洞察を得ることができます。ニューラルネットワーク高い信頼度の不正確な予測

これを行うために、私はTensorflowで標準softmax確率を使用することに決めました。これを行うには、私はtf.nn.softmax(logits)を呼び出し、ここで提供される確率を使用しました。私は多くの確率が99%であることに気づきましたが、予測はまだ間違っていました。このように、予測確率が99%を超える例だけを検討しても、私の精度は悪く、私の元の精度よりわずか2〜3%高くなります。

ネットワークが間違った予測について非常に自信を持っている理由は誰にもありますか?私はまだ深い学びに新しいので、私を助けるためのいくつかのアイデアを探しています。

また、softmax確率を使用して、ニューラルネットワークからの予測の信頼性を判断する正しい方法はありますか?そうでない場合は、よりよい方法がありますか?

ありがとうございます!

編集:以下の回答から、私のネットワークはうまく機能していないようです。ネットワークがどのような予測をするのかを特定するもう1つの方法は、自信を見ているだけでなく、間違っている可能性が高い(自信がうまくいかないようなので)か。

+0

時には、これは悪いイニシャライザを使用しているときに発生することがあります。イニシャライザが最後のレイヤーのウェイトに高すぎる分散を与えた場合、あるクラスが他のクラスよりもはるかに高いロジット値を持つ可能性が高くなります。これは、softmax後に高い信頼性につながります。他のイニシャライザを試してみるとよいでしょう:https://www.tensorflow.org/api_guides/python/contrib.layers#Initializers – Lior

+0

しかし、1つのクラスだけが高い信頼性を持っているわけではありませんが、多くの場合があります間違ったクラス(いずれかのクラスになる可能性があります)が本当に高い自信を持っています。それが役に立つなら、これはテキストを理解する問題でもあります。私は現在、Xavier Initializerを使用していますが、他のものを試します。 – hockeybro

答えて

0

サンプルが縦線で分割されているが、NNクラシファイアが水平線を学習したとします。この場合、クラシファイアによる予測は常に50%の精度しか得られません。しかし、NNは水平線から離れたサンプルに高い信頼度を割り当てます。

要するに、モデルの分類が悪いと、高い信頼度が精度に寄与することはほとんどありません。

提案:正しい分類を行うために必要な情報がデータに含まれているかどうかをチェックしてから、まず全体的な精度を改善してください。

+0

これを修正する方法はありますか?それとも私の仕事が難しいのですか? – hockeybro

+0

私も、それらのすべてが99%の信頼を持っているわけではないことに気付きます。それは、モデルが実際に習得したケースであるため、60%以上90%以下の信頼度を持つ例だけを考えれば、より高い精度を得なければならないということですか? – hockeybro

+0

基本的には、NNが不適切な分類を行っていることを意味します。提案は全体の精度を最初に改善することです。 – zfy

関連する問題