AI

【5分講義・深層強化学習#3】今ホットなA3Cアルゴリズム

強化学習、そして強化学習をディープラーニングと組み合わせた深層強化学習は、AIを学ぶ上での難題の1つです。本記事では、強化学習の学習法のイメージを持っていただくために、強化学習の数多くのアルゴリズムの中でも有名なA3C(Asynchronous Advantage Actor-Critic)を紹介します。強化学習の基本概念については、別の記事で紹介します。

A3Cアルゴリズムとは

A3Cは、2016年にDeepMind社のVolodymyr Mnih (ヴォロジーミル・ムニ)の研究チームによって提案されました。

原論文:https://arxiv.org/pdf/1602.01783

A3Cの特徴は、複数のエージェントが同じ環境で非同期に学習することです。名称”Asynchronous Advantage Actor-Critic”にある3つの”A”は「Asynchronous」「Advantage」「Actor」を表し、”C”は「Critic」を表します。「Asynchronous」は「非同期」という意味、つまり複数のエージェントによる非同期な並列学習を行うことです。「Advantage」とは、複数ステップ先を考慮して更新することを指しております。そして、ActorとCriticに関しては、Actor-Critic手法と関わっています。

一瞬話が脱線します。Actor-Criticとは強化学習の学習のアプローチの1つです。行動を決めるActor(行動器)を直接改善しながら、方策を評価するCritic(評価器)を同時に学習させます(図1)。方策ベースと価値ベースを組み合わせた手法です。Actor-Criticを用いると報酬の揺らぎから影響を受けにくくなり、学習を安定化および高速化できるメリットがあります。

f:id:gri-blog:20210807105311p:plain

図1: Actor-Criticの仕組み

引用:Sutton, Berto, “Reinforcement Learning – an introduction.” 1998

A3Cによる非同期学習の詳細と利点

各エージェントが並列に、自律的にrollout (ゲームプレイ) を実行します。そこで計算した勾配の情報に基づいて、「それぞれのタイミング」で共有ネットワーク(global network)を更新します。そして、各エージェントはそれぞれ定期的に自分のネットワーク (local network) の重みを共有ネットワークの重みと同期します。図2にA3Cの並列学習の仕組みが表されています。

f:id:gri-blog:20210807105614p:plain

図2: A3Cの並列学習の仕組み。

引用:https://pylessons.com/A3C-reinforcement-learning/

では、並列分散エージェントを用いて学習を行うことのメリットは何でしょうか。

  • 1つは、ネットワーク全体と重みを共有しつつ、並列分散的に学習しているため、学習が高速化できることです。
  • もう1つは、学習を安定化できることです。

経験の自己相関による学習の不安定性は強化学習分野の長年の課題でした。深層強化学習といえばDQN手法が有名です。DQNではExperience Replay (経験再生)を用いて学習の安定化を実現しています。しかし、経験再生はDQNのような「方策オフ手法」でしか使えません。これに対して、「方策オン手法」であるA3Cは、経験の自己相関を低減するために、エージェントを並列化する工夫をとっています。

A3Cの難点

一方で、A3Cの難しいところは以下の通りです。

強化学習の実装にはPythonがよく用いられますが、Pythonのプログラミング言語の特性上、非同期並列処理を行うのがやや面倒です。また、同時並列的に学習するため、A3Cの実装はそれなりに大規模な計算リソースのある環境が必要です。

A3Cの後にA2Cという手法が発表されています。A2Cは同期処理を行います。各エージェントが中央指令部から行動の指示を受けて一斉にワンステップ進行し、中央指令部は各エージェントから遷移先状態の報告を受けて次の行動を指示します。したがって、ある程度リソースが節約されます。また、Pythonでも実装しやすいのです。A2Cの性能がA3Cに劣らないことがわかったので、よく使われるようになりました。

後続の記事では、A3Cのアルゴリズムをさらに詳細に説明していきます。それを読むと原論文の主張も理解しやすくなりますので、是非目を通してみてください。

【5分講義・深層強化学習#4】A3Cの手法の中身と性能を理解

ここまで読んでいただきありがとうございました。それでは、次回またお会いしましょう。

記事担当:ヤン・ジャクリン(分析官・講師)

yan
データ分析官・データサイエンス講座の講師