01定義
Sim2Real(シム・トゥ・リアル)とは、物理シミュレーター上——試行錯誤が安価・高速・安全に行える環境——でロボットの制御方策を学習させ、それを実機のロボットハードウェアに展開する手法、およびその中心的な課題を指す。
02リアリティギャップ
最大の難しさは「リアリティギャップ」だ。シミュレーションの物理演算・センサーノイズ・素材の質感は現実世界と完全には一致しないため、シミュレーション上では完璧に動作する方策が、実際の摩擦・実際の照明・実際の物体の重さに直面した瞬間に失敗することがある。
学習環境
試行錯誤が安価・高速・安全に行える一方で、物理演算・センサーノイズ・素材の質感は現実の近似にすぎない。
実機環境
実際の摩擦・実際の照明・実際の物体の重さ——そのどれも、方策がまったく同じ形では経験していないものだ。
032つの対処手法
このギャップを埋める主な手法は、互いに補い合う2つがある。「ドメインランダマイゼーション」は、1つの固定された環境ではなく、多様なシミュレーション条件を横断して方策を学習させることで、1つのシミュレーターの細かな癖に過学習させるのではなく、変動に対して頑健にする。一方「システム同定(システムID)」は逆のアプローチを取る。シミュレーターを変動させるのではなく、摩擦・質量・モーターの応答特性といったシミュレーターのパラメータを実測値と照らして丁寧に較正し、最初から現実に近い、より精度の高い単一のシミュレーションを作る。実際のSim2Realの現場では、両方を組み合わせて使うことも多い。
ドメインランダマイゼーション
学習の実行のたびに、シミュレーターのテクスチャ・照明・物理パラメータを変化させ、方策を1つの厳密な設定ではなく変動そのものに頑健にする。
システム同定(システムID)
シミュレーターのパラメータを実測値と照らして較正し、最初から現実に近い、より精度の高い単一のシミュレーションを作る。
04実例:OpenAI Dactyl
OpenAIは、完全にシミュレーション上だけで学習させたロボットハンド「Dactyl(ダクティル)」でドメインランダマイゼーションを実証した。学習が進むにつれてランダム化の難易度を自動的に上げていく「自動ドメインランダマイゼーション(ADR)」という手法を使ったものだ。その結果得られた方策は、実機で片手でルービックキューブを解くことに成功し、研究者がぬいぐるみのキリンでハンドを小突くという、学習中には一度も見たことのない外乱を与えても動作し続けた。
05関連用語
06よくある質問(FAQ)
Q.シミュレーターの精度を上げれば「リアリティギャップ」は無くなる?
A.完全には無くならない。どんなシミュレーターも、現実世界の物理演算・センサーノイズ・素材を完璧には再現できない。精度を上げることは助けにはなるが(それがシステム同定の役割だ)、ドメインランダマイゼーションは、シミュレーション精度をひたすら上げることだけに賭けるのではなく、方策自体を変動に頑健にするために使われる。
Q.ドメインランダマイゼーションとは具体的に何をランダム化する?
A.テクスチャ・照明といった見た目の要素と、摩擦・質量・物体の寸法といった物理的な要素だ。学習した方策が1つのシミュレーターの厳密な設定に過学習しないよう、学習の実行ごとに変化させる。
Q.ドメインランダマイゼーションとシステム同定、どちらを選ぶべき?
A.二者択一ではない。多くの実際のパイプラインでは、まずシステム同定でシミュレーターを較正しある程度正確なベースラインを作り、その上にドメインランダマイゼーションを重ねて、較正しきれずに残った誤差にも方策が耐えられるようにする。