sim2realとは

シムツーリアルsim-to-real transfer別名 Sim-to-Real、sim-to-real、Sim2Real、シミュレーションから実環境への転移

1行定義

sim2realとは、シミュレータの中で学習した方策やモデルを、実世界のロボットなどに移して使うこと、またそのための技術のことです。

くわしく

sim2realは、simulation to realityを縮めた言葉です。シミュレータで学んだ成果を、現実の世界で使えるようにすることを指します。深層強化学習をロボットに応用するときの中心的な課題の1つです。

なぜシミュレータで学ぶのか

強化学習は、膨大な回数の試行錯誤で方策を学びます。実機で同じことをすると、長い時間がかかります。機械が壊れたり、周りを傷つけたりするおそれもあります。シミュレータなら、多数の環境を並列に、実時間より速く動かせます。

リアリティギャップ

ただし、シミュレータは現実を完全には再現できません。摩擦や物体の重さ、モーターの反応の遅れ、カメラ画像の照明や色合いなどが少しずつ異なります。この差をリアリティギャップと呼びます。シミュレータだけで最適化した方策は、この差のために実機で失敗しがちです。

主な対策

  • シミュレータを現実に近づける:実機のモーターの特性や遅れを測り、シミュレータに反映します(システム同定)。
  • ドメインランダマイゼーション:照明や摩擦などの条件をランダムに変えて学び、現実もその変化の1つとして扱えるようにします。
  • ドメイン適応:シミュレータの画像を、GANなどで実際のカメラ画像に近い見た目に変換します。
  • 実機での調整:少量の実機データで追加学習したり、既存の制御と組み合わせたりします。

実際には、これらを組み合わせます。Tanらは2018年に、モーターの特性と遅れを再現し、物理的な条件のランダム化も加えて、四足歩行ロボットにトロット(速歩)とギャロップ(襲歩)を学ばせました。OpenAIは同じ年、シミュレータだけで学習した方策で、5本指のロボットハンドに物体の向きを変えさせました。

オフライン強化学習との違い

オフライン強化学習は、過去に記録したデータだけで学び、新たな試行をしません。sim2realは、シミュレータの中で試行を重ねる点が異なります。

G検定での出題

実機での試行は危険で費用もかかるためシミュレータで学ぶという動機、シミュレータと現実の差(リアリティギャップ)、ドメインランダマイゼーションなどの対策、オフライン強化学習との違いが問われます。

混同しやすい用語

用語意味
オフライン強化学習環境と新たにやり取りせず、過去に集めて保存したデータだけを使って方策を学習する強化学習の枠組み

◯×チェック

  1. OpenAIは2018年、実機では学習を行わず、シミュレータの中だけで学習した方策で、人の手に似たロボットハンドに物体の向きを変えさせた。

    答えを見る

    答え ◯ 正しい

    5本指のShadow Dexterous Handを使った研究です。摩擦の大きさや物体の見た目などをシミュレータでランダムに変えながら学習し、その方策を実機に移しました。

  2. sim2realでは、シミュレータを現実に近づける工夫と、シミュレータの条件をあえてばらつかせる工夫は両立しないため、どちらか一方だけを使う。

    答えを見る

    答え × 誤り

    両方を組み合わせることもよくあります。Tanらの四足歩行ロボットの研究(2018年)では、モーターの特性や遅れをシミュレータで再現したうえで、物理的な条件のランダム化も加えました。

  3. sim2realの手法には、シミュレータで作った画像を、GANを使って実際のカメラ画像に近い見た目に変換し、学習に使うものがある。

    答えを見る

    答え ◯ 正しい

    ドメイン適応と呼ばれる方法です。Bousmalisらは、シミュレータのデータとドメイン適応を組み合わせ、物体をつかむ学習に必要な実機のデータを最大で50分の1に減らしました。

練習問題

sim2realの問題(2問)
  1. 深層強化学習の課題と手法
  2. 既存の制御を生かす強化学習

AIで作成 人による確認:未 誤りを報告

出典と作成について

表示設定

テーマ
文字の大きさ
問題演習