フルオーダーメイド靴」のプレスリリースを行いました。vcoptで二足歩行を最適化するvcopt応用2019/05/05本記事の内容は2019年5月13日に更新されました。Gymには二足歩行の学習用の環境が用意されています。vcoptを使って、GAで二足歩行を最適化してみましょう。参考にさせていただいたサイト本当にありがとうございます。Colaboratoryが利用可能です。Colaboratorycolab.research.google.comvcoptの使い方についてはチュートリアルをご参照ください。お手軽最適化パッケージ「vcopt」チュートリアル実行環境Windowsマシンで実行する方にはWinPython3.6をおすすめしています。インストール不要で、USBメモリに入れて持ち運ぶこともできます。...vigne-cla.com2019/09/23vcoptの仕様については最新の仕様書をご参照ください。本記事執筆時とは仕様が異なる場合があります。installし直す必要があります。gymは最初から入っています。box2d-py次に、Colabでgym環境の画像表示(env.render()とか)をするためのおまじないその1です。pyvirtualdisplayおまじないその2です。str(display.screen)importまずは、今回使うパッケージをインポートします。vcopt二足歩行の動作確認こんな感じで、動作確認できました。渡して状態を更新します。actionの詳細は次のとおりです。表示されたとおり24個の数値列です。いろいろな部位の角度や、膝が地面についているかといった情報が含まれます。rewardは、足を動かすとエネルギーを消費してマイナスになり、前に進むとプラスになるようです。その場でジタバタしているとマイナスになります。何を最適化するのかまず、簡単な離散的GAを適用するために、actionを8種の遺伝子に対応させます。なり、左膝を前に出すことになります。なり、左膝を伸ばします。本来はこれら4つの関節は同時に動かせますが、簡単のために1フレームに1つの関節しか動かせないことにします。左右の足を交互に回してほしいのですが、足の1サイクルに何フレームを割り当てればよいかが分かりませんので、遺伝子配列の長さが決められません。そこで、遺伝子長を16とし、偶数番目の遺伝子はactionを、奇数番目の遺伝子はactionの継続フレーム数を表すことにします。フレームを1サイクルとして、ゲームオーバーまで繰り返します。注意点ですが、こいつは周りの状況をまったく見ずに、目を閉じてジタバタしていることを忘れないでください。できるだけ遠くまで走れるように、vcopt().dcGA()で遺伝子配列を最適化します。入力配列であるparaを受け取り、ゲームオーバーまでプレイします。スコアとして、rewardの積算値を返します。score(任意)poolの可視化関数poolを受け取って、エリート個体のゲームオーバー時の1コマを見ることにしましょう。]がparaに相当します。plt.show()GAで最適化para_rangeを用意しますが、偶数番目はactionの選択肢である0~7を、奇数番目はフレーム数の選択肢として1~12を並べます。vcopt().dcGA()を実行します。スコアが大きい方向へ最適化しますので、第3引数は大きい数(999999など)にします。本来は個体数は自動設定されますが、ここでは時間短縮のためにpool_num=100のコマンドを追加しています。time=29.734,1,5,3,5,8,4,10,4,4,2,6,7,2,7,10300世代目:スコア167(開始時はランダムな姿勢でランダムな地面に着地するので、たまたまハイスコアが出た個体らしい。最適化の結果、2(12)→5(10)→4(17)→7(8)(action(frames))というサイクルを繰り返すことになったようです。日本語で言うと、左膝伸ばす→右脚後ろに出す→右脚前に出す→右膝曲げる、のサイクルです。目を閉じて走るので、人間みたいな走り方だとすぐに転んでしまいます。よって、安定性重視のチキチキ走法になることは必然と言えるでしょう。ウサインボルトを目指すならば、自分の姿勢や地面の状況を見て判断するように、強化学習させたいところです。Slack、勉強会、Twitterをよろしくお願いします質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするvcopt応用vcopt遺伝的アルゴリズムこの記事を書いた人Yasuda博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。半額弁当の時間帯を知り尽くしている。動画サイトを探すと「GAでマリオをクリアする」といった動画が見つかります。vcopt、ニューラルネットの学習アルゴリズム比較2019/06/302019/07/01vcoptはこちらチュートリアル仕様書プレミアムパッケージフォローする質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするタイトルとURLをコピーしました。