DQNで実機シミュレーション
分散深層強化学習でロボット制御という記事が。
「実機のセンサ情報をそのまま入力として用いて学習し、それを元に行動を決定する」みたいな話そのものは私自身が学生の頃(1990年代後半)にはすでにあった気がします。ただし、その頃は有線接続でロボットの動作も遅いといったロボット側(センサ)のスペックと、学習するPC側のスペックとの低さ(学習という点では主にこちら)から非実用的で、現実的には「計算機シミュレーション」がメイン。その後、学習結果を実機で試すのですが、環境要因(実機自身を含むノイズ)が馬鹿にならなくて困るという話があちこちであったんじゃないかと。ロボット制御方面は詳しくないのでうろ覚えですが。
リアルタイム(正確には適当な単位時間でのオンライン学習だと想像)で学習できるというのは凄い。前述のリンク先で紹介されてる動画見る限りだと「約1時間で150k回学習」することでスムーズな制御ができるようになったという恐ろしいスピードにガクブル。このぐらいの時間なら人間がサポートしてやるかという気になるよね。昔はシミュレーションですらこのぐらいでは終わらないのに、実機でもこのぐらいやれるのか。
他に気になることは以下の点。
- 「易しい環境から順に学習を進める」というのは一種の目標細分化とかプランニングに相当すると思うけど、問題毎に「何が易しいのか」「どういう順序で学習させると良いのか」といったことは必ずしも自明ではなさそう。
- 深層学習の層数・ニューロン数等の「モデルの自由度」は、問題の複雑さに応じて適切に設計することが求められるはずだけど、「少しずつ複雑な問題にしていく」際にこのあたりの問題はネックにならないのか。
- 上記2点と関連するけど、「何かについて学習したモデル」をベースにして「更に別のことについて追加学習させたい」際に、モデル自体をシームレスに拡張することは可能だろうか。
- 分散学習というのはNARUTOの影分身修行と同じことを言ってるのだと想像しますが、「異なるモデル(e.g., 人間とかバイクとか)」が入ってきたらどういう挙動になるのだろうか。衝突ペナルティを高くしてるのでそこは大丈夫になりそうだけど、問題が複雑になるとそう簡単にペナルティを設定できるとは限らなさそうでもある。