やってみた!

やってみた!

試したことを中心に、書評や興味のあること、思ったこととか

強化学習

PyBulletでURDF(Unified Robot Description Format)  URDF解説編(4)

前回はロボットtr1のurdfモデルを作りました。 今回はロボットtr1をPyBulletでシミュレーションさせます。 1.plane.urdf(床)の準備 シミュレーションするには地上に相当する床を定義する必要があります。マニュアルを見るとコード上で定義できるはずですが…

PyBulletでURDF(Unified Robot Description Format)  URDF解説編(3)

前回は既存のロボットモデルhumanoid.urdfの中身を見ていきました。 今回はオリジナルのモデルを作成してみます。 1.計画 某ロボットキットの写真を眺めながら、こんな図を書いてみました。某ロボットキッとは軸の位置、寸法はもちろん異なります。 可動軸の…

PyBulletでURDF(Unified Robot Description Format)  URDF解説編(2)

前回はURDFの基本構造の紹介と、Colaboratoryを使ってPyBulletにhumanoid.urdfを読み込ませ、表示させる方法を紹介しました。 今回はhumanoid.urdfの中身を見ていきます。 1.PyBulletのHumanoid.urdfの用途について PyBulletのプロジェクトにあるhumanoid.ur…

PyBulletでURDF(Unified Robot Description Format)  URDF解説編(1)

前回までは3D物理シミュレータBulletのpythonラッパーPyBulletで動くGym,HumanoidFlagrun(Harder)BulletEnv-v0を使い深層強化学習を試してみました。 本記事では、オリジナルのロボットのシミュレーション環境を構築できる様、まずはURDFについて調べてみま…

PyBullet-HumanoidFlagrunHarderBulletEnv-v0(4)

次はHumanoidFlagrunを学習させてみます。Humanoidの学習に使ったソースコードのenvを定義している箇所を入れ替え(コメントアウト)て動かします。ソースは前々回のこちらの記事を見てください。 ちなみに、学習を進めても全然報酬が増えず、Google Colabor…

PyBullet-HumanoidFlagrunHarderBulletEnv-v0(3)

今回はSoft Actor-Critic(SAC)について備忘録ということで解説します。以下の論文は初期のSACをさらに改良したものです。 1.深層強化学習の理解に必要な事項の整理 まずは、各記号、考え方の整理など。 行動価値関数が最大になる行動を出力する方策関数を学…

PyBullet-HumanoidFlagrunHarderBulletEnv-v0(2)

2020/1/25改正 学習継続時に早くalphaが収束するようalpha、log_alpha、alpha_optimizerを保存するように変更しました。gpu有、無しの両環境で保存データを共有できるようモデル読み込み時にmap_location=deviceを追加しました。 2020/1/23改正 BATCH_SIZEを…

PyBullet-HumanoidFlagrunHarderBulletEnv-v0(1)

次は3Dの物理シミュレータを使ってみます。以前はOpen AI Gymで使える3D物理環境は有料のMuJoCo用だけでしたが、今では無料で使えるPyBullet用環境(env)もあるということなので、こちらを使ってみます。 PyBulletはErwin Cumansさんらが開発したオープンソー…

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(7)

今回はおまけということで、DDPGに教師を追加してみました。記事の最初の方で作成したPD制御を教師として、DDPGの経験処理中に行動をアシストすると、学習に何か効果があるかを試しました。 結果、最初は教師の影響を受けて大股で歩こうとしていたものの、最…

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(6)

前回はDDPGをざくっと解説してみました。 今回はDDPGでBipedalWalkerを学習させてみます。 1.BipedalWalker-v2の報酬について Open AI Gymのgithubサイトにあるソースリスト https://github.com/openai/gym gym-envs-box2d-bipedal_walker.pyの関数stepを…

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(5)

前回はDDPG(Deep Deterministic Policy Gradient)でMountainCarContinuousに挑戦し、無事学習して山登りに成功しました。(BipedalWalkerは手強いので後回しです・・・) 今回は中身について、ざっくりですが解説してみます。 1.DDPG(Deep Deterministic …

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(4)

改正2019.12.26 ソースリスト中でsteps_done +=1の位置をwhileループ(各ステップ計算ループ)からepsodeのforループに移動しました(バグ)。このバグのためSIGMA_DECAYがほとんど効かず、すぐにノイズが小さくなっていました。あわせてSIGMA_DECAYの設定値…

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(3)

前回の続きです。歩行のスケジュールをチューニングした結果、2,3歩歩けるようになりました。これ以上は胴体の傾きをつかって制御するなどもう一工夫必要そうです。 スケジュール制御での歩行は一旦このくらいにしておきます。とりあえず現状の歩行を以下に…

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(2)

前回の続きです。まずは、ニューラルネットワークを使わずにとにかく動かして、BipedicalWalkerがどのようなものなのか試してみます。歩くとこまで行くかどうか(現在も試行錯誤中)。とりあえず、脚の角速度が指令値じゃ何なので角度制御を導入します。

Open AI Gym Box2D BipedalWalkerをColaboratoryで動かしてみる(1)

Open AI Gymをご存知の方も多いと思いますが、強化学習の開発用にOpen AIがフリーで提供しているテスト環境です。pythonで書かれています。 https://gym.openai.com/ この中にはブロック崩し、インベーダゲームを始めとするAtariの様々なゲームや、2次元の月…