0

ある種の機械学習を使用して単純な 2 次元オブジェクトを認識する小さなプロジェクトを考えていました。それぞれのネットワークを 1 種類のオブジェクトのみを認識することに専念させたほうがよいと思います。だからここに私の2つの質問があります:

  1. どのようなネットワークを使用すればよいですか? 私が考えることができるのは、単純なフィードフォワード ネットワークとホップフィールド ネットワークの 2 つです。入力がターゲットにどの程度似ているかも知りたいので、Hopfield ネットはおそらく適していません。

  2. 教師あり学習を必要とするものを使用し、入力がターゲットにどの程度似ているかを示す出力ユニットが 1 つだけ必要な場合、トレーニング プロセス中にどのような反例を表示する必要がありますか? 肯定的な例を挙げただけでは、うまくいかないと確信しています (ネットワークは常に「はい」と言うようになるだけです)。

画像は低解像度で白黒になります。

4

2 に答える 2

4

まず、使用する分類方法に関する注意事項。画像ピクセル自体を特徴として使用する場合は、ニューラル ネットワークが適切な分類方法になる可能性があります。その場合、さまざまなオブジェクトを区別するために同じネットワークをトレーニングする方が、それぞれに個別のネットワークを使用するのではなく、ネットワークが最も識別可能な機能に集中できるようになるため、より良い考えになると思います。

ただし、画像から合成特徴を抽出し、それらに基づいて分類する場合は、SVM などの他の分類方法を検討することをお勧めします。その理由は、ニューラル ネットワークには通常、設定するパラメータが多く (ネットワークのサイズやアーキテクチャなど)、分類器の構築プロセスが長く複雑になるためです。

特にNN関連の質問に関しては、構築とトレーニングが比較的簡単なフィードフォワードネットワークを、さまざまなクラスに確率を割り当てることができるソフトマックス出力層とともに使用することをお勧めします。分類に単一のネットワークを使用している場合、負の例に関する質問は関係ありません。クラスごとに、他のクラスはその負の例になります。別のネットワークを使用する場合は、同じ反例 (つまり、他のクラス) を使用できますが、経験則として、正の例ごとに 2 ~ 10 個の負の例を表示することをお勧めします。

編集: 以下のコメントに基づいて、問題は、特定のイメージ (描画) が特定の概念にどのように適合するかを決定することです。

この場合、根本的に異なるアプローチをお勧めします。各図面から視覚的特徴を抽出し、過去にユーザーが提供したすべての図面とその分類 (場合によっては、ユーザーによって生成された定義済みのセットに加えて) に基づいて、knn 分類を実行します。類似度は、同じクラスの例までの名目上の距離、または最も近い一致のクラス分布によってスコア付けできます。

これは必ずしもあなたが求めていることではないことはわかっていますが、特に例とクラスの数が絶えず増加すると予想されるという事実を考えると、これはより簡単で直接的なアプローチのように思えます。

于 2013-02-14T14:59:58.047 に答える
2

FindObjectを試して、機能検出/説明を使用したOpenCVでのオブジェクト検出が好きかどうかを確認してください。よく一致していると思われる場合は、opencvパッケージに含まれているfind_obj.pyデモを試すことができます。

ただし、基本的な概念にまだ精通していないため、デモはかなり混乱していることがわかりました。githubでチェックしたい場合は、物事を詳しく説明し、いくつかの落とし穴を指摘する、より直線的なデモを作成しました。

于 2013-02-14T15:25:21.323 に答える