HEROZ株式会社の紹介

井口圭一氏(以下、井口):HEROZの井口です。よろしくお願いします。本日は将棋AIを開発しているトップエンジニアたちに出ていただいて、最新の開発について話をしてもらおうと思っています。

最初に会社の紹介をしたいと思っています。HEROZは2009年に設立して、ここに載っている4名の役員で経営しています。

2012年に将棋ウォーズをリリースして、オンライン上でみなさんに将棋をプレイしてもらっています。2018年には東証マザーズに上場して、2019年には東証一部に市場変更しています。まだまだいろいろなところにAIを展開していきたいなと思っていて、会社を大きくしているところです。

HEROZは、「世界を驚かすサービスを創出する」という経営理念で、ビックリさせるようなAIサービスを作っていきたいと思ってみんなで取り組んでいます。ご存じかもしれませんが、1997年にIBMのDeepBlueがチェスの世界チャンピオンに勝ったというニュースを、当時私も見てすごくビックリした記憶があります。

将棋に関しては「取った駒をもう1回使えるし、しばらく無理なんじゃない?」と言われていたんですけど、当時羽生善治さんは「いや、10年くらい(で出来るん)じゃないか」とおっしゃっていたそうです。

2013年には当社のエンジニアが作ったAI(Ponanza)が、初めてプロ棋士に勝って、2017年頃にはトップ棋士にも勝っています。その後、GoogleのDeep Mind社が「AlphaGo」で囲碁でも勝ったということで、こんな感じでこの3つを並べて、HEROZも3大ボードゲームの1つで勝っているんだぞと言っています。

3社を比べるとIBMさんもGoogleさんも超巨大組織なので、いろいろな数字の面ではとても太刀打ちできないんですけど、AIに関してだけは当社にはトップエンジニアがいっぱいいるので、この2社にもぜんぜん負けないと自負しています。

このように将棋のAIがあるので、BtoCでは、将棋ウォーズや、どうぶつしょうぎ、囲碁、チェス、バックギャモンなどのゲームを展開しています。

将棋ウォーズを使っている方はいるでしょうか? 将棋ウォーズの中で「棋神降臨」というAIが代わりに指してくれる機能があります。ここにAIが入っていて、5手120円で代わりに指してくれるので、負けそうなところで逆転してくれると、好評です。

そのほかにリリースしてしばらく経っていますが、「棋神解析」や「精密解析」も新しく提供しています。対戦相手も、Ponanzaが相手をするところにAIが入っています。

当社は将棋ウォーズだけじゃなくて、BtoBでもサービスを提供しているので、今日はそれも紹介します。将棋AIを作っている感じで、ほかの産業にも展開してAIを作っています。

1つが竹中工務店さんと一緒にやっているものですね。建物を作るときは、設計士が柱をどこに配置したらいいかを考えて作っているんですが、そのときに、ほかの似たような建物はこんなのがありますとか、ここの柱はこれくらいにしたらちょうどいいんじゃないかとか、レコメンドをして設計を助けてくれるAIを一緒に作っています。

こちらも同じく竹中さんです。六本木にメルセデスベンツさんの展示場があって、そこに700個くらいのセンサーを入れて、空調や窓の開閉、照明をAIに制御させています。これは強化学習を実環境で実際に使ってみたという、なかなか珍しいかたちです。

こちらはちょっと毛色が違って、SMBC日興証券さんとの取り組みです。株式投資は、1つの株を買っているといろいろと変動が大きいので、複数の株を組み合わせてポートフォリオを組むのがいいでしょうと言われています。

じゃあ、どの株を買ってポートフォリオを組むといいんでしょう? というのを、今持っている株や予算などを見ながら、これがいいんじゃないとレコメンドしてくれるサービスです。これはもうリリースされていて、日興証券さんの口座さえ持っていれば誰でも使える仕組みになっています。このようにBtoBサービスも展開しています。会社紹介は私からは以上です。

(司会者):井口さんありがとうございました。それでは本日のパネラー、HEROZ所属のAIエンジニア2名を紹介します。まずは川島さん、よろしくお願いします。

趣味で将棋AIソフトを作り始める

川島馨氏(以下、川島):HEROZエンジニアの川島と言います。簡単に自己紹介しますと、経歴はこちらに書いている内容です。HEROZには2019年に転職して、そこから主にエンタメ業界の案件でAIの開発を行なっています。

前はSIベンダーにいて、システムの構築をやっていたのであまりAIとは縁がなかったのですが、個人的に将棋のAIを作り始めたのと、スマホアプリも趣味で作っていて、いろいろと機械学習を使う機会があり、そこでAIにすごく興味が出てきたので、仕事もAIにしたいと思ってHEROZに入り、今仕事をしています。

本日のテーマが将棋AIなので、コンピュータ将棋に関するところで、私が作っているディープラーニングを使った将棋AIの「dlshogi」というソフトを紹介をします。

AIが囲碁で人間に勝つのはまだ先だろうと言われていた頃に、AlphaGoが勝ったというのはけっこう大きなニュースでした。そのニュースでAlphaGoを知って、ディープラーニングを使って囲碁を指すのはどういう仕組みなのかと、すごく興味を持ちました。

それがきっかけで勉強を始めて、はじめは囲碁AIを作っていましたが、囲碁はGoogleなどの巨大企業が既に成果を出していたけど、将棋はまだあんまりやっている人もいなかったので、自分で作りたいなと思って2017年から作り始めています。

そのあと大会にも出るようになって、少しずつ順位が上がっていって、2020年11月に電竜戦という大会があったんですが、チームとして参加したdlshogiを使った「GCT」というソフトが優勝するという成果を残しています。

将棋の大会で、ディープラーニングを使ったソフトが優勝するのは今までなかったので、初の結果です。ブログを書いていたという経緯もあり、それがきっかけで書籍も出しています。以上です。

司会者:川島さん、ありがとうございました。続きまして、山口さんお願いします。

山口祐氏(以下、山口):よろしくお願いします。HEROZエンジニアの山口と申します。Twitterもやっていますので、よければフォローをお願いします。

私は2020年にHEROZに入って、エンジニアをやっています。経歴はあんまりほかのエンジニアとは共通点がなく、前は物理工学の研究者をやっていて、つくばにある産総研(産業総合研究所)というところで研究者をやっていました。

そのときはコンピュータソフトウェアとは無縁の仕事をしています。可視光とか遠赤外光の分析ですね。分光計測など実験系の研究者をやっていました。具体的なプロダクトで言うと、例えば2020年に国際宇宙ステーションに打ち上げられた人工衛星用のセンサーの開発や評価などの技術研究を担当していました。

2018年頃に独立をして機械学習やAI関係のエンジニアリングをやるようになりました。現在は金融系の業界を対象にして、時系列予測などを中心に深層学習モデルの研究開発を行っています。

趣味でやっていた囲碁や将棋のAI開発を4、5年やっています。川島さんと同じように深層学習モデルをしたり、囲碁で分散並列強化学習をしたり、けっこう大規模にやっている経験があります。大会の成績ですが、世界AIオープンという世界大会があったときに、決勝まで進んで準優勝したのが一番成績がよかった結果です。

作っている囲碁AI、将棋AIですが、囲碁AIは「AQ」というソフト、将棋AIは「PAL」というソフトをそれぞれ作っています。

AQの開発経緯は、川島さんと共通しています。AlphaGoというすごく強い囲碁ソフトがあって、その論文が2016年に『Nature』に出て、それを見て作り始めたのがきっかけです。このときはまだ私はプログラムをほとんど理解していなくて、ついでにプログラムを勉強してみるかと始めたのがきっかけです。

このAQというソフトは、今はけっこう当たり前になったんですが、深層学習に強化学習を組み合わせる深層強化学習というものをけっこう早い段階から取り入れていました。その結果、世界大会でもけっこういい成績を残しました。

2019年にはスポンサーが付いたプロジェクトで、右下の写真にもあるように、Abemaさんでイベント対局をしました。仲邑菫さんという非常に強い天才少女的なプロ棋士や、芝野虎丸さんという若手で今一番の実力者と言われている方と、実際に対局しました。

ほかにも、実際に強化学習を大量に回そうということで、大規模クラスタを用いた深層強化学習の実験を進めています。最大で1,120GPU、1,000以上のGPUを使って強化学習をすることも過去にはやってきました。

それからPALという将棋ソフトですね。こちらはもともと探索とか線形評価関数の勉強のために3年くらい前から開発しています。これは2018年のコンピュータ将棋選手権で準優勝をしています。

こちらの開発も続けていて、毎年ゴールデンウィークにあるコンピュータ将棋選手権に、今年もエントリーしています。2021年は深層学習に注力しようと思って、独自実装も探索や学習部のモデルを作っています。ちょうど先週くらいから、ようやく強化学習を始めています。

今日は将棋AIの話なので、dlshogiの話や私のソフトの話を交えてできたらいいかなと考えています。よろしくお願いします。

従来の将棋AIとディープラーニングの違い

司会者:山口さんありがとうございました。それではここから本日のメインイベント、トークセッションに移りたいと思います。井口さんにバトンをお渡ししたいと思います。よろしくお願いします。

井口:よろしくお願いします。主題ですね。将棋AIがどうなっているか、からいきたいと思います。最近の将棋AIはどんな特徴があるのか、まずそこから紹介してもらっていいですか?川島さんお願いできますか?

川島:話しやすいようにスライドを用意しましたので、ちょっと画面を映しながら。最近の将棋AIの話の前に、将棋AIの今までの仕組みと、私が作ったディープラーニングがどう違うのかというところを説明したほうがいいかと思って、1枚スライドを作ってきました。

将棋AIにディープラーニングが使われ始めたのはすごく最近のことで、それまでは「αβ探索」という方法が主流になっていました。現在でもこっち(αβ探索)は十分強くて、ディープラーニングはようやく(αβ探索に)並んだくらいな状況です。

この仕組みはかなり違いまして、αβ法は今の自分の手番の局面から何手か先を仮想的に指すことで、どんどん多くの局面を先読みしていきます。

何手か先の局面がどれくらい勝ちやすいかを評価関数というものを使って点数をつけて、自分の番になったらこの中から一番点数が高いものを選んで、相手は自分にとって一番点数が低いものを選ぶはずなので、ということを繰り返して、最終的には一番はじめのところで点数が一番高い手を選ぶ方法です。この評価関数は以前は人手で調整していたんですが、「Bonanza」というソフトが公開されてからは、将棋の3つの駒の位置関係に対して点数をつけるのを、人間の棋譜から学習する機械学習で始めました。評価関数には機械学習で点数をつけています。

最近はさらにこの3つの駒の関係だけじゃなくて、ニューラルネットを使った評価も行われています。こちらのソフトも今でも十分強いです。

右側はディープラーニングを説明しているんですが、これは従来の方法とはまったく違う方法で手を選んでいます。畳み込みニューラルネットワークという、非常に深い層のネットワークに将棋の盤面を画像として入力します。

人間が特徴量を設計しないで画像そのものを入力すると、出力としてどの手がいいかという差し手の確率を出してくれる仕組みを使っています。

ただ差し手の予測だけだと、特に終盤にあまり強くないというのが特徴です。そのため、これだけではなく、モンテカルロ木探索も組み合わせて使用しています。

モンテカルロ木探索というのは、先ほどαβ探索で仮想的に手を打つのを木の構造で書いていましたが、どの手を選ぶかというところにディープラーニングを使った差し手の予測を行って、一番有望そうな手を調べて、何手か先の局面の、どれくらい勝ちやすいかという勝率を求めるというやり方をしています。ディープラーニングを使った将棋AIとの違いというのはそんなところです。

(次回へつづく)