Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

15,137 views

Published on

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の再アップロード機能が無くなり不可。

Published in: Science
  • Be the first to comment

強化学習による 「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

×