0
Playing Atari with Six Neurons
調和系工学研究室
幡本昂平
2019/7/5
1
1論文情報
• Author: Giuseppe Cuccu, Julian Togelius, Philippe Cudré-Mauroux
• AAMAS2019
• Best Paper Award
• URL
• https://dl.acm.org/citation.cfm?id=3306127.3331796
• 概要
• 表現学習と方策学習を分けることで小さいモデルでも難しいタスクが
実行可能であることを示す
• ソースコード
• https://github.com/giuse/DNE/tree/six_neurons (ruby)
2
2背景
深層強化学習では高次元の入力(画像など)を直接的に行動へ変換
• ネットワーク中では入力を内部表現に変換し,それを行動に変換している
• 方策が内部表現と同時に学習されている
表現学習と方策学習を分けることで各コンポーネントの高度化が実現可能
• 小さいネットワークで方策学習が行えるようになる
• ネットワークの複雑性がどのように正確な方策の表現に寄与するかへの理解が深まる
方策と特徴量を同時かつ別々に学習する方法を提案
• IDVQとDRSCによって達成
• IDVQ: 観測空間のcentroidを保持
• DRSC: 観測のコンパクトなコード化
提案手法
3
3システム
システムは大きく4つの要素に分けられる
• Environment: actionを行い,観測を与える
• Compressor: 観測から低次元のcodeを生成する
• Controller: 方策推定器
• Optimizer: 学習アルゴリズム
4
4Environment
• ALEはAtari2600のエミュレータ上に構築されている
• 観測は[210 × 180 × 3]のRGB画像
• ネットワークからの出力は18の離散的なactionになる
• ジョイスティックからの入力を表現
• フレームスキップは5で固定
• 入力後,4フレームは何も入力せず5フレーム目を学習などに使う
☓はスキップするフレーム https://danieltakeshi.github.io/2016/11/25/frame-skipping-and-preprocessing-for-deep-q-networks-on-atari-2600-games/
Atari2600のジョイスティック
https://ja.wikipedia.org/wiki/Atari_2600
フレームスキップ4の例
OpenAI GymフレームワークのArcade Learning Environment(ALE) で実験
5
5Compressor
役割: ニューラルネットが意思決定に集中できるように観測のコンパクトな表現を出力する
オンライン学習のように観測そのものからの教師なし学習をすることによって実現可能
• Increasing Dictionary Vector Quantization
• Direct Residuals Sparse Coding
2つのアルゴリズムにより対処
6
6Vanilla Vector Quantization
Vector Quantization: dictionaryベースのエンコードテクニック
代表要素とコードで元の情報を表現する
• 代表要素(centroids)
周りの値のreferenceとしてはたらき,k-meansのように周囲の値の代表値となる
• コード
各centroidに対応するベクトル
一般的にcentroidに対応する以外の場所の値は0にする
もとの情報の再構成(reconstruction)はこれらのベクトル積として与えられる
次元削減や圧縮などに利用される
一般にdictionaryはreconstruction errorを最小化するようなcentroidで構成されるように訓練
再構成ともとの情報の差をreconstruction errorと呼ぶ
あつめたものをdictionaryという
今回は元画像が含む情報を全てカバーすることが目標
7
7オンライン強化学習におけるVanilla Vector Quantizationの問題点
• 追加の訓練データが後半ステージまで得られない
• 環境とのインタラクションを通じて得られた場合のみアクセス可能
Ex) レベルごとに異なる敵があらわれるAtariのゲーム
レベル2の敵の観測はレベル1を解く能力に依存する
• レベル1を解くにはレベル1の敵を認識するためのcompressorが必要
小さいdictionaryサイズからはじめて,観測が増えるにつれてサイズを大きくしていく
オンライン強化学習への適用を考えるといくつか制約がある
dictionaryの更新と候補の解の更新を交互に行う必要がある
オンライン学習における2つの相反する要求
• centroidは有用で一貫したコードを出すように訓練される必要がある
• 新しい観測に基づく後の段階での訓練には訓練されていない状態のcentroidが必要
8
8Increasing Dictionary VQ
空のdictionaryからはじめて
centroidを追加していく
現在のdictionaryで再構成できない部分
に対応するcentroidを追加する
全個体の観測から一様に
サンプリングして作成
追加の際には差の合計がしきい値𝛿以上
であることを条件とする
dictionaryサイズが増えることでNNへの
入力サイズが変わるので対応する必要がある
意味のないcentroidの追加を防ぐため
9
9Direct Residuals Sparse Coding
意思決定のために計算時間を削減した
Sparse Coding
元情報の再構成ではなく,識別しやすい
code作成が目標
• residual imageのcentroidとしての使用
• centroid訓練の必要なし
• バイナリエンコーディング
• 再構成演算を簡略化
• いくつかのcentroidが選ばれたら終了
• 辞書サイズに対して線形の
パフォーマンス
特徴
10
10各アルゴリズムの動作説明
初期化
code: dictionaryと同サイズの0配列
residual information: 元画像
ループ(DRSC)
どれだけresidual informationをエンコードできるかを
もとにcentroidsを選ぶ
residual informationと各centroidを比較して
最も近いcentroidを選ぶ
codeの対応する部分を1に
residual informationからcentroidを引いて更新
11
11Residual informationの符号
更新されたresidual informationの符号の意味
0: もとのresidual informationのピクセル情報とcentroidの値が完全に一致
+: 前のresidualでは存在していたが,新しいcentroidでは表現されていない
-: 新しいcentroidでは存在しているが,前のresidualにはなかった
大抵の符号化アルゴリズムは未符号化情報と再構成によりうまれた情報を区別しない
再構成した際の誤差を重視しているから
今回は画像情報をすべて表現することだけを目標とするので,負の値の要素は0にする
residual imageは元画像にあってまだ取り入れられていない情報となる
12
12コード化とdictionary作成
DRSCはcentroidをresidual informationがしきい値以下になるまで追加しつづける
正しいcentroidがdictionary中にない場合にスパース性を保つため,
一つのcodeにcentroidを追加しすぎた時を終了条件として設定
dictionaryの学習(IDVQ)
新しくできたcentroidを追加する
学習は以上のように
• 訓練画像の選択
• DRSCによるエンコード
• dictionaryの作成
の順におこなわれる
13
13Controller
1層 全結合RNN
入力サイズ: compressorの出力サイズ
ディクショナリサイズが大きくなるに連れ,入力サイズも大きくなる
増えた入力に対する重みを0にしておくことで,ネットワークの一貫性を保つ
出力サイズ: 各ゲームの行動空間の次元数
ほとんどは18,いくつかは6
行動は最も大きい出力のものが選ばれる
14
14Optimizer
Exponential Natural Evolution Strategy(XNES)の変化系を使用
NES Natural Evolution Strategies
パラメータ空間上の分布から個体を生成して最適化をおこなう
分布パラメータ𝜃におけるサンプル𝑧が与えられたときの目的関数値の期待値
を最小化する
自然勾配法により値を更新
XNESでは分布が多変量ガウス分布 𝜃 = (𝜇, ∑)
更新もこれらの値についておこなわれる
自然進化戦略
15
15Optimizerの工夫
XNESにニューラルネットのサイズ変化に対応した工夫を導入
ニューラルネットの重みが0なので0
追加するまでなかったので,他の値との関係はなく0
平均
分散
サイズ増大分のパラメータを追加する
非常に小さい分散
16
16実験設定
• 実行環境:
• Intel Xeon E5-2620 32コア 2.10GHz, 3GB RAM / core
• ゲームの実行時間:
• 200インタラクション(1000フレーム フレームスキップ5)
• XNES: populationサイズ:
• デフォルトの1.5倍,学習率:デフォルトの0.5倍
• dictionary growthを制御するパラメータ𝛿:
• 0.005
• 解像度: [210 × 180 × 3]を[70 × 80]に削減
• 各チャネルを平均化してグレースケールに
• 各個体は5回評価
• 世代数:100 (平均2,3時間)
17
17実験結果1
Atariのゲームのスコア
• OpenAI Gymで利用可能
• 観測の解像度が同じ
• 3D要素がない
以下の条件を満たすゲームでの結果
他の手法に匹敵する性能
とくにQbertがよくできている
18
18実験結果2
各手法のニューロン数・層数・結合数
表現抽出と意思決定を分離することで小さいリソースで難しい問題を解くことが
可能であると示すこと
この論文が示したかったこと
非常に小さいニューロン数・隠れ層数・結合数でAtariのゲームを解くことができている
19
19まとめ
• 方策学習と特徴量構築を別々に行い,それぞれの役割に特化した学習をおこなう手法を提案
• 小さいネットワークでも深層ニューラルネットに匹敵する意思決定が行えた
• オーソドックスなend-to-endな手法に疑問を投げかけた

Playing Atari with Six Neurons