4

画面の下部にボールがあり、左右に弾力のある壁があり、上部に粘着性のある壁がある「ポン」スタイルのゲームを開発しました。下部 (水平の直線上) の点とランダムな角度をランダムに選択し、側壁で跳ね返り、上部の壁に衝突します。これが 1000 回繰り返され、そのたびに発射位置の x 値、発射角度、および上部の壁で衝突する位置の最終的な x 値が得られます。

これにより、2 つの入力 (発射角度と発射角度の x 値) と 1 つの出力 (最終位置の x 値) が得られます。2 つの入力ノード、2 つの隠しノード (1 層)、および 1 つの出力ノードを持つ多層パーセプトロンを使用してみました。ただし、ポイント ~20 まで収束し、その後先細りになります。これが私が試したもので、エラーが収束しないか、発散し始めます。

  1. 入力と出力が 0 から 1 の間になるように変換します
  2. 入力と出力が -1 と 1 の間になるように変換します
  3. 隠れ層の数を増やす
  4. 隠れ層のノード数を増やす
  5. 発射位置、発射角度、および最終位置を 0 と 1 に変換すると、入力が ~750+175、出力が ~750 になります - 収束しません

だから、朝から晩まで過ごし、脳と体を反抗させた後、誰かが私がここで問題を特定するのを手伝ってくれることを願っています. これはニューラル ネットワークでは解決できないタスクですか、それとも何か間違ったことをしていますか?

PS: オンライン バージョンのNeurophを使用しており、独自の手順をコーディングしていません。少なくともこれは、実装の問題を回避するのに役立ちます

4

2 に答える 2

3

トレーニングエラーを最小限に抑えられない場合は、実装のバグである可能性があります。一方、差し出されたテストセットで精度を測定している場合、しばらくするとエラーが発生することは驚くべきことではありません。

公式化に関しては、十分な量のトレーニングデータと十分に長いトレーニング時間で、十分に複雑なNNは、入力を2値化するかどうかに関係なく、マッピングを学習できると思います(使用する実装が非バイナリ入力と出力をサポートする場合)。私は上記の文で「十分」が何を意味するのか漠然とした考えしか持っていませんが、1000のサンプルではうまくいかないと思い切って思います。また、ネットワークが複雑になるほど、一般的にパラメーターを推定するために必要なデータが増えることにも注意してください。

于 2012-10-19T10:13:58.850 に答える
1

Neuroph での潜在的な実装の問題を排除するために、まったく同じプロセス (多層パーセプトロン、同じパラメーター、同じデータなど) を試して、代わりにWekaを使用することをお勧めします。

以前に Weka で MLP を使用して成功したことがあるので、この実装が正しく機能することを確認できます。Weka が学術コミュニティでかなり浸透しており、かなり精査されていることは知っていますが、Neuroph については新しいのでよくわかりません。Neuroph と同じ結果が得られた場合、問題はデータまたはニューラル ネットのトポロジまたは構成にあることがわかります。

Qnan は良い点を挙げています。測定しているエラーとは正確には何ですか? トレーニング エラーがゼロに収束しない理由を実際に判断するには、エラーが正確に何を表しているのかを判断する必要があります。

また、ニューラル ネットワークが収束を停止する前にトレーニングで実行されているエポック数 (つまり、反復回数) はいくつですか?

Weka では、私の記憶が正しければ、エラーが特定の値に達するまで、または特定のエポック数の間、トレーニングを実行するように設定できます。ぱっと見、ニューロフも同じように見える。

エポックの数を制限している場合は、数を大幅に増やして、ネットワークが収束するまでの反復回数を増やしてください。

于 2012-10-29T00:04:50.533 に答える