1

私は、マーカーレスの相対姿勢推定を必要とする uni のプロジェクトに取り組んでいます。これを行うには、2 つの画像を撮影し、画像の特定の場所にある n 個の特徴を照合します。これらのポイントから、これらのポイント間のベクトルを見つけることができます。これを距離に含めると、カメラの新しい位置を推定するために使用できます。

プロジェクトはモバイル デバイスで展開できる必要があるため、アルゴリズムは効率的である必要があります。より効率的にする必要があると考えたのは、これらのベクトルを取り、ベクトルを取り、入力に基づいて xyz 移動ベクトルの推定値を出力できるニューラル ネットワークに入れることです。

私が持っている質問は、十分に訓練された場合、NN がこの状況に適しているかどうかです。もしそうなら、必要な隠しユニットの数と最適なアクティベーション関数はどのように計算すればよいでしょうか?

4

1 に答える 1

2

アプリケーションにニューラル ネットワークを使用することは非常にうまく機能しますが、ネットワークを一般化するには、多くのトレーニング サンプルが必要になると思います。もちろん、これは扱っているポーズの種類と数にも依存します。いくつかの巧妙な数学を使えば、入力ベクトルから直接移動ベクトルを導き出すことが可能かもしれないと私には思えます-もしあなたがそれを行う方法を思いつくことができれば(または他の人がそれについて考えることができるようにより多くの情報を提供することができれば)その場合、データからタスクを学習するために NN に頼るのではなく、タスクに関する事前知識を含めることになるためです。

NN アプローチを使用する場合は、次の点に注意してください。

  1. データをトレーニング セットと検証セットに分割します。これにより、ネットワークがオーバーフィットしないようにすることができます。トレーニング セットを使用してトレーニングし、検証セットのエラーを使用して特定のネットワークの品質を判断します。トレーニングと検証の比率は、所有するデータの量によって異なります。大規模な検証セット (データの 50% など) を使用すると、トレーニング済みネットワークの品質についてより正確な結論を得ることができますが、多くの場合、データが少なすぎてこれを行うことができません。ただし、いずれにせよ、データの少なくとも 10% を検証に使用することをお勧めします。
  2. 隠れユニットの数に関しては、経験則では、各自由パラメーター、つまり各重みに対して少なくとも 10 個のトレーニング例を用意する必要があります。したがって、4 つの入力、10 個の隠れユニット、および 3 個の出力ユニットを備えた 3 層ネットワークがあり、各隠れユニットと出力ユニットに追加のバイアス重みがあると仮定すると、(4+1) * 10 + (10+ 1) * 3 = 83 個の自由パラメータ/ウェイト。一般に、隠れユニットの数と隠れ層の数を実験する必要があります。私の経験では、4 層ネットワーク (つまり、2 つの隠れ層) は 3 層ネットワークよりもうまく機能しますが、それは問題によって異なります。検証セットも用意されているため、オーバーフィッティングを心配することなく、機能するネットワーク アーキテクチャとサイズを確認できます。
  3. 活性化関数については、シグモイド関数を使用して非線形動作を可能にする必要があります。私はその対称性から双曲線正接が好きですが、私の経験からすると、ロジスティック関数も同様に使用できます。
于 2013-03-19T08:03:02.580 に答える