taki["blog"] = "200 OK"

社会人3年目の日常

2017/9/21 Deep Reinforcement Learning That Matters

昨日に引き続き「特」をやった。だいたい2.5時間ぐらいPowerpointに向き合っていたけど、こういう地味な作業はやり始めると集中してできるので良い。それとは別に、今日は微妙に集中力があったので良かった。集中した結果、積んでた実装とは別の実装をやって、雰囲気がつかめて良かった。残りの作業はおそらく来週(月末)に持ち越し。少し遅れているが、おおよそ先週の計画通り(強い(見積もりが低い))。

帰宅したら頭が重かったので、荷造りだけして、他は特に何もせず就寝。


[1709.06560] Deep Reinforcement Learning that Matters

どこかで見たことあるようなタイトルの深層強化学習版。中身を簡単に紹介。論文の中身は主にPG(方策勾配法)を使った深層強化学習に関する辛さが書いてあるエッセイみたいなもの(怒られそう)。

TL; DR

  • 深層強化学習の辛いところは外的要因(実装ライブラリやハイパーパラメータ)と内的要因(乱数や問題ドメインの特性)が絡み合って、再現性を担保することが難しいところ
  • 論文ではcontinuous controlの問題で強く離散でもそこそこな万能さがあるPGの代表的な手法(TRPO、DDPG、PPOなど)について実装して(githubに公開、OpenAIのコードベース?)、チューニングしたり比較したりした
  • 再現実験において、再現性に影響するいくつかのキーとなる問いを提示して、いろいろ議論した

PG系の手法について

実験の前提

  • 乱数のシードを変えて5回実験(著者が調べた限り、これも論文によって異なる。回数が違ったり、Top-kだけ出していたり。)してみる
  • ネットワークの部分は、普通に多層パーセプトロン。基本的には入力層64次元、隠れ層64次元で、家政科関数はReLUだったりTanHだったり、Eluだったり。

ハイパーパラメータについて

  • 既存の論文の(多数の)悪いところは、ハイパーパラメータチューニングの範囲などが明示されておらず、(おそらく)最良の結果だけを出しているところ(ある程度の分散付きで)
  • 著者たちは実験で、活性化関数を変えたり、隠れ層のサイズを変えたりして、どれぐらい結果に影響するかを調べた
  • おそらく多くのDQNをやってる人たちが普段感じている通り、かなり影響するが、活性化関数に関してはとりあえずReLUかLeaky ReLUで良さそう
  • 図2を引用(雰囲気のみ)

f:id:takilog:20170921212818p:plain

報酬のスケーリング

  • Atariだとよく[0, 1]になってたりするし、ロボット扱ってたりすると到達した時間とかいろいろな要因が出てくる(当然、学習に影響してくる)
  • DDPGで実験してみたところ、影響は出てくるけど一貫性のある結果ではない(ように見える)
  • OpenAI gymの環境でも、特にスケーリングされていないものがあったりするので、真面目に研究すれば何か言えるかもしれないが、今のところよく分からない

乱数と試行(Trial)の性質

  • 結果が「環境のもつ乱数性」に依存するのか、「学習アルゴリズムの持つ乱数性」に依存するのか、という重要な問題
  • ハイパーパラメータを固定して、ここでは10回の試行し(乱数シードを変える)、2つのグループにワケて、それぞれで平均(と分散?)を計算してみる
  • 図5を引用。結果が変わってしまうので辛いし、論文でこういう観点について明確に書いてない場合は、ミスリーディングしている可能性がある

f:id:takilog:20170921213403p:plain

環境について

  • ハイパーパラメータと乱数に影響を受けるのはわかったけど、(アルゴリズムを適用する)環境はどうなの?
  • OpenAI gymのHopper-v1、HalfCheetah-v1、Swimmer-v1、Walker2-v1を選んで実験してみる
  • 図4を引用。見るからにヤバイ。
  • 実際のところ、報酬のカーブだけ見ててもだめで、帰ってきた実際の中身(エピソードの中身か?)を読まないと説得力がない(outperformするとしても)

f:id:takilog:20170921213708p:plain

実装について

  • いわゆる基本アルゴリズムも各著者が実装してるけど、それってどうなの?
  • OpenAIが公開しているbaselineや、OpenAI gymじゃなくてrllbaのモノ、Tensorflow、Keras、Theano、・・・
  • 図6を引用。実装によって性能も変わるよ!でも論文にはこんなこと書いてないから、つらい

f:id:takilog:20170921213957p:plain

評価基準(Evaluation Metrics)

  • 上で見てきたようにそもそも不安定さがあるので、max.とかmean.とか見ててどういう意味があるのか?信頼区間ぐらいは見ないといけない
  • オンライン学習的な考え方か、ポリシー最適化的な考え方の違い
  • 信頼区間とかPowerとかSignificanceとかいろいろ

議論とまとめ

  • 実験してみたけど、やっぱり深層強化学習難しい
  • ハイパーパラメータについて、少なくとも比べる手法と同じ探索範囲を設定し、標準のハイパーパラメータチューニングでやることが望ましい
  • 実装についても、少なくとも比べる手法と同じフレームワーク・コードベース上で実装して比較した方が良い
  • 乱数シードについては、いい乱数シード群を使うと結果が良くなるため、出来れば有意性を見たほうが良い
  • 論文を書く場合に、出来ればすべての条件を書くこと(再現のために無駄な手間がかかってしまう)

これからどういう研究がされるべきなの?

  • 既存の手法はハイパーパラメータが効いてくるので、hyperparameter(と報酬スケーリング)のagnostic algorithms。これによって、できるだけ外因性の不確実さを抑制できるようになれば、嬉しい。
  • 有意性の検定については、もう少し研究が必要かも

おわり(How can we ensure that deep RL matters?)

  • そろそろ「given 報酬関数」をどうにかしよう
  • すべてのベンチマークの明らかな勝者はいない

Maybe new methods should be answering the question: in what setting would this work be useful? As a community, we must not only ensure controlled and reproducible results with fair comparisons, but we must also consider what are the best ways to demonstrate that RL continues to matter.