1

ニューラル ネットワーク (BP FF) は、プロペラを制御して落下を回避し、試行によって安定させる方法を自己学習 (自律的に) できますか?

ニューラル ネットワークのタイプ: 多層、逆伝播フィードフォワード、シグモイド活性化。

簡単にするために、垂直方向のプロペラ制御と垂直方向の速度のみを取り上げます。

入力: 垂直速度。

出力:プロペラ動力(下向きのみを狙うので上向きのみ押す)

バックプロパゲーション NN は、出力と目的の出力の差からエラーを取得するため、目的の出力を知らずに (実際には、目的の出力を学習する必要があります) どうすれば学習できますか。

エラーを垂直速度 (停止 = エラーなし) として捉える場合は、より適していますが、Encog の ResilientPropagation クラスまたは BackPropagation クラスのエラー関数を変更するにはどうすればよいですか?

この種の学習を行うには、ネットワーク クラス全体を自分で作成する必要がありますか? 初期のトレーニング データがないためです。エンジンの出力と速度から新しく作成されたデータのみがあります。(トレーニング データを生成できれば、エンジンを制御する方法がわかるので、NN は必要ありません)

この仕事に最も適したニューラル ネットワークの種類は何ですか?

4

1 に答える 1

2

@larsmans のコメントで指摘されているように、これは強化学習パラダイムによって解決できます。ニューラル ネットワークのコンテキストでは、現在最も一般的な (そして唯一の?) アプローチは、2 つのニューラル ネットワークを使用することです。

  • アクターネットワーク:エージェントが特定の状態(この場合は垂直速度) で取るべきアクション (この場合はプロペラの動力) を学習します。

  • 批評家ネットワーク: 値を学習し、エージェントがこの状態から達成することを「期待」できる将来の強化に関して

このアプローチは、Actor-Criticメソッドとして知られています。追加で行う必要があるのは、補強関数を設計することだけです。あなたの場合、垂直速度に等しい可能性があり、事前に定義された高さから逸脱した場合に追加のペナルティが発生する可能性があるため、非常に単純に見えます(そうでない場合、ネットワークはプロペラが落下して停止するまでしばらく待つことを学習します)。

主な問題は、これらすべてが正しく機能するようにすべてのパラメーターを調整することですが、問題は非常に単純に見えるため、それほど難しくはないかもしれません。

于 2013-09-19T15:25:47.980 に答える