6-4-3 強化学習を実世界で使うための技術

これまでの章では、強化学習のアルゴリズムがどう進化してきたか、そして学習を支える手法について見てきました。
しかし、強化学習には大きな壁があります。シミュレーション(仮想環境)の中でどれだけ完璧に学習できても、現実の世界ではうまく動かないという問題です。

現実の世界は、シミュレーションとは違います。
ロボットが動けば床に摩擦が生まれ、センサーにはノイズが混じり、想定外の出来事が次々と起こります。また、現実の環境で何百万回も試行錯誤させることは、時間的にも安全面でも現実的ではありません。
この章では、強化学習を「使えるAI」として現実に着地させるための四つの技術を見ていきましょう。

sim2real

sim2real(シム・トゥ・リアル)とは、その名の通り「シミュレーション(sim)から現実(real)へ」という意味を持つ技術課題と、その解決に向けたアプローチ全般を指します。

強化学習のエージェントは、現実の世界で直接学習させることが難しいため、まずコンピュータ上の仮想環境で訓練されます。しかし、仮想環境でいくら優秀な成績を収めても、現実のロボットに移したとたんにうまく動かなくなることがよくあります。これをsim2realギャップと呼びます。

たとえば、シミュレーションの中では完璧に歩けるように学習したロボットが、実際の床の微妙な凹凸や空気抵抗を前にして、途端によろめいてしまう——そんな現象です。
sim2realの研究は、この「仮想と現実のずれ」をいかに埋めるか、という問いへの挑戦といえます。

ドメインランダマイゼーションとドメインアダプテーション

sim2realギャップを埋めるアプローチとして、代表的な二つの考え方があります。ドメインランダマイゼーションドメインアダプテーションです。この二つを理解するために、まず「ドメイン」という言葉を押さえておきましょう。

AIの文脈でドメインとは、「データが生まれた環境や条件のまとまり」のことです。
シミュレーションの中の世界はシミュレーションドメイン、現実の世界は現実ドメイン——同じ「ロボットが歩く」という場面でも、仮想の床と本物の床、仮想のカメラノイズと本物のノイズでは、データの質感がまるで違います。
この「環境や条件のちがい」こそがドメインのちがいであり、sim2realギャップの正体でもあります。

ドメインランダマイゼーションは、学習の段階でこのギャップに備える手法です。
シミュレーションの中で、床の摩擦・物体の重さ・光の当たり方・カメラのノイズなど、あらゆる環境条件を意図的にランダムに変化させながら学習させます。様々な条件で鍛えられたエージェントは、特定の環境に依存しない汎用的な能力を身につけ、現実に移したときの「想定外」を減らすことができます。
ミケが様々な形の迷宮、様々な明るさ、様々な床の感触の中で訓練されていれば、はじめて訪れる現実の迷宮でも臆せず動けるようになる——そんなイメージです。

ドメインアダプテーションは、学習済みのモデルを現実に移す段階で使われる手法です。
ランダマイゼーションで幅広く鍛えたとしても、現実との細かなずれが残ることがあります。そのとき、現実のデータを少量使いながらモデルを現実ドメインに合わせて調整・適応させるのがドメインアダプテーションです。
訓練を終えたミケを特定の現実の迷宮に連れていき、「ここの床はこういう感触だよ」と少しだけ慣らしてあげるイメージです。

この二つは対立する手法ではありません。「シミュレーションで幅広く鍛える(ランダマイゼーション)→現実に合わせて微調整する(アダプテーション)」という流れで、組み合わせて使われることもあります。

オフライン強化学習

通常の強化学習——オンライン強化学習とも呼ばれます——は、エージェントが環境と実際にやり取りしながらデータを集め、同時に学習を進めます。試して、結果を見て、また試す。このリアルタイムな試行錯誤こそが、オンライン強化学習の本質です。

しかしオフライン強化学習は、その流れを根本から変えます。
あらかじめ収集済みのデータだけを使って、環境と一切やり取りせずに学習する手法です。新たな試行錯誤は行いません。過去に誰かが積み上げた経験の記録だけを読み込んで、そこから学びます。

これは医療や自動運転のような分野で特に重要な意味を持ちます。
たとえば医療AIを強化学習で訓練するとき、実際の患者に対して「試行錯誤」させることはできません。しかし、過去の膨大な診療記録というデータは存在しています。
オフライン強化学習は、そのような「すでにある経験の記録」から学ぶことを可能にします。新しい環境で一から試行錯誤するのではなく、先人たちの膨大な経験を読み込んで知恵を身につける——そんな学び方がオフライン強化学習の本質です。

残差強化学習

残差強化学習は、「ゼロから強化学習で全部覚えさせる」のではなく、既存の制御システムやルールベースのプログラムと強化学習を組み合わせるアプローチです。

具体的には、あらかじめ人間が設計した「基本的な動作プログラム」を土台として用意しておき、強化学習はその上に乗っかって「基本動作では対応しきれない細かな誤差や調整」だけを学習します。この「補正分(残差)」だけを学べばよいため、学習がはるかに効率的になります。

ミケにたとえるなら、迷宮の基本的な歩き方は最初から教えておいて、「段差のある床での微妙なバランス調整」だけをミケ自身に学ばせるイメージです。
一から全部覚えさせるより、ずっと早く、ずっと安全に実用的な動作が身につきます。
現実のロボット制御において、特に有効なアプローチとして注目されています。

まとめ

sim2real → シミュレーションで学習したことを現実の環境に移す際に生じるギャップと、それを克服しようとする取り組み全般を指す概念
ドメイン → データが生まれた環境や条件のまとまりのこと。シミュレーション環境と現実環境はそれぞれ異なるドメインとして扱われる
ドメインランダマイゼーション → 学習の段階で、シミュレーション内の環境条件を意図的にランダムに変化させることで、現実環境への汎用的な適応力を高める手法
ドメインアダプテーション → 学習済みモデルを異なるドメイン(現実環境など)に適応させるために、少量の現実データを使って調整・微調整する手法
オンライン強化学習 → エージェントが環境とリアルタイムにやり取りしながら、データ収集と学習を同時に進める強化学習の基本的なスタイル
オフライン強化学習 → 環境と直接やり取りせず、あらかじめ収集済みのデータだけを使って学習する強化学習の手法。医療・自動運転など試行錯誤が難しい分野で有効
残差強化学習 → 既存の制御プログラムを土台にして、強化学習はその補正・調整分だけを学習させることで効率と安全性を高める手法

next ▶ 複雑環境における強化学習