将棋ソフトウェアにおける棋譜 データの利用と機械...

32
将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科 パナソニック株式会社先端技術研究所 2013/12/16-18 NINSコロキウム 分科会 1

Upload: others

Post on 12-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

将棋ソフトウェアにおける棋譜データの利用と機械学習

佐藤 佳州

筑波大学システム情報工学研究科

パナソニック株式会社先端技術研究所

2013/12/16-18 NINSコロキウム 分科会 1

Page 2: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目次

コンピュータ将棋の現状とこれまでの歴史

ゲームの基本的なアルゴリズム

将棋における棋譜を利用した知識獲得

今後の研究動向

まとめ

2013/12/16-18 NINSコロキウム 分科会 2

Page 3: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目次

コンピュータ将棋の現状とこれまでの歴史

ゲームの基本的なアルゴリズム

将棋における棋譜を利用した知識獲得

今後の研究動向

まとめ

2013/12/16-18 NINSコロキウム 分科会 3

Page 4: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

コンピュータ将棋とは

• 人間の指示なしに,コンピュータ自身が考え,指し手を返すプログラム

• 様々な将棋ソフトが存在 • Bonanza,GPS将棋,激指,YSS(AI将棋),Ponanza,…

• 年に1回,世界一のプログラムを決定するための,世界コンピュータ将棋選手権が開催されている

• 今年はBonanzaが優勝

• ハードウェア制限なし

(GPS将棋:東大の教育用計算機で参加:3000コア以上)

• 学問的には,人工知能の一分野

2013/12/16-18 NINSコロキウム 分科会 4

Page 5: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

電王戦

• コンピュータ将棋が一躍注目を集めたイベント

• 第一回(2012年)

• 米長永世棋聖にコンピュータが勝利

⇒ かつての名人を破る

• 第二回(2013年)

• 現役プロとの対局において,コンピュータが3勝1敗1分

⇒ 初めて現役のプロに勝利

たった10人しかいない A級棋士に勝利

2013/12/16-18 NINSコロキウム 分科会 5

Page 6: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

コンピュータ将棋の歴史

2000年代後半から急速に強くなる ⇒ 機械学習の成功+並列探索の導入

実現確率探索

詰将棋

アルゴリズム

アマチュア高段者 ルール通りに指す アマチュア低級者 プロ中級

並列探索 クラスタ探索

評価関数の機械学習

(チェス)Deep Blueが

人間のチャンピョンを破る

初めての

プログラム

枝狩り手法の充実

2010 2000 1990 1980

強さ

技術

動向

手作業による評価関数

選択探索

合議

(現在)

2013/12/16-18 NINSコロキウム 分科会 6

Page 7: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目次

コンピュータ将棋の現状とこれまでの歴史

ゲームの基本的なアルゴリズム

将棋における棋譜を利用した知識獲得

今後の研究動向

まとめ

2013/12/16-18 NINSコロキウム 分科会 7

Page 8: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

2013/12/16-18 NINSコロキウム 分科会 8

Page 9: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

▲7六歩 ▲2六歩 考えられる手を

すべて展開していく

(図では省略) 探索深さ = 1

2013/12/16-18 NINSコロキウム 分科会 9

Page 10: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

▲7六歩 ▲2六歩 考えられる手を

すべて展開していく

(図では省略)

△3四歩 △2六歩 △3四歩 △5二玉

探索深さ = 2

2013/12/16-18 NINSコロキウム 分科会 10

Page 11: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

▲7六歩 ▲2六歩 考えられる手を

すべて展開していく

(図では省略)

△3四歩 △2六歩 △3四歩 △5二玉

▲2六歩 ▲1八香 ▲7七角 ▲9八香

▲76歩 ▲5八玉

探索深さ = 3

2013/12/16-18 NINSコロキウム 分科会 11

Page 12: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

▲7六歩 ▲2六歩

終局までは探索できないため,ある程度の深さで探索を打ち切る

△3四歩 △2六歩 △3四歩 △5二玉

▲2六歩 ▲1八香 ▲7七角 ▲9八香

▲76歩 ▲5八玉

探索深さ = 3

2013/12/16-18 NINSコロキウム 分科会 12

Page 13: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

▲7六歩 ▲2六歩

△3四歩 △2六歩 △3四歩 △5二玉

▲2六歩 ▲1八香 ▲7七角 ▲9八香

▲76歩 ▲5八玉

探索深さ = 3

末端局面の優劣を評価関数で数値化

+10 -2 +3 -8 +15 +5

2013/12/16-18 NINSコロキウム 分科会 13

Page 14: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲームの基本的なアルゴリズム

• 人間は,「読み」と「大局観」で指し手を決定

• コンピュータの場合,それぞれ「探索」と「評価関数」で実現

【最善手▲7六歩】 ▲2六歩

△3四歩 △2六歩 △3四歩 △5二玉

▲2六歩 ▲1八香 ▲7七角 ▲9八香

▲76歩 ▲5八玉

+10 -2 +3 -8 +15 +5

+10 +3 -8 +15

-8 +3

+3

自分の手番 では,評価値が最大になるノードを, 相手の手番 では,評価値が最小となる(相手に取って最大になる) ノードを,選択する

2013/12/16-18 NINSコロキウム 分科会 14

Page 15: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

ゲーム木探索の難しさ(研究内容)

• 探索: よさそうな手を深く探索したい

(無駄な手は探索したくない)

• 評価関数: 局面の優劣を正確に

数値化することは困難

2013/12/16-18 NINSコロキウム 分科会 15

棋譜を利用した機械学習

(今回は評価関数に焦点)

Page 16: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

評価関数とは(1)

• 局面の優劣を数値化する関数

評価関数

-45 (互角) 評価値

2013/12/16-18 NINSコロキウム 分科会 16

Page 17: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

評価関数とは(2)

• 評価関数の例

• 従来は数千以上のパラメータを手作業で調整

• 人間の知識を正確に数値に落としこむのは困難

機械学習が成功 [保木 2006] 将棋プログラムの飛躍的な 性能向上に繋がる

2013/12/16-18 NINSコロキウム 分科会 17

Page 18: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目次

コンピュータ将棋の現状とこれまでの歴史

ゲームの基本的なアルゴリズム

将棋における棋譜を利用した機械学習

今後の研究動向

まとめ

2013/12/16-18 NINSコロキウム 分科会 18

Page 19: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

棋譜を用いた評価関数の学習

• 機械学習(教師あり学習)とは :

教師データ(棋譜)を用いて,パラメータを自動調整する

2013/12/16-18 NINSコロキウム 分科会 19

エキスパートの棋譜

各パラメータを

自動で決定

【将棋における評価関数の学習】

棋譜と同じ手を選択できるようにパラメータを学習する(人間の真似を目指す)

※ 以降,具体的な学習手法の概要を説明

Page 20: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

Comparison Training [Tesauro 2001]

• 評価関数学習の最も一般的な学習手法

• 棋譜中のエキスパートの指し手とその他の合法手を比較

2013/12/16-18 NINSコロキウム 分科会 20

教師局面

棋譜中の指し手 その他の 合法手

αβ探索

末端局面 (評価局面)

エキスパートの指し手の評価が,その他の合法手の評価を十分に上回るように評価関数を学習

Page 21: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

Comparison Training [Tesauro 2001]

2013/12/16-18 NINSコロキウム 分科会 21

Training position

Experts’ move Other legal moves

Alpha-beta search

Leaf positions

𝐽1(𝑃, 𝒗) = 𝑇 𝜉 𝑝𝑚, 𝒗 − 𝜉 𝑝1, 𝒗

𝑀𝑝

𝑚=2𝑝∈𝑃

目的関数

𝑃 : 学習局面の集合 𝑀𝑝 : 局面 𝑝 における合法手の数 𝑝𝑚 : 局面 𝑝 において指し手 𝑚 を選択した時の局面 (𝑚 = 1:棋譜中の指し手) 𝜉 𝑝𝑚, 𝒗 : 𝑝𝑚 において,αβ探索を行った時の結果(評価値) 𝒗 : 評価局面の特徴 𝑇(𝑥) : シグモイド関数

棋譜中の指し手の 評価値

その他の合法手 の評価値

• チェスでも一部同様の手法が取り入れられる(Deep Blue)

• 将棋への応用[保木 2006]で大きな効果

Page 22: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

学習データの規模

• 将棋の評価関数に用いられている学習データの規模

⇒ 見た目以上にずっと大きい

数万局の棋譜から学習

一般的な認識

それってビッグデータなの?

実際には… 数百万局面から学習

1棋譜に百局面

程度含まれる

数億手から学習 実際には膨大なデータを処理

1局面に数百手

含まれる

• 手作業では不可能だった,数十万以上のパラメータ調整が可能に

• 計算機の性能向上が,機械学習成功の大きな後押し

2013/12/16-18 NINSコロキウム 分科会 22

Page 23: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目次

コンピュータ将棋の現状とこれまでの歴史

ゲームの基本的なアルゴリズム

将棋における棋譜を利用した知識獲得

今後の研究動向

まとめ

2013/12/16-18 NINSコロキウム 分科会 23

Page 24: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

現在の評価関数の性能 • 評価関数の性能 = 局面の優劣を正しく判断する能力

• 理想的な評価関数があれば,探索は不要(極論)

プログラム レーティング

※ 本番用 約 3000~

gps_l (学習/古いマシン) 2523

gps_normal (手調整/古いマシン) 2150

gps500 (ほとんど探索しない) 1583

【参考】Floodgate (東大: http://wdoor.c.u-tokyo.ac.jp/shogi/)

コンピュータ同士を自動対局させ,レーティングを出すサーバー

学習による強さの向上

も大きいものの,

実際には探索による

強さの向上はレーテ

ィング的にはそれ以上

現在の将棋プログラムの強さ

= 評価関数(以前より人間に近づく) + 探索(人間を凌駕)

まだ改良の余地は大きい

2013/12/16-18 NINSコロキウム 分科会 24

Page 25: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

今後の研究動向(+自分の研究)

• 将棋の場合,近いうちに人間のプレイヤに勝つことは確実

• ただし,評価関数については,人間の評価能力(大局観,表現力)を獲得したというわけではなく,さらなる研究の余地は大きい

【今後の研究課題】 (例)

特徴学習(Feature Learning,Representation Learning)

• データから,どのような特徴を評価するかという特徴自体を学習

• (参考)Deep Learning

強いプログラムを学習するための目的関数の学習

どのような学習棋譜が強いプログラムを生み出すか?

同じ学習棋譜でも,学習方法が異なれば,得られる知識は全く異なる

2013/12/16-18 NINSコロキウム 分科会 25

Page 26: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目的関数の学習 [Sato et al. 2013]

• 単純なComparison Trainingが学習してくれることはそれほど多くない

= プロの棋譜(指し手)との全体的な一致率の向上のみ

2013/12/16-18 NINSコロキウム 分科会 26

𝐽1(𝑃, 𝒗) = 𝑇 𝜉 𝑝𝑚 , 𝒗 − 𝜉 𝑝1, 𝒗

𝑀𝑝

𝑚=2𝑝∈𝑃

【課題】

• 勝敗に直結する局面で最善手を指したい

• 評価値の差の制御が考慮されていない

【手法】

• 学習局面の性質に応じて,一致の重要度,正解手と不正解手の評価値の差を制御するパラメータ等を目的関数に導入

• 導入されたパラメータは,学習されたプログラムの強さを適応度とした進化的計算で学習 ⇒ 強くなるように棋譜を真似する目的関数を学習

• 従来手法と比較して,6割程度の勝率を得る

Page 27: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

どのような学習棋譜が有用か?(戦術)

2013/12/16-18 NINSコロキウム 分科会 27

順位 戦術 重要度の平均

1 四間飛車穴熊 - 銀冠 1.121

2 居飛穴模様 - 藤井システム 1.100

3 森下システム - △9五歩8四歩型 1.088

4 ▲4七銀3七桂 - 金矢倉 1.079

5 相掛かり▲2六飛 - △5四歩型 1.061

・・・ ・・・ ・・・

96 居飛車穴熊 - 本美濃 0.951

97 矢倉 - 引き角 0.922

98 左美濃 - 高美濃 0.914

99 角交換型 - ゴキゲン中飛車 0.901

100 相腰掛け銀 - △6五歩型 0.899

穴熊,銀冠,矢倉など囲いを発展させる戦術が上位に

Page 28: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

実際の対局における戦術選択の比較

2013/12/16-18 NINSコロキウム 分科会 28

• 提案手法と従来手法の対局実験において,それぞれのプログラムが選択した戦術を比較

戦術 各戦術の選択回数

従来手法 提案手法

本美濃 131 77

高美濃 45 54

銀冠 61 175

流れ矢倉 28 15

金矢倉 33 45

居飛車穴熊 210 215

四間飛車穴熊 38 40

三間飛車穴熊 65 39

提案手法では,囲いを発展させる戦術や固い囲いが選択されやすくなっている

重要度を導入することにより,コンピュータにとって勝ちやすい戦術の選択を実現 28

提案手法

勝率0.581

Page 29: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

目次

ゲーム研究の流れとコンピュータ将棋の現状

ゲームの基本的なアルゴリズム

将棋における棋譜を利用した知識獲得

今後の研究動向

まとめ

2013/12/16-18 NINSコロキウム 分科会 29

Page 30: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

まとめ(1)

【棋譜を用いた評価関数の機械学習】

• 棋譜を教師とした機械学習の成功により,コンピュータ将棋は,人間のトッププレイヤに迫る強さを得る

⇒ ほぼ確実に,数年以内に人間を上回る

• ただし,評価関数は人間の大局観以上のものが得られているとはいえず,今後も改良の余地は大きい

• 同じ学習データを用いても,その活用方法(学習方法)によって得られる知識は全く異なる

⇒ さらなる機械学習技術の研究が重要

2013/12/16-18 NINSコロキウム 分科会 30

Page 31: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

まとめ(2)

【ビッグデータ研究としての意義】

• 将棋,囲碁等のゲームでは数万局(その背後に隠れている数億手の教師データ)を容易に入手可能

• 個人情報,著作権等が絡まないオープンなデータ

• ビッグデータに基づく機械学習の基礎研究対象として,ゲームは今後も果たすべき役割は大きい

2013/12/16-18 NINSコロキウム 分科会 31

Page 32: 将棋ソフトウェアにおける棋譜 データの利用と機械 …将棋ソフトウェアにおける棋譜 データの利用と機械学習 佐藤 佳州 筑波大学システム情報工学研究科

2013/12/16-18 NINSコロキウム 分科会 32