ponkotsu アピール文書(仮)1概要• Deep Learningを使用した将棋AI• ネットワーク構造にDenseNetを採用• 5月開催の世界コンピュータ将棋選手権に向け強化中

2

Policy Value Network• ほとんどのAIでネットワーク構造にResNetを採用
192

62
192

9x9192

ResNet

駒の配置
駒の利き

勝者
(Value)

持ち駒
王手かどうか

9x957

現局面

次に指す手
(Policy)192

それぞれの出力で要素和を取る: 畳み込み(1×1): 畳み込み(3×3): BN+ReLU
3

DenseNet

Dense Block

ResNet Block
Conv+BN
Conv+BN
ReLU
ReLU
Conv+BN
Conv+BNReLU• 直前の入力と出力の残差を学習• 入力と出力で要素和を取る

チャンネル方向に結合＆• 直前の層までのすべての層とスキップ接続する• 入力と出力でチャンネル方向に結合する

4

提案手法(ネットワーク全体)
192
621929x9192

DenseNet

駒の配置
駒の利き

勝者(Value)

持ち駒
王手かどうか

9x957

現局面

次に指す手(Policy)

192

それぞれの出力で要素和を取る: 畳み込み(1×1): 畳み込み(3×3): BN+ReLU
5

提案手法(DenseNet)• Dense Blockのレイヤ数は1032 192
256 128 128 32 32

32 32 32 32 32
32 32 32 32 32 192

9x919232192 192 128 128 32224 128 128 32 192: 結合: 畳み込み(1×1): 畳み込み(3×3): BN+ReLU
6

学習方法
学習データ

• floodgate(将棋AI対局サイト)の2019年～2021年5月の棋譜• 水匠3改の棋譜• dlshogi with GCTの棋譜

テストデータfloodgateの2017年～2018年の棋譜最適化手法

SGD (lr=0.01)

損失関数Policy: Cross Entropy
Value: Binary Cross Entropy

Epoch数144

バッチサイズ10247

結果(識別精度)• テストデータ(floodgateの2017年～2018年の棋譜)によるPolicy(次に指す手)とValue(勝者)の精度• Policy・Valueともに提案手法のほうが高精度
Model

Policy Accuracy(%)

Value Accuracy(%)

Resnet10(32 channel)

39.5

70.7

DenseNet10(提案手法)

43.8

72.88

学習方法
最適化手法

SGD
(lr=0.01)

評価値の重み0.333

学習率0.2から開始10、30、50エポック目に1/10ずつ小さくする

重みの平均を取る間隔

250学習ステップごと

損失関数

Policy: Cross Entropy
Value: Binary Cross Entropy

Epoch数144

バッチサイズ10249

結果(識別精度)• テストデータ(floodgateの2017年～2018年の棋譜)によるPolicy(次に指す手)とValue(勝者)の精度• Policy・Valueともに学習テクニックを使用したほうが高精度
Model

Policy Accuracy(%)

Value Accuracy(%)

DenseNet10

43.8

72.8

DenseNet10+
ブートストラップ+
学習率スケジューラ+
SWA+AMP

44.5

73.7
10

結果(戦績)• floodgate(将棋AI用の対局サイト)で204勝118敗、レーティング3803を達成した(参考: 昨年の世界大会一次予選突破ラインが約3100)• 少なくともプロ棋士よりは強い(対プロの期待勝率は93%)(プロ棋士のレーティングは3300と言われている)

11

ネットワークの改良(DenseNet)• Dense Blockのレイヤ数は10• 1×1の畳み込みをすべて3×3に変更
32 192
256 128 128 32 3232 32 32 32 32
32 32 32 32 32 192

9x919232192 192 128 128 32
224 128 128 32 192: 結合: 畳み込み(3×3): BN+ReLU
12

結果(識別精度)• テストデータ(floodgateの2017年～2018年の棋譜)によるPolicy(次に指す手)とValue(勝者)の精度• Policy・Valueともに改良後のほうが高精度
Model

Policy Accuracy(%)

Value Accuracy(%)

DenseNet10(改良前)

44.5

73.7

DenseNet10(改良後)

46.9

74.7

13

事前学習
課題点
• 振り飛車のような出現頻度の低い戦型に対して正確な局面評価ができない(相手が飛車を振ると400点近い評価値を出す)→学習データの戦型が(居飛車に)偏っている

多様な序盤を指すAIのデータで事前に学習を行う

14

学習方法(事前学習)
学習データ

••
•
•

AobaZeroの棋譜
elmoの棋譜
GCTの棋譜水匠の相入玉局面の棋譜

テストデータfloodgateの2017年～2018年の棋譜

学習率損失関数0.2から開始
10、30、50エポック目に1/10ずつ小さくする
Policy: Cross Entropy
Value: Binary Cross Entropy

Epoch数106

バッチサイズ

102415

学習方法(本学習)
学習データ• floodgate(将棋AI対局サイト)の2019年～2021年5月の棋譜• 水匠3改の棋譜• dlshogi with GCTの棋譜• 水匠の相入玉局面の棋譜

テストデータfloodgateの2017年～2018年の棋譜

学習率0.0002

損失関数

Policy: Cross Entropy
Value: Binary Cross Entropy

Epoch数144

バッチサイズ

102416

結果(識別精度)• テストデータ(floodgateの2017年～2018年の棋譜)によるPolicy(次に指す手)とValue(勝者)の精度• Policy・Valueともに事前学習を行ったほうが高精度
Model

Policy Accuracy(%)

Value Accuracy(%)

DenseNet10(事前学習なし)

46.9

74.7

DenseNet10(事前学習あり)

47.3

74.9

17

結果(戦績)• floodgate(将棋AI用の対局サイト)で54勝9敗、レーティング3973を達成した(参考: 昨年の世界大会一次予選突破ラインが約3100)• ネットワークの改良・事前学習の実施によりレーティングが170上昇(前のバージョンに対する期待勝率は73%)

18

使用ライブラリ• dlshogi

使用データ• 「強い将棋ソフトの創り方」付属データ• GCT学習データ(URL: https://tadaoyamaoka.hatenablog.com/entry/2021/05/06/223701
2023年3月29日アクセス)

19

参考文献
• 「強い将棋ソフトの創り方」（山岡忠夫著、マイナビ出版）• 「Densely Connected Convolutional Networks」（Gao Huang、Zhuang Liu、Laurens van der Maaten、Kilian Q. Weinberger）

20