2

私の最後に基づいてquestion 2台のロボットアームが互いに卓球をしている3Dゲームを構築しました。ロボットには6自由度があります。
状態は、によって構成されている:卓球ロボットのニューラルネットワークへの提言

  • X、ロボットのボール
  • 6角のyおよびz位置それらが取るよう

すべての値は、正規化されています[-1,1]の間の値。 連続した4つのフレームで、合計37個のパラメータが入力されます。

報酬のプレーヤーがボールプレイヤーが試合

を失ったときにプレイヤーが試合

  • -0.7勝
  • 0.7に当たる

    • 0.3出力
      6つのロボットジョイントはすべて、特定の速度であるため、すべてのジョイントは、正の方向に移動したり、移動したり、負の方向に動く可能性があります。 この結果、3^6 = 729の出力になります。

      これらの設定では、ニューラルネットワークはロボットの逆運動学を学習し、卓球をする必要があります。 私の問題は、私のネットワークが収束しますが、ローカルの最小値に固執しているように見えます。設定によっては、後で収束し始めます。 私は最初に1000ノードの2つと3つの隠れ層を持つネットワークを試しましたが、数エポック後にネットワークが収束し始めました。私は、1000のノードがあまりにも多く、それらを100に下げたことに気付きました。その結果、ネットワークは記述されたように動作し、最初に収束してからわずかに分岐します。そこで私は隠れたレイヤーを追加することにしました。現在、私は6つの隠れた層、それぞれ80のノードを持つネットワークを試しています。現在の損失は次のようになります。loss

      経験豊かな機械学習の専門家はどう思いますか?私の設定に何か問題はありますか?どのタイプのネットワークを選択しますか?
      私はすべての提案がうれしいです。

  • 答えて

    2

    私は過去に同様の問題がありました。目標は、神経進化のフレームワークNEATを持つロボットアームの逆運動学を学ぶことでした。左側の図はエラープロットです。最初はすべてうまくいきますが、ネットワークは改善しますが、ある時点では、誤差の値は同じ値にとどまり、変化がないと計算しても30分後になっています。あなたのニューラルネットワークが間違っているとは思わない、あるいはニューロンの数が間違っていると思います。私は、ニューラルネットワークは一般的に逆運動学の問題を学習することができないと考えています。私はまた、深遠な心の有名な紙(ニューラルネットワークを使ってAtariのゲームをする)が偽であると思う。

    neural network inverse kinematics

    しかし、戻って事実に。 OP(損失平均)と私のプロット(人口適応度)のプロットは、開始時と一定時間後の両方で、CPUが100%で稼動しているという事実にもかかわらず、改善できないスタンドアウェイカーブを示しています。よりよい解決策を見つけることができます。大幅な改善が目に見えるようになるまでニューラルネットワークを最適化しなければならない期間は不明であり、数日または何年もの一定の計算の後でさえ、よりよい解決策は見いだせない。文献には、結果が正常であり、今までのところ、より良いニューラルネットワークやより良い学習アルゴリズムが発明された、すべての中間的または困難な問題について示されている。根本的な問題はコンビナトリアル爆発と呼ばれ、ネットワーク重量のために可能な限り多くの解決策があり、コンピュータがそれらをわずかしかスキャンできないことを意味します。 "xor problem"のような問題が本当に簡単な場合、backpropagationやRPropMinusのような学習アルゴリズムが解決策を見いだします。迷路内をナビゲートしたり、インバースキネマティクスやペグインホールのタスクを見つけたりといったやや困難な問題では、現在のニューラルネットワークでは解決策は見つけられません。

    +0

    ご回答ありがとうございます。コンビナトリアル爆発を考慮すると、ヒットポジションとパドルの位置の距離など、より多くの報酬を追加するか、または最初にネットワークに良いプレイヤーの動きを示し、その後に学習させることができます。 なぜあなたはその論文が偽であると思いますか?私はフィールドでかなり新しいです、あなたの意見を聞きたいです。あなたが私にメッセージを書いたり、あなたの意見を表明する記事を送ってくれれば素晴らしいでしょう。 – Koanashi

    関連する問題