ニューラルネットとディープラーニングの違い

(司会者):ではそろそろ質疑応答に移りたいと思います。よろしくお願いします。

井口圭一氏(以下、井口):発表中に何件かもらっていたので、そこからいきますか? 「ユーザーからすると、読み筋が出るのが将棋ソフトのありがたいところですが、dlshogiでもディープラーニングで読み筋は出せるのでしょうか?」

川島馨氏(以下、川島):はい、出せます。さっき言ったモンテカルロ木探索で、数手先を読むという探索もしていて、読み筋を出すのはdlshogiでも対応しています。

井口:これもまた川島さんにかな。「従来の将棋AIとの違いというスライドで、従来でもニューラルネットを使うと書いてありましたけど、一番顕著な違いは何でしょうか?」 

川島:特徴量がニューラルネットだと、今はNNUEっていう仕組みが使われていて、それは2駒の関係を入れているんですが、ディープラーニングは画像の盤面そのものを入れて、特徴量を考えずに、入れたら差し手が予測できるというところ。ニューラルネットも、層が深くなればディープラーニングなんですが、ディープラーニングは特徴量などなにも考えずに画像の盤面そのものを入れれば、指し手が予測できます。入力特徴量が違って、層が深ければいろいろと抽象化して予測ができるのが大きな違いだと思います。

山口祐氏(以下、山口):つまり計算に使うパラメータ数と探索の部分がだいぶ違うということですかね。

AIが新しい序盤戦略や戦法を生み出す可能性は大いにある

井口:次へいきますか。「HEROZ社員同士で大会やコラボ参加はしないんですか?」と質問が来ています。社内では、記録差に応じて棋神が何個使えるなどルールを設けて、人間同士で将棋ウォーズの大会をやっています。社内でコンピュータ将棋大会をやると、ちょっと人数が少なくてさみしいかな。

山口:けっこうガチになっちゃうので、あんまりよくないです。血で血を洗う争いになる危険性が高いので、やめたほうがいい気がします(笑)。

(一同笑)

井口:公式の場で戦ってくださいという感じですね(笑)。

山口:そうですね。

井口:次は、「囲いではボナンザ囲いやエルモ囲いなどAI由来のがありますが、戦法でAI由来のものはありますか。それともAIが戦法を新たに考案するのは難しいのでしょうか。」という質問です。

山口:あり得ると思いますね。例えば将棋だと、プロの先生はまだディープラーニング由来のソフトを使っていないですが、囲碁だとプロ棋士がディープラーニングベースのソフトを日常的に使っています。

それに基づいた定石や新しい手、これまでなかったような手を積極的に取り入れているから、将棋でも今後ディープラーニングのソフトが普及したら、新しい序盤戦略、戦法が出てくる可能性は非常に高いと思います。

井口:AIだけ見ていると、さまざまな手を指しちゃうからこのAIはいつもこれをやっているというのは見つけにくいかもしれないけれど、人間がそこから新しいのを引っ張り出すというのはありそうですね。

山口:そうですね。

盤面を知らずにゲームを攻略するMuZeroの仕組み

井口:次に行きますか。「MuZeroが話題になっているので、そのお話も聞きたいです」というものです。なにかあります?

川島:MuZeroは仮想的にモデル自体を学習する仕組みで、将棋で言うと、さっきのモンテカルロ木探索でやっていた部分をディープラーニングの中でやってしまうという仕組みです。これはモデルが作れないゲームや、実際の環境で使うものだと、すごく有効ですね。

ただ、将棋みたいに高速シミュレーターがある場合は、そっちを使ったほうが効率はいいというのはあります。論文だと同じくらいの強さになった書かれているんですが、計算量は増えているので、シミュレーターが使えれば使ったほうが効率的だとは思います。

井口:ルールがわからない状態でも、同じところまでいったんですか?

川島:そうですね。

井口:すごいですね。将棋のルールを知らなくても、とりあえず指してみたら勝てたみたいな感じ?

山口:盤面を知らないという感じですかね。さっき、強化学習ではAIが盤面を実際に動かすという話をしましたが、MuZeroの場合はそれすらない。盤面を抽象化したなにかをAIが持っていて、それだけで将棋的なゲームを攻略できるという成果です。

井口:なるほど。そうするとプログラムなしでもどんどん強化学習が使えるようになってくる。

山口:いろいろな現実的なタスクに応用が効く、夢のある成果かなと思います。

ディープラーニングでは28種類の画像レイヤーを使用

井口:次いきますか。「ディープラーニングでは、毎回盤面の全体の画像を入力しているのでしょうか?」、そうですよね?

川島:はい、毎回です。その分遅くても、精度が高いのでちょうどバランスがいい感じですね。

井口:画像といっても9ドット×9ドットのドット絵という感じですよね。

川島:そうですね。数値化された画像ですね。

井口:画像で言うと、RGBに相当するところに、歩のレイヤーや香のレイヤーという感じですか?

川島:はい。

井口:成駒もまた別のレイヤーですか?

川島:そうですね。成駒も別の駒として扱っています。

井口:自分の駒、相手の駒もまた別のレイヤー?

山口:そうですね。全部で28種類(レイヤー)あります。

井口:そうか。3レイヤーくらいのイメージでいるけど、すごい。大変だね。

山口:意外とレイヤーがあるんですよね。

川島:画像って聞くとそっち(のレイヤー)を連想されがちですが、実際は数値化してもうちょっと扱いやすくなっていますね。

井口:盤面が9×9だから、それと張るくらいのレイヤーがあるんですね。「1ソフトに関わるプログラマーは何人くらいですか?」という質問が来ています。川島さんのは何人かいるんでしたっけ?

川島:基本は1人ですね。ずっと1人でやっていて、この間の大会では直前に2人でチームにしましたけど。将棋はわりと個人開発が多いと思います。

井口:山口さんはどうですか?

山口:今は完全に1人でやっています。囲碁でスポンサーが付いていたときは最大5、6人で開発を分担してやっていました。例えばオープンソースで開発しているソフトだと、コントリビューターが100人近くいると聞いています。100人くらいのプログラマーが参加するプロジェクトもあるから、けっこうプロジェクトによる感じですかね。

井口:なるほど。そういえばAQのときに、私もほんのちょびっとしたコミットを送らせていただきました(笑)。

山口:ありがとうございます。しっかり入っています。あれは助かりました。

井口:これはちょっと難しいかな。今まさに、dlshogiベースで将棋AIを開発開始しようとしている方からです。「最初にこれは知っておけばよかったというTIPSがあれば教えてください」ということです。川島さん、なにかありますか?

川島:TIPSは……えっと……

井口:AI将棋を開発する全般にとかでも。川島さんひょっとして止まってる?

川島:いや……なにを答えようかなと思って(笑)。画像の認識はPytorchを使うやり方がベースになるので、私はそういうところから試しはじめました。TIPSではないかもしれないですけど、そういうところからが入りやすいかなと思います。

モデルの保存は残しておいたほうがいいし、生成した棋譜も残しておくとあとで再利用ができると思います。

山口:やっぱりいいGPUを買うことなんじゃないですかね(笑)。川島さんも3台持っているわけですよね。

井口:A100を3枚?

川島:3090っていうやつと、TITAN V。

井口:GeForceのほうですね。

山口:TITAN Vはけっこう高級機ですね。

川島:TITAN RTXもあるんです。その3枚ですね、今。

山口:みんな電力をバカ喰いするやつですね。電気代がすごそうです。

井口:A100になっちゃうと、1枚あたりでけっこうな金額(笑)。

川島:A100は1枚150万円くらいですね(笑)。

山口:電源が足りないと思います。

井口:例えばDGX A100だと、200ボルトの専用のコンセントがいるので、家庭だとちょっと厳しいですね(笑)。

山口:引いてこないといけないですからね。大変です。

井口:200ボルトって普通C14でつなぐんですが、C19が必要で。データセンターには今在庫がないと言われちゃいました。

山口:在庫がない。そんなことあるんですね。

井口:電源のアダプタのところが今はボトルネックになっています。

山口:なるほど。

井口:残り3分くらいですが、お二人からこれを答えたいなどありますか?

山口:質問が多すぎて追いきれていない……。

井口:多いですね~。追いきれていないです。

学習するためのバージョンを増やすことが重要

山口:じゃあこれにするか。将棋好きからの質問です「振り飛車をAIが評価しない問題についてどういう印象ですか?」 という質問です。

井口:AIは、振り飛車を不利だと判断しているんですね。

川島:初手から学習させて、振り飛車が不利になると、なかなか指さなくなるんです。もともとの学習から減っていくと、なかなか学習しないので。初期局面集みたいなものを作って、振り駒からの開始の数を増やすなどをしないとダメかなと思いますね。

井口:振り飛車を必須な手として強制させたうえで、学習してみる。ある程度が進んだところで、その制限を解除してみるということですね。

川島:バリエーションを増やすというのはけっこう重要ですね。

山口:dlshogiは序盤の振り飛車の局面を入れるなど、なにかやっていますか?

川島:dlshogiは、かなりの数の初期局面集を使って学習させています。

山口:なるほど。強化学習をするときに、初期局面をランダムで選んでバリエーションを持たせるようにしているってことですね。

井口:川島さんはなにかピックアップしたい質問はあります?

川島:「将棋AIの開発はHEROZの業務とは別でしょうか?」という質問。私は将棋ウォーズを作ってはいなくて、BtoBの案件などをやっているので、将棋は完全に趣味でやっていて、会社のリソースを趣味で使わせてもらっています(笑)。

井口:そうですね。将棋ウォーズは今5人はいないかな。少数精鋭でやっていますね。「将棋のプロじゃないとHEROZに入社はできないでしょうか?」、いいえ、少なくとも私は将棋のルールを知っている程度です(笑)。社内大会をやるときは、棋神を6枚もらって代表の林とようやく勝負になるという感じですね。

今後も将棋AIの技術づくりに貢献をしたい

(司会者):井口さん、そろそろお時間なので、みなさんから一言いただいて締めたいなと思います。

井口:じゃあ一言ずついきますか。山口さんからいきますか?

山口:今回、将棋AIと深層強化学習についていろいろな話をしました。2020年も藤井聡太さんですごく注目されていたし、今後も将棋を見る人が増える中で、将棋AIに対してもさらに注目が増えていくと思います。私もそういうところにどんどん貢献できたらいいかなと思っていますので、引き続きよろしくお願いします。

井口:じゃあ川島さん。

川島:私もはじめは機械学習の知識がそんなにない状態で、将棋AIを作りながら勉強していったので、なにか1つテーマを見つけて、それに取り組んでいくことがすごく自分の勉強にもなりました。将棋AIを通して機械学習の勉強もできるので、興味があれば、ぜひやってみてほしいと思います。

井口:ありがとうございます。