AIの想像力が人間を超えるとき。深層強化学習のブレイクスルー、D3RLの衝撃
2020.10.08
Updated by Ryo Shimizu on October 8, 2020, 11:13 am JST
2020.10.08
Updated by Ryo Shimizu on October 8, 2020, 11:13 am JST
「最近のAIがすごい」と言われてからもう6年ほどが経過した。
なかでも人目を引いたのは、なんといっても2016年のAlphaGoだろう。最難関ゲームの一つと言われる囲碁において、人間のトップ棋士に対しAIが圧勝したのである。
これは「深層強化学習」というAIだが、実際のところ、「深層強化学習」を実用的に利用した例はまだ少ない。
多くのAIベンチャーやAIベンダーが扱う「AI」技術は、古典的な統計解析か、時折ニューラルネットを使っているくらいで、「深層学習」ではあっても「深層強化学習」とは完全に別物である。ラジオもコンピュータも同じ電気で動くものだが別物であるのと同じだ。
深層強化学習を実用的に使うことかできてないという点では、AIベンチャーもGAFAMNも実は大差ない。GAFAMNが提供しているような深層学習APIは「識別」に特化しているし、DataRobotが提供するのは統計的解析であって強化学習ではない。
なぜ深層強化学習はこれほど強力だと知られているにも関わらず、いっこうに実用化が進まないのだろうか。
実はそれは強化学習のさせ方に原因がある。
昨日開催されたオンラインイベント「Ghelia Monthly」では、ギリア株式会社のインターン出身で現Sony AI所属の妹尾琢磨氏が従来の深層強化学習をこのように総括した。
従来の深層強化学習の応用が進んでいない主な原因は二つあった。
まず、オンライン(実空間)での試行錯誤が困難であること。たとえば現実のロボットを強化学習使用とした場合、学習過程でロボットが壊れたりする可能性のほうが高いという問題があった。
かといって、現実空間が使えないのでシミュレータで学習させようとすると、シミュレーション環境の作成が困難なケースが多い。モデルが単純化できるものならばいいが、多くの問題は現実の世界を完璧に再現することができない。
これが大きな壁となって、深層強化学習を実用化できていなかった。
ところが実際には、当社は昨年から深層強化学習を一部実用化し、顧客に提供しており、現在の利益の中心は深層強化学習になっている。なぜか?
理由は二つある。ひとつは、ゲーム業界出身者が多いため、現実の課題設定をもとにシミュレーション環境を作ることに慣れていたのと、もうひとつは、昨年から全く新しい深層強化学習のブレイクスルー、D3RL(Data Driven Deep Reinforcement Learning)などの手法が生まれたからだ。
D3RLとは何か?
簡単に言えば、シミュレーションでもオンラインでもない第三の深層強化学習手法である。
たとえばAlphaGoの進化系であるAlphaStarは、人間でいえば200年分くらいのプレイ時間を経験しなければ人間より強くなることはできない。でも仮にAIのほうが人間よりも「賢い」ならば、この方法は少々ブルートフォース(強引)に過ぎるように感じる。どんな人間も200年も生きないし、生きている時間の全てをゲームプレイに費やしていないからだ。すなわち、ここに従来手法の「大いなる無駄」があったことになる。
D3RLは「データ駆動型深層強化学習」とも呼ばれる。
従来、強化学習は環境との相互作用によって学習してきたが、D3RLでは、強化学習は環境との相互作用を必要としない。
単に、「こういうときこうしたらこうなった」というデータがあれば良い。
「データで学習する」と言うと、従来の「教師あり学習」と同じではないかと思われるかもしれないが、根本的な違いがある。
従来の「教師あり学習」の場合、学べるのは「こういうときにはだいたいこうしておけ」ということで、この学習法では凡庸なAIしか作ることができない。
ところがD3RLでは、「こういうときにはこうしたら、良くなった/悪くなった」ということを時系列を考慮して学習するので、与えられたデータセット以上の性能にたどり着ける。これがD3RLを「人間の想像力を超える」と筆者が評するポイントだ。
もともと、これに近しい研究は、たとえば米軍の支援を得てテキサス大学オースティン校のピーター・ストーン教授らの研究室が行っていた「DeepTamer」などで、人間の調教師がAIを教えると、短時間で調教師の能力を超える現象が確認されていた。筆者も実際にストーン教授の指導を受けDeepTamerのコードを書いて、AIの調教師になってみて、自分の育てたAIが自分よりもうまくゲームをプレイするようになる様を体験している。
D3RLは、この現象を裏付けるものであると同時に、深層強化学習の世界にさらなる飛躍をもたらすものだ。
右図は、データセットによる教師あり学習とD3RLの効果の違いを説明している。黒の点線がデータセットで与えられた平均点で、黒の実線は最高得点である。青い線は教師あり学習で学習した結果の点数で、学習が進んでも平均点から超えられていない。ところがオレンジの線は同じデータセットをD3RLで学習した結果で、250エポック(試行回数)で与えられたデータセットの最高得点を抜いている。ちなみに緑の線は妹尾琢磨氏が開発したフレームワークによる学習結果で、それまでのSOTA(最高品質)だった手法よりも遥かに学習効率がよく、しかも最高得点でも上回るという結果を見せている。
なぜこんなことが起きるかと言えば、機械学習は手法によって学習の目的が異なるからだ。
教師あり学習は「入力と出力の関係を学習」し、教師なし学習は「入力データの構造を学習」し、強化学習は「報酬を最大化する方法を学習」するのである。
野球の投手をAIにたとえるならば、教師あり学習は「コーチが手取り足取り、こんな風に投げろと教える」やり方であり、このやり方では基本的にコーチよりもうまくはならない。D3RLとは、「自分で過去のプロ野球選手の投球フォームをひたすらビデオで見て研究して、もっと良い投げ方を考案する」というニュアンスになる。つまり、より創造的な知能を育成していることになる。
これだけ強力なD3RLだが、残念ながら簡単に使う方法はほとんど提供されていなかった。妹尾氏はそこに一石を投じるべく、二つのオープンソースソフトウェアを開発し、公開している。
妹尾氏が未踏プロジェクトで開発したMINERVA、およびギリアのインターン時代に開発したd3rlpyは、ともにgithubでオープンソースとして公開されている。
d3rlpyは、D3RLをPythonで使うためのフレームワークで、MINERVAは、d3rlpyのGUI環境である。
MINERVAを使うことで、プログラミングや強化学習の知識がほぼゼロであっても、ブラウザ上から深層強化学習を実行し、完成したモデルをダウンロードできる。
MINERVAのインストールはpip一発なので驚くほど簡単だ。そして効果は強烈である。
そして学習に使う肝心の「データ」だが、これが非常に簡単で拍子抜けするのではないかと思う。
具体的には極めてシンプルなCSVデータだけで良いのだ。画像があるなら、画像ファイルのファイル名をCSVファイルにつけておけばいい。それだけである。
あとはRUNボタンを押せばGUI環境で勝手に学習してくれる。
これらのツールは全て無料で使うことができる。これは使わなければ損だ。
学習したデータは、torchかonnx形式で受け取ることができるのでそれをiOSに組み込むなりサーバーに組み込むなり自由自在である。
学習するために大規模な計算資源がいるわけでもない(ここが実際すごいところなのだ)。
たとえば、サンプルについてくる非常に簡単な練習問題のcartpole(棒が倒れないように制御する)の学習データはわずか10MB未満である。
強化学習は教師あり学習に比べてデータが作りやすいという特徴もある。
たとえば教師あり学習用のデータは人間がひたすら作らなければならないが、制御を目的とした強化学習用のデータは、1秒間に30個ずつとるとしたら、一分で1800、一時間で108000のデータがとれることになる。Cartpoleのデータ数もそのくらいしかない。
これは、AlphaGoが全ての記譜を学習するまでに要したデータ量を考えれば驚異的なまでに少ない。
そもそもなぜAlphaGo(や、その発展系)に膨大な計算資源が必要だったかといえば、ほとんど全てのパターンの場面を網羅しようとしたからだ。
しかしD3RLが必要とするデータは、あくまでも「その環境との相互作用」のデータ、いわば過去の操縦データやパターンが網羅できていればいい。また、決定論的ゲームである必要もない。
要はデータの増やし方はいくらでもあるということだ。
データさえ作れば非常に簡単に、かつ強力なAIを作ることかできるので、読者諸氏もぜひ試してみて欲しい。
AIのさらなる可能性に胸を打たれるはずだ。
また、筆者は今月末に開催されるAI EXPOで講演する。そこでもD3RLを踏まえた、さらなるAI発展の可能性について語らせていただきたい。
おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)
登録はこちら新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。