1

私は現在、ニューラルネットワークを使って画像を与えられた画像分類に取り組んでいます。私は正常に画像上に境界ボックスを作成し、それぞれの境界ボックスについて、20クラスのそれぞれの値を得るために、分類アルゴリズム(W、Bはウェイト、およびトレーニングデータから既に学習されたバイアス)を適用しました。 1つのバウンディングボックスIは、20クラスのために得た値に対して各境界ボックスの信頼値

は:

221.140961 71.6502609 185.005554 14.2860174 177.44928 -20.842535 
-16.2324142 -105.940437 -397.505829 132.100311 -12.3567591 262.162872 
-243.444672 -198.083984 19.3514423 1.94239163 -75.0622787 -93.7277069 
-181.89653 260.002625 

予測クラスは最大値262.162872を持つクラス11(0から始まるクラスの指標)です。私はまた、各境界ボックスの信頼値が通常計算され、その値の範囲が0から1までのいくつかの論文に出くわしました。

各境界ボックスでこの信頼値を取得する方法はありますか?他のすべてのクラスに関して、クラス11の確率のみですか? このデータではどうすれば入手できますか?

答えて

2

ソフトマックスは、通常使用される、確率にニューラルネットワークの出力を変換する: https://en.wikipedia.org/wiki/Softmax_function

これは非常に小さな値がゼロに近い確率となり、非常に大きな値に近くオン確率になることを保証します。範囲の終わりはに比較的鈍感です。値が大きいとは、範囲の中央がはるかに敏感です。また、すべての確率が1になるようにします。これは、複数クラスの分類(クラスが互いに素である場合)に適しています。

通常、softmaxの前には、有効化機能(ReLUなど)は適用されません。だから典型的なネットワークは、畳み込み - > ReLU - > ... - >畳み込み - > ReLU - >畳み込み - > softmaxです。

P.S.説明したように、あなたのニューラルネットワークは本当に1つのレイヤーを持っていますか?これは通常、良い結果をもたらさない。

+0

私は2つの畳み込みプール層(ReLU付き)を使用し、次に1つの完全に接続された層とそれに続くLeNetのようなsoftmax層を使用しました。しかし、私が得ているソフトマックスの出力は、特定のクラスでは1、他のクラスではほとんど無視されます(1e-30)。それで、私は信頼値が他のものかもしれないと思ったのです。 softmax出力= 1のクラスは正しいクラスではありません。だから私はこのモデルにいくつかの問題があると思った。 – Kapes

+0

@Kapes:Softmaxはマルチクラスに必要なものなので、少なくともその部分は正しいです。非常に高い(1に近い)自信を持って多くの結果を得ている場合は、ネットワークが過大です。より多くのトレーニングデータを使用するか、既存のデータにデータ拡張機能を使用してみてください。 –

+0

私はパスカルvoc 2012トレーニングデータセットを使用しています。このデータセットから、10000をトレーニングとして使用し、検証セットとして残ります。はい、あなたは正しいです。訓練データが低いので、データ拡張を使用しなければならず、おそらくさらにいくつかのエポックを訓練する必要があります。現在、私は約200エポックを訓練しています。また、私はいくつかのドロップアウトを使用すると考えています。少なくとも今私は正しい方向に進んでいることを知っています。 – Kapes

関連する問題