下町データサイエンティストの日常

下町データサイエンティストの成果物

OpenAIのかくれんぼ強化学習の論文を読んだ

f:id:pira_nino:20200330173129p:plain

論文: Emergent Tool Use from Multi-Agent Interaction

昨年 2019/09/17にOprnAIが出したかくれんぼ(hide and seek)強化学習論文を読んだので、備忘がてらブログにメモ。
メモなので、正確に書いていないことだけはご了承ください。。。
タイトルは"Emergent Tool Use from Multi-Agent Interaction" という論文。
かわいいagent君達がかくれんぼを学習していく様子からは想像つかないタイトルですね(小並)

arxiv.org

openai.com

www.youtube.com

また、「そもそも強化学習とは?」といった基礎的な話題は割愛させていただくことをご了承ください。。。

(余談) 白金鉱業fmのコンンツのために読んだ

白金鉱業fm という有志メンバーでのpodcastを定期的に収録しています。
「ちゃんと技術を語る回を定期的に録ろう」となり、nino_piraも何か話そうとの流れになり、「そういや、かくれんぼ強化学習の論文とかリスナーにウケそう」と思い論文をまとめることにしました。
収録drivenラーニング」ですね(小声)

技術回のとしては初回のNGBoost回、なかなか良かったので宜しければ聞いてください。機械学習に少し精通している方ならば、NGBoost完全に理解したレベルまでいけると思います。

shirokane-kougyou.fm

shirokane-kougyou.fm

アブスト

  • かくれんぼというシンプルなタスクにおいて、マルチエージェントのセルフプレイで6段階の複数段階の戦略を学習できた
  • 段階的戦略の例:隠れる側のagentが箱を使い見つける側のagetの侵入を防ぐ -> 見つける側のagentがジャンプ台を使って乗り越える
  • このように見つける側と隠れる側の戦略が相互関係を持って学習が進んでいった
  • 評価:かくれんぼを事前学習とし、他タスクにfine-tuneさせた際に0からの学習や内発的報酬との比較を行なった

気なったこと / メモ
アブストではモデルの話はしていないんですね。(確かにモデル自体はシンプルです。)

1. イントロダクション

近年の強化学習の取り組みの限界

  • 長年、人間の物理的な世界の物体を感知して、相互作用を行うagentの強化学習の研究が取り組まれている。
  • 特定のタスク(環境)下で強化学習を行うアプローチが知られている
  • しかし、報酬設計の難しさや教師となるデモンストレーション獲得のために莫大な時間とコストがかかる問題がある
  • さらに、一つの環境で学習してしまうとさらなる向上性は見込むことは難しい(汎化性能の話)
  • 直接的な教師あり学習(環境から与えられる外部報酬)のみでは、スケーリング性が乏しいので、教師なし学習や内発的報酬のアプローチがある
  • しかし、教師なし学習は環境の複雑性に合わせた拡張性が乏しく、ドーキンスのnatural selection的ではない(急に壮大な話)
  • バックギャモン / 囲碁 といった古典的な離散ゲーム、Dotaのようなリアルタイムマルチエージェントタスクでは強化学習の成功事例があるが、現実の物理的世界におけるタスクとは異なる。

気になったこと / メモ
「物理環境でのタスクを解くぞ」という意思表明に感んじた。
ヒューマノイドを走らせるる研究は、走らせる場所が変化(例:平面を走るか、斜面を走るか)してもイケるので、その論文の紹介例も出せばいいのにと思った(小並)

本研究では、、、

  • かくれんぼの環境を導入する
  • agentの可視性に基づく(例:見つける側が隠れる側を視認できているか)報酬を元に学習を行う
  • ドアやバリケードなどの物理オブジェクトをagentが自身のニーズに合わせて動かせるので、環境も動的に変化する。
  • 学習を進めると、より複雑な環境になっていくことが確認された。
  • 人間が解釈可能な行動になっていくことも示された。

f:id:pira_nino:20200330122651p:plain

解釈可能な6段階の学習
(a) 見つける側(赤)隠れる側(青)を追いかけることを学び、隠れる側は見つける側からに逃げることを学習
(b) 隠れる側は壁などの道具の使い方を学習し、シェルターを作るようになった
(c) 見つける側はスロープを使ってジャンプし、る隠れる側のシェルターに飛び込むことを学習
(d) 隠れる側は、スロープを隠すことを学習
(e) 見つける側は、スロープを使わずとも、固定されていない箱の上に乗り慣性でジャンプできる(Box surfing = 箱サーフィン)ことを学習
(f) 隠れる側は、固定されていない箱を固定することを学習する

転移学習 / fine-tuning

  • 環境の多様性が大きくなりすぎると、学習が進みづらくなる
  • そこで、ターゲットを絞って事前学習を行ったagentを用いることで、0からの学習するagent / 内発的動機で学習されたagentよりも、早く学習 or 高いパフォーマンスが得られた

本研究のコントリビューション

(1) マルチエージェントのセルフプレイが、お互いの戦略を加味した戦略を学習する可能性があることを示した
(2) 物理的な環境では、道具を使うなど実世界で人間が行いそうな戦略を学習することを示した
(3) 転移学習 / fine-tuningの有効性を示した
(4) これらのコードをオープンソースで公開した

気になったこと / メモ
雰囲気を掴めたと思うので、アルゴリズムに興味ない方は6.評価まで飛ばしても良いいと思う。
6章のfine-tinningの話は非常に面白いので、MUSTで読んで欲しいです。

2. 関連研究

(省略気味で)

  • マルチエージェントの歴史
  • 内発的動機の話
  • 道具使用の話(本研究では、エージェント間の戦略を見てでツールの使い方を学習していく)

3. かくれんぼのタスク説明

かくれんぼの設定

  • チームベースの報酬
    • 隠れる側のagent全員が見つける側の視界に入っていなければ、隠れる側に+1点、見つける側-1点
    • 逆に隠れる側のagentが1人でも見つける側の視界に入っていれば、隠れる側に-1点、見つける側+1点
  • 無限に逃げられても困るので、18m四方のエリア外に逃げ出したら-10点
  • agentが掴んで動かせるオブジェクトが散財している
  • 動かせない壁や部屋もランダムに散財している
  • 1ゲームは240stepsだが、最初の40%(=96step)は隠れる側だけが動け、オブジェクトを動かしたりたりできる準備時間が用意されている(準備時間の報酬は0)

環境設定

  • MUJOCO(物理エンジン)で実装
  • ステージ設定
    • 見つける側1~3人
    • 隠れる側1~3人
    • 3~9個の可動する箱(最低3個は細長い形状)
    • 2個の可動スロープ
    • ランダムに生成された動かせない壁と部屋
  • agentが観測できる変数
    • 物体と他agentの、、、
      • 位置
      • 速度
      • 大きさ(形がランダムな箱)
    • 視界は135度(視界外の物体や他agentの情報はマスキング)
  • 残り準備時間

  • agentが取れる行動

    • 自身が動く:x, y軸で離散化された力とz軸方向のトルク
    • 物体を掴む or 離す
    • 可動な物体を固定する(最初に固定したagentのみ固定解除可能)

4. 方策の最適化

  • セルフプレイで学習される
  • 1つのagentが学習するネットワークは2つ
    • 方策ネットワーク:ある状態で、とるべき行動を推定するネットワーク(正確には分布)
    • criticネットワーク:割引報酬和を予測するネットワーク (Q値とかのこと)
  • 方策ネットワーク
    • Proximal Policy Optimization (PPO):方策勾配法にKL情報量の制約をかけたTRPOに対し、さらに方策の更新量の項にclipをかける手法
    • Generated Advantage Estimatio (GAE)(一般化報酬):どう説明するべきか分からないが、TD-ラムダっぽい目的関数に変更する手法
  • 分散学習
    • 学習時には中央集権で各agentの履歴を元にに学習
  • ネットワークは下図
    • 各要素をembedding化
    • agentから見えていない要素のembeddigはマスキング
    • concatしてself-attentionレイヤーに突っ込み、poolingしてLSTM f:id:pira_nino:20200330142044p:plain

気になったこと / メモ
ネットワークは単純だが、ここにもattention登場してくるのか、、、、

5.自動カリキュラムと創発的行動

  • 上記6つの戦略の学習は、Multi agentが道具を使ったりなど勝手に創発的に学習が行われている
  • それぞれの戦略を学習するのに、数千万epidodeかかったことが書いてある
  • チームプレイを学習した(隠れる側1人のときよりも、2人, 3人チームにすると、箱サーフィン防止のための箱をロックする個数が25, 36%up )
  • 隠れる側と見つける側の相互作用で創発的戦略が生まれる(例:見つける側がスロープの移動と使用を学習すると、ゲームのメインフェーズでのスロープの動きが増加し、「箱サーフィン」を学習すると、ゲームのメインフェーズでの箱の動きがわずかに増加)
  • バッチサイズを大きくすると、学習効率がよくなる(8K、16Kでは収束せず)
  • 学習中に環境を変えることでロバストな学習ができた

6. 評価

  • 単純に報酬の履歴を見ることは、エージェントが均等に学習しているかの評価を示せないので不十分な評価指標

vs 内発的報酬

  • カウントベースの内発的報酬を与える解き方を行うと、1agentの時には箱の移動が最大になるが、2-3agentにすると移動が大幅に減少する。これは探索空間が大きくなりすぎるとagentが探索すべき次元を探すのが困難になり、カウントベースの内発的報酬の限界があることを示している。
  • また、RND(ランダムなターゲットネットワークの出力との差内発的報酬にする手法)を使うと若干良くはなる。

かくれんぼを事前学習とし、新しいタスクにfine-tune

  • かくれんぼで学習されたネットワークを用いて他タスクをfine-tune
  • 「認知/記憶タスク」と「操作タスク」の2種類のどちらかに分類される5つのタスクを準備(タスクの詳細は付録C参照)

    • 認知/記憶タスク

      • Object Counting:固定されたagentが、左右のステージ外まで動く箱を見て、左右にそれぞれ何個の箱が移動したかを数えるタスク(LSTM層から(多分)Denseで連続値を出力するネットワーク)
      • Lock and Return:6このランダムな部屋のうち1つからスタートしたagentが部屋外の箱を固定した後、同じ部屋に戻って来れるか
      • Sequential Lock :3つの部屋にランダムに配置された総計4つの箱を正しい順番通りにロックする(正しい順番を見つけることを学習)(部屋間の移動はジャンプ台を使う)
    • 操作タスク

      • Construction From Blueprint:8個の箱を1-4箇所設置されたtarget siteに配置する
      • Shelter Construct:3つの細長い箱、5つの立方体の箱を使って、1つの動かせないシリンダーの回しにシェルターを作る
  • 結果

    • 比較手法

      • (メイン)かくれんぼで学習済のネットワークを元にfine-tune
      • ゼロから学習
      • カウントベースの内発的報酬
    • かくれんぼを事前学習としてfine-tuneすると比較手法に比べ、、

      • 精度微向上: Lock and Return / Sequential Lock / Construction From Blueprint
      • 精度微低下:Object Counting (セロベースは精度低)
      • 最終的に同精度だが、遅い:Shelter Construct
    • 考察

      • 精度が向上したタスクはかくれんぼで学習した特徴量が有効であった
      • 低精度のタスクには、かくれんぼで学習した行動の応用(転用)が難しいと考えれる
      • →ある環境で訓練されたポリシーから別の環境へスキルを効果的に再利用する技術の開発の必要性を示している
        • さらに将来の環境が多様化し、agentがより多くの文脈でスキルを使用しなければならないようになれば、このように他タスクへの応用性を評価することで、より一般化可能なスキル表現を評価できる可能性
      • 例えばかくれんぼの解釈可能な6段階の学習の各段階を初期値として、Lock and Returnにfine-tuneさせることで、かくれんぼの学習が汎用的な学習を行えているかの評価が行える。
        • 付録A.5が面白かったので触れます
          • Lock and ReturnはPhase6を初期値とするとPhase1を初期値とした際よりも大幅に向上
          • Object CountingはPhase1がベストで、他Phaseでは全然ダメ。つまり物を数える能力は忘却されている可能性
          • 操作タスクはPhaseに依存しない。(へー。汎化性が学習されていないのか、Phase1で十分学習されていたのか、簡単なタスクだからだろうか?)

f:id:pira_nino:20200330181139p:plain

気になったこと / メモ

  • fine-tuneさせて、他タスクに適用できるかでモデルの評価を行うのは面白い
  • NLPや物理環境化での強化学習といった「人間の感覚」や「実世界で一般的な動作か」を評価する上で、fine-tuneで評価を行うことに勝手に納得した
    ( Bertも「pre-trainさせたモデルを他タスクにfine-tuneしても汎化的に精度が高くて凄いね」って主張しているし、まぁ自然なアプローチ)

7. ディスカッション / 今後の課題

  • 単純なルールのゲーム、マルチエージェント競争、標準的な強化学習アルゴリズムを用いてagentに複雑な戦略とスキルを学習させることができることを、大規模で実験で実証した
  • 評価指標とし、転移学習を用いたアプローチを提案した。
  • これらの結果は、マルチエージェントの自動カリキュラムが物理的に根拠のある人間に関連した行動につながることを示した。
  • 今後の課題
    • 莫大なepidsode回学習させたが、更に効率的な学習サンプルに取得方法
    • 箱サーフィンなど、物理シユレータの穴をついた行動をしてきたので、シミュレーターの改修

論文を読んでみて感想

論文のタスク自体は人間にも直感的で非常に面白かったです。また、デモ映像として公開されているyoutubeが可愛い&最後が意味深で凄く好きです。

また、毎回強化学習の論文を読むたびに

  • じゃぁ何に使えるの!?
  • 計算時間エグい

と思います。まだまだビジネス適用は難しい分野ですね。。。

自分が読んだ強化学習の資料達

こんにちは。nino_piraです。
先日、強化学習の資料の引用ツイートをしましたら、それなりに伸びたので、「もしかして、みんな強化学習に興味ある!?」と思い自分が読んだ&好きな資料をまとめてます。
また、ブログを書いているうちに「何を持って基礎とするか」などカテゴライズも自分の中でも行方不明になっていましたので、色々思うところはあると思いますが、暖かい目で読んで頂ければ幸いです。。。。

あくまでも私の経験

よくある初心者入門資料とかではなく、あくまでも自分が読んだ&好きな資料であることはご容赦ください。
加えて、分散学習系の話はちょっと苦手など、網羅的ではない点もご容赦ください、、、、

強化学習基礎系

これ読めば、強化学習の登場人物(state, action, reward) / ベルマン方程式 / Q学習/ 方策勾配...などの単語の理解ができる系の資料達です。

[Qiita] DQN(Deep Q Network)を理解したので、Gopherくんの図を使って説明

わかりやすい。キャッチーな説明なのでとっかかりやすいと思う。
初めの一歩としては参考になると思います。

qiita.com

[書籍]これからの強化学習

日本語の書籍では、一番基礎から丁寧に追っている本だと思います。
第1章 強化学習の基礎的理論を読むだけで十分だと思います。2章はMUSTではないと思います。

www.morikita.co.jp

[pdf] (小南さん作成) 強化学習入門

よくこここまで綺麗に、日本語で資料をまとめてくれたなぁと思います(脱帽)。
7章の深層強化学習までの6章までを何回も往復して読み込むべき資料だと思います。 github.com

[pdf] (通称) Sutton本第2版

個人的には、原点にして頂点だと思っています。
ただ、英語である点やSutton先生の独特な言い回しなど少しトリッキーな点があります。しかし、個人的にはMUSTな資料だと思います。 なお、第1版は日本語で書籍化されていますが、第2版で大幅updateされているので、是非第2版の無料pdfを読んでください。

http://incompleteideas.net/book/bookdraft2017nov5.pdf

[書籍] 機械学習スタートアップシリーズ Pythonで学ぶ強化学習

個人的には最高の一冊。実践に寄った網羅的な本。
コード例がたくさん載っているので、数式 →具体的な処理を知りたい方にはオススメ。
個人的には、この本の発売時点である程度強化学習を理解していたので、知識の追い打ちとして凄くタメになりました。
もちろん実装だけではなく、理論面もMDPから最新の深層強化学習の話までの流れが丁寧で非常に良書だと思います。
こちらもMUSTな一冊です。

bookclub.kodansha.co.jp

[ブログ]強化学習

初めてこのブログを見たときには衝撃を受けました(脱帽)。。。
マルコフ決定過程(MDP)から最近の深層強化学習まで網羅的によくまとまっています。
このブログを見て「なるほど。理解。」となれば強化学習をある程度知っていると言っても問題ないと思います。

yagami12.hatenablog.com

もう少し強化学習を詳しく知りたい系の人へ

[書籍]速習 強化学習

むずい笑。先輩に「これ読めば強化学習完全に理解できるよ」と初手で渡されたけど、3ページ読むと1日が終わるハードモードであった。
最近はようやく読めるようになってきました。苦笑
数学を得意とする人が読むと、実は読みやすいのかもしれません汗

www.kyoritsu-pub.co.jp

[書籍]強化学習

ちゃんと数式を追っていて個人的には好きです。
強化学習の基礎的な概念を掴んだ後に読んでみると良いと思います。 www.kspub.co.jp

[論文]Deep Learning for Video Game Playing

ゲーム(主にatari)への深層強化学習の発展のまとめ的な論文。 手法の発展がアプローチごとに色分けされてまとめられたこの図が好き。 f:id:pira_nino:20200127204022p:plain

arxiv.org

[動画]UCL Course on RL

追々何かと出てくるDeep MindのSilverさんのUCLの授業のmovie。
英語という壁を乗り越えれば、model freeについてちゃんとまとめられて講座はないと思います。

www0.cs.ucl.ac.uk

DQN

[pdf]DQNからRainbowまで 〜深層強化学習の最新動向〜

本ブログを書こうと思ったキッカケの資料です。
本当にいい資料です。強化学習の基礎 → DQN → Rainbowに至るまでの流れが丁寧に書かれており、至極の資料です。。。。絶対に読んでいただきたい資料です。
余談ですが、もはやRainbowまでは常識になりつつあると個人的に思っています。

www.slideshare.net

[論文]DQNの論文

通称、nature版とarxiv版の2つがあります。実装の設定が若干違うなど微妙な差異はあります。
個人的にはnature版が好きです。ただ、appendixのように字が小さい後編こそが実質本編なのは頂けないなぁとは思いつつも、MUSTな論文だと思います。

https://web.stanford.edu/class/psych209/Readings/MnihEtAlHassibis15NatureControlDeepRL.pdf

Rainbowを構成する要素の論文

強化学習ちょっと知ってる」というには、DQNだけでは物足りない時代になってきました。。。。
そこで、Rainbowを構成する要素も知っていると良いかなぁと思います。
(Rainbowももはや常識になりつつあり、この分野の進化の早さを痛感します、、、、)

[論文]Deep Reinforcement Learning with Double Q-learning

通称ダブルネットワーク。
行動を選択するQ関数、目的関数で用いるそのときのQ値を評価する関数を求めるQ関数をそれぞれ異なるものを使うイメージ。
定期的に同期させる。

arxiv.org

[論文]Dueling Network Architectures for Deep Reinforcement Learning

Q値の出力の前の層に V(s)を表現するレイヤーを入れて、Q(s,a)との差分のadvantageを学習させるイメージ。 なかなか実装が面倒な印象だが、もはや常識になりつつある。。。。

arxiv.org

[論文]Multi-step Reinforcement Learning: A Unifying Algorithm

現在の価値を計算する際に、1stepではなき、複数ステップ考慮するマルチステップの考え方をDQNに適用させた論文

arxiv.org

[論文]Noisy Networks for Exploration

ノイズを含んだレイヤーに入れてあげることで、 \epsilon-greedyよりも複雑な探索を行えるようにした論文。
イメージとしては、どれくらいランダムな行動をすべきかも学習させているイメージです。

arxiv.org

[論文]Prioritized Experience Replay

TD誤差の大きいデータを優先的にsamplingしてバッチで学習させる手法。
苦手なデータを積極的に学習させるイメージだと個人的に解釈している。

arxiv.org

[論文]A Distributional Perspective on Reinforcement Learning

強化学習において、収益期待値 ではなく、分布を用いることの有効性を示した論文です。

arxiv.org

[論文]Rainbow: Combining Improvements in Deep Reinforcement Learning

満を侍してのRainbow。
上記の手法を6+DQNの7つを全部くっつけました的な論文です。
個人的にはラーメンの全トッピングだと思ってます。先輩はロックマンの中ボスラッシュって喩えてました。
個人的には、scoreの図が虹色で書かれてて「おーRainbow!!」って感じで好きです(小並)

arxiv.org

方策勾配系

sutton本第2版を読めば、policy gradient(方策勾配)の数式的な話は理解はできると思います。
ここでは知名度の高い手法をいくつか紹介します。

[論文]Deterministic Policy Gradient Algorithms

通称DPG(決定的方策)。 その名の通り、決定的な方策勾配を導入した論文。
ちなみに、作者のSilverさんの論文達は個人的に凄く好きである。

http://www0.cs.ucl.ac.uk/staff/d.silver/web/Publications_files/deterministic-policy-gradients.pdf

[論文]Continuous control with deep reinforcement learning

通称DDPG。DPGをDeepに適用させたのでDDPG。
連続値のactionを行うタスクへの初手はDDPG。

arxiv.org

[論文]Trust Region Policy Optimization

通称TRPO。
(確率的)方策が突然大きく更新することを防ぐために、KL情報量で制限をかけているイメージ

arxiv.org

実装はこのgithub が参考になります。

github.com

[論文]Proximal Policy Optimization Algorithms

通称PPO。
TRPOの制約のKL情報量をloss関数に入れてしまうイメージ

arxiv.org

実装

自分がよく参考にする実装例

[github]Open AI Baselines

Open AIが有名どころの深層強化学習系の実装例を公開してくれています。
全部tensorflowで書かれています。(verは1.14)
めっっちゃくちゃ参考になります。。。。

github.com

[github]Denny Britzさんの実装例

凄く読みやすいです、、、、よく参考にしています。

github.com

[github]keras-rl

実はそんなに使ったことないので、詳細の言及はできませんが有名ですね。

github.com

環境

強化学習を適用させる環境(env)の紹介です。(タスクみたいなイメージ)

[github]Open AI Gym

ネットでよく見る「振り子」とか「atari」などのタスクが実装されています。
stateに対しactionをするとrewardと次のstateが返ってくるインターフェースが整ったenvが何種類か揃っており、強化学習を試すにはお手軽です。

github.com

[サイト]mujoco

こちらもよく見る ヒューマノイドなどが実装された物理シミュレータ。
ただし、有料LICENSEの契約が必要なので、閾値は高め。
(ちなみに、私はLISENCE持っていないので触ったことないです。)

www.mujoco.org

[giithub]pybullet-gym

無料の物理シミュレーであるbulletをpythonでラッパーさせたpybulletを使ってmujocoなどを再現したモジュール。
こちらはフリーで使えます。しかもgymと同じインターフェースなので使いやすい。
ただし、本家のmujocoと若干rewardの設定が違うなど、細かい部分は異なるので注意。(とは言っても、普通に遊ぶ分には気がつかない程度)

github.com

[github]procgen

最近 Open AIが公開した環境。
触ったことないけど、なんかかっこいい(小並)。

github.com

みんな大好きDeep Mind / Open AI

ここまでも散々登場していますが、みんな大好きDeep Mind / Open AI。
最近、ただのDeep Mind / Open AIファンになりつつある私がいくつかの事例を紹介します。

[サイト]Deep Mind / Open AI

今更な紹介になりますが、強化学習といえばDeep Mind / Open AIと言っても過言ではないかなぁと思います。
加えて、私がDeep Mind / Open AIのファンなので(?)ここからはDeep Mindの論文紹介コーナーになります(汗

deepmind.com

openai.com

[論文]Emergence of Locomotion Behaviours in Rich Environments

「めっちゃ走るやん。。。。」とヒューマノイドを走らせる系の論文の中で(個人的に)一番衝撃を受けた論文。

arxiv.org

www.youtube.com

[論文]Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm

通称Alpha zero。
(モンテカルロ探索と強化学習とself-playとを組み合わせた)かの有名なalpha goの続編的な論文。
とうとうドメイン知識0からのself-playで囲碁も将棋もチェスも学習できるようになったらしい、、、、すごい。。。。

science.sciencemag.org

[論文]Emergent Tool Use from Multi-Agent Interaction

ここ最近で一番好き論文。agentにかくれんぼをさせるタスク。
アーキテクチャが凄くわかりやすい。agentから見えないobjectのembeddingベクトルを0に落としながら、transformer層に入力するアーキテクチャ
見えないものは0という発想がいかにも人間らしくて非常に好き。 また、学習の過程や裏技を見つけ出してくるところが可愛い。(ただし計算量は可愛くない)
また、オフィシャルムービーもエモくて好き。(語彙力)

openai.com

www.youtube.com

[論文]Solving Rubik’s Cube with a Robot Hand

ルービックキューブをロボットハンドで解くというタスク。
シミュレーションでAutomatic Domain Randomizationという手法を用いたのがミソ。
そして相変わらずMovieがエモくて好き。

openai.com

www.youtube.com

[論文] Dota 2 with Large Scale Deep Reinforcement Learning

Dota2で人間に勝った論文。 なんというか規模感が違すぎて初見の際にはちょっと笑いました。 論文には学習パラメータの設定など、事細かに書かれています。 (申し訳ないのですが、実は読み込んでません汗)
また、相変わらずOpen AI作成のまとめサイトはオシャレで大好きです。

openai.com

f:id:pira_nino:20200128222635p:plain

[サイト]OpenAI→PyTorch

ちょうどブログを書いている途中で発表された告知。
Open AIが深層学習フレームワークをPyTorchに標準化との告知です。
強化学習の多くはtensorflowで実装されているイメージを個人的に持っていましたので、それなりに衝撃的なニュースでした。

openai.com

その他個人的に好きなリンク

完全に個人の趣味です。

[論文]拡張されうる行動空間での特徴の表現学習を伴う価値関数の近似

DeNAさんのオセロニア強化学習論文。
キャラの情報をembedding化することがポイント。凄く好きな論文です。

www.jstage.jst.go.jp

[論文]Efficient Neural Architecture Search via Parameter Sharing

通称ENAS。強化学習でNNのアーキテクチャー探索を実現した論文。
ざっくりいうと、一個前のNNのアーキテクチャをstate、metricをrewadにしてLSTMに入れて学習させるイメージです。
余談ですが、NAS(ってかAuto ML?)界隈ですとDARTSが流行ってますね。

arxiv.org

[論文]Go-Explore: a New Approach for Hard-Exploration Problems

Uberが発表した論文。
これまで、モンテズマというゲームは強化学習で全然解けない!!と話題であった中突然登場したブレイクスルー。以下の波線を使った図があまりにも衝撃的でした。
内容としては、内発的動機をベースに、さらにゴールからの逆向きの探索をより効率的に探索させるように改良したイメージです。

f:id:pira_nino:20200128220432p:plain

eng.uber.com

[論文]Asynchronous Methods for Deep Reinforcement Learning

有名なので紹介。通称A3C。 Advantage、Actor-Critic、AsynchronousでA3。 Rainbowの論文の中で比較手法として挙げられている。
分散学習。 各スレッドの環境内で異なるagantが経験を積み、共通のパラメータサーバに勾配を渡すイメージです。

arxiv.org

[論文]分散学習系(Gorilla -> Ape-X -> R2D2 -> R2D3)

この進化の過程いいですよね(笑
分散版Priorized Experience Replayを入れたり、RNN入れたり、Replay時に隠れ層の初期状態を工夫したり、demonstrationを導入したりと着々と進化を遂げている分散学習系の論文達です。
さて、次回作はどんな名前の論文が出てくるのか非常に楽しみです。

arxiv.org

arxiv.org

arxiv.org

最後に

余談ですが、実は社内wiki に書いていた記事を(ほぼ)そのままコピってきたので、数時間でこのブログが作成できました。
諸々間違っていることを書いていましたら、すいません。。。
皆様の知見にちょっとでも貢献できれば幸いです。。。