最終更新日:
汎用的人工知能(Artificial General Intelligence:略してAGI)の実現とその善用を目指しているアメリカ・サンフランシスコに拠点をおく非営利団体OpenAIの公式ブログ記事のひとつでは、深層強化学習を習得する教材のリリースが告知されています。
同団体は現在のAI技術のなかでも強化学習を重要視しており、強化学習を用いてストラテジーゲームのジャンルのひとつであるMOBAで世界的に有名なゲーム『Dota2』でヒトのトッププロプレイヤーに匹敵するAIプレイヤーを開発したり、ヒトの手のように器用に動作するロボットハンドの開発に取り組んできました。
以上のような成果をあげている強化学習の基本的な仕組みとは、AIが与えられた学習環境から得た情報にもとづいて効率的に所与のタスクを達成できる行動を選択していく、というものです。この仕組みにおいては、学習環境が複雑になるとAIが環境を情報として処理することに困難をきたすという問題を抱えていました。この問題に対して、強化学習とディープラーニングを組み合わせることで複雑な環境にも対応できることがわかりました。こうして深層強化学習(deep reinforcement learning)は急速に注目されるようになりました。
しかし、深層強化学習を習得するのは非常に敷居の高いものです。そこで同団体は、何らかのソフトウェア開発の経験さえあれば、この技術を習得できる教材を作成しました。それが「Spinning Up in Deep RL(深層強化学習の急速展開)」です。同教材は、11月上旬に発表されてから約6か月後に行う全面改訂を経て、改めて一般公開される予定です。
2018年11月8日
わたしたちは「Deep RLのスピニングアップ(急速展開)」をリリースします。これは誰もが深層強化学習(deep reinforcement learning:略してRL)に関する熟達した実践者になるために学習できるように設計された教育的リソースです。このリソースは単純明快なRLに関するソースコード、教育的練習問題、資料、そしてチュートリアルから構成されています。
OpenAIは、ディープラーニング全般―そしてとりわけ深層強化学習―が強力なAI技術の開発において中心的な役割を担うと信じています。ヒトビトが素早くディープラーニングに取りかかるようにする利用可能なリソースは無数に存在しますが、深層強化学習の世界に参入するのはほかのディープラーニングに比べて挑戦的なことです。こうしたなか、わたしたちはヒトビトが深層強化学習を活用し、この手法に関する直観を養成するための学習を手助けできるようにスピニングアップを設計しました。
スピニングアップを作り上げるに際しては、OpenAIが主催しているスカラー(学生)およびフェロー(研究員)・イニシアティブにおいて一緒に働いたヒトビトにインスパイアされました。このイニシアティブにおいてわたしたちは、機械学習に関してほとんどあるいはまったく経験のないヒトが、適切な指導と資料が活用できるならば、短期間で機械学習の実践者になることが可能であることを確かめました。Deep RLのスピニングアップは、以上のような機械学習の習得に関する資料の必要性を念頭に置いて作り上げられてから、2019年のコホートにおける学生と研究員のためのカリキュラムに統合されました。
またわたしたちは、RLに関する素養があることはヒトビトがAIの安全性のような学際的な領域の研究に参加する際に手助けとなる、とも考えています。AIの安全性に関しては、強化学習とそのほかのスキルが混ざり合ったものが必要とされます。さらにわたしたちは多くのヒトから深層強化学習を知識のない状態から学習する際の指導法について尋ねられてきたので、わたしたちが非公式に行ってきたアドバイスを公式なものにすることを決意したのでした。
Deep RLのスピニングアップは以下のようなコア・コンポーネントから構成されています。
- RLの用語集、アルゴリズムの種類、そして基礎的な理論に関する短い導入
- RL研究の役割がいかにして成長したかに関する小論
- 項目ごとにまとめられた重要論文に関するキュレーションリスト
- スタンドアロンで実行可能な良質な解説がついた短いソースコードのレポジトリ。実行できるものとして標準的な方策勾配法(Vanilla Policy Gradient:VPG)、信頼領域方策最適化(Trust Region Policy Optimization :TRPO)、近傍方策最適化(Proximal Policy Optimization:PPO)、深層決定的方策勾配法(Deep Deterministic Policy Gradient:DDPG)、双生遅延DDPG(Twin Delayed DDPG:TD3)、そしてソフト行為者-評価法(Soft Actor-Critic:SAC)※
- フォーミングアップのためのいつくかの練習問題
※以下に上記に挙げられた学習法の概要を記す。概要は、スピニングアップ教材の各学習法の解説を参考にしている。
学習法名 | 概要 |
---|---|
Vanilla Policy Gradient:VPG(標準的な方策勾配法) | 高い報酬が得られる行動を優先的に選択し、反対に低い報酬しか得られない行動を避けるように方策(ポリシー)を最適化する学習法。 |
Trust Region Policy Optimization:TPO(信頼領域方策最適化) | VPGにおける方策(ポリシー)の更新方法を改良したもの。TRPOにおいては、方策の更新はパラメータ空間の範囲内で実行される。このため、大幅な方策の更新が起こらない。TRPOにおいては、VPGより最終的なAIのパフォーマンスが安定する。 |
Proximal Policy Optimization:PPO(近傍方策最適化) | TRPOと同様にVPGにおける方策(ポリシー)の更新に制限をかけることでAIのパフォーマンスを安定させる学習法。TRPOとの違いは、方策を更新する演算がより単純なものでありながら、得られる結果がほぼ同等なところである。PPOにはさらにPPO-PenaltyとPPO-Clipの2種類の学習法があり、OpenAIではPPO-Clipが使われている。 |
Deep Deterministic Policy Gradient:DDPG(深層決定的策勾配法) | AIの学習において、方策(ポリシー)の更新と行動の価値を算出するQ関数の両方を活用する学習法。 |
Twin Delayed DDPG:TD3(双生遅延DDPG) | DDPGを改良した学習法。DDPGはハイパーパラメーター等の設定によっては、AIのパフォーマンスが安定しないという欠点がある。この欠点の原因はQ関数によって算出されたQ値が過大評価される場合があるからなので、この原因を解消するためにQ関数をふたつ導入してQ値を算出してより小さいQ値を採用するようにする(ふたつのQ関数を導入するので「双生」)。さらにふたつのQ値が更新された時にのみ方策(ポリシー)を更新する(これが「遅延」の意味)。 |
Soft Actor-Critic:SAC(ソフト行為者-評価法) | DDTPとTD3と同様にQ関数を用いた学習法。SACの最大の特徴は、エントロピー(entoropy)という概念を導入することにある。SACにおけるエントロピーとは、「探索と開拓のトレードオフ(exploration-exploitation trade-off)」として知られる現象を司る概念である。エントロピー値が増えるとより探索が選択されるようになり、その結果として学習が継続されるようになる。こうしたエントロピーの働きにより、方策(ポリシー)が局所最適解に陥るのを防ぐ。 |
サポート
わたしたちは、Deep RLのスピニングアップに関して以下のようなサポートプランを用意しました。
- 広範囲にわたるソフトウェア・サポート期間:スピニングアップをリリースしてから最初の3週間において、わたしたちはバグの改修、ソフトウェア環境の整備、資料の誤りや曖昧な箇所の解決を進めます。スピニングアップを使って可能な限り簡単に独習できるように、わたしたちは教材のユーザ・エクスペリエンスの改善に努めていきます。
- 2019年4月におけるメジャーレビュー:スピニングアップのリリースから約6ヶ月後、コミュニティから受け取ったフィードバックにもとづいて教材パッケージの状態に関して厳しいレビューを行います。このレビュー後、将来の教材改修に関するプランも発表します。
- 内部開発した成果物をパブリック・リリース:Deep RLのスピニングアップを学生や研究員とともに使ってみて内容を変更したら、その変更をパブリックなレポジトリに反映して可能な限り早くすべてのヒトが使えるようにします。
OpenAIにおける教育
Deep RLのスピニングアップとは、OpenAIの憲章で掲げているアイデアのひとつである「汎用的人工知能(Artificial General Intelligence:略してAGI)を全人類のために役立てるという挑戦を呼びかけるために世界規模で協働するコミュニティを築くことを追求する」ことの履行を「スピニングアップ(急速展開)」するために作ったOpenAIによる新しい教育的イニシアティブの一部です。わたしたちはスピニングアップ教材が使われることでより多くのヒトビトが深層強化学習に親しみ、学んだ知識にもとづいてAIをより安全かつ広範囲に役立てることの助けとなることを願っています。
わたしたちは、2019年2月2日、OpenAIサンフランシスコ本部においてDeep RLのスピニングアップを使ったワークショップを開催します。このワークショップは3時間の資料を使った講義と5時間の半ば用意されたハック、プロジェクトの開発、そしてブレイクアウトセッション(分科会)から構成されています。これらのイベントのすべては、OpenAIの技術スタッフメンバーがサポートします。このイベントにおける理想的な参加者は、ソフトウェア開発の経験はあるが機械学習に関してはかじった程度というヒトで、正式な機械学習に関する経験は必要とされません。もしこのイベントに参加することに興味があるならば、わたしたちが用意した簡単な申込書に記入してください。この申込書は2018年12月8日に締め切られ、イベントの招待状は2018年12月17日に発送します。
もしヒトビトと交流したり教育したりしながら、わたしたちOpenAIがAIの限界を押し広げることに協力したいと思うならば、ぜひOpenAIの求人に応募することを検討してみてください。
パートナーシップ
わたしたちが作成した教育資料を使ってヒトビトを教育することを助けてもらうために、OpenAIとは異なる組織と協働してもいます。Deep RLのスピニングアップに関するはじめてのパートナーシップとして、カリフォルニア大学バークレー校にあるヒトとAIの調和のためのセンター(Center for Human-Compatible AI:略してCHAI)と協働します。同センターは、2019年初めにOpenAIが2019年2月に開催することを予定しているDeep RLのスピニングアップに関するワークショップと似たイベントを開催します。同センターの試みがその後に開催されるワークショップの嚆矢となることを期待しています。
Hello World
深層強化学習のアルゴリズムがどのように実行されるかを体感する最善の方法は、まさにそれを実際に実行してみることです。スピニングアップ教材を使えば、それは簡単です。以下のようにpythonコマンドを実行してみてください。
python -m spinup.run ppo –env CartPole-v1 –exp_name hello_world
AIの学習が終わると、学習実験にもとづいてデータをどのように見るべきかについて理解できるようになり、学習したエージェントがどのように振舞うかを動画で見ることもできます。
スピニングアップの実行環境は、Classic Control、Box2D、あるいはMuJoCoのタスクが実行できるGym環境※に対応しています。
※Gymとは、OpenAIが開発した強化学習のアルゴリズムを実行し、その学習成果を比較するためのツールキットのこと。3次元的なシミュレーション環境でパペット人形のようなエージェントに歩かせたり、ピンボールのようなゲームを学習させることができる。またClassic Control、Box2D、そしてMuJoCoはGymで実行可能なサンプルコードのこと。
Classic Controlは振り子のような古典的な物理現象を簡単に再現する装置をシミュレーションしたサンプルコード群の総称。Box2Dとは2次元ゲーム向けのゲームエンジンのことであり、このエンジンを使って構築したカーレースゲーム等のサンプルコードがある。MuJoCoとは3次元に対応した物理演算エンジンであり、このエンジンで構築されたパペット人形が歩行するサンプルコードもある。これらのサンプルコードを活用して、強化学習に関する学習ができるようになっている。
わたしたちは入門者を想定してスピニングアップのソースコードを設計したので、そのソースコードは短くて親しみやすいものにして、そして可能な限り簡単に学習できるようにもしました。わたしたちのゴールは、深層強化学習の理論がどのようにしてソースコードに落とし込まれるかを解説するために、最小限必要なソースコードの実行を示すことにあります。このソースコードの実行に際しては、現在の深層強化学習のライブラリーに典型的に見られる抽象化されたレイヤーやブラックボックス化を避けるようにしています。また、ソースコードのモジュール性よりは明快性を優先しました。ソースコードの実行に際して再利用性を優先すると、ソースコードのログ採取や並列利用性が厳しく制限されてしまうからです。なお、ソースコードにはラベルが付けられているので、実行されているソースコードが何であるかを常に知ることができ、実行中のソースコードは、そのソースコードに対応したreadthedocsページにある背景となっている教材(と疑似コード)によってサポートされています。
謝意
Deep RLのスピニングアップを作成するプロジェクトを開始するにあたっては多くのヒトビトの貢献がありました。そうした次のようなヒトビトに謝意を表します。Alex Ray、Amanda Askell、Ashley Pilipiszyn、Ben Garfinkel、 Catherine Olsson,、Christy Dennison,、Coline Devin,、Daniel Zeigler、Dylan Hadfield-Menell、Eric Sigler,、Ge Yang、Greg Khan、Ian Atha、Jack Clark、 Jonas Rothfuss,、Larissa Schiavo,、Leandro Castelao,、Lilian Weng、Maddie Hall、Matthias Plappert、Miles Brundage、Peter Zokhov、そしてPieter Abbeel.
原文
『Spinning Up in Deep RL』
著者
Joshua Achiam(OpenAI所属リサーチ・サイエンティスト)
翻訳
吉本幸記
編集
おざけん