project member
「Hungry Geese」に優勝し一躍注目された、並列強化学習によって強いAIを作ることができるライブラリHandyRL。
その開発に従事したシステム本部データ統括部 田中一樹、フリーランスとしても多くのAI開発に携わる大渡勝己にHandyRLの特長、生み出した成果や今後の展望について聞きました。
強化学習の課題を解決し、スケールできるのがHandyRL
大渡勝己(以下、大渡)
まず最初に、HandyRLとは何か端的に説明していこうかな。これは、主に対戦ゲームにおいて並列強化学習によって強いAIを作ることができるライブラリです。
強化学習は、エージェントが自律的に戦って強くなっていくという技術ですが、公開されてるライブラリは手軽に使えるものの、主にパズルゲームなどの1人でプレイするゲームを前提にすることが多かったり、現実レベルでは大規模に動かせなかったりという問題がありました。
しかし、実際には対戦型で遊ぶゲームのほうが多いので、そういった環境にも適応できる必要がありました。
そこを解決し、対戦ゲームでも使え一気に大規模化させることもできるのがHandyRLです。
--
田中一樹(以下、田中)
HandyRLのような技術はもっと前から存在しててもおかしくないように思いますが、これまで開発されてこなかった理由など、大渡さんはどう思います?
--
大渡
まず、強化学習のライブラリを使う人というのは、動くものが見たい初学者や、問題の幅が決まっているなかで研究する人、まず小規模で新しいことにチャレンジする人が多いイメージです。
なので、私たちのように課題が目の前にあって、そこを一直線で解決したいって人はあまり多くなかったというのが大きい理由だと思いますね。
--
田中
そうですね。企業の開発者たちが参加するゲームのカンファレンスに出席しても強化学習に取り組んでいるところはまだまだ多くはないですよね。
ライブラリや開発フローなどを含め、まだ確立したものはないかなという気がしてます。
ゲームドメインから切り離すことでスケールしやすく
田中
私たちがHandyRLを開発にするにあたってあった課題は「逆転オセロニア(以下、オセロニア)」の強化学習でしたね。
--
大渡
今後の発展や高い拡張性を考えると、強化学習の部分とゲームに依存する部分を切り離したかったんですよね。
ゲームの種類ごとに異なる処理はゲームごとに任せるような形にしたかったので、強化学習の基盤部分をオセロニアとは切り離して作り始めました。
--
田中
一つのゲームに特化した形で強化学習のコードをつくってしまうと、ゲームごとに特徴が異なるため他ゲームへ実装を横展開することが難しくなるということがあります。
そういった意味でも固有のゲームを強化学習の実装と切り離すというのはすごく大事ですよね。
将来を見据えた上での実装をしていこうという気持ちの現れかなと。
ゲーム業界にとってはもちろん、自社メンバーにも「一緒にやっていこう」というポジティブなメッセージになると思い、OSS(オープンソースソフトウェア)として公開することにしました。
--
大渡
メリットを端的に言うと、HandyRLを用いてつくると対戦AIの性能がかなり上がることですね。
費用面もそうですが、開発の時間をだいぶ短くできることで、基本的な部分はほぼ0コストで、ゲーム側とのつなぎ合わせだけで出来るようになりました。
大渡さんの経験則が生む「最適解への最短の道のり」
田中
実際にオセロニアを例にすると、大渡さんがジョインするまでも1、2年かけて強化学習には取り組んでいました。
今回、大渡さんの経験も踏まえてつくられたHandyRLを使うことで、新しい強化学習に着手すると約3ヶ月でいいモノが出来上がるんです。
そのくらいの期間で人間に勝てるAIをつくれるスピードアップさは本当にすごい! しかも、強化学習について基本的な知識さえ持っていれば誰でも手軽に使えるのも魅力だと思います。
--
大渡
さまざまなゲームAI周辺のことに関わってきたので、大体共通部分としてこれくらいあれば「8割はできるだろう」という感覚はありました。
ゲームAI開発を続けてきた経験則があったからこそ、ゴールに最短で向かう方法を導き出せたのかな(笑)。
--
田中
HandyRLはコンピュータをたくさん使って並列度を上げやすいというのが強みのひとつですが、並列度をあげる学習部分には、昔から課題感を持っていたんですか?
大渡
並列度を自由に後から調整するみたいなのが当たり前だと思っていたんですよ。
もちろん用途によって詳細は違いますけど、基本的なコンセプトとしてはないといけないと思ってました。
--
田中
今、大渡さんが「並列度を自由に後から調整するみたいなのが当たり前」だったと言ってたんですけど、本や論文、Kaggleなどで機械学習を学んでいるなかではその当たり前の知識がまったく身に付かないと思っているんですよね。
僕にとって全然当たり前じゃなくて(笑)
--
大渡
経験についていうと、一時期話題になったのですが、大学院の担当の先生が作っていた将棋ソフトで、プロとの対戦でコンピュータ400台くらい使ったことがあったんです。
必ずしも並列化が大事じゃない場面の方が多いんですが、並列でやりたいっていうところは夢なんですよね。
事業会社にいるうえで、やっぱり普通の人がパッとはできないこと、つまり、並列度を上げた強化学習の実装やその大規模化をやりたいというのは真っ先にありましたね。
フレームを確定させ中身づくりに集中できるメリット
田中
オセロニアを例に具体的に説明をしていきます。
まず、ゲームのシミュレータからつくる必要があります。
どんなAPIにするか、どんな特徴量を返してもらうかなどの仕様情報が当時オセロニアにはありませんでした。
試行錯誤しながらだったので、シミュレータをつくってから安定したものができるまで1年くらいかかっていました。
でも、HandyRLを取り入れることで、最低限かつ必要な要素が洗い出しやすくなったのでシミュレータをつくるのが早くなったこと。
そして、仕様が明確になったのでゲームエンジニアに依頼するときの共通認識がつくりやすくなったのが本当に大きかったです。
--
大渡
もちろんどんな方法でも強化学習できるんですけども、先にフレームを決めることで、中身についてフォーカスできるので、コミュニケーションコストが減る。これは重要ですよね。
--
田中
並列度を上げてスケールさせるという目線でいうと、今までだと並列度をあげる共通のコードがなかったため一つのマシン上で学習することが多かったのですが、HandyRLを使うと簡単にマシンの数を増やして分散学習ができるので、1個のGPUと1000個のCPUを活用するなど、より柔軟な環境を使って学習を高速化できるようになりましたね。
また、従来の機械学習ではデータがないと学習できません。
が、HandyRLのような強化学習はデータがない中でもゲームやロボットなど、環境を設定しさえすれば自分で思考錯誤しながらデータを作って強くなっていくことができます。
これは、大きな違いですね。
--
大渡
私は、強化学習こそ世界をつくる技術だとつねづね考えているんです。
あるものを使うだけではなく、最初に枠だけつくってあげればその中で世界が広がっていくみたいな、そういうことができるのがHandyRLをはじめとした強化学習の技術ですね。
宇宙を例にすると…ビックバンが起こり、今人間などが存在している。
これは宇宙の学習の結果ですよね。
このビックバンを何回も起こし、どうやったら人間ができるか、みたいなことをやっていくのが強化学習です。
世界的なゲーム大会で一位を獲得
田中
HandyRLが注目される最初のきっかけは、「Google Research Football with Manchester City F.C.」でしたよね。
各チームのAI同士が競い合い、従来のサッカーゲームのようにポイントがついて順位が決まる2ヶ月ほど開催されるコンペティションです。
普通の機械学習コンペみたいに「分類の精度が何%」みたいな感じではなく、定期的に対戦しながらランキングがどんどん変わっていく…。
そこで5位に入賞しました。
その時は、残り3週間という中でスタートして5位くらいまで上がりました。
本当はもっと上がりたかったんですけど(笑)。
短期間でいいモノをつくり、結果を出せたのはHandyRLの良さが出た部分かなと思います。
--
大渡
コンペティションには対戦ゲームが多いので、対戦ゲームに向いた実装をHandyRLがもっているというところで親和性が高いんです。
もっとわかりやすい言葉で言うと、仕事と競技が一直線に繋がるというか。
仕事で見つけた改善点を、すぐに競技のほうに適用することができます。
また逆に競技で得た知見を仕事の方にもすぐ適用できる、そういう親和性はありましたね。
田中
その後、「Hungry Geese」で1位になりましたね! サッカーゲームの時にHandyRLについてはKaggle上などで告知していましたが、「Hungry Geese」が始まった時に大渡さんがすごい勢いで告知してくれて。
そこから、ゲームのコンペティションでHandyRLが使えるというのが広まったと思います。
最終のトップ10の中で約半数はHandyRLを使っていました。
しかも、初めて強化学習に触れたという話をしていたので、初心者の人でも一定レベルの成果をだせるサポートができるようになったことを実感しましたね。
--
大渡
この結果をうけて、HandyRLの知名度は上がりました。
さまざま人がHandyRLのライブラリを使ってくれて、色々紹介してくれてということが続いてうれしかったです。
--
田中
そうですね。
DeNAは事業会社にも関わらず強化学習を駆使したモノづくりを進めようとしている珍しい会社です。
これをきっかけに社内外で強化学習のメリットに注目してくれる人が増えたことで、強化学習をつかった事業提案の幅が広がっていく期待感も増しました。
強化学習が当たり前のゲームづくりを…
田中
強化学習をゲーム開発の途中から組み込むことは簡単ではないので、最初から導入準備を進めることが本当に大事。
はじめから強化学習に適した仕様や基盤を設計しておくことで、将来の変更や運用を楽に行うことができます。
新しいゲームを開発するときに、エンジニアを集めるじゃないですか。
同じようにゲームをつくる過程で最初からAIのチームをつくり、強化学習をつかったAIを実装することが当たり前になる、そういう文化をつくっていきたいですね。
シンプルな協業でいうと、例えばゲームAIの共同開発。
他社さんが開発しているゲームAIのCPUのロジックをもっと良くしたいから一緒に開発したいんですけどみたいな可能性もあり得ますね。
--
大渡
本来、強化学習はゲームAIに限定されたものではないので、今後HandyRLの導入幅が広がればありがたいですね。
他の企業と協力して一緒に強化学習プロジェクトにしていく可能性も広げていきたいですね。
企業との協力だけでなく、最新の研究結果を取り込んでいくことで、もっと広い範囲の問題を解けるようになるんじゃないかという風にも考えています。
ひとつの強化学習のアルゴリズムがあればあとは細かい変化だけで、いろいろな課題解決に使えるということが理想です。
そうなるように強化学習界隈自体も進んでいくと思いますし、自分もそこに寄与できれば嬉しいです。
--
田中
具体的に考えると、電力システムやロボットの最適化、レコメンド機能、広告配信にも組み込めると思います。
本当になんでも適用しようと思えばできる。
強化学習が一番適切かと言われるとまだその段階にない領域もあると思うので、そういう意味ではゲームAIから広げていくっていうのは価値があると思いますし、まずはやってみようかというところでスタートすることになると思いますね。
--
大渡
HandyRLを使って、データがない中で最適な意思決定を必要とする課題の解決に一役買っていけたらいいなと考えています。