第 32 回 世界コンピュータ将棋選手権

Novice アピール文章
中屋敷 太一

熊谷 啓孝

笹井 雄貴

矢内 洋祐

2022 年 2 月 15 日
2.1

1 概要

自己対戦

AlphaZero の手法では，自己対戦による教

本稿では，コンピュータ将棋ソフトウェア師データから学習が行われているが，学習の際Novice の用いているアルゴリズムについて記には膨大な計算資源が使われた [1]．そのため，述する．筆者らは，Novice を AlphaZero [1] にこの再現実験を行うことは容易ではなく，現実倣って開発した．Novice は，AlphaZero 同様，的な時間で強い将棋プログラムを作成するため探索（先読み）にモンテカルロ木探索 (Monte-には，いくつかの工夫が必要となる．

Carlo Tree Search, MCTS) ，そして局面の評

筆者らは，学習の予備実験の結果，3 つの次価（大局観）にニューラルネットワークを用いに記述する問題に遭遇した．1 つ目は，少なくている．自己対戦による棋譜の生成と，その棋ない教師データが，千日手による引き分けに譜からのニューラルネットワークの学習を繰りよって終局していること，2 つ目は，優勢な局返すことにより，強い評価関数を学習すること面でも勝ち切るまでに多くの手数を要していを目指している．

ること，そして 3 つ目は，戦型選択が偏り，い

本稿では，Novice が AlphaZero のアルゴリ

くつかの戦法の学習が行えていないことであっズムに加えた工夫について記述する．

た．本小節では，これらの問題について，筆者らが用いた解決策を記述する．

2 Novice の工夫

引き分け率の調整

本節では，ニューラルネットワークの学習手予備実験では，教師データ内に，引き分けで法について記述する．ニューラルネットワー終局している棋譜が少なくなかった．筆者ら

クの学習は，自己対戦により教師データを生成は，この原因は，攻める際に評価値が一瞬下がし，その教師データを用いてニューラルネットることが多いこと（将棋では攻める際に先に駒ワークのパラメータを更新して行う．初めに，を取られることが多い）に由来すると考えた．

自己対戦の用いている工夫を記述する．そして特に (Novice の) 自己対戦では，MCTS のシその次に，ニューラルネットワークのの学習にミュレーション回数が少なく (具体的には 800関する工夫について記述する．

回程度)，探索が浅いため，この仮説は有力であると考えられる．
この問題を解決するために，生成している教1

師データ内で引き分け率が 2% を超えている場

初期局面集の使用

合には，その次に行う自己対戦の設定を，引き予備実験として，将棋の初期配置のみから学分けを先手勝ちまたは後手勝ちの設定で行う

習を行うと，安定しない評価値が出力されていようにした．なお，教師データ内で先手勝率がたり，良い手を見落としたりしていることが発50% を超えている場合には引き分けを後手勝見された．そこで，初期局面集を用意し，自己ち，後手勝率が 50% を超えている場合には引対戦による棋譜生成の際には，対局ごとにそのき分けを先手勝ちとした．

中からランダムで 1 局面を選び，その局面を初ニューラルネットワークがこれらの対局条件期局面として使用した．初期局面集には，筆者を区別して学習できるように，前述したようにらが選んだ約 100 局面を使用した．なお，初ニューラルネットワークに引き分けの際の点数

期局面集を用いるという工夫はやねうら王*1 や（先手勝ちなら先手 +1 かつ後手 −1）を入力特

dlshogi*2 に既に用いられており [2, 3]，筆者ら徴量として与えた．

は大いに先行事例を参考にした．

以上の工夫により，実際に生成される教師データ内の棋譜の引き分け率を常におおよそ2% に保つことに成功した．
様々な最大手数設定の対局予備実験では，勝勢な局面でも，終局まで多くの手数を要している棋譜が多く発見された．
筆者らは，この問題は，終局時に勝てる棋譜であれば，要する手数の長さを考慮していないことが原因であると考えた．
この問題を解決するために，様々な最大手数の設定で自己対戦を行うことで解決を図った．
なお，最大手数に達した場合には，即座に引き分けとして扱った．この変更により，勝勢の局面でも，長く手数を要する勝ち手順には，引き分けとして終局する可能性が生じる．そのため，できるだけ短い手順で終局する手順が学習できることが期待される．また，副次的に，劣勢な局面では最大手数まで粘ろうとする手順を学習していることが期待される．
ニューラルネットワークが様々な最大手数に対応できるように，前述したようにニューラルネットワークに現在の手数および最大手数を入力特徴量として与えた．

*1 https://github.com/yaneurao/YaneuraOu.

git*2 https://github.com/TadaoYamaoka/

DeepLearningShogi2

表1

ルを 9 × 9 全て 1 にしていた．しかし，Leelaニューラルネットワークの入力特徴量

特徴量

Zero*3 によって，先手番での局面を入力とする

チャネル数

ニューラルネットワークの実行の際に，ニュー手番の駒配置

14

相手の駒配置

14

手番の持ち駒24

相手の持ち駒

24

leela-zero/README.md より抜粋

手番2

There are 18 inputs to the ﬁrst layer, in-王手

1

stead of 17 as in the paper. The origi-

各列の歩の存在2

nal AlphaGo Zero design has a slight im-

現在の手数 / 最大手数

1

balance in that it is easier for the black

1.0 / 最大手数

1

player to see the board edge (due to how

引き分け点数2

padding works in neural networks). This

合計

85

ラルネットワークが盤面を把握しづらくなる可能性が指摘されている [5]．

has been ﬁxed in Leela Zero.
そのため，Novice も Leela Zero と同様の手法で 2 チャネル使用した．Novice では，学習の効ニューラルネットワークの構造と学習率向上を期待し，現在の局面が王手されている

本小節では，Novice の用いたニューラルネッかどうかと，それぞれの升の列に歩があるかど

トワークの構造と学習手法について記述する．

うかを追加の情報として与えた．また，後述す

ニューラルネットワークの構造る理由のため，現在の手数及び最大手数に関す

2.2

ニューラルネットワークの入力層は，1 局面る情報と，引き分けで対局が終了した際に先手あたり，85 チャネル，9 × 9 ピクセルで構成さ後手がそれぞれ得られる点数を入力に与えた．

れる．各チャネルが表現する特徴量を表 1 に示

中 間 層 は SE block [6] 有 り の Residual

す．盤上の位置に依存する情報は，9 × 9 のうNetwork [7] で構成した．なお，12 blocks ×

ち，対応する場所のみが指定される値となる．

256 ﬁlters の構成を用いた．

それ以外のものは，9 × 9 ピクセル全て同じ値

最終的に，ニューラルネットワーク f (·; θ) はが指定される．駒配置については，先手後手を4 つの値を出力する (式 1)．

含めて駒種を区別した各チャネルを用意し，各p(s), v(s), d(s), z(s) = f (s; θ)

駒の存在するマスに対応したピクセルに 1 を設(1)定した．持ち駒については，上限を 4 枚とし，ここで p(s) は局面 s での次の一手の確率分布，dlshogi と同じ手法 [4] で設定した．手番にはv(s) は { 勝ち，引き分け，負け } の確率分布，2 チャネル割り当てられており，与えられた局

d は { 先手の宣言勝ち，後手の宣言勝ち，それ面の手番が先手番の時はこの 1 チャネル目の以外 } の確率分布，z(s) は 9 × 9 の各マスごと

みが 9 × 9 全て 1，後手番の時はこの 2 チャネに先手後手それぞれ利きがあるかどうかの予測

ル目のみが 9 × 9 全て 1 と設定される．なお，である．

AlphaZero では，手番を表すためには 1 チャネルのみが使用され，後手番の時にそのチャネ*3 https://github.com/leela-zero/leela-zero3

(𝑁, 256, 9, 9)

入力(𝑁, 85, 9, 9)

Conv(𝑁, 256, 9, 9)

Blocksx12

Conv(𝑁, 32, 9, 9)

p(s)

Conv

(𝑁, 27, 9, 9)

Conv

Conv

FC

(𝑁, 2, 9, 9)(𝑁, 256, 9, 9)v(s)(𝑁, 3)Conv
FC(𝑁, 2, 9, 9)
Conv(𝑁, 256, 9, 9)

図1d(s)(𝑁, 3)Convz(s)(𝑁, 2, 9, 9)

ニューラルネットワークの概略図

Search Tree

ニューラルネットワークの学習
ニューラルネットワークの重み θ の学習は，PNS

自己対戦の棋譜を教師データとし，Stochastic

Gradient Descent を用いて次のロス関数 L を最小化をすることで行った．

L(s; θ) = − p′ (s) · log p(s; θ)

DFS− v ′ (s) · log v(s; θ)− 0.1 · d′ (s) · log d(s; θ)− 0.1 · z ′ (s) · log z(s; θ)

図2− 0.01 · H(p(s; θ))

す．PV 上の局面では PNS による詰み探索

詰み探索の概略図．赤い線は PV を表を行う．加えて，全ての局面で DFS による

ここで p′ (s), v ′ (s), d′ (s), z ′ (s) はそれぞれ，教詰み探索を行う．

師データの，MCTS の訪問回数の分布，対局結果，入玉結果，盤面の利きである．また H(·)

DFS) を行っている．なお，PNS および DFSは方策のエントロピーであり，方策が確定的には，それぞれ専用のタスクのキューを持ち，モなるのを防ぐ効果を期待できる [8]．

2.3

ンテカルロ木探索とは独立したスレッドで動作詰み探索による強化させることで高速化をしている．

モンテカルロ木探索と合わせて，PV Mate [9,10] と末端局面での 5 手詰め探索を用いている．
PV Mate では，現在の探索の中で最も現れそうな進行に現れる各局面について，証明数探索 (Proof Number Search, PNS) [11] を用いて詰みの有無を探索している．なお，実装を簡単にするため df-pn [12] は未使用である．また，モンテカルロ木探索に現れる全ての局面で深さ 5 の深さ優先探索 (Depth First Search,4参考文献
[1] David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai,
Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy
Lillicrap, Karen Simonyan, and Demis Hassabis. A general reinforcement learning algorithm that masters chess, shogi, and go through self-play. Science, Vol. 362, No. 6419,pp. 1140–1144, 2018.
[2] Tadao Yamaoka.

将 棋 AI の 進 捗 そ の 19 (初 期 局 面 集).

https://tadaoyamaoka.

hatenablog.com/entry/2018/04/06/001745. (2022/01/19 閲覧).
[3] や ね う ら お.

Yaneuraou/source/learn/learner.cpp.

https://github.com/yaneurao/

YaneuraOu/blob/cc30a4323fa323be29d8513bb44269aaa4b4d39a/source/learn/
learner.cpp#L3421. (2022/02/09 閲覧).
[4] Tadao Yamaoka. 将棋 AI の実験ノート（入力特徴量の数値の表現方法）. https://tadaoyamaoka.hatenablog.com/entry/2019/06/12/230710. (2022/01/19 閲覧).
[5] leela-zero.

README.md.

https://github.com/leela-zero/leela-zero/blob/

e3ed6310d33d75078ba74c3adf887d18439fc2e3/README.md. (2022/01/19 閲覧).
[6] Jie Hu, Li Shen, Samuel Albanie, Gang Sun, and Enhua Wu. Squeeze-and-excitation
networks, 2019.
[7] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning forimage recognition, 2015.
[8] Tadao Yamaoka.

強 化 学 習 に お け る バ ッ チ サ イ ズ と エ ン ト ロ ピ ー 正 則 化.

https://tadaoyamaoka.hatenablog.com/entry/2019/05/10/234328. (2022/02/09 閲覧).
[9] Tadao Yamaoka.

第 2 回 世 界 将 棋 AI 電 竜 戦 バ ー ジ ョ ン.

https://github.com/

TadaoYamaoka/DeepLearningShogi/releases/tag/denryu2021. (2022/01/19 閲覧).
[10] Tadao Yamaoka.

Merge feature/pv mate.

https://github.com/TadaoYamaoka/

DeepLearningShogi/commit/4f4d7eed209e7183384ee13425d4e3e42e1dcec5.
(2022/01/19 閲覧).
[11] L.V. Allis. Searching for solutions in games and artiﬁcial intelligence. PhD thesis, Maastricht University, January 1994.
[12] 長井歩, 今井浩. df-pn アルゴリズムの詰将棋を解くプログラムへの応用. 情報処理学会論文
誌, Vol. 43, No. 6, pp. 1769–1777, Jun 2002.

5