(57)【特許請求の範囲】
【請求項１】
コンピュータを用いて、遷移ルールに従って時系列的に状態が遷移するモデルのためのニューラルネットワークを学習する方法であって、
前記コンピュータが、遷移ルールに従ってツリー構造に結合されたノードを学習局面として、該学習局面に評価点を付け、該評価点を静的評価点として記憶装置に記憶する工程と、
前記コンピュータが、前記学習局面から先読みし、遷移ルールに従って１つ以上の階層に亘ってノードを順次にたどり、先読みによって到達した最終ノードに評価点を付け、該最終ノードの評価点を記憶装置に記憶する工程と、
前記コンピュータが、前記最終ノードの評価点から所定のアルゴリズムに基づいて動的評価点を選択し、前記静的評価点と動的評価点とを比較して、学習を終了するか否か判断する工程と、
前記学習を終了するか否かを判断する工程で学習を終了しないと判断すると、前記コンピュータが、前記動的評価点を教師データとして出発点のノードの評価点を再評価し、該再評価に基づいて前記学習局面の評価点を修正し、記憶装置に記憶する工程とを備え、
前記学習を終了するか否かを判断する工程では、出発点の静的評価点と再評価による動的評価点とが同じ場合、又は、前記静的評価点と前記動的評価点とが所定の許容誤差範囲内にあるとき、前記コンピュータが、学習を終了すると判断することを特徴とするニューラルネットワークの学習方法。
【請求項２】
前記学習プロセスを繰り返し実行させ、前記学習を終了するか否かを判断する工程では、繰返し回数が所定の回数に達したときに、前記コンピュータが学習を終了すると判断する、請求項１に記載のニューラルネットワークの学習方法。
【請求項３】
前記モデルがゲームモデルである、請求項１又は２に記載のニューラルネットワークの学習方法。
【請求項４】
コンピュータに、遷移ルールに従って時系列的に状態が遷移するモデルのためのニューラルネットワークを学習するプログラムを記録した記録媒体であって、前記コンピュータに、
遷移ルールに従ってツリー構造に結合されたノードを学習局面として、該学習局面に評価点を付け、該評価点を静的評価点として記憶装置に記憶する処理と、
前記学習局面から先読みし、遷移ルールに従って１つ以上の階層に亘ってノードを順次にたどり、該先読みによって到達した最終ノードに評価点を付け、該最終ノードの評価点を記憶装置に記憶する処理と、
前記最終ノードの評価点から所定のアルゴリズムに基づいて動的評価点を選択し、前記静的評価点と動的評価点とを比較して、学習を終了するか否かを判断する処理と、
前記学習を終了するか否かを判断する処理で学習を終了しないと判断すると、前記動的評価点を教師データとして出発点のノードの評価点を再評価し、該再評価に基づいて前記学習局面の評価点を修正し、記憶装置に記憶する処理とを含む学習プロセスを実行させ、
前記学習を終了するか否かを判断する処理では、出発点の静的評価点と再評価による動的評価点とが同じ場合、又は、前記静的評価点と前記動的評価点とが所定の許容誤差範囲内にあるとき、前記コンピュータに、学習を終了すると判断させるプログラムを記録したことを特徴とするコンピュータ読取り可能な記録媒体。
【請求項５】
前記学習プロセスを繰り返し実行させ、前記学習を終了するか否かを判断する処理では、繰返し回数が所定の回数に達したときに、前記コンピュータに、学習を終了すると判断させるプログラムを記録した、請求項４に記載のコンピュータ読取り可能な記録媒体。
【請求項６】
前記モデルがゲームモデルである、請求項４又は５に記載のコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ニューラルネットワークの学習方法に関し、更に詳しくは、遷移ルールに従って時系列的に状態が遷移するモデルのためのニューラルネットワークの学習方法に関する。
【０００２】
【従来の技術】
従来の多層ニューラルネットワークの学習方法は、人間が適当な基準で教師データを作成して多層ニューラルネットワークに与え、予測が必要な事象について多層ニューラルネットワークに学習させることで行われていた。
【０００３】
【発明が解決しようとする課題】
例えば、コンピュータ将棋プログラムでは、一般に将棋はルールが複雑で、現局面における手順の選択肢（場合の数）が非常に大きいので、人力によって教師データを適時に生成している。この場合、得られたデータが客観性に欠けるという問題点があり、また、システム上での補正は事実上不可能であるという問題もあった。
【０００４】
本発明は、上記に鑑み、ルールに従って状態が遷移するモデルのための状態評価に利用される多層ニューラルネットワークを改良し、先読みによって評価点を修正する学習を繰り返すことによって、予測を盛り込んだ判断が可能なニューラルネットワークの学習方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明のニューラルネットワークの学習方法は、遷移ルールに従って時系列的に状態が遷移するモデルのためのニューラルネットワークの学習方法であって、
遷移ルールに従ってツリー構造に結合されたノードの少なくとも一部に評価点を付ける工程と、
出発点のノードから先読みし、遷移ルールに従って１つ以上の階層に亘ってノードを順次にたどる工程と、
先読みによって到達した最終ノードの評価点に基づいて、出発点のノードの評価点を再評価し、該再評価に基づいて先の評価点を修正する工程とを有することを特徴とする。
【０００６】
本発明のニューラルネットワークの学習方法によれば、ネットワーク自体で学習を繰り返してより信頼性が高い解析が可能なネットワークが得られる。
【０００７】
本発明の好ましいニューラルネットワークの学習方法では、教師データの作成個数、教師データに対応するそれぞれの学習局面、先読みの階層数、及び、学習の終了条件を予め設定する工程を有する。これによって、学習の効率が向上する。
【０００８】
また、前記学習の終了条件は、出発点の静的評価点と再評価による動的評価点とが同じであるとする場合、または、静的評価点と、動的評価点とがある一定の許容誤差範囲内にある場合とすることも本発明の好ましい態様である。
【０００９】
また、前記学習の終了条件は、静的評価点と、動的評価点とがあらかじめ設定した学習回数後に一致しない場合とすることも本発明の好ましい態様である。本発明のニューラルネットワークの学習方法は、特に、将棋やゲーム等のプログラムに好適に利用できる。
【００１０】
【発明の実施の形態】
以下、本発明の一実施形態について図面を用いて説明する。
図１は、本発明のニューラルネットワークの学習方法を実施するゲームモデルをツリー構造で示している。出発点のノードＭは、先読みを必要とする複数個ある学習対象局面の一つの学習局面を意味している。この学習局面は、階層深さ１の節点又はノード（Ａ１、Ａ２、Ａ３）、階層深さ２のノード（Ｂ１、Ｂ２，Ｂ３，Ｂ４・・・）、階層深さＮのノード（Ｎ１、Ｎ２、Ｎ３、Ｎ４・・・）のｎ層より構成される。各ノードには、そのノードの評価点（ａ１、ａ２、ａ３、ｂ１、ｂ２、・・・、ｎ１、ｎ２、・・・）が示してある。学習にあたってのゲームの局面分岐図の階層は、あらかじめ何手先読みするかをプログラムするときに決めておく。例えば、将棋ゲームでは、３手先まで先読みをするプログラムの場合には、階層深さ３までとする。
【００１１】
学習局面Ｍより遷移ルール（ゲームのルール）に従って、深さ１（ａ１、ａ２、ａ３）、及び、深さ２（ｂ１、ｂ２，ｂ３，ｂ４・・・）の選択された複数の判定ノードを経由して、深さＮの末端より複数の評価点（ｎ１、ｎ２、ｎ３、ｎ４・・・）を出力する。
【００１２】
所定の探索アルゴリズム、例えばミニマックス法を利用することで、相手が自分にとって最も不利な手順を打ったとき起こり得る最大の損失を確率的に予想できるので、次の最善の一手を探索できるようになる。深さＮの末端から学習局面Ｍにもどって動的評価点を決定し、これを教師データとする。ミニマックス法の探索アルゴリズム及びゲームのルールは、あらかじめプログラムしておく。
【００１３】
図２は、図１のゲーム局面分岐図を前処理とするゲームの自動学習機能付きニューラルネットワーク・プログラムのフローチャートである。同図を参照して、本実施形態例のプログラム構成を説明する。まず、スタート時にオペレータは、教師データの作成個数、教師データに対応するそれぞれの学習局面Ｍ、先読みの深さ、及び、終了条件といった学習条件を１回だけ読み込ませる。（ステップＳ１）
【００１４】
明細書において、ゲームの学習局面Ｍ、及び末端Ｎにおける現時点の評価点を静的評価点と呼ぶ。一方、それぞれの学習局面について先読みした末端Ｎでの静的評価点をもとに上記探索アルゴリズムで決定した学習局面の評価点を動的評価点と呼ぶ。
【００１５】
本実施形態例における終了条件として、次の２つの条件を採用する。
（１）静的評価点と、動的評価点とが一致したとき、または、静的評価点と、動的評価点とがある一定の許容誤差範囲内において一致と見なしたときに終了とする。
（２）静的評価点と、動的評価点とが一致しない場合であっても、あらかじめ設定した学習回数をもって終了とする。
【００１６】
次に、与えられた複数個の学習局面Ｍを一つずつプログラムによって自動的に選択し、学習局面Ｍの静的評価点をニューラルネットワークにより算出する。（ステップＳ２）
【００１７】
次に、選択された学習局面Ｍについて、図１に示す、ゲームの局面分岐図の階層深さＮまで、すなわちＮ手先までの先読みを実行する。ゲームのルールはあらかじめプログラムしておく。（ステップＳ３）
【００１８】
次に、ニューラルネットワークを使って図１に示すツリー構造の学習局面Ｍより階層深さＮまでの全末端での静的評価点（ｎ１、ｎ２，ｎ３、ｎ４・・・）を算出する。（ステップＳ４）
【００１９】
ミニマックス法等の探索アルゴリズムを使って、学習局面での階層深さＮの末端から学習局面Ｍにもどって動的評価点を決定し、これを教師データとする。ミニマックス法等の探索アルゴリズムは、あらかじめプログラムしておく。（ステップＳ５）
【００２０】
次に、与えられた数の複数の学習局面Ｍの全ての教師データがそろったか検証し、揃ったならば、次のステップに進み、揃っていなければ学習局面の選択ステップＳ２までもどり、複数個の学習局面Ｍについての処理を終了するまでステップＳ２にもどる「入れ子ループ」（学習局面の個数分）を繰り返す。（ステップＳ６）
【００２１】
ここで、ニューラルネットワークを学習させる必要があるかどうかを判定する。学習の終了条件に一致した場合は、十分に学習済みと判定し、学習を終了する。静的評価点と、動的評価点とが終了条件に一致した場合には、ニューラルネットワークをこれ以上学習させる必要はない。（ステップＳ７）
【００２２】
図１に示すゲームの局面分岐図に従って生成された教師データを使ってニューラルネットワークを学習させる。
複数個の学習局面Ｍの個数の全ての学習が終わったらステップＳ２までもどり、あらかじめ設定されているニューラルネットワークによる学習回数（ニューラルネットワークに何回学習させるかを決めた終了条件）を終了ステップＳ８よりステップＳ２にもどる「ループ」を繰り返す。（ステップＳ８）
【００２３】
図２のフローチャートに示すステップＳ１〜Ｓ８は、すべてのアルゴリズムは、コンピュータプログラムとして記録され、記録媒体に記憶して提供される。動作時には、このプログラムに従ってコンピュータは制御され、本発明による多層ニューラルネットワークの先読みによる自動学習を行う。
【００２４】
図３は、本発明の実施形態例の将棋のルールに基づくゲームの局面分岐図であり、図１を将棋のルールに基づいて１局面分岐図を示した応用例である。  本発明のコンピュータ将棋プログラムは、ゲームの局面分岐図を生成し、このゲームの局面分岐図は、将棋のルールに基づく手順の組み合わせにより構成される。
【００２５】
本発明によるゲームの局面分岐図は、現局面の形勢を判断するために、探索アルゴリズム、例えばミニマックス法を利用して現局面より数手、先読みすることで選択される手順を数値にして得点化する。
【００２６】
本発明によるコンピュータ将棋プログラムに組み込まれる多層ニューラルネットワークにおいて、入力層として、現局面の状態情報、例えば（Ａ）「玉の堅さ」、（Ｂ）「持ち駒数」、（Ｃ）「盤上の駒の働き」といった判断条件を、それぞれ将棋の局面ごとに数値化したものをニューラルネットワークへの入力パラメータとしてあらかじめ入力しておく。
【００２７】
たとえば、現局面における「玉の堅さ」は、自玉の周りにある味方の駒の枚数によって数値化する。出力層は現局面の評価点として、例えば１００点〜０点の間で得点化し出力する。
【００２８】
将棋のルール上勝ちの局面、即ち、相手玉が詰んでいる状態では現局面の評価点を１００点とし、負けの局面、即ち、自玉が詰んでいる状態では現局面の評価点を０点とする。
【００２９】
まず、現局面の静的評価点を、ニューラルネットワークにより算出しておきプログラムに入力しておく、その結果を仮に７５点とする。
【００３０】
学習局面Ｍの分岐局面の一つとして、深さ２の左側「先手が７六歩として局面」に進み、深さ３の右側「後手が８四歩とした局面」に進み、さらに深さ４の右側「先手が２六歩とした局面」に進むことで得点は６５点となる例である。
【００３１】
また、学習局面Ｍの分岐局面の一つとして、深さ４の左側「先手が６八銀とした局面」に進んだ場合には、得点は６０点となる例である。
このように現局面に対して複数個の手順を照合し、先読みすることでそれぞれの得点が算出される。照合された結果、最高値が最適な教師データとして出力される。すなわち、図３の場合、６５点となる。
【００３２】
ゲームの局面分岐図における先読みにはミニマックス法（α−β法）等の探索アルゴリズムを使いる。評価点の学習には、多層ニューラルネットワークを用いる。
【００３３】
図４は、評価点を学習する多層（３層）入力層と、中間層と、出力層より構成されるニューラルネットワークの一般的な例である。ゲームの局面分岐図において指定された深さＮまでの先読みを実行した後、このニューラルネットワークによって局面すべての評価点を算出し、最適の教師データを出力する。
【００３４】
ゲームの局面分岐図の探索による先読み評価の結果、多層ニューラルネットワークの評価値が評価点と一致しない場合、例えば、上記の探索アルゴリズムによる先読みによって算出された６５点は、現局面の静的評価点、７５点と照合し、６５点となるように補正する。つまり６５点を教師データとして再学習を行う。
【００３５】
図３の先読みのノードに将棋のルール上、勝ち、または負けの局面が出現した場合、終了に至る判定ノードが選択されるように評価点が与えられる。
【００３６】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明の自動学習機能付き多層ニューラルネットワークにおける学習方法は、上記実施形態例の構成にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施した自動学習機能付き多層ニューラルネットワークも、本発明の範囲に含まれる。例えば、本発明の自動学習機能付き多層ニューラルネットワークにおける学習方法は、将棋に限られるものでなく、他のゲームにも適用できる。
【００３７】
【発明の効果】
以上説明したように、ルールに従って局面を変化させていくモデルの中で各局面の優劣判断に利用される多層ニューラルネットワークにおいて、先読みにより自動生成、補正された教師データを使って学習を繰り返すことによって、予測を盛り込んだ判断をする自動学習機能付き多層ニューラルネットワークが提供できる。
【図面の簡単な説明】
【図１】本発明の実施形態例のゲームの局面分岐図。
【図２】本発明の実施形態例のゲームの局面分岐図を前処理とするニューラルネットワーク・プログラムのフローチャート。
【図３】本発明の実施形態例の将棋のルールに基づくゲームの局面分岐図。
【図４】一般的な多層（３層）ニューラルネットワークの一例。
【符号の説明】
Ｍ：学習局面
Ａ１、Ａ２、Ａ３：階層深さ１のノード
ａ１、ａ２、ａ３：階層深さ１の各ノードの評価点
Ｂ１、Ｂ２、Ｂ３、Ｂ４、・・・：階層深さ２のノード
ｂ１、ｂ２、ｂ３、ｂ４、・・・：階層深さ２の各ノードの評価点
Ｎ１、Ｎ２、Ｎ３、Ｎ４、・・・：階層深さＮのノード
ｎ１、ｎ２、ｎ３、ｎ４、・・・：階層深さＮの各ノードの評価点
【図１】
0003678636.tif 000002
【図２】
0003678636.tif 000003
【図３】
0003678636.tif 000004
【図４】
0003678636.tif 000005