• 検索結果がありません。

ディープラーニング活用事例と使いこなしの勘所:[最適化・推論分野]7.ディープラーニングを使った将棋AIの学習

N/A
N/A
Protected

Academic year: 2021

シェア "ディープラーニング活用事例と使いこなしの勘所:[最適化・推論分野]7.ディープラーニングを使った将棋AIの学習"

Copied!
3
0
0

読み込み中.... (全文を見る)

全文

(1)[ディープラーニング活用事例と使いこなしの勘所] 最適化・推論分野. 7 ディープラーニングを使った. 基 応 専 般. 将棋 AI の学習 山岡忠夫   コンピュータ囲碁においてディープラーニング. 入力特徴の設計. を使用した手法が成功している.私は,将棋にお いてもディープラーニングが有効かに興味があり,.  将棋の盤面を複数チャネルの 9 × 9 の画像とし. ディープラーニングを使った将棋 AI「dlshogi」の. て入力する.盤上の駒は,駒の種類ごとにチャネル. 開発を行っている.本稿では,ディープラーニン. を分けて,駒が存在する座標の画素を 1 とし,ほか. グを将棋 AI に応用した際の入力特徴と出力の設計,. は 0 とする(図 -1 参照).持ち駒は駒の種類ごとに,. 学習に使用したデータセットと学習方法,対局プロ. 持ち駒の枚数分のチャネルを割り当て,持ち駒があ. グラムの実装について紹介したい.. る場合は画素をすべて 1,持ち駒がない場合は画素 をすべて 0 とする(図 -2 参照).持ち駒の歩の枚数. ニューラルネットワークの構成. は 8 枚を上限とした.それ以外に,駒の利き情報と.  ある局面における指し手を予測する「方策ネット. れらのチャネルは先手と後手で分けている.チャネ. ワーク」と,局面の勝率を予測する「価値ネット. ル数は合計で,119 になる.. 王手の情報も加えている.王手の情報を除いて,こ. ワーク」の 2 つのニューラルネットワークを学習す る.ニューラルネットワークの構成には,画像認識. 出力の設計. の分野で高い精度をあげている Residual Network. (ResNet) を使用し,10 ブロックの ResNet ブロック.  方策ネットワークの出力は,指し手を駒の移動先. で構成した.畳み込み層のフィルタは,サイズ 3 ×. の座標と移動元の方向の組合せで表す.将棋の駒の. 3 で 192 枚とした.プーリング層は使用していない.. 移動は,方向が分かれば移動元の駒を一意に特定で. 盤面(先手の歩の配置). 歩(先手)のチャネル. 歩. 歩 歩. 歩. 歩. 歩. 歩. 歩. 歩. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ■図 -1 歩( 先 手 ) の チ ャ ネ ルの例. 7. ディープラーニングを使った将棋 AI の学習 情報処理 Vol.59 No.11 Nov. 2018. 989.

(2) 小特集. Special Feature. きる.移動元を座標ではなく方向で表すことで分類. 学習方法. クラス数を削減している.クラス数を削減すること で予測精度の向上を期待できる.方向は,8 方向に.  前処理として,学習局面から局面と指し手が一致. 加えて桂馬の動きを 2 方向として表す.持ち駒を打. するデータの重複排除と,シャッフルを行い,学習. つ場合は,駒の種類を 1 つの方向として表す.クラ. の中断や再開が行いやすいように,学習局面を 1,000. ス数は合計で,2,187 になる.価値ネットワークの. 万局面単位に分割を行う.学習の処理は,ディー. 出力は,勝ちを 1,負けを 0 として,勝率を 0 から. プラーニングフレームワークに Chainer を使用し,. 1 の実数で表す.. Python で実装した.前処理を行った学習局面をミ ニバッチの単位で読み込み入力特徴に変換しながら. 学習データセット. 学習を行う.その際,上で述べたハフマン符号で圧.  コンピュータ将棋は従来のαβ法を使用したトッ. ため,ミニバッチ単位で局面から入力特徴に変換す. プレベルのソフトがオープンソースで公開されてい. る処理を C++ で実装した.学習の最適化手法に. る.それらのソフトを使って自己対局を行うこと. は Momentum SGD を使用した.学習率は 0.01 か. で,学習局面を大量に生成することができる.そ. ら開始し,訓練損失が横ばいになったところで 10. こで,2017 年の世界コンピュータ将棋選手権で優. 分の 1 にした.学習局面とは別に用意したテスト局. 勝した elmo を使用して学習局面を生成する.10 コ. 面に対して,方策ネットワークでは指し手の正解率,. アの CPU を搭載した PC を使用して約 2 週間で 35. 価値ネットワークでは勝敗の正解率を測定し,それ. 億局面を生成した.1 つの学習局面は局面(盤面と. ぞれの正解率が下降しはじめたところで,学習を停. 持ち駒) ,指し手,勝敗から構成される.ディスク. 止した.学習局面は 35 億局面用意したが,11 億局. サイズを節約するため,局面はハフマン符号で圧縮. 面学習したところで,収束した.学習にかかった. し 256 bit で表している.学習局面はファイルとし. 時間は,GPU に NVIDIA 社の GeForce GTX 1080. て保存する.35 億局面のファイルサイズは合計で,. を使用して約 12 日であった.. 縮した局面をデコードする処理が Python では遅い. 123 GB になった.. 金の持ち 駒の入力特徴 (4枚のうち1枚がすべて1,残りはすべて0). 金の持ち 駒 (1 枚のとき). 金 ☖. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1 0. 1 1 1 1 0 0 0 0 0. 0. 0. 0. 1. 1. 1. 1. 1 0. 1 1 1 1 0 0 0 0 0. 0. 0. 0. 1. 1. 1. 1. 1 0. 1 1 1 1 0 0 0 0 0. 0. 0. 1. 1. 1. 1. 1 0. 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0. 1. 1. 1. 1. 1 0. 1. 1. 1. 1. 1 0. 1. 1. 1. 1. 1 0. 1. 1. 1. 1. 1 0 0. 990. 1. 1. 1. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0 0. 0 0 0 0 0 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0 0 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0. 0 0 0 0 0 0 0. 0 0 0 0 0 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 情報処理 Vol.59 No.11 Nov. 2018 小特集 ディープラーニング活用事例と使いこなしの勘所. ■図 -2 金の持ち駒 のチャネルの例.

(3) 対局プログラム. 今後の計画.  将棋の対局を行うプログラムは,AlphaGo Zero.  AlphaGo Zero のアルゴリズムを将棋に応用し. と同様のアルゴリズムで,モンテカルロ木探索を使. た AlphaZero では,強化学習を行うことで,elmo. 用して指し手を決定する.探索するノードの選択に. を上回る強さになっている.私の開発している将. 方策ネットワークを利用し,葉ノードの評価に価. 棋 AI においても,教師ありではモデルの精度が頭. 値ネットワークを使用する.対局プログラムは探. 打ちになったため,強化学習の手法を試みている.. 索速度を重視して C++ で実装した.方策ネット. ディープラーニングを使った手法でトップレベルを. ワークと価値ネットワークの推論部分は,Python. 目指したい.. モジュールを呼び出し,Chainer で推論を行う.複 数の探索スレッドからの推論の要求をキューにため て,推論は 1 スレッドでキューをミニバッチで処理. ディープラーニングの勉強法. する.Python モジュールの呼び出しにはオーバヘッ.  私は趣味で将棋 AI を開発しており,ディープラー. ドがあるが,ミニバッチで処理することでオーバ. ニングの勉強は独学で行った.参考書としては『深. ヘッドの影響を少なくしている.GPU に GeForce. 層学習(機械学習プロフェッショナルシリーズ)』. GTX 1080 を用いた場合,1 秒間におよそ 7,000 回. (岡谷貴之,講談社) ,『ゼロから作る Deep Learning ―Python で学ぶディープラーニングの理論と. シミュレーションを行える.. 実装』(斎藤康毅,オライリー・ジャパン)が理解. 学習結果の評価. の役に立った.ディープラーニングフレームワーク.  学習したモデルのテスト局面に対する正解率は,. て実行することで,参考書で理解した内容の確認を. 方策ネットワークが 46.1%,価値ネットワークが. 行った.また,AlphaGo の論文を読んで実装して. 78.1% となった.対局プログラムの強さは,インター. みたことで理解が深まったと考えている.. を使ってサンプルコードを実装して,一部を変更し. ネットのコンピュータ将棋対局サイトの floodgate. (2018 年 7 月 29 日受付). でレーティング 3,000 程度となっており,人間のプ ロに近いレベルに達している.しかし,従来手法で あるαβ法と 3 駒関係の評価関数を使用したソフト のレーティングは 4,000 以上であり,従来手法を上 回る強さには到っていない.レーティング 1,000 の 差は勝率では 99.68% である.モデルの精度,探索 手法にまだ課題があると考えている.. ■山岡忠夫 [email protected] 東京工業大学工学部電子物理工学科卒業.システムエンジニア. ディープラーニングを使用した将棋 AI「dlshogi」開発者.. 7. ディープラーニングを使った将棋 AI の学習 情報処理 Vol.59 No.11 Nov. 2018. 991.

(4)

参照

関連したドキュメント

№3 の 3 か所において、№3 において現況において環境基準を上回っている場所でございま した。ですので、№3 においては騒音レベルの増加が、昼間で

  支払の完了していない株式についての配当はその買手にとって非課税とされるべ きである。

行ない難いことを当然予想している制度であり︑

第一の場合については︑同院はいわゆる留保付き合憲の手法を使い︑適用領域を限定した︒それに従うと︑将来に

と判示している︒更に︑最後に︑﹁本件が同法の範囲内にないとすれば︑

ほっとワークス・みのわ なし 給食 あり 少人数のため温かい食事の提供、畑で栽培した季節の野菜を食材として使用 辰野町就労・地活C なし

自分ではおかしいと思って も、「自分の体は汚れてい るのではないか」「ひどい ことを周りの人にしたので

を負担すべきものとされている。 しかしこの態度は,ストラスプール協定が 採用しなかったところである。