(57)【特許請求の範囲】
【請求項１】
環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出する行動候補取得部と、
前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得するスコア取得部と、
前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択する行動選択部と、
選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整するスコア調整部と、を有し、
前記スコア取得部は、前記状況情報データに基づく複数の要素値の各々に所定の重み付けをする複数の入力ノードと、重み付けをした前記複数の要素値を加算して出力する出力ノードと、を各々が含む複数の学習セルを有するニューラルネットワーク部を有し、
前記複数の学習セルの各々は、所定のスコアを有し、前記複数の行動候補のうちのいずれかに紐付けられており、
前記スコア取得部は、前記複数の行動候補の各々に紐付けられた前記学習セルのうち、前記複数の要素値と前記学習セルの出力値との間の相関値が最も大きい前記学習セルの前記スコアを、対応する前記行動候補のスコアに設定し、
前記行動選択部は、前記複数の行動候補のうち、前記スコアが最も大きい前記行動候補を選択し、
前記スコア調整部は、選択した前記行動候補を実行した結果に基づいて、選択した前記行動候補に紐付けられている前記学習セルの前記スコアを調整する
ことを特徴とする行動学習装置。
【請求項２】
前記スコア取得部は、前記ニューラルネットワーク部の学習を行う学習部を更に有し、
前記学習部は、前記学習セルの出力値に応じて、前記学習セルの前記複数の入力ノードの重み付け係数を更新し、又は、前記ニューラルネットワーク部に新たな学習セルを追加する
ことを特徴とする請求項１記載の行動学習装置。
【請求項３】
前記学習部は、前記複数の要素値と前記学習セルの出力値との間の相関値が所定の閾値未満の場合に、前記新たな学習セルを追加する
ことを特徴とする請求項２記載の行動学習装置。
【請求項４】
前記学習部は、前記複数の要素値の値と前記学習セルの出力値との間の相関値が所定の閾値以上の場合に、前記学習セルの前記複数の入力ノードの前記重み付け係数を更新する
ことを特徴とする請求項２記載の行動学習装置。
【請求項５】
前記相関値は、前記学習セルの前記出力値に関する尤度である
ことを特徴とする請求項１乃至４のいずれか１項に記載の行動学習装置。
【請求項６】
前記尤度は、前記複数の入力ノードの各々に設定されている重み付け係数に応じた前記学習セルの出力の最大値に対する前記複数の要素値を入力したときの前記学習セルの前記出力値の比率である
ことを特徴とする請求項５記載の行動学習装置。
【請求項７】
前記環境及び前記自己の状況に基づき、行動に関わる情報を写像した前記状況情報データを生成する状況情報生成部を更に有する
ことを特徴とする請求項１乃至６のいずれか１項に記載の行動学習装置。
【請求項８】
前記行動選択部は、前記環境及び前記自己の状況が特定の条件を満たす場合に、前記特定の条件に応じた所定の行動を優先して実行する
ことを特徴とする請求項１乃至７のいずれか１項に記載の行動学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、行動学習装置、行動学習方法、行動学習システム、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
近年、機械学習手法として、多層ニューラルネットワークを用いた深層学習（ディープラーニング）が注目されている。深層学習は、バックプロパゲーションと呼ばれる計算手法を用い、大量の教師データを多層ニューラルネットワークへ入力した際の出力誤差を計算し、誤差が最小となるように学習を行うものである。【０００３】
特許文献１乃至３には、大規模なニューラルネットワークを複数のサブネットワークの組み合わせとして規定することにより、少ない労力及び演算処理量でニューラルネットワークを構築することを可能にしたニューラルネットワーク処理装置が開示されている。また、特許文献４には、ニューラルネットワークの最適化を行う構造最適化装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−０５１９６８号公報
【特許文献２】特開２００２−２５１６０１号公報
【特許文献３】特開２００３−３１７０７３号公報
【特許文献４】特開平０９−０９１２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、深層学習では、教師データとして良質な大量のデータが必要であり、また、学習に長時間を要していた。特許文献１乃至４にはニューラルネットワークの構築のための労力や演算処理量を低減する手法が提案されているが、システム負荷等の更なる軽減のために、より簡単なアルゴリズムにより行動の学習が可能な行動学習装置が望まれていた。【０００６】
本発明の目的は、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現しうる行動学習装置、行動学習方法、行動学習システム、プログラム、及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出する行動候補取得部と、前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得するスコア取得部と、前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択する行動選択部と、選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整するスコア調整部と、を有し、前記スコア取得部は、前記状況情報データに基づく複数の要素値の各々に所定の重み付けをする複数の入力ノードと、重み付けをした前記複数の要素値を加算して出力する出力ノードと、を各々が含む複数の学習セルを有するニューラルネットワーク部を有し、前記複数の学習セルの各々は、所定のスコアを有し、前記複数の行動候補のうちのいずれかに紐付けられており、前記スコア取得部は、前記複数の行動候補の各々に紐付けられた前記学習セルのうち、前記複数の要素値と前記学習セルの出力値との間の相関値が最も大きい前記学習セルの前記スコアを、対応する前記行動候補のスコアに設定し、前記行動選択部は、前記複数の行動候補のうち、前記スコアが最も大きい前記行動候補を選択し、前記スコア調整部は、選択した前記行動候補を実行した結果に基づいて、選択した前記行動候補に紐付けられている前記学習セルの前記スコアを調整する行動学習装置が提供される。
【０００８】
また、本発明の他の一観点によれば、環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出するステップと、前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得するステップと、前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択するステップと、選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整するステップとを有する行動学習方法が提供される。【０００９】
また、本発明の更に他の一観点によれば、コンピュータを、環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出する手段、前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得する手段、前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択する手段、及び選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整する手段として機能させるプログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１実施形態による行動学習装置の構成例を示す概略図である。
【図２】図２は、本発明の第１実施形態による行動学習装置におけるスコア取得部の構成例を示す概略図である。
【図３】図３は、本発明の第１実施形態による行動学習装置におけるニューラルネットワーク部の構成例を示す概略図である。
【図４】図４は、本発明の第１実施形態による行動学習装置における学習セルの構成例を示す概略図である。
【図５】図５は、本発明の第１実施形態による行動学習装置における学習方法を示すフローチャートである。
【図６】図６は、状況情報生成部が生成する状況情報データの一例を示す図である。
【図７】図７は、状況情報生成部が生成する状況情報データ及びその要素値の一例を示す図である。
【図８】図８は、本発明の第１実施形態による行動学習装置のハードウェア構成例を示す概略図である。
【図９】図９は、本発明の第２実施形態による行動学習装置における学習方法を示すフローチャートである。
【図１０】図１０は、本発明の第３実施形態による行動学習装置の構成例を示す概略図である。
【図１１】図１１は、本発明の第３実施形態による行動学習装置における学習方法を示すフローチャートである。
【図１２】図１２は、本発明の第４実施形態による行動学習装置の構成例を示す概略図である。
【図１３】図１３は、本発明の第４実施形態による行動学習装置におけるノウハウの生成方法を示すフローチャートである。
【図１４】図１４は、本発明の第４実施形態による行動学習装置における表象変換の一例を示す概略図である。
【図１５】図１５は、本発明の第４実施形態による行動学習装置における表象データの集計方法を説明する図である。
【図１６】図１６は、本発明の第４実施形態による行動学習装置における集計データの一例を示す図である。
【図１７】図１７は、同じ事象を示す正のスコアの集計データと負のスコアの集計データの一例である。
【図１８】図１８は、本発明の第４実施形態による行動学習装置における集計データの包含関係の整理方法を示す概略図である。
【図１９】図１９は、本発明の第４実施形態による行動学習装置によりノウハウとして抽出された集計データのリストである。
【図２０】図２０は、本発明の第５実施形態による行動学習装置の構成例を示す概略図である。
【発明を実施するための形態】
【００１２】
［第１実施形態］
本発明の第１実施形態による行動学習装置及び行動学習方法について、図１乃至図８を用いて説明する。
【００１３】
図１は、本実施形態による行動学習装置の構成例を示す概略図である。図２は、本実施形態による行動学習装置におけるスコア取得部の構成例を示す概略図である。図３は、本実施形態による行動学習装置におけるニューラルネットワーク部の構成例を示す概略図である。図４は、本実施形態による行動学習装置における学習セルの構成例を示す概略図である。図５は、本実施形態による行動学習装置における行動学習方法を示すフローチャートである。図６は、状況情報データの一例を示す図である。図７は、状況情報データ及びその要素値の一例を示す図である。図８は、本実施形態による行動学習装置のハードウェア構成例を示す概略図である。
【００１４】
はじめに、本実施形態による行動学習装置の概略構成について、図１乃至図４を用いて説明する。
【００１５】
本実施形態による行動学習装置１００は、図１に示すように、行動候補取得部１０と、状況情報生成部２０と、スコア取得部３０と、行動選択部７０と、スコア調整部８０と、を有する。行動学習装置１００は、環境２００から受け取った情報に基づき学習を行い、環境に対して実行する行動を決定する。すなわち、行動学習装置１００は、環境２００とともに行動学習システム４００を構成する。
【００１６】
行動候補取得部１０は、環境２００から受け取った情報及び自己（エージェント）の状況に基づいて、その状況下で取り得る行動（行動候補）を抽出する機能を備える。なお、エージェントとは、学習し、行動を選択する主体である。環境とは、エージェントが働きかける対象である。
【００１７】
状況情報生成部２０は、環境２００から受け取った情報及び自己の状況をもとに、行動に関わる情報を表す状況情報データを生成する機能を備える。状況情報データに含まれる情報は、行動に関わるものであれば特に限定されるものではなく、例えば、環境情報、時間、回数、自己状態、過去の行動等が挙げられる。
【００１８】
スコア取得部３０は、行動候補取得部１０が抽出した行動候補の各々について、状況情報生成部２０で生成した状況情報データに対するスコアを取得する機能を備える。ここで、スコアとは、行動した結果に対して見込まれる効果を表す指標として用いられる変数である。例えば、行動した結果の評価が高いと見込まれる場合のスコアは大きく、行動した結果の評価が低いと見込まれる場合のスコアは小さい。
【００１９】
行動選択部７０は、行動候補取得部１０が抽出した行動候補の中から、スコア取得部３０で取得したスコアが最も大きい行動候補を選択し、選択した行動を環境２００に対して実行する機能を備える。
【００２０】
スコア調整部８０は、行動選択部７０で選択した行動が環境２００に与えた結果に応じて、選択した行動に紐付けられているスコアの値を調整する機能を備える。例えば、行動した結果の評価が高い場合はスコアを上げ、行動した結果の評価が低い場合はスコアを下げる。
【００２１】
本実施形態による行動学習装置１００において、スコア取得部３０は、例えば図２に示すように、ニューラルネットワーク部４０と、判定部５０と、学習部６０と、を含む。学習部６０は、重み修正部６２と、学習セル生成部６４と、を含む。
【００２２】
ニューラルネットワーク部４０は、例えば図３に示すように、入力層と出力層とを含む２層の人工ニューラルネットワークにより構成され得る。入力層は、１つの状況情報データから抽出される要素値の数に対応する数のセル（ニューロン）４２を備える。例えば、１つの状況情報データがＭ個の要素値を含む場合、入力層は、少なくともＭ個のセル４２１，４２２，…，４２ｉ，…，４２Ｍを含む。出力層は、少なくとも、取り得る行動の数に対応する数のセル（ニューロン）４４を備える。例えば、出力層は、Ｎ個のセル４４１，４４２，…，４４ｊ，…，４４Ｎを含む。出力層を構成するセル４４の各々は、取り得る行動のうちのいずれかに紐付けられている。また、各々のセル４４には、所定のスコアが設定されている。
【００２３】
入力層のセル４２１，４２２，…，４２ｉ，…，４２Ｍには、状況情報データのＭ個の要素値Ｉ１，Ｉ２，…，Ｉｉ，…，ＩＭが、それぞれ入力される。セル４２１，４２２，…，４２ｉ，…，４２Ｍの各々は、入力された要素値Ｉをセル４４１，４４２，…，４４ｊ，…，４４Ｎのそれぞれに出力する。
【００２４】
セル４２とセル４４とを繋ぐ枝（軸索）の各々には、要素値Ｉに対して所定の重み付けをするための重み付け係数ωが設定されている。例えば、セル４２１，４２２，…，４２ｉ，…，４２Ｍとセル４４ｊとを繋ぐ枝には、例えば図４に示すように、重み付け係数ω１ｊ，ω２ｊ，…，ωｉｊ，…，ωＭｊが設定されている。これによりセル４４ｊは、以下の式（１）に示す演算を行い、出力値Ｏｊを出力する。
【数１】
0006970949.tif 000002
【００２５】
なお、本明細書では、１つのセル４４と、そのセル４４に要素値Ｉ１〜ＩＭを入力する枝（入力ノード）と、そのセル４４から出力値Ｏを出力する枝（出力ノード）とを総称して学習セル４６と表記することがある。
【００２６】
判定部５０は、状況情報データから抽出した複数の要素値と学習セルの出力値との間の相関値を所定の閾値と比較し、当該相関値が閾値以上であるか閾値未満であるかを判定する。相関値の一例は、学習セルの出力値に対する尤度である。なお、判定部５０の機能は、学習セル４６の各々が備えていてもよい。
【００２７】
学習部６０は、判定部５０の判定結果に応じてニューラルネットワーク部４０の学習を行う機能ブロックである。重み修正部６２は、上記相関値が所定の閾値以上である場合に、学習セル４６の入力ノードに設定された重み付け係数ωを更新する。また、学習セル生成部６４は、上記相関値が所定の閾値未満である場合に、ニューラルネットワーク部４０に新たな学習セル４６を追加する。
【００２８】
次に、本実施形態による行動学習装置１００を用いた行動学習方法について、図５乃至図７を用いて説明する。なお、ここでは理解を容易にするために、カードゲームの「大富豪」におけるプレイヤーの行動を例に挙げて適宜説明を補足するものとする。ただし、本実施形態による行動学習装置１００は、環境２００の状況に応じて行動を選択する用途に広く適用することができる。
【００２９】
まず、行動候補取得部１０は、環境２００から受け取った情報及び自己の状況に基づいて、その状況下で取り得る行動（行動候補）を抽出する（ステップＳ１０１）。行動候補を抽出する方法は、特に限定されるものではないが、例えば、ルールに基づいたプログラムを用いて抽出を行うことができる。
【００３０】
「大富豪」の場合、環境２００から受け取る情報としては、例えば、場に出ている札の種類（例えば、１枚の札か複数枚の札か）や強さ、他のプレイヤーがパスをしているかどうか、などの情報が挙げられる。自己の状況としては、例えば、手札の情報、これまでに出した札の情報、何巡目か、などが挙げられる。行動候補取得部１０は、「大富豪」のルールに則って、これら環境２００及び自己の状況下において取り得る総ての行動（行動候補）を抽出する。例えば、場に出ている札と同じ種類でより強い札を複数、手札の中に所有している場合には、これら複数の札のうちのいずれかを出す行動の各々が行動候補となる。また、自分の順番をパスすることも、行動候補の一つである。
【００３１】
次いで、行動候補取得部１０が抽出した行動候補の各々が、スコア取得部３０のニューラルネットワーク部４０に含まれる少なくとも１つの学習セル４６に紐付けられているかどうかを確認する。学習セル４６に紐付けられていない行動候補が存在する場合には、ニューラルネットワーク部４０に、当該行動候補に紐付けられた学習セル４６を新たに追加する。なお、取り得る行動の総てが既知である場合には、想定される総ての行動の各々に紐付けられた学習セル４６を、予めニューラルネットワーク部４０に設定しておいてもよい。
【００３２】
なお、学習セル４６の各々には、前述の通り、所定のスコアが設定されている。学習セル４６を追加する場合には、その学習セル４６にスコアの初期値として任意の値を設定する。例えば−１００〜＋１００の数値範囲でスコアを設定する場合、スコアの初期値として例えば０を設定することができる。
【００３３】
次いで、状況情報生成部２０は、環境２００から受け取った情報及び自己の状況をもとに、行動に関わる情報を写像した状況情報データを生成する（ステップＳ１０２）。状況情報データは、特に限定されるものではないが、例えば、環境や自己の状況に基づく情報をビットマップ状のイメージデータとして表すことにより生成することができる。状況情報データの生成は、ステップＳ１０１よりも前に或いはステップＳ１０１と並行して行ってもよい。
【００３４】
図６は、環境２００や自己の状況を示す情報のうち、場の札、回数、手札、過去情報をビットマップイメージとして表した状況情報データの一例を示す図である。図中、「場の札」、「手札」、「過去情報」として示すイメージの横軸に表した「数」は、札の強さを表している。すなわち、「数」が小さいほど弱い札であることを示し、「数」が大きいほど強い札であることを示している。図中、「場の札」、「手札」、「過去情報」として示すイメージの縦軸に表した「ペア」は、札の組枚数を表している。例えば、１種類の数字で構成される役においては、１枚、２枚（ペア）、３枚（スリーカード）、４枚（フォーカード）の順に、「ペア」の値は多くなる。図中、「回数」は、現在のターンが１ゲームの開始から終了までのどの段階にあるかを横軸方向に２次元的に表したものである。なお、図示するプロットにおいて各点の境界をぼかしているのは汎化性能を向上する意図であるが、各点の境界は必ずしもぼかす必要はない。
【００３５】
状況情報の写像について、処理時間の短縮、学習セルの量の削減、行動選択の精度を良くするなどの目的で、情報の一部を切り出しながら段階的に処理を行う階層化、情報の変換、情報の組み合わせなどの処理を行ってもよい。
【００３６】
図７は、図６に示した状況情報データの「手札」の部分を抜き出したものである。この状況情報データに対しては、例えば右側の拡大図に示すように、１つの画素を１つの要素値に対応づけることができる。そして、白の画素に対応する要素値を０、黒の画素に対応する要素値を１と定義することができる。例えば、図７の例では、ｐ番目の画素に対応する要素値Ｉｐは１となり、ｑ番目の画素に対応する要素値Ｉｑは０となる。１つの状況情報データに対応する要素値が、要素値Ｉ１〜ＩＭである。
【００３７】
次いで、状況情報生成部２０で生成した状況情報データの要素値Ｉ１〜ＩＭを、ニューラルネットワーク部４０に入力する（ステップＳ１０３）。ニューラルネットワーク部４０に入力された要素値Ｉ１〜ＩＭは、セル４２１〜４２Ｍを介して、行動候補取得部１０により抽出された行動候補に紐付けられた学習セル４６の各々に入力される。要素値Ｉ１〜ＩＭが入力された学習セル４６の各々は、式（１）に基づいて出力値Ｏを出力する。こうして、要素値Ｉ１〜ＩＭに対する学習セル４６からの出力値Ｏを取得する（ステップＳ１０４）。
【００３８】
学習セル４６が、各入力ノードに重み付け係数ωが設定されていない状態、すなわち一度も学習を行っていない初期状態である場合には、入力された要素値Ｉ１〜ＩＭの値を、当該学習セル４６の入力ノードの重み付け係数ωの初期値として設定する。例えば、図７の例では、学習セル４６ｊのｐ番目の画素に対応する入力ノードの重み付け係数ωｐｊは１となり、学習セル４６ｊのｑ番目の画素に対応する入力ノードの重み付け係数ωｑｊは０となる。この場合の出力値Ｏは、初期値として設定した重み付け係数ωを用いて算出される。
【００３９】
次いで、判定部５０において、要素値Ｉ１〜ＩＭと学習セル４６からの出力値Ｏとの間の相関値（ここでは、学習セルの出力値に関する尤度Ｐとする）を取得する（ステップＳ１０５）。尤度Ｐの算出方法は、特に限定されるものではない。例えば、学習セル４６ｊの尤度Ｐｊは、以下の式（２）に基づいて算出することができる。
【数２】
0006970949.tif 000003
【００４０】
式（２）は、尤度Ｐｊが、学習セル４６ｊの複数の入力ノードの重み付け係数ωｉｊの累積値に対する学習セル４６ｊの出力値Ｏｊの比率で表されることを示している。或いは、尤度Ｐｊが、複数の入力ノードの重み付け係数ωｉｊに基づく学習セル４６ｊの出力の最大値に対する、複数の要素値を入力したときの学習セル４６ｊの出力値の比率で表されることを示している。
【００４１】
次いで、判定部５０において、取得した尤度Ｐの値と所定の閾値とを比較し、尤度Ｐの値が閾値以上であるか否かを判定する（ステップＳ１０６）。
【００４２】
行動候補の各々において、当該行動候補に紐付けられた学習セル４６のうち、尤度Ｐの値が閾値以上である学習セル４６が１つ以上存在した場合（ステップＳ１０６の「Ｙｅｓ」）には、ステップＳ１０７へと移行する。ステップＳ１０７では、当該行動候補に紐付けられた学習セル４６のうち尤度Ｐの値が最も大きい学習セル４６の入力ノードの重み付け係数ωを更新する。学習セル４６ｊの入力ノードの重み付け係数ωｉｊは、例えば以下の式（３）に基づいて修正することができる。
ωｉｊ＝（ｉ番目の画素における黒の出現回数）／（学習回数）    …（３）
【００４３】
式（３）は、学習セル４６の複数の入力ノードの各々の重み付け係数ωが、対応する入力ノードから入力された要素値Ｉの累積平均値により決定されることを示している。このようにして、尤度Ｐの値が所定の閾値以上である状況情報データの情報を各入力ノードの重み付け係数ωに累積していくことにより、黒（１）の出現回数の多い画素に対応する入力ノードほど、重み付け係数ωの値が大きくなる。このような学習セル４６の学習アルゴリズムは、人の脳の学習原理として知られるヘブ則に近似したものである。
【００４４】
一方、行動候補の各々において、当該行動候補に紐付けられた学習セル４６の中に尤度Ｐの値が閾値以上である学習セル４６が１つも存在しない場合（ステップＳ１０６の「Ｎｏ」）には、ステップＳ１０８へと移行する。ステップＳ１０８では、当該行動候補に紐付けられた新たな学習セル４６を生成する。新たに生成した学習セル４６の各入力ノードには、学習セル４６が初期状態であった場合と同様、要素値Ｉ１〜ＩＭの値を重み付け係数ωの初期値として設定する。また、追加する学習セル４６には、スコアの初期値として任意の値を設定する。このようにして、同じ行動候補に紐付けられた学習セル４６を追加することにより、同じ行動候補に属する様々な態様の状況情報データを学習することが可能となり、より適切な行動を選択することが可能となる。
【００４５】
なお、学習セル４６の追加は、尤度Ｐの値が閾値以上である学習セル４６がいずれかの行動候補において１つも存在しない場合に、常に行う必要はない。例えば、尤度Ｐの値が閾値以上である学習セル４６が総ての行動候補において１つも存在しない場合にのみ、学習セル４６を追加するようにしてもよい。この場合、追加する学習セル４６は、複数の行動候補の中からランダムに選択したいずれかの行動候補に紐付けることができる。
【００４６】
尤度Ｐの判定に用いる閾値は、その値が大きいほど、状況情報データに対する適合性は高くなるが、学習セル４６の数も多くなり学習に時間を要する。逆に、閾値は、その値が小さいほど、状況情報データに対する適合性は低くなるが、学習セル４６の数は少なくなり学習に要する時間は短くなる。閾値の設定値は、状況情報データの種類や形態等に応じて、所望の適合率や学習時間が得られるように、適宜設定することが望ましい。
【００４７】
次いで、行動候補の各々において、当該行動候補に紐付けられた学習セル４６の中から、状況情報データに対する相関（尤度Ｐ）が最も高い学習セル４６を抽出する（ステップＳ１０９）。
【００４８】
次いで、ステップＳ１０９において抽出した学習セル４６の中から、最もスコアの高い学習セル４６を抽出する（ステップＳ１１０）。
【００４９】
次いで、行動選択部７０において、最もスコアの高い学習セル４６に紐付けられた行動候補を選択し、環境２００に対して実行する（ステップＳ１１１）。これにより、行動した結果の評価が最も高いと見込まれる行動を、環境２００に対して実行することができる。
【００５０】
次いで、スコア調整部８０により、行動選択部７０により選択された行動を環境２００に対して実行した結果の評価に基づき、最もスコアの高い学習セル４６として抽出された学習セル４６のスコアを調整する（ステップＳ１１２）。例えば、行動した結果の評価が高い場合はスコアを上げ、行動した結果の評価が低い場合ステップＳ１１２はスコアを下げる。このようにして学習セル４６のスコアを調整することで、環境２００に対して実行した結果の評価が高いと見込まれる学習セル４６ほどスコアが高くなるように、ニューラルネットワーク部４０は学習を進めることができる。
【００５１】
「大富豪」の場合、１ゲーム中における１回の行動によってその結果を評価することは困難であるため、１ゲームが終了したときの順位に基づいて学習セル４６のスコアを調整することができる。例えば、１位で上がった場合には、そのゲーム中の各ターンにおいて最もスコアの高い学習セル４６として抽出された学習セル４６のスコアをそれぞれ１０増やす。２位で上がった場合には、そのゲーム中の各ターンにおいて最もスコアの高い学習セル４６として抽出された学習セル４６のスコアをそれぞれ５増やす。３位で上がった場合には、スコアの調整は行わない。４位で上がった場合には、そのゲーム中の各ターンにおいて最もスコアの高い学習セル４６として抽出された学習セル４６のスコアをそれぞれ５減らす。５位で上がった場合には、そのゲーム中の各ターンにおいて最もスコアの高い学習セル４６として抽出された学習セル４６のスコアをそれぞれ１０減らす。
【００５２】
このように構成することで、状況情報データに基づいてニューラルネットワーク部４０を学習することができる。また、学習の進んだニューラルネットワーク部４０に状況情報データを入力することで、複数の行動候補の中から環境２００に対して実行した結果の評価が高いと見込まれる行動を選択することができる。
【００５３】
本実施形態による行動学習装置１００におけるニューラルネットワーク部４０の学習方法は、深層学習などにおいて用いられている誤差逆伝播法（バック・プロパゲーション）を適用するものではなく、１パスでの学習が可能である。このため、ニューラルネットワーク部４０の学習処理を簡略化することができる。また、各々の学習セル４６は独立しているため、データの追加、削除、更新が容易である。また、どのような情報であってもマップ化して処理することが可能であり、汎用性が高い。また、本実施形態による行動学習装置１００は、いわゆるダイナミック学習を行うことが可能であり、状況情報データを用いた追加の学習処理を容易に行うことができる。
【００５４】
次に、本実施形態による行動学習装置１００のハードウェア構成例について、図８を用いて説明する。図８は、本実施形態による行動学習装置のハードウェア構成例を示す概略図である。
【００５５】
行動学習装置１００は、例えば図８に示すように、一般的な情報処理装置と同様のハードウェア構成によって実現することが可能である。例えば、行動学習装置１００は、ＣＰＵ（Central  Processing  Unit）３００、主記憶部３０２、通信部３０４、入出力インターフェース部３０６を備える。
【００５６】
ＣＰＵ３００は、行動学習装置１００の全体的な制御や演算処理を司る制御・演算装置である。主記憶部３０２は、データの作業領域やデータの一時退避領域に用いられる記憶部であり、ＲＡＭ（Random  Access  Memory）等のメモリにより構成される。通信部３０４は、ネットワークを介してデータの送受信を行うためのインターフェースである。入出力インターフェース部３０６は、外部の出力装置３１０、入力装置３１２、記憶装置３１４等と接続してデータの送受信を行うためのインターフェースである。ＣＰＵ３００、主記憶部３０２、通信部３０４及び入出力インターフェース部３０６は、システムバス３０８によって相互に接続されている。記憶装置３１４は、例えばＲＯＭ（Read  Only  Memory）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で構成することができる。
【００５７】
主記憶部３０２は、複数の学習セル４６を含むニューラルネットワーク部４０を構築し演算を実行するための作業領域として用いることができる。ＣＰＵは、主記憶部３０２に構築したニューラルネットワーク部４０における演算処理を制御する制御部として機能する。記憶装置３１４には、学習済みの学習セル４６に関する情報を含む学習セル情報を保存することができる。また、記憶装置３１４に記憶された学習セル情報を読み出し、主記憶部３０２においてニューラルネットワーク部４０を構築するように構成することで、様々な状況情報データに対する学習環境を構築することができる。ＣＰＵ３００は、主記憶部３０２に構築したニューラルネットワーク部４０の複数の学習セル４６における演算処理を並列して実行するように構成されていることが望ましい。
【００５８】
通信部３０４は、イーサネット（登録商標）、Ｗｉ−Ｆｉ（登録商標）等の規格に基づく通信インターフェースであり、他の装置との通信を行うためのモジュールである。学習セル情報は、通信部３０４を介して他の装置から受信するようにしてもよい。例えば、頻繁に使用する学習セル情報は記憶装置３１４に記憶しておき、使用頻度の低い学習セル情報は他の装置から読み込むように構成することができる。
【００５９】
入力装置３１２は、キーボード、マウス、タッチパネル等であって、ユーザが行動学習装置１００に所定の情報を入力するために用いられる。出力装置３１０は、例えば液晶表示装置等のディスプレイを含む。学習結果の通知は、出力装置３１０を介して行うことができる。
【００６０】
状況情報データは、通信部３０４を介して他の装置から読み込むように構成することもできる。或いは、入力装置３１２を、状況情報データを入力するための手段として用いることもできる。
【００６１】
本実施形態による行動学習装置１００の各部の機能は、プログラムを組み込んだＬＳＩ（Large  Scale  Integration）等のハードウェア部品である回路部品を実装することにより、ハードウェア的に実現することができる。或いは、その機能を提供するプログラムを、記憶装置３１４に格納し、そのプログラムを主記憶部３０２にロードしてＣＰＵ３００で実行することにより、ソフトウェア的に実現することも可能である。
【００６２】
このように、本実施形態によれば、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現することができる。
【００６３】
［第２実施形態］
本発明の第２実施形態による行動学習装置及び行動学習方法について、図９を用いて説明する。第１実施形態による行動学習装置と同様の構成要素には同一の符号を付し、説明を省略し或いは簡潔にする。
【００６４】
本実施形態による行動学習装置の基本的な構成は、図１に示す第１実施形態による行動学習装置と同様である。本実施形態による行動学習装置が第１実施形態による行動学習装置と異なる点は、スコア取得部３０がデータベースにより構成されていることである。以下、第１実施形態による行動学習装置と異なる点を中心に、本実施形態による行動学習装置を、図１を参照して説明する。
【００６５】
状況情報生成部２０は、環境２００から受け取った情報及び自己の状況をもとに、データベースを検索するためのキーとなる状況情報データを生成する機能を備える。状況情報データは、第１実施形態の場合のように写像する必要はなく、環境２００から受け取った情報や自己の状況をそのまま適用可能である。例えば、「大富豪」の例では、前述の、場の札、回数、手札、過去情報等を、検索を実行するためのキーとして利用することができる。
【００６６】
スコア取得部３０は、状況情報データをキーとして、特定の行動に対するスコアを与えるデータベースを備える。スコア取得部３０のデータベースは、状況情報データのあらゆる組み合わせについて、想定される総ての行動に対するスコアを保持している。状況情報生成部２０で生成した状況情報データをキーとしてスコア取得部３０のデータベースを検索することにより、行動候補取得部１０が抽出した行動候補の各々に対するスコアを取得することができる。
【００６７】
スコア調整部８０は、行動選択部７０で選択した行動が環境２００に与えた結果に応じて、スコア取得部３０のデータベースに登録されているスコアの値を調整する機能を備える。このように構成することで、行動した結果に基づいてスコア取得部３０のデータベースを学習することができる。
【００６８】
次に、本実施形態による行動学習装置を用いた行動学習方法について、図９を用いて説明する。
【００６９】
まず、行動候補取得部１０は、環境２００から受け取った情報及び自己の状況に基づいて、その状況下で取り得る行動（行動候補）を抽出する（ステップＳ２０１）。行動候補を抽出する方法は、特に限定されるものではないが、例えば、ルールベースに登録されたルールに基づいて行うことができる。
【００７０】
次いで、状況情報生成部２０は、環境２００から受け取った情報及び自己の状況をもとに、行動に関わる情報を表す状況情報データを生成する（ステップＳ２０２）。状況情報データの生成は、ステップＳ２０１よりも前に或いはステップＳ２０１と並行して行ってもよい。
【００７１】
次いで、状況情報生成部２０で生成した状況情報データを、スコア取得部３０に入力する（ステップＳ２０３）。スコア取得部３０は、入力された状況情報データをキーとしてデータベースを検索し、行動候補取得部１０が抽出した行動候補の各々に対するスコアを取得する（ステップＳ２０４）。
【００７２】
次いで、行動選択部７０において、行動候補取得部１０が抽出した行動候補の中から、スコア取得部３０が取得したスコアの最も高い行動候補を抽出し（ステップＳ２０５）、環境２００に対して実行する（ステップＳ２０６）。これにより、行動した結果の評価が最も高いと見込まれる行動を、環境２００に対して実行することができる。
【００７３】
次いで、スコア調整部８０により、行動選択部７０により選択された行動を環境２００に対して実行した結果の評価に基づき、スコア取得部３０のデータベースに登録されているスコアの値を調整する（ステップＳ２０７）。例えば、行動した結果の評価が高い場合はスコアを上げ、行動した結果の評価が低い場合はスコアを下げる。このようにしてデータベースのスコアを調整することで、行動した結果に基づいてスコア取得部３０のデータベースを学習することができる。
【００７４】
このように、本実施形態によれば、スコア取得部３０をデータベースで構成する場合においても、第１実施形態の場合と同様、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現することができる。
【００７５】
［第３実施形態］
本発明の第３実施形態による行動学習装置及び行動学習方法について、図１０及び図１１を用いて説明する。第１及び第２実施形態による行動学習装置と同様の構成要素には同一の符号を付し、説明を省略し或いは簡潔にする。図１０は、本実施形態による行動学習装置の構成例を示す概略図である。図１１は、本実施形態による行動学習装置における行動学習方法を示すフローチャートである。
【００７６】
本実施形態による行動学習装置１００は、図１０に示すように、行動提案部９０を更に有するほかは第１又は第２実施形態による行動学習装置と同様である。
【００７７】
行動提案部９０は、環境２００から受け取った情報及び自己の状況が特定の条件を満たす場合に、行動選択部７０に、当該特定の条件に応じた特定の行動を提案する機能を備える。具体的には、行動提案部９０は、特定の条件のときに取るべき行動を記録したデータベースを備えている。行動提案部９０は、環境２００から受け取った情報及び自己の状況をキーとしてデータベースを検索する。環境２００から受け取った情報及び自己の状況がデータベースに登録されている特定の条件に合致した場合、行動提案部９０は、当該特定の条件に対応する行動をデータベースから読み出し、行動選択部７０に提案する。行動選択部７０は、行動提案部９０から行動の提案があった場合には、行動提案部９０が提案した行動を優先して実行する機能を備える。
【００７８】
行動提案部９０が提案する行動としては、いわゆるノウハウに属する行動が挙げられる。例えば、「大富豪」の例においては、１）候補の中で札の枚数が最大の手を出す、２）序盤では強い手を出さない、３）手札に強い札がないときは序盤から８切りをする、４）手札が弱いときは革命を行う、などが挙げられる。なお、８切りとは、出した札に８が含まれている場合に、場の札を流すことができるというルールである。
【００７９】
人の意識を説明する仮説の一つとして、受動意識仮説と呼ばれるものがある。受動意識仮説とは、無意識の方が先にあり、意識はその結果を後で受け取っているにすぎない、との考えに基づくものである。この受動意識仮説を元にした認知アーキテクチャを考慮すると、「無意識」に相当するものとして「状況学習」を、「意識」に相当するものとして「エピソード生成」を想定することが可能である。
【００８０】
ここで、状況学習とは、環境やこれまでの行動の結果等に基づき、報酬を最大限にするように行動を調整、学習することである。このような動作は、第１実施形態において説明した学習アルゴリズムや深層強化学習における学習アルゴリズムに相当するものと考えられる。エピソード生成とは、収集した情報、思考、知識から仮説・戦略を立て、その仮説・戦略を検証し、必要に応じて状況学習に再考を促すことである。エピソード生成の一例としては、ノウハウとして蓄積された知識に基づいて行動を実行することが挙げられる。すなわち、本実施形態による行動学習装置において行動提案部９０が行動選択部７０に行動の提案を行う動作は、エピソード生成に相当するものと考えることができる。
【００８１】
次に、本実施形態による行動学習装置を用いた行動学習方法について、図１１を用いて説明する。
【００８２】
まず、状況情報生成部２０は、環境２００から受け取った情報及び自己の状況をもとに、行動に関わる情報を表す状況情報データを生成する（ステップＳ３０１）。
【００８３】
次いで、行動提案部９０は、状況情報生成部２０により生成された状況情報データをキーとしてデータベースを検索し、環境２００及び自己の状況が特定の条件を満たしているかどうかを判定する（ステップＳ３０２）。「大富豪」の例では特定の条件として、出せる札の中に複数枚の札で構成される役を有していること、序盤であること、手札に強い札はないが出せる札の中に８の札を有していること、手札は弱いが出せる札の中にフォーカードを有していること、等が挙げられる。
【００８４】
判定の結果、環境２００及び自己の状況が特定の条件を満たしていない場合（ステップＳ３０２における「ＮＯ」）には、スコア取得部３０の構成に応じて、図５のステップＳ１０１或いは図９のステップＳ２０１へと移行する。
【００８５】
判定の結果、環境２００及び自己の状況が特定の条件を満たしている場合（ステップＳ３０２における「ＹＥＳ」）には、ステップＳ３０３へと移行する。ステップＳ３０３において、行動提案部９０は、当該特定の条件に紐付けられた行動を行動選択部７０に提案する。
【００８６】
次いで、行動選択部７０は、行動提案部９０により提案された行動を、環境２００に対して実行する（ステップＳ３０４）。「大富豪」の例では特定の条件に紐付けられた行動として、候補の中で札の枚数が最大の手を出す、強い手は出さない、８切りをする、革命を行う、などが挙げられる。
【００８７】
このように構成することで、過去の記憶や経験に応じたより適切な行動を選択することができ、環境２００に対して実行した行動に、より評価の高い結果を期待することができる。
【００８８】
次に、本発明の効果を検証するために既成の「大富豪」のゲームプログラムを利用して学習及び対戦を行った結果について説明する。
【００８９】
本発明の効果の検証は、以下の手順により行った。まず、本発明の行動学習装置の学習アルゴリズムを備えた５つのクライアントを用意し、これら５つのクライアントを対戦させることにより学習を行った。次いで、ゲームプログラム上のクライアント４つと、学習を行ったクライアント１つとの対戦を行い、順位付けを行った。具体的には、１００回の対戦を１セットとして、１セット毎に累計の順位付けを行った。これを１０セット行い、１０セットにおける順位の平均を最終的な順位とした。順位付けの対戦は、０回、１００回、１０００回、１００００回、１５０００回の学習を行った後にそれぞれ実行した。
【００９０】
表１及び表２は、「大富豪」のゲームプログラムを利用して本発明の効果を検証した結果を示す表である。表１が第１実施形態による行動学習装置における検証結果であり、表２が本実施形態による行動学習装置における検証結果である。行動提案部９０が提案する行動としては、ノウハウの例として挙げた前述の４つの条件を設定した。表１及び表２には参考として、学習カラム数と学習出札数とを示している。学習出札数は、取り得る行動の数である。
【表１】
0006970949.tif 000004
【表２】
0006970949.tif 000005
【００９１】
表１及び表２に示すように、学習時の対戦回数を増やすことにより、いずれの実施形態の態様においても平均順位を改善できることが判る。特に、本実施形態の態様によれば、平均順位を大幅に改善できることが検証できた。
【００９２】
このように、本実施形態によれば、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現することができる。また、特定の条件のときに当該特定の条件に応じた所定の行動を提案するように構成することで、より適切な行動を選択することができる。
【００９３】
［第４実施形態］
本発明の第４実施形態による行動学習装置について、図１２乃至図１９を用いて説明する。第１乃至第３実施形態による行動学習装置と同様の構成要素には同一の符号を付し、説明を省略し或いは簡潔にする。
【００９４】
図１２は、本実施形態による行動学習装置の構成例を示す概略図である。図１３は、本実施形態による行動学習装置におけるノウハウの生成方法を示すフローチャートである。図１４は、本実施形態による行動学習装置における表象変換の一例を示す概略図である。図１５は、本実施形態による行動学習装置における表象データの集計方法を説明する図である。図１６は、本実施形態による行動学習装置における集計データの一例を示す図である。図１７は、同じ事象を示す正のスコアの集計データと負のスコアの集計データの一例である。図１８は、本実施形態による行動学習装置における集計データの包含関係の整理方法を示す概略図である。図１９は、本実施形態による行動学習装置によりノウハウとして抽出された集計データのリストである。
【００９５】
本実施形態による行動学習装置１００は、図１２に示すように、ノウハウ生成部９２を更に有するほかは、第３実施形態による行動学習装置と同様である。
【００９６】
ノウハウ生成部９２は、スコア取得部３０に対して行われた状況学習によって蓄積された学習データに基づいて、特定の条件に対して有利に働く行動（ノウハウ）のリストを生成する機能を備える。ノウハウ生成部９２おいて生成されたリストは、行動提案部９０のデータベースに格納される。行動提案部９０は、環境２００から受け取った情報及び自己の状況がデータベースに登録されている特定の条件に合致した場合には、当該特定の条件に対応する行動をデータベースから読み出し、行動選択部７０に提案する。行動選択部７０は、行動提案部９０から行動の提案があった場合には、行動提案部９０が提案した行動を優先して実行する。行動提案部９０及び行動選択部７０の動作は、第３実施形態の場合と同様である。
【００９７】
このように、本実施形態による行動学習装置は、スコア取得部３０に蓄積された情報、思考、知識（学習データ）に基づいて、評価が高いと見込まれる行動を与える規則を発見し、その規則に基づいて行動提案部９０が備えるデータベースを構築するものである。この動作は、前述の「エピソード生成」において、収集した情報からノウハウを生成することに相当する。
【００９８】
次に、本実施形態による行動学習装置におけるノウハウ生成方法について、図１３乃至図１９を用いて説明する。
【００９９】
まず、ノウハウ生成部９２は、状況学習によってスコア取得部３０に蓄積された学習データを、表象データに変換する（ステップＳ４０１）。
【０１００】
学習データとは、第１実施形態による行動学習装置においては、学習の結果、ニューラルネットワーク部４０が有する学習セル４６の各々に紐付けられた情報である。学習セル４６の各々には、特定の条件下で特定の行動を取ったときのスコアが設定されている。学習データの各々は、例えば図１４に示すように、特定の条件、特定の行動、スコアの各々を格納したデータとして構成することができる。また、第２実施形態による行動学習装置においては、例えば、特定の行動と、その特定の行動を検索するためのキーとなる状況情報データと、その特定の行動に対するスコアと、を組み合わせたものが１つの学習データとなる。
【０１０１】
ここで言う表象変換とは、学習データを、表象変換情報をもとに「ことば」に変換することである。表象変換情報は、人が学習データの状態、挙動に対して感覚的に持つイメージをもとに作成する。表象変換に用いる変換テーブルは、データや行動の種類に応じて適宜設定する。
【０１０２】
「大富豪」の場合、図１４に示すように、例えば、「Ｗｈｅｎ」、「出札」、「８切」、「場札」、「持札」、「前回出札」の６つのパラメータを表象変換情報として選択することができる。例えば、「Ｗｈｅｎ」は、１ゲームの中で、「序盤」であるのか、「中盤」であるのか、「終盤」であるのか、を表すパラメータとして設定することができる。「出札」は、自分の出す札の強さが、「弱」であるのか、「普通」であるのか、「強」であるのか、「最強」であるのか、を表すパラメータとして設定することができる。「８切」は、８切りの有無、「Ｙｅｓ」，「Ｎｏ」を表すパラメータとして設定することができる。「場札」は、場に出ている札の強さが、「弱」であるのか、「普通」であるのか、「強」であるのか、「最強」であるのか、「空」であるのか、を表すパラメータとして設定することができる。「持札」は、手持ちの札の強さが、「弱」であるのか、「普通」であるのか、「強」であるのか、「最強」であるのか、を表すパラメータとして設定することができる。「前回出札」は、前回自分が出した札の強さが、「弱」であるのか、「普通」であるのか、「強」であるのか、「最強」であるのか、を表すパラメータとして設定することができる。
【０１０３】
表象変換では、特定の条件及び特定の行動を表すデータを、表象変換情報として選択したパラメータとその評価値に置き換える。例えば、図１４の例では、ある学習セル４６の学習データを、“Ｗｈｅｎ：中盤；出札：弱；８切：Ｎｏ；場札：弱；持札：弱；前回出札：弱；…”のように変換している。また、別の学習セル４６の学習データを、“Ｗｈｅｎ：中盤；出札：弱；８切：Ｎｏ；場札：弱；持札：弱；前回出札：普通；…”のように変換している。
【０１０４】
次いで、ノウハウ生成部９２は、ステップＳ４０１において生成した表象データをもとに、共起性の抽出を行う（ステップＳ４０２）。
【０１０５】
共起性の抽出では、頻繁に現れる（共起性のある）有利な事象を抽出する。抽出の方法は、表象データを見て人が判断する考えを参考にしてもよい。ここでは、各要素の組み合わせを作り、組み合わせ毎にスコアを集計（合算）し、集計後のスコアが高い組み合わせを見つけることで、共起性を抽出するものとする。
【０１０６】
図１５は、上述の「大富豪」の例における表象データを集計する例を示している。この例では、「Ｗｈｅｎ」、「出札」、「８切」、「場札」、「持札」、「前回出札」の６つのパラメータの中から選択した２つ以上のパラメータの組み合わせについて、同じ事象を示すデータをまとめている。例えば、［Ｗｈｅｎ：序盤；出札：強］の事象を示す表象データとして、上から３番目と６番目と７番目の表象データが集計される。また、［Ｗｈｅｎ：序盤；出札：弱；８切：Ｎｏ］の事象を示す表象データとして、上から１番目と４番目の表象データが集計される。図中、「＊」印は、ワイルドカードを表す。
【０１０７】
同じ事象を示す表象データのスコアの集計は、正のスコアを示す表象データの群と、負のスコアを示す表象データの群とに分け、それぞれの群において表象データのスコアを積算することにより行う。正のスコアを示す表象データと負のスコアを示す表象データとを分けるのは、これらを単純に積算すると両者のスコアが相殺し合って正確な状況が把握できなくなるからである。
【０１０８】
図１６は、［出札：弱；持札：弱］の事象を示す表象データを集計した集計データの例を示している。上段が正のスコアを示す表象データを集計した集計データであり、下段が負のスコアを示す表象データを集計した集計データである。
【０１０９】
次いで、ノウハウ生成部９２は、ステップＳ４０２において生成した集計データの各々について、価値評価を行う（ステップＳ４０３）。
【０１１０】
集計データの価値評価は、例えば、同じ事象を示す正のスコアの集計データと負のスコアの集計データとの関係、スコアの絶対値等に応じて行うことができる。
【０１１１】
ある共起性の事象における正のスコアと負のスコアとの間に顕著な差異のないものは、事象としての示唆がなく、共起性ルールとしては不適切であると考えられる。そこで、このような集計データは、ノウハウの候補から除外する。
【０１１２】
正のスコアと負のスコアとの間に顕著な差異があるかないかの基準は、特に限定されるものではなく、適宜設定することができる。例えば、正のスコアの絶対値が負のスコアの絶対値の５倍以上の場合には、正のスコアの集計データを、ノウハウの候補としての価値が高いものであると判定することができる。逆に、正のスコアの絶対値が負のスコアの絶対値の１／５倍以下の場合には、負のスコアの集計データを、ノウハウの候補としての価値が高いものであると判定することができる。
【０１１３】
また、正のスコアと負のスコアとの間に顕著な差異が認められた場合でも、スコアの絶対値が相対的に小さいものは、事象としての示唆が低いものと考えられる。したがって、そのような集計データは、ノウハウの候補から除外することが望ましい。例えば、正のスコアの絶対値及び負のスコアの絶対値のうち大きい方の値が１００００以上の場合にのみ、その集計データを、ノウハウの候補としての価値が高いものであると判定することができる。
【０１１４】
図１７は、同じ事象を示す正のスコアの集計データと負のスコアの集計データの一例である。この例では、正のスコアの値が２４００２であり、負のスコアの値が−４２４９であるため、正のスコアの絶対値は負のスコアの絶対値の５倍以上である。また、正のスコアの絶対値は１００００以上である。したがって、上記基準に基づけば、この集計データの組を、ノウハウの候補としての価値が高いものであると判定することができる。
【０１１５】
なお、集計データに紐付けられた正のスコアは、行動の結果の評価が高いことを表すものである。すなわち、正のスコアの集計データは、その事象のもとで行う行動として好ましいことを示すものである。逆に、集計データに紐付けられた負のスコアは、行動の結果の評価が低いことを表すものである。すなわち、負のスコアの集計データは、その事象のもとで行う行動として不適当であることを示すものである。
【０１１６】
次いで、ノウハウ生成部９２は、ステップＳ４０３において価値評価を行った集計データについて、包含関係の整理を行う（ステップＳ４０４）。
【０１１７】
共起性のある事象には包含関係を有するものが存在する。包含関係を有する多数の集計データが存在する状態は冗長であり、集計データも多量になるため、包含される側の集計データを除去し、包含する側の集計データのみを残す処理を行う。
【０１１８】
例えば、図１８の上段に示す［出札：弱；持札：弱］の事象を示す集計データは、下段に示す［出札：弱；持札：弱；前回出札：弱］の事象を示す集計データと、［出札：弱；持札：弱；前回出札：普通］の事象を示す集計データと、を包含している。そこで、このような場合には、ステップＳ４０４において、下段に示す２つの集計データを除去する処理を行う。
【０１１９】
次いで、ノウハウ生成部９２は、ステップＳ４０４において整理した集計データの中から、価値の高い集計データを抽出する（ステップＳ４０５）。抽出された集計データは、ノウハウのリストとして行動提案部９０のデータベースに格納する。
【０１２０】
図１９は、既成の「大富豪」のゲームプログラムを用いて１５０００回の対戦を行うことにより学習を行ったスコア取得部３０から抽出した学習データをもとに、上述の手順によりノウハウとして抽出された集計データのリストである。なお、図１９における「解釈」の欄は、上述の手順で抽出したノウハウ（共起性ノウハウ）を人が見て解釈した表象データの例である。
【０１２１】
次に、本実施形態の効果を検証するために既成の「大富豪」のゲームプログラムを利用して学習及び対戦を行った結果について説明する。
【０１２２】
本発明の効果の検証は、以下の手順により行った。まず、本発明の行動学習装置の学習アルゴリズムを備えた５つのクライアントを用意し、これら５つのクライアントを対戦させることにより学習を行った。次いで、ゲームプログラム上のクライアント４つと、学習を行ったクライアント１つとの対戦を行い、順位付けを行った。具体的には、１００回の対戦を１セットとして、１セット毎に累計の順位付けを行った。これを１０セット行い、１０セットにおける順位の平均を最終的な順位とした。順位付けの対戦は、０回、１５０００回の学習を行った後にそれぞれ実行した。また、行動提案部９０が提案するノウハウとしては、共起性ノウハウ（本実施形態）と、特化ノウハウ（第３実施形態）と、特化ノウハウ＋共起性ノウハウと、について検証を行った。
【０１２３】
表３は、「大富豪」のゲームプログラムを利用して本発明の効果を検証した結果を示す表である。
【表３】
0006970949.tif 000006
【０１２４】
表３に示すように、本実施形態の共起性ノウハウを適用することにより、ノウハウを適用しない場合よりも平均順位を向上できることが検証できた。特に、本実施形態の共起性ノウハウを第３実施形態で説明した特化ノウハウと併用することで、平均順位を大幅に改善できることが検証できた。
【０１２５】
このように、本実施形態によれば、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現することができる。また、特定の条件のときに当該特定の条件に応じた所定の行動を提案するように構成することで、より適切な行動を選択することができる。
【０１２６】
なお、本実施形態では、行動学習装置１００がノウハウ生成部９２を有する構成として説明したが、ノウハウ生成部９２は行動学習装置１００とは別の装置に構成することも可能である。例えば、スコア取得部３０から学習データを外部装置に読み出し、外部装置に構成されたノウハウ生成部９２を用いてノウハウのリストを生成し、生成したリストを行動提案部９０のデータベースに読み込むように構成することができる。
【０１２７】
［第５実施形態］
本発明の第５実施形態による行動学習装置について、図２０を用いて説明する。第１乃至第４実施形態による行動学習装置と同様の構成要素には同一の符号を付し、説明を省略し或いは簡潔にする。図２０は、本実施形態による行動学習装置の構成例を示す概略図である。
【０１２８】
本実施形態による行動学習装置１００は、図２０に示すように、行動候補取得部１０と、スコア取得部３０と、行動選択部７０と、スコア調整部８０と、を有している。
【０１２９】
行動候補取得部１０は、環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出する。スコア取得部３０は、複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得する。行動選択部７０は、複数の行動候補の中から、スコアが最も大きい行動候補を選択する。スコア調整部８０は、選択した行動候補を環境２００に対して実行した結果に基づいて、選択した行動候補に紐付けられているスコアの値を調整する。
【０１３０】
このように構成することで、環境及び自己の状況に応じた行動の学習及び選択をより簡単なアルゴリズムで実現しうる行動学習装置を実現することができる。
【０１３１】
［変形実施形態］
本発明は、上記実施形態に限らず種々の変形が可能である。
例えば、いずれかの実施形態の一部の構成を他の実施形態に追加した例や、他の実施形態の一部の構成と置換した例も、本発明の実施形態である。
【０１３２】
また、上記実施形態では、本発明の適用例としてカードゲームの「大富豪」におけるプレイヤーの行動を例に挙げて説明したが、本発明は環境及び自己の状況に基づいて行動する場合における行動の学習及び選択に広く適用することができる。
【０１３３】
また、上述の実施形態の機能を実現するように該実施形態の構成を動作させるプログラムを記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
【０１３４】
該記録媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ上で動作して処理を実行するものも各実施形態の範疇に含まれる。
【０１３５】
上記実施形態は、いずれも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならない。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１３６】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１３７】
（付記１）
環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出する行動候補取得部と、
前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得するスコア取得部と、
前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択する行動選択部と、
選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整するスコア調整部と
を有することを特徴とする行動学習装置。
【０１３８】
（付記２）
前記スコア取得部は、前記状況情報データに基づく複数の要素値の各々に所定の重み付けをする複数の入力ノードと、重み付けをした前記複数の要素値を加算して出力する出力ノードと、を各々が含む複数の学習セルを有するニューラルネットワーク部を有し、
前記複数の学習セルの各々は、所定のスコアを有し、前記複数の行動候補のうちのいずれかに紐付けられており、
前記スコア取得部は、前記複数の行動候補の各々に紐付けられた前記学習セルのうち、前記複数の要素値と前記学習セルの出力値との間の相関値が最も大きい前記学習セルの前記スコアを、対応する前記行動候補のスコアに設定し、
前記行動選択部は、前記複数の行動候補のうち、前記スコアが最も大きい前記行動候補を選択して前記環境に対して実行し、
前記スコア調整部は、選択した前記行動候補を実行した結果に基づいて、選択した前記行動候補に紐付けられている前記学習セルの前記スコアを調整する
ことを特徴とする付記１記載の行動学習装置。
【０１３９】
（付記３）
前記スコア取得部は、前記ニューラルネットワーク部の学習を行う学習部を更に有し、
前記学習部は、前記学習セルの出力値に応じて、前記学習セルの前記複数の入力ノードの重み付け係数を更新し、又は、前記ニューラルネットワーク部に新たな学習セルを追加する
ことを特徴とする付記２記載の行動学習装置。
【０１４０】
（付記４）
前記学習部は、前記複数の要素値と前記学習セルの出力値との間の相関値が所定の閾値未満の場合に、前記新たな学習セルを追加する
ことを特徴とする付記３記載の行動学習装置。
【０１４１】
（付記５）
前記学習部は、前記複数の要素値の値と前記学習セルの出力値との間の相関値が所定の閾値以上の場合に、前記学習セルの前記複数の入力ノードの前記重み付け係数を更新する
ことを特徴とする付記３記載の行動学習装置。
【０１４２】
（付記６）
前記相関値は、前記学習セルの前記出力値に関する尤度である
ことを特徴とする付記２乃至５のいずれか１項に記載の行動学習装置。
【０１４３】
（付記７）
前記尤度は、前記複数の入力ノードの各々に設定されている重み付け係数に応じた前記学習セルの出力の最大値に対する前記複数の要素値を入力したときの前記学習セルの前記出力値の比率である
ことを特徴とする付記６記載の行動学習装置。
【０１４４】
（付記８）
前記環境及び前記自己の状況に基づき、行動に関わる情報を写像した前記状況情報データを生成する状況情報生成部を更に有する
ことを特徴とする付記２乃至７のいずれか１項に記載の行動学習装置。
【０１４５】
（付記９）
前記スコア取得部は、前記状況情報データをキーとして前記複数の行動候補の各々に対する前記スコアを与えるデータベースを有する
ことを特徴とする付記１記載の行動学習装置。
【０１４６】
（付記１０）
前記行動選択部は、前記環境及び前記自己の状況が特定の条件を満たす場合に、前記特定の条件に応じた所定の行動を優先して実行する
ことを特徴とする付記１乃至９のいずれか１項に記載の行動学習装置。
【０１４７】
（付記１１）
前記スコア取得部の学習データに基づいてノウハウのリストを生成するノウハウ生成部を更に有し、
前記行動選択部は、前記ノウハウのリストの中から前記特定の条件に応じた前記所定の行動を選択する
ことを特徴とする付記１０記載の行動学習装置。
【０１４８】
（付記１２）
前記ノウハウ生成部は、前記学習データに基づく表象データの共起性を利用して集計データを生成し、前記集計データの中から、前記集計データのスコアに基づいて前記ノウハウを抽出する
ことを特徴とする付記１１記載の行動学習装置。
【０１４９】
（付記１３）
環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出するステップと、
前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得するステップと、
前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択するステップと、
選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整するステップと
を有することを特徴とする行動学習方法。
【０１５０】
（付記１４）
前記取得するステップでは、前記状況情報データに基づく複数の要素値の各々に所定の重み付けをする複数の入力ノードと、重み付けをした前記複数の要素値を加算して出力する出力ノードと、を各々が含む複数の学習セルを有し、前記複数の学習セルの各々が、所定のスコアを有し、前記複数の行動候補のうちのいずれかに紐付けられているニューラルネットワーク部において、前記複数の行動候補の各々に紐付けられた前記学習セルのうち、前記複数の要素値と前記学習セルの出力値との間の相関値が最も大きい前記学習セルの前記スコアを、対応する前記行動候補のスコアに設定し、
前記選択するステップでは、前記複数の行動候補のうち、前記スコアが最も大きい前記行動候補を選択し、
前記調整するステップでは、選択した前記行動候補を実行した結果に基づいて、選択した前記行動候補に紐付けられている前記学習セルの前記スコアを調整する
ことを特徴とする付記１３記載の行動学習方法。
【０１５１】
（付記１５）
前記取得するステップでは、前記状況情報データをキーとして前記複数の行動候補の各々に対する前記スコアを与えるデータベースを検索することにより、前記複数の行動候補の各々に対する前記スコアを取得する
ことを特徴とする付記１３記載の行動学習方法。
【０１５２】
（付記１６）
前記選択するステップでは、前記環境及び前記自己の状況が特定の条件を満たす場合に、前記特定の条件に応じた所定の行動を優先して実行する
ことを特徴とする付記１３乃至１５のいずれか１項に記載の行動学習方法。
【０１５３】
（付記１７）
コンピュータを、
環境及び自己の状況を表す状況情報データに基づいて、取り得る複数の行動候補を抽出する手段、
前記複数の行動候補の各々について、行動した結果に対して見込まれる効果を表す指標であるスコアを取得する手段、
前記複数の行動候補の中から、前記スコアが最も大きい行動候補を選択する手段、及び
選択した前記行動候補を前記環境に対して実行した結果に基づいて、選択した前記行動候補に紐付けられている前記スコアの値を調整する手段
として機能させるプログラム。
【０１５４】
（付記１８）
前記取得する手段は、前記状況情報データに基づく複数の要素値の各々に所定の重み付けをする複数の入力ノードと、重み付けをした前記複数の要素値を加算して出力する出力ノードと、を各々が含む複数の学習セルを有するニューラルネットワーク部を有し、
前記複数の学習セルの各々は、所定のスコアを有し、前記複数の行動候補のうちのいずれかに紐付けられており、
前記取得する手段は、前記複数の行動候補の各々に紐付けられた前記学習セルのうち、前記複数の要素値と前記学習セルの出力値との間の相関値が最も大きい前記学習セルの前記スコアを、対応する前記行動候補のスコアに設定し、
前記選択する手段は、前記複数の行動候補のうち、前記スコアが最も大きい前記行動候補を選択し、
前記調整する手段は、選択した前記行動候補を実行した結果に基づいて、選択した前記行動候補に紐付けられている前記学習セルの前記スコアを調整する
ことを特徴とする付記１７記載のプログラム。
【０１５５】
（付記１９）
前記取得する手段は、前記状況情報データをキーとして前記複数の行動候補の各々に対する前記スコアを与えるデータベースを有する
ことを特徴とする付記１７記載のプログラム。
【０１５６】
（付記２０）
前記選択する手段は、前記環境及び前記自己の状況が特定の条件を満たす場合に、前記特定の条件に応じた所定の行動を優先して実行する
ことを特徴とする付記１７乃至１９のいずれか１項に記載のプログラム。
【０１５７】
（付記２１）
付記１７乃至２０のいずれか１項に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【０１５８】
（付記２２）
付記１乃至１２のいずれか１項に記載の行動学習装置と、
前記行動学習装置が働きかける対象である環境と
を有することを特徴とする行動学習システム。
【０１５９】
この出願は、２０１８年６月１１日に出願された日本出願特願２０１８−１１０７６７及び２０１８年１２月１７日に出願された日本出願特願２０１８−２３５２０４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１６０】
１０…行動候補取得部
２０…状況情報生成部
３０…スコア取得部
４０…ニューラルネットワーク部
４２，４４…セル
４６…学習セル
５０…判定部
６０…学習部
６２…重み修正部
６４…学習セル生成部
７０…行動選択部
８０…スコア調整部
９０…行動提案部
９２…ノウハウ生成部
１００…行動学習装置
２００…環境
３００…ＣＰＵ
３０２…主記憶部
３０４…通信部
３０６…入出力インターフェース部
３０８…システムバス
３１０…出力装置
３１２…入力装置
３１４…記憶装置
４００…行動学習システム
【図１】
0006970949.tif 000007
【図２】
0006970949.tif 000008
【図３】
0006970949.tif 000009
【図４】
0006970949.tif 000010
【図５】
0006970949.tif 000011
【図６】
0006970949.tif 000012
【図７】
0006970949.tif 000013
【図８】
0006970949.tif 000014
【図９】
0006970949.tif 000015
【図１０】
0006970949.tif 000016
【図１１】
0006970949.tif 000017
【図１２】
0006970949.tif 000018
【図１３】
0006970949.tif 000019
【図１４】
0006970949.tif 000020
【図１５】
0006970949.tif 000021
【図１６】
0006970949.tif 000022
【図１７】
0006970949.tif 000023
【図１８】
0006970949.tif 000024
【図１９】
0006970949.tif 000025
【図２０】
0006970949.tif 000026