2

CNNトレーニングにCaffeフレームワークを使用しています。私の目的は、いくつかの基本的なオブジェクトカテゴリに対して単純なオブジェクト認識を実行することです。事前にトレーニングされたネットワークは私の提案された使用法の代替ではないので、私は2つのクラス(椅子や車など)ごとに約1000の画像を持つ独自のトレーニングとテストセットを用意しました。CNNのネガティブトレーニングの画像例

結果は非常に良好です。私がまだ椅子の目に見えないイメージを提示すると、車のイメージと同じように分類される可能性が高い。私の問題は、これらのクラスのいずれも表示しない雑多な画像の結果が、1つのランダムなクラスに対して非常に高い信頼度(= 1)を示すことです(1つのトレーニングデータに関しては驚くことではありませんが、私は異なるソリューションについて考えました:

1)椅子と車以外のオブジェクトを示す約1000件の否定的な例を含む3番目のクラスを追加します。

2)一般的にもっと多くのオブジェクトカテゴリを追加するだけで、ネットワークは他のオブジェクトをそのように分類し、椅子や車として分類することはできません(もちろんこれは多くの努力が必要です)。さらに広範な予測結果は、ネガティブ画像でより均一な分布を示し、閾値に基づいてターゲットオブジェクトの存在を評価することができるだろうか?

インターネットからネガティブな例としてランダムな画像を取得するのに時間がかかったわけではないので、私はすでに約1200件の否定的な例で私の最初の解決策をテストしました。それは助けましたが、問題は残っています。おそらくそれは少なかったからでしょうか?私が懸念しているのは、否定的な例の数を増やすと、各クラスのサンプル数の不均衡により、元のクラスの検出精度が低下することです。 は、いくつかの研究の後、私は同様の問題を持つ1人を見つけましたが、何の解決策はありませんでした: Convolutional Neural Networks with Caffe and NEGATIVE IMAGES

私の質問は:誰もが同じ問題を抱えていたし、それに対処する方法を知っていますか?どのような方法をお勧めしますか、より多くの否定的な例題以上のオブジェクトカテゴリを追加するか、他の推奨事項はありますか?

答えて

2

問題は、CaffeまたはConvNetsに固有の問題ではありません。どんな機械学習技術でもこのリスクがあります。最後に、すべての分類器は、ある入力空間(通常は非常に高次元)でベクトルをとるため、入力空間を分割します。 2つのパーティションの例を挙げました。これは、2つのパーティションの境界を推定するのに役立ちますが、その境界のみを推定します。入力空間が非常に高次元であるため、両方のパーティションには非常に大きな境界があります。

ConvNetsは、かなり小さな畳み込みカーネルを持つことによって画像データの高次元性に取り組もうとしています。現実的な負のデータはそれらを訓練するのに役立ち、ラベルは本当に重要ではありません。畳み込みカーネルを練習するときは、入力画像をゴールとして使用することもできます(つまり、自動エンコーダーとして訓練します)。

すべての反例を一括して欲しくない理由の1つは、あまりにも多様である可能性があるからです。反例B [-2、-1]とC [+ 1、+ 2]を使って、あるスケールで[-1、+ 1]の範囲のいくつかの特徴値を持つクラスAがある場合、BとCを一括して作成すると実数の実数範囲に重なる反例の範囲[-2、+ 2]十分なデータと十分な分類子があれば、これは致命的な問題ではありませんが、たとえばSVMがこの問題を悪化させる可能性があります。

関連する問題