Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

強化学習による 「Montezuma's Revenge」への挑戦

15.646 visualizaciones

Publicado el

DeepMind論文(2016/6) 「Unifying Count-Based Exploration and Intrinsic Motivation 」 記載のPseudo-count を用い、Deep Reinforcement Learningでの最難関ゲームであるMontezuma's Revengeを評価。Pseudo-countに加え、報告者の独自機能OHL(On-Hightscore-Learning)を含めて評価したところ、DeepMindの論文を超える探索範囲拡大に成功しました。また、OpenAI Gymで1位を獲得し(2016/10/13~2017/3/17)、サンフランシスコにあるOpenAIの招待を受け、説明に行ってきました。ブログ(http://itsukara.hateblo.jp/)に状況を逐次報告しています。
(注) 実験データ掲載用HTTPサーバを変更しました:52.199.15.161=>35.197.57.214
  スライドを更新すべきですが、SlideShareの再アップロード機能が無くなり不可。

Publicado en: Ciencias
  • Sé el primero en comentar

強化学習による 「Montezuma's Revenge」への挑戦

  1. 1. 20170827 (July Tech Festa 2017) 1 強化学習による 「Montezuma's Revenge」への挑戦 飯塚孝好 スタッフサービスエンジニアリング、日立製作所OB Iitt21-t@yahoo.co.jp
  2. 2. 20170827 (July Tech Festa 2017) 自己紹介 飯塚孝好 (Takayoshi Iitsuka) Blog itsukara.hateblo.jp Twitter twitter.com/iitt21 Github github.com/Itsukara Slideshare www.slideshare.net/ItsukaraIitsuka Facebook www.facebook.com/takayoshi.iitsuka LinkedIn www.linkedin.com/in/Takayoshi-Iitsuka 1983-2003 日立製作所中央研究所とシステム開発研究所で、スーパーコンピューターからマイコンまで 様々なマシン向けの最適化コンパイラ研究開発に従事。国家プロジェクトにも参画。 2003-2015 ストレージ関連事業部でストレージ管理ソフトウェア/サービスの海外展開、アライアンス、企 画を担当。プラットフォームやクラウド関連の事業部で、事業企画、広報を担当。 2015/9 日立製作所を早期退職。 2016/2-10 最新IT技術の総復習と共に、人工知能の勉強に注力。人工知能勉強会(Do2dle)での取組み の一環で、DeepMindが最難関とするMontezuma's Revengeに挑戦。かなり良い結果を得た。 2016/10 Montezuma's Revengeの成果をOpenAI Gymサイトに掲載(2016/10から2017/3まで1位)。 OpenAIより、交通費・宿泊費を出すので、サンフランシスコに面談に来ないかとのお誘い。 2016/10 スタッフサービスエンジニアリングに再就職。日立グループ企業に派遣(AI/ITとは無関係)。 2016/12 サンフランシスコにてOpenAI Gymと面談。ついでにサンフランシスコ観光を楽しむ。 2017/7 ポルトガルの国際学会(Multimedia & Aritificial Intelligence)でMontezumaの件を発表。
  3. 3. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  4. 4. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  5. 5. 20170827 (July Tech Festa 2017) 強化学習 (DRL: Deep Reinforcement Learning ) State (状態) Action実施後の スクリーンイメージ等 Environment (環境) Game Emulatorなど Agent (エージェント) Deep Learningで 最適Actionを予測、決定 Action (行動) ... Reward (報酬) Actionの結果として 得られた得点等  Agent: Deep Learningで、最適Actionを予測し、Action決定  Environment: Actionの結果として得られた、StateとRewardを返す  Agent: StateとRewardに基づき、内部Neural Networkを更新し学習
  6. 6. 20170827 (July Tech Festa 2017) 6 DRLによるAtari 2600ゲームのスコア  DRLで、Atari 2600ゲームの半数 以上で人間のレベルを超えた (Deep Q-Network、DeepMind 2015)  得点が取れないゲームも残った  Montezuma's Revengeは、平均 得点が人間に対し0%と、DRLで の最難関ゲームの1つ (DeepMind論文(2016/6)まで。当初は知らず)  人工知能勉強会(Do2dle)での取 組みの一環で、Montezuma's Revengeへの挑戦開始(8月) DRL関連サイト:https://deepmind.com/blog/deep-reinforcement-learning/ Joe Montesuma's Revenge Human Level or Above
  7. 7. 20170827 (July Tech Festa 2017) Montezuma's Revenge 参考:https://atariage.com/manual_html_page.php?SystemID=2600&SoftwareID=1158&ItemTypeID=HTMLMANUAL  ダンジョン探索ゲーム、24部屋x3レベル 、8KB ROM  得点:鍵、剣、宝石、松明、モンスター(剣有)、ドア(鍵有)等で得点  障害:段差、ドア(鍵無)、モンスター(剣無)、レーザーバリア、床点滅等
  8. 8. 20170827 (July Tech Festa 2017) 8 得点が取れない理由 ①キャラ(*1)が直ぐに死んでしまい、先に進めない ②得点頻度が少ない → 学習機会が少なくい 下記はランダムなアクションでの得点頻度(1M steps中) ゲーム名 Game Over回数 非0得点回数 非0得点頻度 Breakout 5440 4202 77.3% Montezuma's Revenge 2323 1 0.043% (*1) キャラの通称はPanama Joe。Montezumaは地名。
  9. 9. 20170827 (July Tech Festa 2017) 9 単純対策とその結果 ①キャラが直ぐに死んでしまい、先に進めない 【対策】危険回避に向け、マイナスの得点を与えては? 【結果】危険な場所に近づかず、その先に進まない ②得点頻度が少ない → 学習機会が少ない 【対策】学習を進めるため、ベーシックインカムを与えては? (全ステップ、又は、定期的に報酬を付与) 【結果】何もしなくても報酬があるので、何もしない ③上記に加え、危険な場所の先に進む動機が無い 【対策】上記①と②の対策を組み合わせては? 【結果】結局、一箇所に留まって、前に進まない =>危険な場所を超えて未開拓領域に行く動機付けが必要 =>同じ場所に留まると得点が減るようにすれば良さそう
  10. 10. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  11. 11. 20170827 (July Tech Festa 2017) 11 DeepMindの論文との出会い  Monezuma's Revenge実験経過をブログとtwitterで発信し ていたところ、実験に使っているコードの作成者である三好 氏からtwitterでDeepMindの最新論文「Unifying Count-Based Exploration and Intrinsic Motivation」が関係しそうとのお知らせ  論文概要を見たところ、ゲーム状態の頻度が高いと低い得 点を与えることで「動機付けする」方法が書かれており、 Montezuma's Revengeにも適用済だった  Montezuma's Revengeへの適用結果は良好で、 平均得点が、Double DQNでは3439まで上昇(100M step)、 A3Cでは273まで上昇(200M step)
  12. 12. 20170827 (July Tech Festa 2017) 12 キーアイデア  状態をバイナリー比較して回数を数える方法もあるが、全く同じ状態の 頻度は非常に小さいか0であり、そのような場合は有効性が低い 【例】下記で新データ(SUN, LATE, BUSY)の予測確率は? 単に0?  キーアイデア: ・1/10*1/10*9/10 (=0.009)が予測確率として適切そう (ρ ) ・新データ観測後の確率は2/11*2/11*10/11(=0.03) (ρ') (論文ではρ'をrecording probabilityと命名) day# 天気 時間帯 混雑度 1 SUN LATE QUIET 2 RAIN EARY BUSY 3 RAIN EARY BUSY 4 RAIN EARY BUSY 5 RAIN EARY BUSY 6 RAIN EARY BUSY 7 RAIN EARY BUSY 8 RAIN EARY BUSY 9 RAIN EARY BUSY 10 RAIN EARY BUSY
  13. 13. 20170827 (July Tech Festa 2017) 13 Pseudo-count (疑似カウント)  データ空間Sが複数空間S1, S2, ..., SM(前頁例では天気、時間帯、混雑度) の直積の場合、空間毎の確率が互いに独立と仮定/単純化し、 Sのサ ンプルD=(d1, ..., dM)の出現確率ρ(又はρ')は、各空間S1, S2, ..., SMで のd1, ..., dMの出現確率ρ1, …, ρM (又はρ'1, …, ρ'M)の積と考える  各空間Siでは、 Siでの観測データ値diの、既存データn個中での出現 回数がN回のとき、ρiとρi'は、定義から次の式になる  ρi = N/n  ρi' = (N + 1)/(n + 1)  逆に、 ρiとρi ‘から出現回数Nを求めると次のようになる  N = ρi (1 – ρi')/(ρi' – ρ i) ≒ ρi/(ρi' – ρi) (ρi' << 1と仮定)  ρ1, …, ρM とρ'1, …, ρ'Mからρとρ'を計算し、 ρとρ'からDに対するNを計 算できる (論文では、NをPseudo-Count (疑似カウント)と命名)  前頁例は、ρ = 1/10*1/10*9/10 =0.009、ρ' = 2/11*2/11*10/11 = 0.03で、 N = 0.009/(0.03 – 0.009) = 0.42 となる (0以上1以下で、それらしい値) (注)上記、かなり簡略化し、記号も一部省略しています。詳細は論文を参照ください
  14. 14. 20170827 (July Tech Festa 2017) 14 DRLでの活用:Pseudo-Reward (疑似報酬)  ゲーム画面xの各画素毎にρiとρi'を計算する  全画素のρiとρi'の積を、xのρとρ'とする  xのρ及びρ'から、pseudo-count「N(x)」を計算する  N(x)からxのPseudo-Reward(疑似報酬) R(x)を計算する  R(x) = β / (N(x) + 0.01)1/P  N(x)が大きいほどR(x)は小さくなる => 頻度が高い画面は得点が小さい  0.01は0割防止が目的で、値に意味はない  Pは実験で求めた値(P=1とP=2で実際に学習させ比較)  Double DQNでもA3CでもP=2が最適  βは実験で求めた値  Double DQNではβ=0.05、A3Cではβ=0.01が最適  R(x) ≒ β/  「実得点+ R(x) 」を報酬として学習する (ただし、ゲームの得点としては使わない)  R(x)は、DRL探索空間拡張の動機付けを与える
  15. 15. 20170827 (July Tech Festa 2017) 15 Pseudo-Reward+Double DQNの効果  5ゲームで評価し、下記2ゲームで特に効果大  Montezuma's Revengeで到達部屋が大幅拡大 この部屋だけで3000 点取得でき、高得点 を取るうえでは一番 重要な部屋 (論文作者に確認済: https://www.youtub e.com/watch?v=0yI 2wJ6F8r0 )
  16. 16. 20170827 (July Tech Festa 2017) 16 Pseudo-Reward+A3C (A3C+)の効果  全60ゲームで評価。Randomアクションによる得点 の150%以下しか取れないゲームが5個減った(ピンク)  Montezuma’s Revengeの得点は273.7と低い Score<150%Random Stochastic-ALE Deterministic-ALE Stochastic-ALE Deterministic-ALE A3C A3C+ DQN A3C A3C+ A3C A3C+ Random Human A3C A3C+ DQN A3C A3C+ DQN 1 ASTEROIDS X 2680.7 2257.9 3946.2 2406.6 719.1 47388.7 4% 3% 0% 7% 4% 0% 2 BATTLE-ZONE X 3143.0 7429.0 3393.8 7969.1 2360.0 37187.5 2% 15% 41% 3% 16% 45% 3 BOWLING X 32.9 68.7 35.0 76.0 23.1 160.7 7% 33% 4% 9% 38% 5% 4 DOUBLE-DUNK X X 0.5 -8.9 0.2 -7.8 -18.6 -16.4 870% 442% 320% 854% 489% 210% 5 ENDURO X 0.0 749.1 0.0 694.8 0.0 860.5 0% 87% 40% 0% 81% 51% 6 FREEWAY X 0.0 27.3 0.0 30.5 0.0 29.6 0% 92% 103% 0% 103% 102% 7 GRAVITAR X X X 204.7 246.0 201.3 238.7 173.0 3351.4 1% 2% -4% 1% 2% 1% 8 ICE-HOCKEY X X -5.2 -7.1 -5.1 -6.5 -11.2 0.9 49% 34% 12% 50% 39% 7% 9 KANGAROO X 47.2 5475.7 46.6 4883.5 52.0 3035.0 0% 182% 138% 0% 162% 198% 10 MONTEZUMA'S-REVENGE X 0.1 142.5 0.2 273.7 0.0 4753.3 0% 3% 0% 0% 6% 0% 11 PITFALL X X X -8.8 -156.0 -7.0 -259.1 -229.4 6463.7 3% 1% 2% 3% 0% 2% 12 ROBOTANK X 2.1 6.7 2.2 7.7 2.2 11.9 -1% 46% 501% 0% 56% 395% 13 SKIING X X X -23670.0 -20066.7 -20959.0 -22177.5 -17098.1 -4336.9 -51% -23% -73% -30% -40% -85% 14 SOLARIS X X 2157.0 2175.7 2102.1 2270.2 1236.3 12326.7 8% 8% -4% 8% 9% 5% 15 SURROUND X X X -7.8 -7.0 -7.1 -7.2 -10.0 6.5 13% 18% 7% 18% 17% 11% 16 TENNIS X X X -12.4 -20.5 -16.2 -23.1 -23.8 -8.9 76% 22% 73% 51% 5% 106% 17 TIME-PILOT X X X 7417.1 3816.4 9000.9 4103.0 3568.0 5925.0 163% 11% -32% 231% 23% 21% 18 VENTURE X X 0.0 0.0 0.0 0.0 0.0 1188.0 0% 0% 5% 0% 0% 0% 14X 10X 10X 15X 14X 14X 16X 14X 13X 注: 上記表は、論文に書かれたデータを基に、報告者が再集計したもの
  17. 17. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  18. 18. 20170827 (July Tech Festa 2017) 18 報告者はA3C+で試行 (その理由)  報告者はA3C+で論文の手法を試行  理由は、論文を読む前に、Montezuma's Revengeを 色々と試行したA3C環境があったため  また、同A3C環境は、学習速度(steps/秒)が高速な ため、短時間で論文の効果を確認できると考えた  論文でDouble DQNの評価結果が少ないのは、おそらく、 評価に時間が掛かり結果を出せなかったためと考えた  評価に時間が掛かるのは避けたいのでA3C+を選択
  19. 19. 20170827 (July Tech Festa 2017) 19 試行初回でDeepMindのA3C+越え  既存A3C評価環境に、Pseudo-Rewardを組込み、 試したら、初回で論文のA3Cを超える得点が出た 400 300 200 100 DeepMindのA3C+での得点
  20. 20. 20170827 (July Tech Festa 2017) 20 報告者独自コードの効果  正確に評価するために、報告者独自コードをOFFに して再評価したところ、点数が伸びないことが判明  途中からONにすると、点数が上がることが分かった 400 500 300 200 100 報告者独自コード: OFF->ON
  21. 21. 20170827 (July Tech Festa 2017) 21 報告者独自コード  報告者独自コードは、幾つかの機能を含んでいたが、TLHoRRのみ効果があった  TLHoRR (Training Long History on Real Reward): 実得点を得た場合のみ、得点を得 るまでの長い履歴(150ステップ)を使って学習する  ライフが減る度にマイナスの得点(-1.0)を与える  無得点期間が長いとアクションのランダム性を高める  上記以外にも、下記のような多数のパラメータ/機能を導入し、試行  TES: 学習履歴長 (150以上・以下で色々試行。残ライフ数に応じた動的履歴長も試行)  Peudo-Count計算で用いるPとβ (β=0.01は点数が上がらず、β=0.02近辺が最適だった)  学習アルゴリズム (A3C-FFとA3C-LSTMを試行)  ゲーム環境基盤 (ALEとOpenAI Gymの両方で試行)  フレームスキップ数 (ALEは4が高得点、7が探索範囲最大。OpenAI Gymは2が最適)  カラー変換方式 (スキップしたフレーム含め平均/最大計算、又は最後のフレームを利用)  Thread 0でsavedしたPseudo-Countを全threadでrestore / thread毎にsave/restore  Pseudo-Count計算時の画素値のビット数 (DeepMindは3、当方で最適は7)  Pseudo-Countを全部屋共通で持つ / 各部屋ごとに持つ  各thread毎に別々のパラメータを指定 (TES、P、βをthread毎に指定可能)  最適ハイパーパラメーター探索のため、Google Cloudで100回以上試行  常套手段は、全パラメータを乱数で割り当てた同時多数評価だが、1試行に4CPUで4日 程度掛かるため、少ないIT資源の元、ヤマ勘に頼りながらパラメーターを探索  格安(通常の1/3)のPreemptible VMを利用し、無料試用枠で6 VMを2か月運用 (x 2)
  22. 22. 20170827 (July Tech Festa 2017) 22 DRLに使ったNeural Network Value Screen Images scaled 84x84 last 4 Images Convoution 8x8x16 Stride 4 Convoution 4x4x32 Stride 2 Fully Connected -> 256 Fully Connected -> 18 -> 1 Action ... Action と Value  最後の4画面から、最適ActionとValueの推定値を計算 (Value: ゲームオーバーまでに得られる総報酬の推定値)  Rewardに基づいて最適ActionとValueの予測を修正
  23. 23. 20170827 (July Tech Festa 2017) 23 A3C: Asynchronous Advantage Actor-Critic  Gradients ( ) を計算:  非同期に、Gradients ( )をGloblal Network ( ) に累積  Global Network ( ) は、定期的にLocal Networkにコピーバック Local (thread0) Calculate Local (thread1) Calculate Local (threadN) Calculate ... Global 非同期累積 ( を に足し込み) 定期的コピーバック
  24. 24. 20170827 (July Tech Festa 2017) 24 A3C+でのGradients ( ) の計算 # 5 step分プレイ For i = 0 to 4 最適Action At を予測し、 At をEnvironmentに渡して1 step進める Reward rt と新たなState st+1を得る t += 1 R = Vt if ゲームオーバー else 0 # 最後の5 stepの履歴から を計算 (backward propagation) For i = 0 to 4 R = rt-i + d * R (dはdiscount ratio) +=
  25. 25. 20170827 (July Tech Festa 2017) 25 A3C+LTHoRRでのGradients ( ) の計算 # 5 step分プレイ For i = 0 to 4 最適Action At を予測し、 At をEnvironmentに渡して1 step進める Reward rt と新たなState st+1を得る t += 1 R = Vt if ゲームオーバー else 0 # Traning Long History on Real Reward (TLHoRR) T = 180 if 最後の5 stepに実報酬が含まれる else 4 # Pseudo Reward => T=5 : ゲーム内時間で過去の0.3秒から学習 # 実報酬 => T=180 : ゲーム内時間で過去の12秒から学習 # 最後のT stepの履歴から を計算 (backward propagation) For i = 0 to T R = rt-i + d * R (dはdiscount ratio) +=
  26. 26. 20170827 (July Tech Festa 2017) 26 A3C+LTHoRRのALEでの評価  ALE環境で平均得点が2000点に迫った (2016/10/6)  レーザーバリアを超えられず、3000ポイント取れる部屋に行けず レーザーバリア レーザーバリア 2500 2000 1500 1000 500
  27. 27. 20170827 (July Tech Festa 2017) 27 成功体験の亡霊に囚われたような奇妙な行動  キャラが成功体験の亡霊に囚われたような行動にハマった  原因は、ステップdでのValueが高いまま維持されるため  ステップbで得点が得られるのは、剣が消えた後  そのため、ステップbの画面はステップdの画面と同じ になり、 ステップdでは、再度②の周辺で得点が得られると推測される (当初、画面上部の得点や剣所持を表する部分を削っていたため)  更に、ステップd周辺でのValueは、ずっと減らない。なぜなら、①周辺と②周辺間には状態 のループがあり、LTHoRRによる長期履歴学習によって、ループ内に含まれる全ての状態 は、高いValueが設定されることと、ループから外れるActionの選択確率が余りにも低いの でループから出ないため  マルコフ過程でモデル化できないゲームを、マルコフ過程に基づいた Bellman方程式で近似して学習しているため、とも言えそう 2 1 a. 左上から入ってきて、①を通って、階段を下りる b. ②に到着し、剣と得点を取得 c. 階段を上って①に戻り、剣でモンスターを倒して得点取得 d. 階段を下りて②に戻り、ずっと②周辺に留まる (1:20 – 5:00) (一度②で得た得点が、また取れると、囚われているように見える)
  28. 28. 20170827 (July Tech Festa 2017) 28 A3C+LTHoRRのOpenAI Gymでの評価  平均スコアが1600点を超えた  DeepMind論文未記載の部屋に到達(黄色枠の部屋)  部屋3, 8, 9到達動画 https://youtu.be/qOyFLCK8Umw  部屋18, 19到達動画 https://youtu.be/jMDhb-Toii8  部屋19, 20到達動画 https://youtu.be/vwkIg1Un7JA 2500 2000 1500 1000 500
  29. 29. 20170827 (July Tech Festa 2017) 29 平均スコアが0になり回復しない現象  全スレッドで同じHyper Pamameterで学習 詳細:http://52.199.15.161/OpenAIGym/montezuma-x1/00index.html  回避策:Thread毎に別々のHyper Parameterで学習 TLHoRRでの学習 履歴長、Pseudo- Reward計算でのβ とPをThread毎に 変えて学習 平均スコアが0に なると回復しない 平均スコアが0に なるが回復する Diverse Hyper Parameters in Thread (DHPT)と命名
  30. 30. 20170827 (July Tech Festa 2017) 30 平均スコアが0になり回復しない現象の考察  ROOM#7訪問回数増加後に、突然スコアが0になった  次の現象が起きていると推測  ROOM#7や他の部屋での学習の副作用として、ROOM#1の 脱出鍵が入手できなくなる(NNの値がそのように変化する)  これにより、ROOM#1から脱出できず、ROOM#1でしか学習が起こらない  しかし、ROOM#1内の各地点(実際は状態)は通過頻度が高く、R(X)がほぼ0に なっており、R(X)による学習は発生せず、R(X)無しの学習とほぼ同じ状態。  ただし、キャラが死ぬActionは選ばれない状態になっているので、キャラが死な ない程度の僅かな動きだけになる (これはプレイ動画で確認済)  上記が正しいとすると、R(X)のみでの学習では、実得点を取れる所に 辿り着けるものの、その地点へのルートの学習が一度失われると、回 復しない。そのために、学習が非常に不安定になると思われる  これに対し、Double DQNでは、一度学習したパスを後で利用するの で、一度スコアが0になっても、安定な学習ができると思われる  Thread毎別パラメータで学習が安定するのは、R(X)が0にならない Threadが残り、そのThreadで鍵到達の学習が進むためと思われる
  31. 31. 20170827 (July Tech Festa 2017) 31 レーザーバリア越え  OpenAI Gymでレーザーバリアを超えた要因は非決定性と推測  OpenAI Gymでは、フレームスキップ数が非決定的に決まる (OpenAI Gym側で勝手に(一様乱数で)2~4フレームスキップする)  非決定性で試行が増え、レーザーバリア超えも試行もできたと推測  なお、フレームスキップ数が一様乱数で2~4というのは、変動が激し 過ぎるため、同じActionでOpenAI Gymを2回呼び出すことにより、 平均値が7の正規分布に近づけた、適度な非決定性で試行 レーザーバリア レーザーバリア
  32. 32. 20170827 (July Tech Festa 2017) 32 A3C+LTHoRRのALEでの評価 (再)  ALEでもフレームスキップ数を7にすると、フレーム数/秒(60)と互いに 素になり、遭遇する状態が増え、レーザーバリア超えができるか試行  試行初回で、ALEでもレーザーバリアを超えることができた  なお、Google Cloud試用期限切れで自宅PCしか使えなかったため、 実験回数は数回程度だが、到達範囲は下記で、比較的広い  ALEでの実験結果一覧:http://52.199.15.161/ALE/
  33. 33. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  34. 34. 20170827 (July Tech Festa 2017) 34 まとめ  Pseudo-Count/Pseudo-Rewardは、得点機会が疎なゲームに有効  TLHoRRは、A3C+でのスコアアップに有効  DHPTは、学習の安定化に有効  DeepMindの論文で未記載の部屋に到達 (6部屋)  補足  本発表に関連した情報  ブログ:http://itsukara.hateblo.jp/  コード:https://github.com/Itsukara/async_deep_reinforce  OpenAI Gym結果:2016/10から2017/3まで1位 https://gym.openai.com/evaluations/eval_e6uQIveRRVZHz5C2RSlPg  謝辞  高速なA3Cコードを提供頂いた三好氏に感謝します
  35. 35. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  36. 36. 20170827 (July Tech Festa 2017) 36 今後の課題・展望  他の強化学習含め、状態のループを考慮する必要がある  一度学習した結果が他の部屋の学習で失われる点に関しては、 Replay Memory、UNREAL、EWC、DNC、など、各種手法の適用も 考えられる (全てDeepMindが論文を出している)。  キャラの場所を検出し、キャラの場所毎の状態評価値や、Action方向 等を図示すると、今後の取り組みのヒントになる可能性あり。  現在のNNでは、前処理でモノクロ化を行っているが、人間もカラー方 が現在場所が分かるので、カラー画像での学習も必要では?  同じような作りの部屋が多いので、人間でも、マップを見ないとどの部 屋にいて、どの戦略が必要か分かりにくい。AIもマップが必要では?  直近の行動を決めるNNの上に、階層的に、直下のNNの評価・制御を 行うNNを構築すると、高度な判断(戦略等)が創出できないか? (スクエアエニックスのゲームAIは、そのような構造とのこと)  参考『人工知能は意識を持てるのか?』 https://t.co/scva6kmIps https://t.co/scva6kmIps https://t.co/GGgtmsbKFu
  37. 37. 20170827 (July Tech Festa 2017) 1. 背景 2. DeepMindの論文とA3C+ 3. A3C+に独自手法を加えた評価 4. まとめ 5. 今後の課題・展望 6. あとがき
  38. 38. 20170827 (July Tech Festa 2017) 38 あとがき  Deep Learningは歴史が浅いので、まだまだチャンスを発掘可能  既存プログラムが豊富なので、出来るだけ活用し、色々と試行しよう  面白い結果が出たら、色々なところに発信すると、良いことがあるかも  大量のITリソースが必要なので、クラウドを活用すべし (無料枠含む)  ITリソースは大手に敵わないので、仮説+実証で試行範囲を絞る
  39. 39. 20170827 (July Tech Festa 2017) ご静聴ありがとうございました
  40. 40. 20170827 (July Tech Festa 2017) 付録
  41. 41. 20170827 (July Tech Festa 2017) 41 付録1:Pseudo-Reward疑似コード(1) Data structure (with initial value) Case when having pseudo-count in each room, each thread has following data  psc_vcount = np.zeros((24, maxval + 1, frsize * frsize), dtype=np.float64)  24 is the number of rooms in Montezuma's Revenge  Currently it is constant.  In the future, currently playing room and connection structure of rooms should be detected automatically.  This will be useful to evaluate the value of exploration.  The value of exploration can be used as additional reward.  maxval is the max value of pixel in pseudo-count  Can be changed in option. Default:128  Real pixel value is scaled to fit this maxval  frsize is size of image in pseudo-count  Can be changed in option. Default:42  Screen of game is scaled to fit image size (frsize * frsize) Case when having one pseudo-count, each thread has following data  psc_vcount = np.zeros((maxval + 1, frsize * frsize), dtype=np.float64) Two cases in above can be selected by option The order of dimension is important to have good memory locality  If dimension for pixel value comes last, the performance of training decreases roughly 20%. Because the value of pixel is sparse and cause many cache miss.
  42. 42. 20170827 (July Tech Festa 2017) 42 付録1:Pseudo-Reward疑似コード(2) Algorithm (algorithm to calcalate pseudo-reward) vcount = psc_vcount[room_no, psc_image, range_k]  This is not a scalar, not a fancy index, but is a temporary array  room_no is index of the room currently playing  psc_image is screen image scaled to fit size:(frsize * frsize), pixel-value:maxval  range_k = np.array([i for i in range(frsize * frsize)]) (calculated in initialization) psc_vcount[room_no, psc_image, range_k] += 1.0  The count of occurred pixel value is incremented r_over_rp = np.prod(nr * vcount / (1.0 + vcount))  ρ / ρ' for each pixel is calculated, and ρ / ρ' for screen image is calculated  ρ / ρ' = {N/n} / {(N+1)/(n+1)} = nr * N / (1.0 + N) = nr * vcount /(1.0 + count)  nr = (n + 1.0) / n where n is the number of observation, count starts in initialization psc_count = r_over_rp / (1.0 – r_over_rp)  This is a pseudo-count. As easily confirmed, r_over_rp / (1.0 – r_over_rp) = ρ/(ρ' – ρ)  Not directly calculate ρ/(ρ' – ρ). Because both ρ' and ρ are very small, caluculation error in ρ' – ρ become big. psc_reward = psc_beta / math.pow(psc_count + psc_alpha, psc_rev_pow)  This is a pseudo-reward calculated from pseudo-count  psc_beta = β and can be changed by option in each thread  psc_rev_pow = 1/P, P is float value and can be changed by option in each thread  Psc_alpha = math.pow(0.1, P) ; So,  math.pow(psc_count + psc_alpha, psc_rev_pow) = 0.1 for any P when psc_count is almost 0
  43. 43. 20170827 (July Tech Festa 2017) 43 付録2:Pseudo-Countの可視化  3M step  45M step 頻度No.1画素値 頻度No.2画素値 頻度No.3画素値 頻度No.1画素値 頻度No.2画素値 頻度No.3画素値 複数の部屋が混在 し、キャラクターの軌 跡が十分に見えな い。 部屋ごとに 別々のpseudo- countを持ったほうが 良さそう。 => 機能実装・実験済 頻度No.2以降の画 像は、キャラクターの 軌跡が含まれるよう に見える。つまり、キ ャラクターの場所ごと の頻度が得られてい る。
  44. 44. 20170827 (July Tech Festa 2017) 44 付録3:学習状況リアルタイム可視化 *.r: 全スコア(実スコア)の分布と、その平均の推移 *.R: 凡例に示した番号の部屋の訪問頻度 *.RO: 凡例に示した番号の部屋でのOHL頻度 *.lives: 凡例に示したスコア取得時の残ライフ数 *.k: 凡例に示した部屋でのkill頻度 *.tes: 凡例に示したスコア取得時のOHL学習履歴長 *.s: 凡例に示したスコア取得までのstep数 *.prR: 部屋毎のR(x)の分布とその平均の推移 *.vR: 部屋毎の評価値の分布とその平均の推移
  45. 45. 20170827 (July Tech Festa 2017) 45 付録4:Multimedia and Artificial Intelligence 2017

×