実現確率探索における 確率取得方法の比較 ·...
Transcript of 実現確率探索における 確率取得方法の比較 ·...
実現確率探索における
確率取得方法の比較
平成 16 年度 卒業論文
山形大学工学部情報科学科
グリムベルゲン研究室
学生番号 01515095
氏名 八鍬 敏
i
概要
現在,ゲーム研究における探索は深さ打ち切り探索が主流となっている.し
かし,深さ打ち切り探索は無駄な探索が多いという問題があり,その問題を解
決する一つの方法として実現確率探索が挙げられる.だが,この実現確率探索
にも問題はある.実現確率探索で使われている確率はプロの棋譜を読み込んで
得た確率であり,プロの棋譜から確率取得を行った場合,一般に好手とされる
「王手飛車取り」などの手の確率が低くなっていることがある.そこで,この
問題を解決するために,プロの棋譜以外の棋譜から確率取得を行った.具体的
にはコンピュータ将棋選手権の棋譜と東大将棋の棋譜から確率取得を行い,そ
の後,プロの棋譜から確率を取得したプログラムと比較を行った.その結果,
コンピュータ将棋選手権の棋譜を用いたプログラムと東大将棋の棋譜を用いた
プログラムはプロの棋譜よりも弱くなってしまった.しかし,今回の確率取得
から得るものもあり,コンピュータ将棋選手権の棋譜から得た確率に注目した
ところ,大量の棋譜から確率取得を行うことで確率の信頼性が上がることに確
証を持つことができた.
ii
目次
1 序論 ······················································································· - 1 -
1.1 人工知能 ············································································· - 1 - 1.2 ゲーム研究の意義 ································································· - 3 - 1.3 ゲーム研究の歴史 ································································· - 5 - 1.4 実現確率探索 ······································································· - 6 -
2 ゲーム研究の現状 ····································································· - 9 -
2.1 ゲーム木 ············································································· - 9 - 2.2 打ち切り方法 ······································································ - 11 - 2.3 ミニマックス法 ··································································· - 12 - 2.4 深さ打ち切りの問題点 ·························································· - 14 - 2.5 実現確率による打ち切り ······················································· - 15 - 2.6 実現確率探索の問題点 ·························································· - 17 -
3 実現確率探索の問題点への解決策 ··············································· - 19 -
3.1 確率取得方法の変更 ····························································· - 19 - 3.2 棋譜からの統計情報の抽出 ···················································· - 20 - 3.3 確率の決定と反映 ································································ - 21 - 3.4 比較方法 ············································································ - 22 -
4 確率変更の比較結果 ································································· - 23 -
4.1 問題集の正解率による比較 ···················································· - 23 - 4.2 直接対局を行ったときの比較 ················································· - 25 -
5 考察 ······················································································ - 27 -
5.1 コンピュータ将棋選手権の棋譜を用いたプログラム ··················· - 27 - 5.2 東大将棋の棋譜を用いたプログラム ········································ - 28 -
6 まとめ ··················································································· - 30 -
6.1 結論 ·················································································· - 30 - 6.2 今後の課題 ········································································· - 30 -
参考文献 ····················································································· - 32 -
- 1 -
1 序論
本研究は人工知能研究のゲーム研究という分野について研究を行った.そこ
でこの章では,人工知能とはどのようなものであるか,また何故ゲームの研究
が行われているのかなどを説明する.
1.1 人工知能
近年,多くの電気機器が我々の生活環境を豊かにしている.テレビや冷蔵庫,
洗濯機にエアコン,他にも様々なものがあるが,今や若年層を中心に無くては
ならない物となった携帯電話やパソコン,デジタルカメラやカーナビゲーショ
ンなどが飛躍的な発展を続けている.
実際どのような発展をしているか例をあげると,目的地までの経路をナビゲ
ーションしてくれるという携帯電話での GPS(Global Positioning System)の搭
載がある.GPS を搭載したカーナビゲーションにいたっては,ボタンなどを操作
して目的地を入力したりするのではなく,マイクに向かって声で目的地を言い,
それを音声認識でコンピュータが理解して目的地までのナビゲーションを行う
という高度な技術を応用しているものもある.他には携帯電話の機能として
OCR(Optical Character Recognition)機能というものがある.OCR とは光学式で
の文字の認識という意味で,例えば,紙に書いてある文字をカメラやイメージ
スキャナなどで読み取り,それを文字データとして活用することを言うもので
ある.特徴としては「人間が読める文字をそのまま機械が読める」ことが挙げ
られ,OCR機能をもった携帯電話は,雑誌やポスターに記載されたサイトのURL,
メールアドレス,電話番号をカメラで撮影すればそのデータの中から携帯電話
- 2 -
が文字を読み取るので,URL などの長い文字列を打つ作業を必要とせず,楽に文
字データを取り込めるのである[1].
このように,電気機器は日々発展を続けているわけだが,その発展に大きく
関係しているのが人工知能研究である.例としてあげたものはヒューマンイン
ターフェースや情報検索,音声認識,画像認識という分野の研究に関連してく
る.人工知能と聞くと我々の生活とは無縁なものに聞こえるが,今では人工知
能研究から生まれたものが身近なところに多数存在する.つまり人工知能研究
が進めば,例としてあげたような様々な機能をもった機器が生活を便利にして
くれるのである.
では人工知能とはどのようなものなのか.一言で言うと,人間の知能に基づ
いた行動を代行する知的な計算機システムのことである.そもそも,人工知能
の研究が始まったのはコンピュータの出現とほぼ同じ1950年頃と言われており,
人工知能という言葉が初めて使われたのは 1956 年夏,米国ニューハンプシャー
州ダートマス大学で開かれたダートマス会議においてである.
現在の人工知能の研究目標,研究方針は大きく分けて 2つあり,1つ目が「計
算モデルを用いた知的システムの設計や構成に関する研究」,2 つ目が「計算モ
デルを用いて人間の知的能力に対する解明や解析を行う研究」である.それぞ
れどのような立場からの研究かというと,1つ目は人間が知能を使ってすること
を機械にさせる立場,つまりは知的能力をシステムに与えようとする立場で,
これは人工知能研究の工学的立場と言える.一方,2つ目は人間の知能そのもの
を解明しようとする立場,すなわち科学的な立場からの研究である.このよう
な人工知能の研究分野は非常に広く,それを細かく見ていくと多くの研究テー
マが存在する[2].研究テーマを具体的に挙げると,自然言語理解に機械学習,
推論,探索,プラニング,ニューラルネットといった研究から,画像認識や音
- 3 -
声認識,ロボット,ゲームといった応用研究まで多数の研究テーマがある[3].
本研究は 1 つ目の研究目的「計算モデルを用いた知的システムの設計や構築に
関する研究」に基づくゲーム研究という分野について研究を行った.
1.2 ゲーム研究の意義
ここで,ゲーム研究がなぜ人工知能研究の対象となっているのかを述べる.
人工知能研究が始まったのはコンピュータの出現とほぼ同じ 1950 年頃で,人
工知能研究の初期の頃からゲームは優れた研究対象として取り上げられてきた.
なぜゲームが優れた研究対象と言えるのかというと,ゲームには単純で明確な
ルールが存在し,勝ち負けがはっきりつくという点にある.勝ち負けがはっき
りつくということは研究成果が如実にわかるので,研究対象としてはこれほど
都合のいいものはない.研究成果がなぜわかるのか例をあげてみる.例えば,
チェスプログラム P というものがあったとして,同じプログラム同士,先手後
手を 1戦ごと入れ替えて 10 試合ほど対戦させてみる.結果は先手だったプログ
ラムが常に勝利し,5勝 5敗の引き分けになった.その後,プログラム Pに改良
を加え,プログラム Q を作ったとする.ここでプログラム Q とプログラム P を
対戦させ,前と同じように先手後手を 1戦ごと入れ替え 10 戦させたところ,プ
ログラム Q が 9 勝 1 敗という成績を残した.この結果からチェスプログラムは
明らかに前より強くなったと判断することができ,研究が進んだとはっきりわ
かるのである.
そして,ゲーム研究は人工知能 大の難問であるフレーム問題に囚われるこ
となく研究を進められるという利点もある.フレーム問題とは 1969 年に John
McCarthy と Patrick J. Hayes により指摘された問題で,有限の情報処理能力し
かないロボットには,現実に起こりうる問題全てに対処することができないこ
- 4 -
とを示すものである.これを哲学者 Daniel C. Dennett による例を挙げて説明
する[4].
例えば,洞窟の中にロボットを動かすバッテリーがあり,その上に爆弾が仕
掛けられているとする.このままでは爆弾が爆発してロボットは動かなくなっ
てしまうので,ロボットは洞窟の中からバッテリーを取り出してこなくてはな
らない.
人工知能ロボット 1 号機は,洞窟に入って無事にバッテリーを取り出すこと
ができたが,バッテリーの上に爆弾が載っていることに気づかなかったため,
洞窟から出た後に爆弾が爆発してしまった.これは,1号機がバッテリーを取り
出すという目的については理解していたが,バッテリーを取り出すと爆弾も同
時に運んでしまうことについて理解していなかったのが原因である.
そこで,目的を遂行するにあたって副次的に発生する事項も考慮する人工知
能ロボット 2 号機を開発した.しかし,このロボットは洞窟に入ってバッテリ
ーの前に来たところで動作しなくなった.2号機はバッテリーの前で「このバッ
テリーを動かすと上にのった爆弾は爆発しないかどうか」「爆弾を動かそうと
すると,天井が落ちてきたりしないか」「爆弾に近づくと壁の色が変わったり
しないか」など,目的遂行時に発生しうるあらゆる事項を考え始めてしまい,
無限に思考し続けてしまったのである.これは,副次的に発生しうる事項とい
うのが無限大にあり,それら全てを考慮するには無限大の計算時間を必要とす
るからである.
そこで,目的を遂行するにあたって無関係な事項は考慮しないように改良し
た人工知能ロボット 3 号機を開発した.しかし,このロボットは洞窟に入る前
に動作しなくなった.3号機は洞窟に入る前に,目的と無関係な事項を全て洗い
出そうとして,無限に思考し続けてしまったのである.これは目的と無関係な
- 5 -
事項というものも無限大にあるため,それら全てを考慮するには無限大の計算
時間を必要とするからである.このようにフレーム問題が問題としているのは,
考慮すべき空間が有限でない限り,無限の可能性について考えざるを得ないと
いう点である.
ゲーム研究において,上記のようなフレーム問題に囚われることなく研究を
進められる理由は,ゲーム研究がルールによって限定された空間で行われる研
究だからである.つまり,ルール外のことを考える必要がないためにフレーム
問題は生じないのである.
1.3 ゲーム研究の歴史
本研究はゲーム研究であり,将棋を用いて研究を行った.ここで,将棋を扱
った理由をゲーム研究の歴史を元に述べる.
ゲーム研究はコンピュータが発明される以前から行われており,主に題材と
されていたのがチェスやチェッカーといったゲームであった.
そして,コンピュータが発明された直後の 1950 年,Claude E. Shannon がチ
ェスプログラムに関する“Programming a computer for playing chess”とい
う論文を書いた.この論文はゲームプログラムにおける も根本的な手法を示
したもので,その手法というのは White と Black(先手と後手)の手を現在の局
面から終局まで網羅的に調べ上げて,打つ手を考えるというものである.さら
に,その手法に改良を加え,調べる手の対象を絞り込むことについても示され
ていた.
1951 年には Alan Turing がチェスの一局を完全にプレイする初めてのプログ
ラムを書いたが,このプログラムはコンピュータ上では一度も動かされずに終
わった.チェスを一局通してプレイするプログラムを 初にコンピュータ上で
- 6 -
走らせるのに成功したのは,1958 年,Alex Bernstein によってである.
その後もチェスプログラムは順調な進歩を遂げ,チェス専用に設計されたカ
スタムハードウェアを使用したプログラム Belle は 1983 年にマスターのレイテ
ィングに達し,1989 年にはチェスシステム Deep Thought がグランドマスターの
レベルにまで達した.
そして 1997 年 5 月にはチェスシステム Deep Blue がチャンピオン Gary
Kasparov を破るという快挙を成し遂げた[5].これにより,チェスプログラムは
人間より強くなったと認識され,ゲーム研究におけるチェスプログラムの研究
は1つの区切りを迎えた.そして,チェスよりも複雑な思考を要する将棋や囲
碁というゲームに研究対象を移していったのである.
1.4 実現確率探索
本研究は将棋を用いたゲーム研究と述べたが,具体的に扱うテーマは実現確
率探索である.
実現確率探索とはゲーム研究における探索の 1 つの方法である.ここで言う
探索とは,現在の局面を 初として,自分の手および相手の手によって,今後
局面がどう展開するかを考え,もっとも得になる手を予想する作業のことであ
る.しかし,基本の探索アルゴリズムでは現在の局面から終局まで,全ての手
を読むので時間がかかりすぎてしまうという問題が発生する.そこで,探索効
率を上げる方法はあるのだが,それは根本的な解決には及ばない.つまり,そ
の探索効率を上げる方法を用いても時間がかかりすぎてしまうのである.実際,
将棋や囲碁の対局では持ち時間というものが制限されており,無制限に探索を
行うプログラムというのは実用的ではない.つまりどこかで探索を打ち切る必
要が出てくるのである.
- 7 -
現在,主流となっている打ち切り方法は,時間制限を設けた中で行う深さ打
ち切り探索である.ここで言う深さ打ち切りの深さとは何手先かということで
ある.つまり,深さが 1 なら自分の手番である 1 手先まで読み,深さが 3 なら
自分の手番と次の相手の手番,その次の自分の手番である 3 手先まで読むので
ある.この深さ打ち切り探索はわかりやすい方法ではあるが,無駄の無い探索
とは言いきれない.深さ打ち切りによる方法は,決まった深さまで探索を行っ
て打ち切るというもので,深さそのものはゲームの状況とは一切関係がない.
例えば,探索の中で駒の取り合いとなる手が出てきたとする.この場合,取
り合いが自分にとって得であるか損であるかを判断するために一段落するまで
探索を行うのが望ましい.しかし,深さ打ち切り探索では取り合いの途中の段
階であっても,決められた深さに至った時点で探索をやめてしまうのである.
つまり,駒の取り合いが 終的に損であったとしても,探索を打ち切った時点
で得をしていれば,その取り合いを行うというミスをする可能性があるのであ
る.そこで深さ打ち切り探索に替わる探索として,実現確率打ち切りによる探
索(以後,実現確率探索とする)がある.
実現確率探索は従来の探索アルゴリズムと異なり,深さの代わりに局面の実
現確率を探索の打ち切り条件とするものである.つまり実現する可能性の高い
手は深く読み,実現する可能性が低いものはあまり深く読まずに打ち切るので
ある.これは人間の思考に非常に近い探索アルゴリズムと言える.なぜなら,
人間も限られた時間の中で自分に有利になりそうな手は深く読み,自分にとっ
て不利になりそうな手,打っても意味の無い手については早々に考えをやめる
という方法をとっているからである.
そして,実現確率探索は他の探索と比較すると利点となる部分もある.1つ目
が探索スピードである.例えば,深さ打ち切り探索と実現確率探索で同じ局面
- 8 -
から同じ深さまで探索を行うとする.この場合,実現確率探索は深さ打ち切り
探索より速く探索を終えることができる.理由としては,決まった深さまで全
ての手を読む深さ打ち切り探索に対し,実現確率探索は実現しなさそうな局面
をほとんど読まず,無駄を省いた探索を行えるからである.
2 つ目は危険性の回避である.ここで,先程も例として挙げた駒の取り合いに
ついて考えてみる.深さ打ち切り探索は駒の取り合いが 終的に損であったと
しても,探索を打ち切った時点で得をしていれば,その取り合いを行うという
ミスをする可能性がある.実現確率探索の場合は,実現しそうな手を深く読む
ので,実現しそうな手の中に駒の取り合いとなる手があったとき,駒の取り合
いとなる手を深く読むことになる.そこで,駒の取り合いが自分にとって損で
あれば駒の取り合いが危険であると判断でき,駒の取り合いを避けて危険のな
い手を打つ可能性も高まるのである.
だが,この実現確率探索においても問題点はある.今の実現確率探索で実現
する可能性が高いか低いかを判断するのはプロの棋譜によるものである.プロ
同士の対局では互いにミスが少なく,そのミスに対して良い手となる手が出現
する確率も低くなる.このように一般に良い手と思われる手の確率が低くなる
のは,実現確率探索を行う上で問題となる.よって,プロの棋譜から得られた
確率は必ずしも 適とは言えない.そこで本研究ではプロの棋譜以外から確率
取得を行い,どのような方法で得た確率が も効率よく手を指せるのかを研究
した.
- 9 -
2 ゲーム研究の現状
1 章ではゲーム研究の意義やゲーム研究で将棋を題材とした理由などについ
て述べたが,2章ではゲーム研究の具体的な内容となるゲーム木や探索について
述べる.その上で現在の探索においての問題点を挙げ,その問題点への対応方
法を述べる.
2.1 ゲーム木
1章でも探索について説明を行ったが,ここでは探索について詳しく説明を行
う.ここで探索を説明する前にゲーム木について説明する.ゲーム木とは,自
分と対戦相手が指す手によって,どの様にゲームの局面が変化していくかを木
構造で表したものである.ゲーム木を以下の図 2.1 に示す.
ゲーム木において,節点をノード,それをつなぐ線を枝と呼ぶ.上の図の場
合,四角と丸の節点がノード,節点をつないでいる線が枝となる.そして,ノ
ードは局面,枝は動きを表し,S と書かれた木の根ノードは現在の局面を表す.
図 2.1:ゲーム木
S
a b c
d e f g h i j k
- 10 -
また,四角のノードは自分の手番の局面(以後,自局面とする),丸のノードが
相手の手番の局面(以後,相手局面とする)である.ノードの関係として,枝
でつながれた上のノードを親ノード,下のノードを子ノードと呼ぶ.親ノード,
子ノードを図 2.1 の a,d,e,fと書かれたノードを基に説明すると,この場合
d,e,f の親ノードが a となり,a の子ノードが d,e,f となる. 後に,d か
ら kと書かれているノードのように,子ノードのないノードは葉と呼ぶ.
探索とは,現在の局面を 初として,自分の手および相手の手によって,今
後局面がどう展開するかを考え,もっとも得になる手を予想する作業のことで
あり,ゲーム木を用いて行う.ノードを全て探索できれば,全ての局面を表現
することができ,勝ち負けが明らかになるので,勝つためにどのような手を打
てばよいか一目瞭然となる.だが実際は,ノードを全て探索しようとすると探
索時間は膨大なものとなってしまう.
例として,チェスと将棋の初期状態から終局までに探索するノード総数を考
えてみる.チェスの場合,一局あたりの平均手数は 80 手,ある局面で打てる合
法な手の数は平均で 35 手と言われている.つまり,これから予想しうる 終局
面の数は 3580局面で,約 10
120局面ということになる.将棋では一局あたりの平
均手数は 115 手,ある局面で打てる合法な手の数は平均で 80 手なので,予想し
うる 終局面の数は 80115
局面,つまり約 10220
局面となる[6].人間の世界チャ
ンピオンに勝ったチェスシステム Deep Blue の場合,秒間 2 億局面読むと言わ
れているが,現在の将棋プログラムではこれほど多くの局面を読めるプログラ
ムはない.将棋において,仮に Deep Blue と同等の探索を行えるシステムが作
れたとしても,初期局面から 終状態まで読もうとすると 10205
年以上という途
方もない時間がかかってしまうのである.
- 11 -
2.2 打ち切り方法
将棋やチェスといったゲームには制限時間があり,将棋などのプログラムを
作るときは前節で述べた時間の問題を解決しなければならない.解決手段とし
ては,探索をどこかで打ち切るという方法が考えられる.だが,探索を途中で
打ち切った場合,必ず勝ちにつながる手はわからない状態となる.そこで,打
ち切った時点でその局面が自分にとって有利か不利かを評価し,その評価を踏
まえた上で手を選出する必要が出てくるのである.評価をするためには評価関
数というものを使い,有利不利を判断する.将棋における評価の対象は,評価
する局面の駒の状況や駒の持ち数,王の危険性などである.それにより,自分
が有利であればあるほど高い数値(勝ちならばプラス∞)を,不利であればあ
るほど低い数値(負けならばマイナス∞)を返し,返された数値の中で自分に
とって有利となる手を打つのである.
探索を打ち切ることの必要性と,探索を打ち切った時の手の選出方法はわか
ったが,実際どのような条件で打ち切りを行えばよいか.先程も述べたように,
将棋などのゲームには制限時間があり,制限時間を越えた時点で負けになって
しまう.そこで,深さを条件とした打ち切りを考える.深さとは何手先かとい
うことであり,深さ 1は 1手先,深さ 2は 2手先,深さ 3は 3手先となる.
- 12 -
深さ打ち切り探索で仮に深さ 3 で打ち切るとした場合,図 2.2 のように 3 手
先まで読んだ時点で 3 手先における局面の評価をし(図 2.2 の葉の数値は評価
値),それを基に自分にとっての 善手を選ぶのである.
2.3 ミニマックス法
探索を打ち切った局面で評価を行った後,手を選ぶ も基本的な方法として
ミニマックス法というものがある.これは「相手が自分にとってもっとも不利
になるような手を打ってくると仮定して 善手を探す」方法である.
ミニマックス法では,ノードが自局面ならばその子ノードの評価値のうち
大の値を取り,ノードが相手局面ならばその子ノードの評価値のうち 小の値
を取る.よって,この規則に従って下から順に各ノードの評価値を決めれば,
現在の局面の評価値及びどの手を選べばよいかが決まる.
実際にミニマックス法を使用して手を選ぶ方法を図を用いて説明する.図 2.2
では探索を打ち切った後に葉の評価だけを行っていたが,図 2.3 では葉となっ
図 2.2:深さ 3で探索を打ち切った終了状態
深さ 3
5 7 1 4 8 9 7 3 1 5
S
a b
c d e f g
h i j k l m n o p
深さ 2
深さ 1
q
- 13 -
ているノードの親ノードの評価値を選択する.葉の親ノードである c,d,e,f,
gは自局面における評価なので,子ノードの中から 大の値を取る.
次に,図 2.4 では図 2.3 で評価値を選択したノード c,d,e,f,gの親ノー
ドの評価値を選択する.ノード c,d,e,f,gの親ノードにあたるノード a,b
は相手局面における評価なので,子ノードの中から 小の値を取る.
図 2.3:自局面における評価値の決定
5 7 1 4 8 9 7 3 1
7 4 9 7
5
5
S
a b
c d
q
e f g
h i j k l m n o p
図 2.4:相手局面における評価値の決定
5 7 1 4 8 9 7 3 1
7 4 9 7
5
5
S
a b
c d
q
e f g
h i j k l m n o p
4 5
- 14 -
後に図 2.5 では根ノードである自局面での評価値を選択する.根ノードは
自局面であるので,子ノード a,bの中から 大となる値を取る. 大となるの
はノード bを選んだときであるので, 終的に現在の評価値は 5となり,bの局
面へ変化する手が 善手となるのである.
2.4 深さ打ち切りの問題点
ミニマックス法には探索打ち切りが必要であるが,深さが条件となる打ち切
りには問題がある.どのような問題があるかというと,まずは無駄な探索が多
いという問題である.探索を打ち切る条件が深さだけであるので,打たれる可
能性の低い手であっても探索を行い,それに対して評価を下すのである.
この問題について具体的な例を挙げて説明を行う.将棋では相手の王将を取
れば勝ちであり,逆に王将が相手の駒に取られた時点で負けとなるので,通常,
自分の王将は相手の駒の前には進んでいかず,自分の駒に守られるように配置
する.つまり,自分の王将を相手の駒の前にどんどん進めるという手は打つ可
図 2.5:ミニマックス法による手の選択
5 7 1 4 8 9 7 3 1
7 4 9 7
5
5
S
a b
c d
q
e f g
h i j k l m n o p
4 5
5
- 15 -
能性も打たれる可能性も極めて低いのである.しかし,深さ打ち切り探索を行
った場合,決められた深さまで可能な手を全て探索するので,そのような無駄
な手についても探索を行うのである.これは時間の浪費であり,深さ打ち切り
探索の問題点と言える.
他の問題として,局面の良し悪しにかかわらずに探索を打ち切ってしまうこ
ともあげられる.例えば,駒の取り合いの途中で探索が打ち切りになった場合,
終的に自分にとって得になるか損になるかがわからないまま評価を行うこと
になるわけだが,これは極めて危険なことである.打ち切った時点では駒の取
り合いが得であると判断し,駒の取り合いになるように手を打ったが,実際に
は駒の取り合いが自分にとって損であったということもありうるのである.つ
まり,局面の展開に関係なく打ち切りを行う深さ打ち切り探索は致命的なミス
を犯しかねないのである.
2.5 実現確率による打ち切り
そこで,深さ打ち切り探索の問題点を解決する一つの方法として,実現確率
探索がある.これは実現する可能性の低い手はあまり考えずに打ち切り,実現
する可能性が高い手は深く読むというものである.これにより,実現しそうに
ない手はほとんど読まずに打ち切るので,深さ打ち切り探索で問題とされてい
た時間の浪費をある程度軽減することもできる.
実現確率探索において,実現する可能性が高いか低いかというのは局面の実
現確率によって決まる.局面の実現確率を決める方法であるが,ある局面の実
現確率は直前の局面の実現確率に遷移確率をかけることで決まる.前提条件と
して,現在の局面の実現確率を 1(すでに実現しているので実現する確率は 100%
となる)とし,その先の局面の実現確率を決めていく.実現確率の算出につい
- 16 -
ては図 2.6 を用いて説明する.
図 2.6 において,現在の局面を表す Sの確率は 1であり,Sから aへの遷移確
率は 0.6 なので,aの実現確率は 1と 0.6 をかけて 0.6 となる.同様に bの実現
確率は,Sから bへの遷移確率が 0.1 であるので,1と 0.1 をかけて 0.1 となる.
c,d,e,f も同様に考え,c の場合であれば,実現確率は 0.6 と 0.2 をかけて
0.12 となる.
次に,局面の実現確率を決定するのに必要な遷移確率はどのようにして決ま
るかを説明する.まず,指し手の性質をカテゴリごとに分ける.その後,大量
の棋譜から手の統計情報を抽出することによりカテゴリごとの遷移確率が決ま
るのである.では,カテゴリにはどのようなものがあるかというと,「駒を取り
ながら王手を防ぐ手」や「駒損をしないで王手をかける手」,「直前に動いた敵
の駒を駒得しながら取る手」,「駒が駒損しないで成る手」などがある.ここで
言う駒得とはタダで駒を取ったり,結果的に自分の弱い駒と相手の強い駒を交
換することを言い,駒損はタダで駒を取られたり,自分の強い駒と相手の弱い
駒を交換することを言う.
1
0.6 0.1
0.6 0.1
図 2.6:実現確率の算出
S
a b
0.12 0.24
0.2 0.4
c d 0.05 0.03
0.5 0.3
e f
- 17 -
そして, も重要な事項である打ち切りは閾値というものを設けて行う.閾
値はあらかじめ決めてある値で,ある局面の実現確率が閾値以下になったとき
打ち切るのである.これは以下の図 2.7 を基に説明する.
図 2.7 のように閾値が 0.2 だった場合,局面の実現確率が 0.2 以下になった
時点で探索を打ち切る.よって,b,c,dは実現確率が閾値以下になっているの
で打ち切りを行い,その局面における評価を行う.そして,全て打ち切り終え
た時点で高い評価につながる手を選ぶのである.
2.6 実現確率探索の問題点
実現確率探索において,大量の棋譜から手の統計情報を抽出して遷移確率を
決めており,現在は人間のプロの対局による棋譜を用いて確率を決めている.
しかし,プロの棋譜から得られた確率は必ずしも正しいとは限らないという問
題がある.何故そのようなことが言えるかというと,プロ棋士同士の対局では
ミスが少なく,一般に好手とされる「王手飛車取り」などの手をプロは打たれ
図 2.7:実現確率による打ち切り
1
0.6 0.2
0.6 0.2
S
a b
0.12 0.18
0.2 0.3
c d
閾値:0.2
- 18 -
ないように打ち進めていく.また,仮に「王手飛車取り」を打てる状態であっ
たとしても,打たれる側は打たれたときの対策を行っている.そのため,打つ
側が「王手飛車取り」を打つのは得策ではないと考え,打たれないことが多い
のである.よって,プロの棋譜から確率取得を行った場合,好手となる「王手
飛車取り」といった手の確率が極めて低くなってしまうのである.これは実現
確率探索を行う上で問題となる.
次の章では,実現確率探索が現在抱えている問題点の解決方法について述べ
ることとする.
- 19 -
3 実現確率探索の問題点への解決策
実現確率探索の遷移確率を決める際,プロの棋譜を基に確率を決めた場合は
問題があると前章で述べたので,問題解決のために確率取得方法を変更する.
この章ではどのような棋譜から確率取得を行うか述べ,実際に確率取得を行
った後に確率の良し悪しを判断する比較方法を述べる.
3.1 確率取得方法の変更
確率取得を行う際に,棋譜の量が多ければよく打たれる手と滅多に打たれな
い手の差がはっきりと出るので,より確率の信頼性も高まると考えられる.そ
こで,インターネット上に大量の棋譜を公開しているコンピュータ将棋選手権
の棋譜から確率取得を行った.
また,別の視点からの確率取得として,実力差のある者が対戦した場合の棋
譜を用意し,実力上位者の手のみ確率取得の対象とする.この確率取得を行う
理由は,弱者と強者の対戦において弱者はミスを行うことが多々あり,強者は
自分にとって得になる手をまず見逃さないので,プロの棋譜を用いたときに問
題とされていた好手の確率低下の防止になると考えられたからである.この場
合の確率取得では条件にあった棋譜を見つけることができなかったため,将棋
初心者と現在のコンピュータ将棋で上位レベルの東大将棋が対戦し,東大将棋
の手のみを用いて確率を取得した.
- 20 -
3.2 棋譜からの統計情報の抽出
まず,カテゴリごとの遷移確率を決めるために棋譜を集め,その棋譜をプロ
グラムで読み込み,カテゴリの統計情報を抽出する.コンピュータ将棋選手権
の棋譜の場合はインターネット上に棋譜が公開されているため大量の棋譜を用
意可能であった.そこで,今回の研究では 655 の棋譜を用意した.
棋譜と言ってもプログラムが読み込める棋譜でなければ活用できないので,
棋譜は CSA 標準棋譜ファイル形式として用意した.CSA 標準棋譜ファイル形式の
例を図 3.1 に示す.
図 3.1:CSA 標準棋譜ファイル形式
- 21 -
CSA 標準棋譜ファイル形式とはコンピュータ将棋協会が定めた棋譜ファイル
の標準形式であり,棋譜ファイルは処理を容易とするためテキストファイルと
なっている[7].棋譜ファイルは図 3.1 のように次のデータから成る.
(1) バージョン
(2) 棋譜情報
(3) 開始局面(持駒,手番を含む)
(4) 指し手と消費時間
(5) コメント
コメント以外は,この順番でデータがなければならない.棋譜はこのような
CSA 標準棋譜ファイル形式で集め,集めた複数の棋譜をまとめて読み込むことで
統計情報の抽出を行った.
次に,東大将棋の棋譜の場合であるが,将棋のルールと定跡が少しわかる程
度の将棋初心者と東大将棋 6 のマスターレベルで対局を行い,棋譜を集めた.
棋譜の数としては,東大将棋が先手の棋譜を 50 局,後手の棋譜を 50 局で,合
わせて 100 局の棋譜を用意した.
3.3 確率の決定と反映
統計情報を抽出することによりカテゴリごとの遷移確率は決まるが,決定さ
れた遷移確率をプログラムに反映させなければ意味を成さない.そこで,プロ
の棋譜から得た確率と今回取得したコンピュータ将棋選手権の確率,及び東大
将棋の確率とを差し替えたプログラムを新たに作った.新たに作ったプログラ
ムは確率のみ変更したものであり,探索法,評価関数については変更していな
い.
- 22 -
3.4 比較方法
プロの棋譜を用いたプログラムとプロの棋譜以外の棋譜を用いたプログラム
の比較の方法として以下の方法を使った.
(1) 問題集の正解率による比較
(2) 直接対局を行ったときの勝敗による比較
1 つ目の比較方法については,まずプロの棋譜を使用したプログラムに問題集
を解かせ,総問題数と正解数から正解率を算出する.その後,コンピュータ将
棋選手権の棋譜を用いたプログラムと東大将棋の棋譜を用いたプログラムにも
同様に問題集を解かせ,プロの棋譜を使用したプログラムとの正解率を比べる.
問題集は具体的にどのようなものかというと,次の 1 手でどのような手を指せ
ばよいかという問題で,全部で 115 問の問題を用意した.
2 つ目の比較方法は,プログラム同士を複数回戦わせ,勝敗数によって比較す
る方法である.この方法は,前のプログラムより強くなったか弱くなったかを
直接判断できる方法であり,信頼できるデータが出るまで対戦を行う.本研究
では 200 戦の対局を行った.
取得した確率の良し悪しを判断するために以上のような比較方法を用いた.
比較を行うためには問題集を解いた結果や対局のデータが必要なので,次の章
ではそれぞれのデータと比較結果を述べることとする.
- 23 -
4 確率変更の比較結果
確率が良いものになったかどうかを確かめるため,前章で述べた比較方法を
用いる.この章では比較を行うために得られたデータとデータの比較結果を述
べることとする.
4.1 問題集の正解率による比較
プロの棋譜を用いたプログラム,コンピュータ将棋選手権の棋譜を用いたプ
ログラム,東大将棋の棋譜を用いたプログラムが問題集を解いたときの結果を
表 4.1 にまとめた.
正解数/総問題数 正解率
プロ棋士の棋譜を用いた
プログラム 94/115 81%
コンピュータ将棋選手権の
棋譜を用いたプログラム 91/115 79%
東大将棋 6(マスター)の
棋譜を用いたプログラム 45/115 39%
表 4.1:問題の正解率の比較
問題集の正解率比較の基準となる,プロの棋譜を用いたプログラムは 115 問
中 94 問正解となり,正解率は 81%という結果になった.
そして,コンピュータ将棋選手権の棋譜を用いたプログラムで問題集を解い
- 24 -
たときの結果は 115 問中 91 問の正解で,正解率は 79%となった.ここで詳しく
比較を行うため,不正解だった問題が共通であるかを調べることとする.元の
プログラム及びコンピュータ将棋選手権の棋譜を用いたプログラムの不正解番
号を表 4.2 に示す.
不正解だった問題の番号
プロ棋士の棋譜を用いた
プログラム
9,13,15,17,24,30,51,60,66,75,77,78,80,85,
92,94,98,101,104,110,115
コンピュータ将棋選手権の
棋譜を用いたプログラム
5,9,10,13,15,17,24,45,51,60,66,75,77,80,
85,90,94,98,101,104,106,110,114,115
表 4.2:コンピュータ将棋選手権のプログラムとの不正解番号の比較
不正解番号の比較を行った結果,コンピュータ将棋選手権の棋譜を用いたプ
ログラムは元のプログラムと完全に同じミスをしていたわけではなかった.具
体的に,元のプログラムが不正解だった問題で,コンピュータ将棋選手権の棋
譜を用いたプログラムが正解していた問題は 30,78,92番の 3問が挙げられた.
このように,コンピュータ将棋選手権の棋譜を用いたプログラムは,元のプ
ログラムと同じミスを全てした上でさらにミスをしたわけではなく,正解率の
差も 2%と大きな差がないことから,強さはほとんど変わらなかったと言える.
次に,東大将棋の棋譜を使用したプログラムで問題集を解いた結果,115 問中
45 問正解で,正解率は 39%となった.プロの棋譜を用いたプログラムと比較し
て正解率が 2分の 1以下になっており,1手先の正確性が極めて悪くなったと言
える.
ここでコンピュータ将棋選手権の棋譜を用いたプログラムと同様の比較を行
うため,元のプログラム及び東大将棋の棋譜を用いたプログラムの不正解番号
- 25 -
を表 4.3 に示す.
不正解だった問題の番号
プロ棋士の棋譜を用いた
プログラム
9,13,15,17,24,30,51,60,66,75,77,78,80,85,
92,94,98,101,104,110,115
東大将棋 6(マスター)の
棋譜を用いたプログラム
1,2,3,4,7,9,10,11,12,13,15,16,17,19,21,24,
25,30,33,34,36,37,38,39,41,43,45,46,47,48,
49,50,51,54,55,59,60,61,65,66,67,68,71,72,
77,78,80,81,84,85,87,88,90,91,94,95,97,98,
99,101,102,103,104,105,106,107,110,112,114
,115
表 4.3:東大将棋のプログラムとの不正解番号の比較
表 4.3 より,プロの棋譜を用いたプログラムが不正解だった 75,92 番の問題
を東大将棋の棋譜を用いたプログラムが解いていたことから,東大将棋の棋譜
を用いたプログラムはただ弱体化したわけではないと言える.
しかし,ただ弱体化したわけではないと言っても正解率が著しく悪かったと
いう結果から,東大将棋の棋譜を用いたプログラムが弱くなったことは明らか
である.
4.2 直接対局を行ったときの比較
直接対局は複数回行い,プロの棋譜を用いたプログラムと新たに確率を取得
したプログラムの対局は全部で 200 戦ずつ行った.
プロの棋譜を用いたプログラムと直接対局を行ったときの勝敗結果,及び勝
率を表 4.4 にまとめた.
- 26 -
勝ち数 負け数 勝率
コンピュータ将棋選手権の
棋譜を用いたプログラム 83 勝 117 敗 41.5%
東大将棋 6(マスター)の
棋譜を用いたプログラム 86 勝 114 敗 43%
表 4.4:プロの棋譜を用いたプログラムとの勝敗結果
まず,コンピュータ将棋選手権の棋譜を用いたプログラムについて見ると,
結果は 83 勝 117 敗で,勝率 41.5%となった.
問題集を解いた時点では強さはほとんど変わっていないように見えたが,実
際に 200 戦の対局を行って勝率が 41.5%となったことから,99%弱くなったと
言える.99%と述べたこの値は,仮説検定という方法を用いて算出した値であ
る.
次に,東大将棋の棋譜を用いたプログラムの結果は,200 戦中 86 勝 114 敗と
なり,勝率は 43%となった.総試合数 200 戦で勝率 43%だった結果から,プロ
の棋譜を用いたプログラムよりも 98%弱くなったと言えるので,問題集の結果
と対局の結果から弱くなったという事実は明らかである.ここで 98%と述べた
値も仮説検定を用いて算出した値である.
- 27 -
5 考察
前章では,問題集の正解率の比較や直接対局による比較を行い,取得した確
率の良し悪しが明確な結果として出た.この章では,前章で得られた結果につ
いて考察を行う.
5.1 コンピュータ将棋選手権の棋譜を用いたプログラム
コンピュータ将棋選手権の棋譜を用いたプログラムが元のプログラムよりも
弱くなってしまった理由としては,重要と思われるカテゴリの確率低下が挙げ
られる.具体的にどのようなカテゴリの確率が低下したかと言うと,「角による
両飛車取り」,「金による両銀取り」のカテゴリの確率が著しく低くなっていた.
カテゴリの確率を比較しやすいように,「角による両飛車取り」,「金による両
銀取り」のカテゴリの確率を図 5.1 に示す.
図 5.1:カテゴリの確率の比較
- 28 -
図 5.1 において,「BISHOPFORKROOKROOKPROB」となっているカテゴリが「角に
よる両飛車取り」のカテゴリであり,「GOLDFORKSILVERSILVERPROB」となってい
るカテゴリが「金による両銀取り」のカテゴリである.また,図 5.1 の右の数
値は 0.00 ならば打つ確率が 100%となり,2.00 ならば打つ確率が 0%となる値
である.なぜこのような数値になっているのかを説明すると,本研究で用いた
将棋プログラムは実現確率を求めるにあたり,対数(log)を用いているからで
ある.実現確率を求めるときに 2 章で説明したような掛け算を行った場合,計
算に時間がかかるため,探索を速く行うのには適していない.そこで対数を用
いることにより,実現確率を足し算で求めることができ,演算効率を上げてい
るのである.
図 5.1 において,コンピュータ将棋選手権の棋譜を用いたプログラムでは「角
による両飛車取り」,「金による両銀取り」という重要と思われるカテゴリが必
ず打たない確率になっていた.比較を行ったとき結果が悪くなったのは,重要
と思われるカテゴリの確率が必ず打たない確率になっていたためと考えられる.
コンピュータ将棋選手権の棋譜を用いたプログラムは結果として弱くなった
ものの,得られた確率は一部のカテゴリを除いて偏りがなかった.つまり,あ
る局面において必ず打つ確率のカテゴリ,必ず打たない確率のカテゴリなどが
ほとんどなく,確率のバランスは良かったのである.このことから,大量の棋
譜を用いて確率を取得することにより,確率の信頼性が高まるという確証が得
られた.
5.2 東大将棋の棋譜を用いたプログラム
東大将棋の棋譜から得られたカテゴリの確率においては,確率が偏りすぎて
いたというのが問題だったと思われる.確率の極端なカテゴリが多く,全カテ
- 29 -
ゴリ 317 個中,必ず打つと手と,必ず打たない手のカテゴリが合わせて 70 個あ
った.具体的には必ず打つ確率のカテゴリが 8 個,必ず打たない確率のカテゴ
リが 62 個である.確率の一部を図 5.2 に示す.
図 5.2:東大将棋の偏った確率の一部
図 5.2 に示されているような必ず打つ確率のカテゴリ,または必ず打たない
確率のカテゴリは,元のプログラムで 15 個,コンピュータ将棋選手権の棋譜を
用いたプログラムでも 13 個だった.このことから,確率が極端になってしまっ
た原因は棋譜の数が少なかったためと考えられる.
- 30 -
6 まとめ
確率取得方法を変更したことについて結論を述べ,今後どのような課題があ
るのかを示すこととする.
6.1 結論
今回の研究では,多くの棋譜を用意可能であったコンピュータ将棋選手権の
棋譜と,実力差のある者の棋譜として東大将棋の棋譜から確率取得を行った.
結果として,今回新たに確率を取得したプログラムはプロの棋譜から確率を
取得したプログラムに負けてしまったが,得るものはあった.具体的に,コン
ピュータ将棋選手権の棋譜から得られた確率に偏りが少なかったことから,多
くの棋譜から確率を取得することで確率の偏りが少なくなり,確率の信頼性が
高まるという確証を持つことができた.
6.2 今後の課題
今回の研究では,実力差のある者の棋譜から確率取得を行うということにつ
いて東大将棋との棋譜数が少なく,多くのカテゴリに確率の偏りが生じ,期待
されるような結果が得られなかった.
そこで今後の課題として,今回の研究で棋譜数が不足していた東大将棋との
対局の棋譜を 500 以上用意し,再度比較研究を行うことが挙げられる.
また,実力差のあるものの棋譜として,プロ棋士とアマチュア棋士の対局の
棋譜,もしくはプロ棋士とトップレベルの将棋プログラムとの棋譜を 500 程度
- 31 -
確保できるのであれば,その棋譜から確率取得を行うことも有効であると考え
られる.
- 32 -
参考文献
[1] ケータイ Watch,http://k-tai.impress.co.jp/
[2] 馬場口登,山田誠二:人工知能の基礎,昭晃堂(1999).
[3] 人工知能学会,http://www.ai-gakkai.or.jp/jsai/index.html
[4] ウィキペディア,http://ja.wikipedia.org/
[5] Stuart Russell,Peter Norvig,古川康一 監訳:
エージェントアプローチ人工知能,共立出版(1997).
[6] 松原仁:アマ 4段を超えるコンピュータ将棋の進歩 4,
共立出版(2003).
[7] コンピュータ将棋協会,http://www.computer-shogi.org/