0

ニューラルネットワークを使った車種判別のプロジェクトを任され、ニューラル技術のすごさを知りました。

私はこの分野の初心者ですが、それを学ぶのに十分な教材を持っています。私の最大の問題は、時間があまりないことです。助けていただければ幸いです。最も重要なことは、パターンを画像 (私の場合は車両) と一致させる方法を学びたいということです。

また、Python に最も慣れているため、これを開始するのに適した言語であるかどうかも知りたいと思います。

入力として車の画像がいくつかあり、それらの車をモデル番号で分類する必要があります。

Eg: Audi A4,Audi A6,Audi A8,etc
4

1 に答える 1

3

既存のフレームワークを使用できるか、ソリューションをゼロから実装する必要があるかについては言及されていませんが、いずれにしても、Python はニューラル ネットワークをコーディングするための優れた言語です。

フレームワークを使用できる場合は、Python で記述され、どの言語でも利用できる最も完全なニューラル ネットワーク フレームワークである Theano をチェックしてください。

http://www.deeplearning.net/software/theano/

実装をゼロから作成する必要がある場合は、Stephen Marsland 著の「Machine Learning, An Algorithmic Perspective」という本を参照してください。これには、基本的な多層ニューラル ネットワークを実装するための Python コードの例が含まれています。

処理方法としては、画像を 1 次元の入力ベクトルに変換する必要があります。2 次元の情報が失われる心配はありません。ネットワークは、2 次元の特徴を抽出する「受容野」を独自に学習します。ピクセル強度を -1 から 1 の範囲に正規化します (さらに良いことに、標準偏差 1 で 0 を意味します)。画像がすでに中央に配置され、ほぼ同じサイズに正規化されている場合は、単純なフィードフォワード ネットワークで十分です。車の角度やカメラからの距離が大幅に異なる場合は、畳み込みニューラル ネットワークを使用する必要があるかもしれませんが、その実装ははるかに複雑です (Theano のドキュメントに例があります)。基本的なフィードフォワード ネットワークでは、2 つの隠れ層を使用し、各層のピクセル数の 0.5 から 1.5 倍の範囲を試してください。

データセットを個別のトレーニング、検証、およびテスト セット (おそらくそれぞれ 0.6、0.2、0.2 の比率) に分割し、各画像が 1 つのセットにのみ表示されるようにします。トレーニング セットでのみトレーニングし、トレーニング インスタンスが 100% 正しくなるまで正則化を使用しないでください。検証セットを使用して、トレーニングしていないインスタンスの進行状況を監視できます。検証セットでは、トレーニング セットよりもパフォーマンスが低下するはずです。検証セットのパフォーマンスが改善しなくなったら、トレーニングを停止します。これを達成したら、さまざまな正則化定数を試して、検証セットのパフォーマンスが最高になるものを選択できます。テスト セットは、最終結果のパフォーマンスを示します (ただし、テスト セットの結果に基づいて何も変更しないでください。

車の画像が非常に複雑で変化に富んでいて、基本的なフィード フォワード ネットをうまく機能させることができない場合は、「ディープ ラーニング」の使用を検討してください。つまり、レイヤーを追加し、教師なしトレーニングを使用してそれらを事前トレーニングします。これを行う方法に関する詳細なチュートリアルがここにあります (ただし、すべてのコード例は MatLab/Octave にあります)。

http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

繰り返しますが、これは多くの複雑さを追加します。最初に基本的なフィードフォワード NN で試してください。

于 2013-07-24T05:30:34.017 に答える