人間のコントロールで早期に学習する強化学習の論文を読む
強化学習は学習に相当時間がかかる事が知られているが、人間が要所々にコントロールして教えれば学習が効果的にきるとの考えを実現した論文である。
[1709.10163] Deep TAMER: Interactive Agent Shaping in High-Dimensional State Spaces
本論文の手法はDeep TAMERと云い概念図は以下である。この論文の特徴は人間のコントロールを深層学習を使って高次元の関数に近似して、これを方策として強化学習に組み込むことである。
この論文を読む動機は下記の記事を見て学習の改善度合いが凄いためであった。
ぼくがかんがえた世界最強のAIをつくるために、アメリカに行ってきた : 情熱のミーム 清水亮 - Engadget 日本版
この人間が計算機に教える学習対象はATARIの古典的なボーリングゲームである。
この論文の着想は簡単で、人間のコントロールを最適な方策にすることである。 しかし最適方策は次の人間の方策理解を示す関数となるものを導入してこれを深層学習で近似する。
この論文での巧妙な現実的な方法は、ゲーム画面と人間のコントロールに遅延があることを許容する遅延関数を組込み、方策理解を次の損失関数で求めていることである。
式(1)
ここで
は画面の状態
はコントロールを行った後の観察結果
は遅延関数でとは状態の最初と最後の時間
はコントロールしてから結果を見るまでの期間
・遅延関数
この独特の遅延関数は分布関数を使って次で定義している。
分布関数はここでは0.25~4の一様関数を採用している。人間の遅延はこの間が多いそうである。
・損失関数
式(1) の損失関数を解くためにこの論文では次の2種類の最適化を使っている。
(a) 画面状態の情報集約
(b)人間のコントロールのバッチ学習
(a) 情報集約
このの損失関数は式(1)から分る様にの教師あり学習になっている。これは深層学習で解いている。しかし画面の状態はかなり数万の高次元なのでAutoEncoderで次元圧縮して数百次元にして、再度Decodeして画面に戻している。このEncoder Decoderのパラメータは次の関数で最適化している。
(b)バッファーによる バッチ学習
これも深層学習で以下の人間方策関数を改善している。
ここでは画像と結果観察と人間のコントロールの1000組程度(ゲームにすると15分程度)をバッファに入れてランダムに取り出して上式を訓練して更新している。
上式のは人間のコントロールに対応したランダムに取り出した画面と観察結果である。
但し遅延関数が存在しない人間のコントロールは無視している。
・結果
このゲームに限っては驚異的な学習効率を示している。
勉強不足だったが低次元での人間のコントロールを反映するモデルとしてTAMER(Training an Agent Manually via Evaluation Reinforcement)2009があったそうである。TAMER
しかし本論文での高次元モデルは特徴量を多く取り入れることができ微妙なコントロールも反映でき、低次元での似たコントロールの衝突も回避できる可能性がある。是非ロボットの分野でも使ってもらいたいものである。