エンジニアの吉田です。
ICLR2018の参加報告を計4回にわたって行なっており、今回は2回目にあたります。

第1回の報告では、ICLR2018の概要(ハコ)と強化学習の研究領域の簡単な紹介をしました。第2回以降では、ICLR2018で発表された論文(ナカミ)の紹介をしていきます。発表された中で印象深かった論文をピックアップして分野別に3回に分けて紹介する予定です。

特に、今回は、強化学習における転移学習に関連する論文を紹介します。まずは転移学習と、転移学習と密接に関係するメタラーニングに関して整理します。続いて、ICLR2018において発表された転移学習とメタラーニングに関する論文をそれぞれ1つずつ紹介します。

▼目次

  1. 転移学習とメタラーニングの整理
  2. ICLR2018の転移学習とメタラーニングの論文紹介

\vspace{3px}

転移学習とメタラーニングの整理

転移学習とは

転移学習とは、ソースタスクで学習したモデルから知識を抽出し、ターゲットタスクに適用することで、ターゲットタスクを少量のデータで高性能で解くことを目指す学習方法です。

マルチタスク転移学習の概念図

転移学習には以下の特徴があります。

  • ターゲットタスクが定まっており、ソースタスクはターゲットタスクが解きやすくなるように設計・選定する必要がある。
  • ソースタスクよりターゲットタスクの方が難しい傾向にある。

メタラーニングとは

メタラーニングは、Learn to Learn(学習の学習)とも呼ばれる学習方法です。
タスクの集合を仮定して、そこから複数の訓練タスクをサンプリングして訓練していく中で、どのようにタスクを解けばいいのかという知識(タスクの集合に対するメタ知識)を抽出します。その知識を用いてテストタスクを少量のデータで訓練しつつも高性能に解けるようにすることを目指しています。
狭義にはメタ知識を獲得する部分のみを指してメタラーニングと呼ぶこともあります。

メタラーニングの概念図

メタラーニングには以下の特徴があります。

  • 訓練タスクとテストタスクは同じ集合からランダムに定まる。
  • 訓練タスクとテストタスクの難易度は同程度である。

まとめ

学習法評価対象タスクの定義設計・選定対象タスクの難易度
転移学習固定活用元タスク評価対象タスクの方が難しい傾向
メタラーニングランダムタスク集合同等

\vspace{3px}
転移学習はメタラーニングの部分問題と考えられますが、本記事では区別をつけやすいようにソースタスクとターゲットタスクを固定していた場合は転移学習、タスクの集合を仮定していた場合はメタラーニングと呼ぶことにします。

強化学習における転移学習とメタラーニング

第1回で整理した強化学習研究の整理表において転移学習とメタラーニングがどこに当たるか見ておきましょう。

課題作業ブロック対象アプローチ打ち手
タスク設計が難しい場合ありタスク設計状態空間タスクを解くために必要十分な入力情報の選定実機検証(?)
行動空間再現性が高い形で行動空間を設計実機検証(?)
報酬関数シミュレータ活用
エキスパート軌道から報酬復元(?)
逆強化学習、模倣学習
試行回数を十分増やせず学習しきれない可能性あり方策初期化方策方策の事前学習転移学習、メタラーニング
方策学習更新法データを再利用オフポリシー手法
安定的な方策更新信頼領域法
取った行動の良し悪しのフィードバック頻度の増加探索効率化、
モデルベース強化学習、
カリキュラム生成、
模倣学習

表のオレンジの箇所が転移学習とメタラーニングが扱う部分です。
シミュレータでなく実機で強化学習をさせる場合、十分量のデータを収集することは難しいです。これは、深層強化学習アルゴリズムの多くは学習に必要な試行回数が多く、実機では1回の試行に少なくない時間がかかり、また、機械が劣化する、あるいは壊れる等の実機に特有の性質のためです。
そのため、学習に必要な試行回数を減らす必要があります。その試行回数を減らす1つのアプローチとして、転移学習やメタラーニングでは、事前学習により初期方策を改善することを目指しています。

\vspace{3px}
次に強化学習における転移学習とメタラーニングの具体的な研究について説明します。
\vspace{3px}

強化学習における転移学習の研究例

強化学習における転移学習の応用の方向性として、ここでは、主要な2つを取り上げます。

1つ目は、複雑なタスクであるターゲットタスクに対して、ソースタスクをその部分タスクとすることで、要素スキルを1つ1つ学ぶよう学習をステップ化し、安定性や効率性を向上させようという方向性です。具体例として、槍投げを学習させる場合を考えてみます。ターゲットタスクは槍投げです。ここでは、例えば、この槍投げを「槍を持って走った後に投げる」タスクと捉えます。加えて、「槍を持って走る」タスクと「槍を投げる」タスクをソースタスクとして、先に学習させます。こうすることで、要素スキルを学習した状態で、ターゲットタスクを学習できるため、学習効率や安定性の向上が期待できます。

2つ目は、実機でのタスクであるターゲットタスクに対して、ソースタスクをシミュレータでの同様のタスクとすることで、実機での試行回数を減らそうという方向性です。こちらについては、文献を交えつつ、説明します。
まず、シミュレータ実機の違いを簡単に整理します。シミュレータと実機では、制御・センサ信号の遅延や摩擦や慣性モーメント等物理パラメータ、制御・センサ値の誤差等の観点で相違があります。そのため、シミュレータで学習した制御方策をそのまま実機に適用しても実機ではシミュレータのように動かないことがほとんどです。
GoogleにおけるAI研究チームであるGoogle Brainが発表した論文では、遅延の再現や物理パラメータのランダマイゼーション、状態空間の選定を行うことで、四足歩行ロボットの制御方策をシミュレータで学習して、その方策を実機に適用することで実機を走らせることに成功しています(下図)。

シミュレータを走らせる方策(上段)を実機に転移(下段)[Tan et al., 2018]
実機と近い条件やランダマイズされたパラメータにおいて学習された方策が、先の転移学習の章で説明した「知識」に相当します。
シミュレータでは実時間より早く時間が流れますし、機械が壊れることもないため、十分な量のデータを得ることができます。そのため、実機でデータを集めるコストの大幅な低減が可能なため、シミュレータから実機への転移は非常に有用な手段になりえます。

強化学習におけるメタラーニングの代表例

メタラーニングの代表的な手法としてModel Agnostic Meta Learning (MAML)[Finn et al., 2017]というものがあります。
この手法は下図のようにタスクの集合内のどのタスクにも、できるだけ少しの追加学習をするだけで転移できる機械学習モデルのパラメータの初期値を見付ける手法です。
この初期方策がメタラーニングの章で説明した知識(メタ知識)に相当します。

Task1~3を解く最適パラメータに\theta^*_{1\ \textasciitilde\ 3}にすぐ転移できる初期値を見つける[Finn et al., 2017]
このMAMLを強化学習に適用した結果が以下になります。前にでも後ろにでもすぐに転移できる走れる初期値を獲得し(下動画前半)、1回だけの勾配降下による追加学習で前方と後方に走ることに成功しています(下動画後半)。

前方と後方に走る2タスクにすぐ転移可能な初期値を獲得 [Finn et al., 2017]
また、ある範囲の一様分布から目標速度をサンプリングしてメタラーニングし、転移によって範囲内であればどんな速度でも走れる初期値を獲得し(下動画前半)、1回だけの勾配降下による追加額数で目標速度で走ることに成功しています(下動画後半)。

目標速度にすぐ転移可能な初期値を獲得 [Finn et al., 2017]
実際の応用の場面で動作速度が後になって決まる場合、目標速度が決まってからゼロから学習していては時間がかかってしまいます。
メタラーニングを用いてどの速度にも即時に対応できるような初期方策を得ておくと複数の速度にすぐに転移できるため、試行回数の大幅な低減を期待できます。

\vspace{3px}
ここまで、転移学習とメタラーニングの概要、強化学習における転移学習とメタラーニングの概要と具体例について説明しました。この後は、ICLR2018で発表された、強化学習における転移学習とメタラーニングの論文をそれぞれ1つずつ説明します。
\vspace{3px}

ICLR2018の転移学習とメタラーニングの論文紹介

Learning an Embedding Space for Transferable Robot Skills [Hausman et al.]
Meta Learing Shared Hierarchies [Frans et al.]の2つの論文を紹介します。前者は転移学習の問題設定になっており、後者はメタラーニング(+転移学習)の問題設定になっています。

また、どちらも階層型強化学習を用いており、スキル表現が対照的で興味深いです。階層型強化学習とは、方策全体を部分的なスキル(ex. 走る、槍を投げる)を表す下位方策と使うスキルを選定する(ex. 初めは走って最高速度で槍を投げる)を表す上位方策に分けて学習する強化学習手法です。2つの論文では、スキルを表す下位方策の表現方法に、潜在変数として埋め込むか、1スキル1下位方策と対応づけるかの観点でも違いがあります。

下記の表に、2つの論文の特徴を比較整理しました。

論文問題設定タスク集合の有無スキルの表現
Hausman et al.転移学習潜在的
Frans et al.メタラーニング(+転移学習)明示的

\vspace{3px}

Learning an Embedding Space for Transferable Robot Skills [Hausman et al.]

この論文は転移学習の問題設定になっています。ソースタスクでスキルを埋め込む潜在空間を知識として獲得し、ターゲットタスクでは獲得したスキル空間のみを探索することで問題を解決します。

背景

多くの先行研究において、1つのスキルを1つの方策だけに覚えさせる方法は、システムの多様性や適応性を損なうことが指摘されています。そこで、効率的に、スキルを表現してそのスキルを再利用する方法への関心が高まっており、また、この方法の開発が大きな課題になっています。
この論文は、この課題の解決を狙っています。

実験で使用するタスク。右列と中央列をソースタスクとして左列のターゲットタスクを解く[Hausman et al.]

問題設定

この論文では以下のような3つのタスクを扱います。いずれも、下図の青いブロックを灰色の球状のゴールに入れると報酬を得らえるタスクになります。

タスク名ソースタスク1ソースタスク2ターゲットタスク難度
Spring-wallブロックと初期位置にバネSpringボールとゴールの間に壁Wallバネと壁どちらも存在Spring-wall低:ソースタスクの組み合わせで解ける
L-wall箱を押してゴールに持っていくPush箱を決められた高さまで持っていくLiftL字型の障害物をよけてゴールに持っていくL-wall高:単純な組み合わせでは解けない
Rail-pushレールにつながったブロックを上に持ち上げるRail箱の上でブロックを押すPush箱まで持ち上げて箱の上でブロックを押すRail-push中:組合せでとけるがターゲットタスクにアームと箱の衝突回避の要請あり

手法

この論文で使われるタスクとスキルという単語の定義がややこしいので整理しておきましょう。

  • タスク:上図のような報酬を得る条件や環境を決めると1つに定まるもの。上図は9つのタスクが存在していることになる。
  • スキル:「持ち上げる」、「押す」などの人間が意味づけできる動作
  • 軌道:上図のL-wallのLift(真ん中のタスク)を例にとると、ブロックを真上に持ち上げたり、斜め上に持ち上げて直接ゴールに持っていたりといった軌道が考えられる。(同じ高さに行けば同じ報酬がもらえるので色んな方向に動かす自由度がある)

下図の例でいうと、真ん中の初期値から左に行く「タスク」と右に行く「タスク」があり、同じ左に行くタスクでも真っすぐゴールに向かう「スキル」や回り込みながらゴールに向かう「スキル」などの複数のスキルがみられます。

Navigationタスクにおけるスキルと軌道の例[Hausman et al.]
この論文の手法の概要図は下図のようになっています。

手法の概念図[Hausman et al.]
  •  t:タスクを表すone-hotベクトル
  • p(z|t):スキルを表現する潜在特徴空間にタスクを埋め込み潜在変数zを得るエンコーダ
  • \pi(a|z,s):現在の状態sと使用したいスキルzを入力として次の行動aを決める方策
  • q(z|a,s^H):状態の系列と行動から使用すべきスキルを推論するデコーダ

タスクの報酬を最大化しながらも多様なスキルでタスクを解いてほしいので、タスクに条件づけられた方策のエントロピー最大化項を加えた以下の最適化問題として記述できます。

\underset{\pi}{max}E_{\pi,p_0,t\in \tau} \left[ \sum_{i=0}^\infty \gamma^i \left(  r_t\left(  s_i,a_i\right)+\alpha \mathcal{H} \left[ \pi\left(a_i \mid s_i, t \right) \right]\right) \mid a_i \sim \pi(\cdot \mid s,t),  s_{i+1}\sim p\left(s_{i+1}\mid a_i, s_i\right) \right]

これを変分下界を用いて変形すると、
エンコーダーとデコーダーと方策の学習は以下の目的関数のもと、行われることと同値になります。

L(\theta, \phi, \psi)=E_{\pi(a,z\mid s,t),t\in \tau} \left[ \sum_{i=0}^\infty \gamma^i \hat{r}\left(s_i, a_i, z, t \right) \mid s_{i+1} \sim p\left(s_{i+1}\mid a_i, s_i \right) + \alpha_1 E_{t\in \tau}\left[ \mathcal{H}\left[ p_{\phi}\left( z \sim t \right) \right] \right]\right],
where\  \hat{r}\left( s_i,a_i,z,t \right)=\left[ r_t\left(s_i,a_i\right) + \alpha_2 logq_{\psi}\left( z \mid a_i, s_i^H \right) + \alpha_3 \mathcal{H}\left[ \pi_\theta(a \mid s_i,z) \right] \right] \right]

特に以下の部分が一般的な強化学習と異なる部分であり、それぞれスキルを構成する条件を表しています。

  • \mathcal{H}\left[ p_{\phi}\left( z \sim t \right) \right] \right]:タスクに対していろいろなスキルが出てきてほしい(generality)
  • \pi_\theta(a \mid s_i,z):同じスキルでも多様な軌道が出てきてほしい(versatility)
  • logq_{\psi}\left( z \mid a_i, s_i^H \right):転移学習に使用したいのでスキルを実行したときの軌跡からスキルを推定できるようにしたい(identifiability)

また、転移先タスクでは事前学習で獲得した方策のパラメータを固定します。今の状態sから潜在変数zを出力するz=f(s)のみを強化学習して、固定した\pi(a|s,z)にzを入力してロールアウトさせてタスクを解かせます。ターゲットタスクではどのスキルを使うかについてのみ探索をすればよいことになります。

結果

以下の5つの手法を用意して比較しています

  • Ours: 2つのみの事前学習用タスクで事前学習してzを学習させ、転移先タスクでどのスキルを選択するかz=f(s)を学習させる(提案手法)。
  • Ours(pretrain all):6つ全ての事前学習用タスクで事前学習してzを学習させ、転移先タスクでどのスキルを選択するかz=f(s)を学習させる(提案手法)。
  • from scratch:転移先タスクにおいて強化学習を回して事前学習なしで方策を学習させるベースライン
  • task selection:zを用いないでtask id(t)と状態sのマッピングを直接学習
  • no inference net:デコーダーqによる目的関数のピンクの部分を除いて方策を学習したもの

inference netを用いることで以下の図のように得られる軌道に多様性があらわれることが確認できます。赤がinference netあり、青黒ではinference netなしです。Liftというタスクで、ランダムにzをサンプリングさせて方策をロールアウトさせています。

inferenece netあり(赤)となし(青)で学習した方策の生成する軌道[Hausman et al.]

この結果についてポスター発表の際に著者と以下のようなやり取りをしました。
吉田「何でinference netがあると赤みたいな多様な軌道が生じるんですか?」
著者「逆に考えてください。inference netがない→qの損失が考慮されないから軌道からスキルzを特定する必要がなくなる→色んなzに対する軌道が同じような軌道を描いても問題ない(zを当てる必要ないから)→よってp(z|t)が同じようなzを出して、\pi(a\mid s,z)が同じ軌道を出すようになります。」

ターゲットタスクに転移した結果は下図のようになっています。

ターゲットタスクの結果[Hausman et al.]
  • 単に強化学習を適用しただけであるfrom scratchに解けないタスクを提案手法が解けています。
  • 事前学習用の6タスク全てで事前学習したpretrain allもタスクを解けるが関連する事前学習用タスク2つのみの提案手法の方がサンプル効率が高くなっています。
  • Rail-pushで提案手法のみがいい性能が出てno inference netの性能が悪いのは事前学習でqによって多様なスキルが生じていて多様なスキルを表す潜在空間zを獲得できていたからと主張されています。つまり、versalityが効いているということです。

感想

数式としても綺麗な手法ですし、スキルを潜在空間で表すとinterpolateできて事前学習になかったスキルまで使えるようになるのは画期的と感じました。

\vspace{3px}

Meta Learing Shared Hierarchies [Frans et al.]

この論文はメタラーニングの問題設定になっています。訓練タスクで1つの下位方策に1つのスキルを獲得させてメタ知識とし、テストタスクでどの下位方策を使うかを決める上位方策のみ追加学習させることで汎化性能を評価しています。また、追加実験としてタスク集合のタスクとは環境が大きく異なるターゲットタスクに転移させるという転移学習の問題も行っています。
この論文は内容もさることながら著者がOpenAIでインターンをしている高校生という事実も驚きです。

背景

  • 従来の階層強化学習の研究は単一タスクにフォーカスされていて、タスクの集合を仮定することが少ない。
  • 強化学習におけるメタラーニングの研究では数回の勾配降下での転移しか扱っておらず、多量の勾配降下を用いて転移する研究はない。

このような背景から強化学習におけるメタラーニングを階層強化学習をツールとして解くことを目指した研究になります。

問題設定

タスクの集合は迷路形状の分布になっています。したがって、迷路の形状はランダムに生成されます。ランダムに生成される多様な迷路形状を解くことで、どんな迷路形状を解く時でも必要な知識の獲得を目指します。どの形状の迷路でも、上/下/右に進む3つのスキルの組み合わせで解けるので、3つのスキルに対応する下位方策が獲得したい知識になります。この知識を訓練タスクで得た後、新しい迷路形状のテストタスクでも成功できるかを確かめます。

9つの迷路形状の異なるソースタスク。肌色がエージェント。緑の四角がゴール。赤色は壁。報酬はゴールまでの距離にマイナス付けたもの。この中から迷路がランダムにサンプリングされエージェントがメタ知識を獲得する[Frans et al.]
また、転移学習も行っており、メタラーニングを用いて訓練タスクで知識を獲得したのちに下図のようなターゲットタスクに適用させます。このタスクは右上の緑の箇所に着いた時にのみ報酬を得られる疎な報酬の問題設定で事前知識なしの純粋な強化学習手法を用いると解くことが困難なタスクになっています。
ターゲットタスクには、マリオカートのワンワンのような障害物がエージェントを後ろに吹き飛ばす敵が自作されていて遊び心を感じました。

ターゲットタスク。緑のゴールに着いた時のみ報酬が得られる。[Frans et al.]

手法

方策全体の概略図は下図のようになります。\phi_k\thetaという2種類のパラメータによって表現される方策があります。

  • \phi_k:下位方策のパラメータ。下位方策は、訓練タスクで事前学習して、テストタスクを解くときには固定する運動スキルを表す。
  • \theta:上位方策のパラメータ。上位方策は、タスクごとに学習する。タスクを解くときにどの下位方策を使うのかをNステップに1回決定する。

この構成にするメリットは以下の2つです。
1. タスクに共通のパラメータとタスクに応じて適応させるパラメータを分けておくことで、事前に学習した知識を用いて、サンプル効率を上げつつも新タスクにうまく適応できる。
2. ターゲットタスクに適応させる際にNステップに1回意思決定する上位方策にとってはエピソードの長さが1/Nになるため、速く適応できる。

階層型方策の構成[Frans et al.]
学習方法は以下の2つを交互に繰り返すことで行われます。
1. warmup period:運動スキルを固定して上位方策を学習する。
2. joint update period:上位方策と下位方策を同時学習する。
上位と下位のどちらの方策もオンポリシー手法の1つであるPPOを用いて更新されます。
左下図は上位方策について、右下図は下位方策について、いずれも更新をする際に用いる情報を青く塗って示しています。

  • 上位方策(左図):時系列をNステップ間隔で扱っており、状態はその間隔の各時点のもの、報酬はその間隔の間で得られる累積報酬として、学習させます。
  • 下位方策(右図):下位方策は上位方策の出力に応じて環境に適用されるため、上位方策を環境の一部とみなして学習します。

上位方策の学習(左)と下位方策の学習(右)。青が学習に関わる方策、状態、行動、報酬、赤が環境を表す。[Frans et al.]
### 結果
結果として上述した様々な迷路を解かせると、下図のような下・左・上の三方向に動く下位方策を獲得できていました。

メタラーニングによって下位方策が獲得したスキル(メタ知識)[Frans et al.]
また、得られた下位方策を使うことで、疎な報酬系であるターゲットタスクにおいてもうまく学習していました。この理由は階層化されていない単一の方策で解くと各関節のトルク値という連続行動空間を3000ステップ探索しないといけない問題を、10ステップに1回上位方策が下位方策選ぶという離散行動空間を、300ステップ探索すればよい問題に変換できたからです。

\vspace{3px}
ICLR2018参加報告の第2回にあたる本記事では、前半で転移学習とメタラーニングを整理し、後半でICLR2018で発表されていた強化学習に関する2本の論文を紹介しました。
次回は、強化学習におけるカリキュラム生成と模倣学習の2つの研究分野の概要とICLR2018で発表されたそれぞれ2つの研究分野に関する論文について説明・紹介する予定です。

\vspace{3px}

著者紹介

吉田岳人
東京大学大学院情報理工学専攻修士2年。
大学院にて、強化学習のうち模倣学習を中心に研究を行う。
DeepXでは、研究領域の強化学習技術の産業応用を目指し、特に、機械自動化に向けた模倣学習の活用法の開発を行う。