(57)【要約】  情報処理装置（２０００）は、入力データ（１０）を取得する。情報処理装置（２０００）は、ニューラルネットワーク（３０）を用いて、使用ルールセット（６０）の中から、入力データ（１０）に関する予測に用いる予測ルール（５０）を抽出する。使用ルールセット（６０）は、入力データ（１０）に関する予測に用いる予測ルール（５０）の候補を複数含んでいる。予測ルール（５０）は、予測の根拠を表す条件データ（５２）と、入力データ（１０）に関する予測を表す帰結データ（５４）とを対応づけた情報である。入力データ（１０）に関する予測に用いる予測ルール（５０）は、入力データ（１０）が満たす条件を示す条件データ（５２）を示す。情報処理装置（２０００）は、抽出された予測ルール（５０）が示す帰結データ（５４）に基づいて、予測結果（２０）を出力する。
2019229931.tif 000002
【特許請求の範囲】
【請求項１】
入力データを取得する取得部と、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出部と、を有し、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記抽出された予測ルールに基づく出力を行う出力部を有し、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、情報処理装置。
【請求項２】
前記ニューラルネットワークは、前記使用ルールセットに含まれる各前記予測ルールについて、前記入力データに関する予測に利用する適切さの度合いを出力し、
前記抽出部は、前記出力された適切さ度合いに基づいて、前記予測ルールの抽出を行う、請求項１に記載の情報処理装置。
【請求項３】
前記抽出部は、
前記出力された適切さ度合いが最大である前記予測ルールを抽出するか、又は、
前記出力された適切さ度合いの大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、請求項２に記載の情報処理装置。
【請求項４】
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記抽出部は、各前記予測ルールについて、前記出力された適切さ度合いと前記第１優先度との積を算出し、算出した積の大きさに基づいて、前記予測ルールの抽出を行う、請求項２に記載の情報処理装置。
【請求項５】
前記抽出部は、
前記算出された積が最大である前記予測ルールを抽出するか、又は、
前記算出された積の大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、請求項４に記載の情報処理装置。
【請求項６】
複数の前記予測ルールを含む候補ルールセットから一部の前記予測ルールを抽出し、抽出した複数の前記予測ルールを含む前記使用ルールセットを生成する生成部を有する、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
前記候補ルールセットにおいて、前記予測ルールには、前記候補ルールセットから抽出する優先度合いを表す第２優先度が与えられており、
前記生成部は、
前記第２優先度が高い予測ルールほど高い確率で前記候補ルールセットからサンプリングするサンプリング処理を複数回行い、少なくとも一回サンプリングされた各前記予測ルールを含む前記使用ルールセットを生成する、請求項６に記載の情報処理装置。
【請求項８】
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記生成部は、前記予測ルールの第１優先度を、前記候補ルールセットからサンプリングされた回数が多いほど大きい値にする、請求項７に記載の情報処理装置。
【請求項９】
前記ニューラルネットワークのパラメータを更新する訓練部を有し、
前記訓練部は、訓練入力データ及び訓練正解データを取得し、
前記ニューラルネットワークは、各前記予測ルールについて、前記訓練入力データに対応する予測ルールとして選択される確率の高さを表す値を出力し、
前記訓練部は、各前記予測ルールについて出力された前記値と前記訓練正解データとを用いて予測損失を算出し、その予測損失が減少するように前記ニューラルネットワークのパラメータを更新する、請求項１乃至８いずれか一項に記載の情報処理装置。
【請求項１０】
コンピュータによって実行される制御方法であって、
入力データを取得する取得ステップと、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出ステップと、を有し、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記抽出された予測ルールに基づく出力を行う出力ステップを有し、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、制御方法。
【請求項１１】
前記ニューラルネットワークは、前記使用ルールセットに含まれる各前記予測ルールについて、前記入力データに関する予測に利用する適切さの度合いを出力し、
前記抽出ステップにおいて、前記出力された適切さ度合いに基づいて、前記予測ルールの抽出を行う、請求項１０に記載の制御方法。
【請求項１２】
前記抽出ステップにおいて、
前記出力された適切さ度合いが最大である前記予測ルールを抽出するか、又は、
前記出力された適切さ度合いの大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、請求項１１に記載の制御方法。
【請求項１３】
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記抽出ステップにおいて、各前記予測ルールについて、前記出力された適切さ度合いと前記第１優先度との積を算出し、算出した積の大きさに基づいて、前記予測ルールの抽出を行う、請求項１１に記載の制御方法。
【請求項１４】
前記抽出ステップにおいて、
前記算出された積が最大である前記予測ルールを抽出するか、又は、
前記算出された積の大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、請求項１３に記載の制御方法。
【請求項１５】
複数の前記予測ルールを含む候補ルールセットから一部の前記予測ルールを抽出し、抽出した複数の前記予測ルールを含む前記使用ルールセットを生成する生成ステップを有する、請求項１０乃至１４いずれか一項に記載の制御方法。
【請求項１６】
前記候補ルールセットにおいて、前記予測ルールには、前記候補ルールセットから抽出する優先度合いを表す第２優先度が与えられており、
前記生成ステップにおいて、
前記第２優先度が高い予測ルールほど高い確率で前記候補ルールセットからサンプリングするサンプリング処理を複数回行い、少なくとも一回サンプリングされた各前記予測ルールを含む前記使用ルールセットを生成する、請求項１５に記載の制御方法。
【請求項１７】
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記生成ステップにおいて、前記予測ルールの第１優先度を、前記候補ルールセットからサンプリングされた回数が多いほど大きい値にする、請求項１６に記載の制御方法。
【請求項１８】
前記ニューラルネットワークのパラメータを更新する訓練ステップを有し、
前記訓練ステップにおいて、訓練入力データ及び訓練正解データを取得し、
前記ニューラルネットワークは、各前記予測ルールについて、前記訓練入力データに対応する予測ルールとして選択される確率の高さを表す値を出力し、
前記訓練ステップにおいて、各前記予測ルールについて出力された前記値と前記訓練正解データとを用いて予測損失を算出し、その予測損失が減少するように前記ニューラルネットワークのパラメータを更新する、請求項１０乃至１７いずれか一項に記載の制御方法。
【請求項１９】
請求項１０乃至１８いずれか一項に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はニューラルネットワークを利用した予測に関する。
【背景技術】
【０００２】
機械学習分野において、単純な条件を複数組み合わせるルールベースのモデルは、解釈が容易であるという利点がある。その代表例は決定木である。決定木のひとつひとつのノードは単純な条件を表しており、決定木をルートから葉に辿ることは、複数の単純な条件を組み合わせた判定ルールを用いて予測することに相当する。【０００３】
一方、ニューラルネットワークのような複雑なモデルを用いた機械学習が高い予測性能を示し、注目を集めている。特に、画像やテキストなど、複雑な表現を持つデータにおいて、決定木のようなルールベースのモデルに比べて高い予測性能を示している。【０００４】
ニューラルネットワークのような複雑なモデルの欠点は、その内部構造が複雑であるため、推論過程を解釈することが難しいことである。すなわち、人間がその予測の根拠を理解しづらいことである。たとえば、ＹＥＳかＮＯを出力する二値分類を行う場合を考える。ニューラルネットワークでは、ＹＥＳとＮＯのどちらであるかを高い精度で出力することができる。しかしながら、ＹＥＳとＮＯの判別過程が複雑であり、人間がその根拠を理解することは難しい。【０００５】
上記技術分野において、非特許文献１には、ニューラルネットワークを直接予測に使う代わりに、ニューラルネットワークにグラフィカルモデルのパラメータを調整させる技術が開示されている。この技術を用いることで、ニューラルネットワークの代わりに、ニューラルネットワークよりは単純なモデルであるグラフィカルモデルを人間に提示することができる。【０００６】
非特許文献２には、訓練済みのニューラルネットワークの構造を決定木で近似する技術が開示されている。この技術を用いることで、決定木で近似できるような単純なニューラルネットワークであれば、ニューラルネットワークを模倣した動作をする決定木を人間に提示することができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Maruan Al-Shedivat、Avinava Dubey、及び Eric P. Xing、「Contextual Explanation Networks」、［online］、２０１７年５月２９日、arXiv、［２０１８年３月１日検索］、インターネット<URL:https://arxiv.org/abs/1705.10301>
【非特許文献２】Jan Ruben Zilke、Eneldo Loza Mencia、及び frederik Janssen、「DeepRED - Rule Extraction from Deep Neural Networks」、Discovery Science、Springer, Cham、２０１７年、vol 9956
【発明の概要】
【発明が解決しようとする課題】
【０００８】
先行技術では、解釈の容易さと予測精度の高さが両立していない。例えば非特許文献１に開示されているグラフィカルモデルには、単純な条件の組み合わせに分解することはできないため、解釈が難しいという問題がある。また、非特許文献２に記載の技術では、利用できるニューラルネットワークのモデルが、決定木で近似できるような単純なモデルに限定されてしまうため、予測性能が低くなってしまう。【０００９】
本願発明は上記の課題に鑑みてなされたものであり、予測の根拠が容易に解釈でき、なおかつ精度が高い予測を実現することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、１）入力データを取得する取得部と、２）ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、入力データに対応する予測ルールを抽出する抽出部と、を有する。予測ルールは、予測の根拠となる条件を示す条件データと、条件データが示す条件に基づく予測を表す帰結データとを対応づけている。当該情報処理装置は、さらに、３）抽出された予測ルールに基づく出力を行う出力部を有する。入力データに対応する予測ルールの条件データは、取得した入力データが満たす条件を示す。【００１１】
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、１）入力データを取得する取得ステップと、２）ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、入力データに対応する予測ルールを抽出する抽出ステップと、を有する。予測ルールは、予測の根拠となる条件を示す条件データと、条件データが示す条件に基づく予測を表す帰結データとを対応づけている。当該制御方法は、さらに、３）抽出された予測ルールに基づく出力を行う出力ステップを有する。入力データに対応する予測ルールの条件データは、取得した入力データが満たす条件を示す。【００１２】
本発明のプログラムは、コンピュータに、本発明の制御方法が有する各ステップを実行させる。
【発明の効果】
【００１３】
本発明によれば、予測の根拠が容易に解釈でき、なおかつ精度が高い予測が実現される。
【図面の簡単な説明】
【００１４】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１５】
【図１】本実施形態の情報処理装置が行う処理を概念的に示す図である。
【図２】決定木、及び決定木に対応する予測ルールの一例を示す図である。
【図３】グラフィカルモデル、及びグラフィカルモデルに対応する予測式の一例を示す図である。
【図４】実施形態１の情報処理装置の機能構成を例示する図である。
【図５】情報処理装置を実現するための計算機を例示する図である。
【図６】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図７】ニューラルネットワークの構成を例示する図である。
【図８】ニューラルネットワークの具体的な構成を例示する図である。
【図９】実施形態２の情報処理装置の機能構成を例示するブロック図である。
【図１０】実施形態３の情報処理装置の機能構成を例示するブロック図である。
【図１１】使用ルールセットの最適化とニューラルネットワークの最適化を並行して行う手法を例示する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１７】
［実施形態１］
＜概要＞
図１は、本実施形態の情報処理装置が行う処理を概念的に示す図である。情報処理装置２０００は、入力されたデータに関する予測を出力する。図１において、入力されるデータは入力データ１０であり、予測の結果を表すデータは予測結果２０である。入力に対する予測を行う処理としては、例えば、入力された画像データに含まれるオブジェクトのクラス（例えば、人、犬、車など）を予測する処理（分類問題）がある。この場合、入力された画像データが入力データ１０である。また、予測結果２０は、予測されたクラス及びその予測の根拠を示す。
【００１８】
情報処理装置２０００は、入力データ１０を取得すると、ニューラルネットワーク（NN: Neural Network）３０を用いて、使用ルールセット６０の中から、入力データ１０に関する予測に用いる予測ルール５０を抽出する。使用ルールセット６０は、入力データ１０に関する予測に用いる予測ルール５０の候補を複数含んでいる。予測ルール５０は、予測の根拠を表す条件データ５２と、入力データ１０に関する予測を表す帰結データ５４とを対応づけた情報である。予測ルール５０が対応づける条件データ５２と帰結データ５４は、条件節と帰結節の関係にあると言える。使用ルールセット６０から予測ルール５０を抽出することは、入力データ１０に関する予測（帰結データ５４）と、その予測の根拠（条件データ５２）とを特定することに相当する。なお、入力データ１０に関する予測に用いる予測ルール５０は、入力データ１０が満たす条件を示す条件データ５２を示す。
【００１９】
情報処理装置２０００は、抽出された予測ルール５０が示す帰結データ５４に基づいて、予測結果２０を出力する。例えば予測結果２０は、予測ルール５０の内容を示す表示画面やファイルなどである。
【００２０】
例えば入力データ１０として、「x1=0.5, x2=1.5」という２次元データが入力されたとする。この場合、例えばニューラルネットワーク３０は、使用ルールセット６０の中から、「条件データ: x1>0 and x2<2, 予測データ：y=2」という予測ルール５０−１を抽出する。予測ルール５０−１は、入力データ１０が「x1>0 and x2<2」という条件を満たしていることを根拠として、「y=2」という予測を行う予測ルールである。ここで、図１に例示している各予測ルール５０のように、要素名、閾値、及び不等号の組み合わせで表される条件は、人間がその意味を容易に理解できる（すなわち、解釈が容易である）。
【００２１】
なお、後述するように、条件データ５２によって条件付けられる要素（上述の x1 や x2）は、入力データ１０によって直接示されている値ではなく、入力データ１０から抽出される特徴（例えば、画像データから抽出される特徴量）であってもよい。この場合、ニューラルネットワーク３０は、入力データ１０を入力として受け付けて入力データ１０から特徴を抽出するか、又は入力データ１０から抽出された特徴を入力として受け付け、抽出された特徴について処理を行って、予測ルール５０を出力する。特徴抽出についての詳細は後述する。また、この場合、「条件データ５２が示す条件を入力データ１０が満たす」とは、「条件データ５２が示す条件を、入力データ１０から抽出された特徴が満たす」ことを意味する。
【００２２】
＜作用効果＞
本実施形態の情報処理装置２０００によって奏される作用効果を明瞭にするため、本技術分野の前提技術である決定木とグラフィカルモデルを説明する。
【００２３】
図２は、決定木、及び決定木に対応する予測ルールの一例を示す図である。決定木の内部ノードはそれぞれ条件を表し、条件の真と偽に対応する２つの子ノードを持つ。決定木では、データが入力されると、根ノードから探索が開始される。入力されたデータについて、条件が真であれば真に対応する子ノード以下がさらに探索され、偽であれば偽に対応する子ノード以下がさらに探索される。この探索を繰り返し、葉ノードに到達すれば、葉ノードが持つ予測値を予測結果として出力する。
【００２４】
決定木のルートから葉ノードに至るパスは、それぞれ、条件部と帰結節から構成される予測ルールであると解釈できる。条件部は、根ノードから葉ノードへのパスで通過する内部ノードに含まれる条件を、否定と論理積（AND）で結合した複合条件で表される。図２の例では、決定木が持つ４つの葉ノードに対応する４つの予測ルールが示されている。
【００２５】
決定木に対応する予測ルールは、人間にとって解釈が容易である。なぜなら、一つの要素に関する単純な条件の組み合わせとして見ることができるためである。また、各条件の真偽は他の条件に影響されないため、それぞれの条件の真偽を人間が容易に判断できるためである。図２の例で言えば、「x0>1」が成り立つかどうかは要素 x0 の値だけを確認すれば良く、それ以外の要素 x1 は考慮する必要がない。また、この条件が成り立つかどうかは、真か偽のどちらかで曖昧さがない。
【００２６】
また、各条件が一つの要素と一つの閾値から構成されるとき、閾値自体が持つ意味が分かりやすく、それらの条件を組み合わせた複合的な条件の意味も分かりやすくなる。
【００２７】
例えば、機械の故障予測において、観測データが温度と湿度を表すとする。このとき、『「温度 > 45 and 湿度 > 70」という条件が成り立つ時に機械が故障する』という予測ルールが得られたとする。この予測ルールによれば、「温度が 45 度より高くなり、なおかつ湿度が 70% を超えると故障する」という直感的に分かりやすい知見が得られ、ユーザには有用である。
【００２８】
これに対し、複数の要素を組み合わせた値についての条件で予測ルールを生成すると、そのルールの解釈が難しくなる。例えば、『「3.5 * 温度 + 1.9 * 湿度 > 23」という条件が成り立つ時に機械が故障する』という予測ルールがあるとする。この場合、23 という閾値は、温度や湿度を直接的に表す値ではないため、その意味を直感的に理解することが難しい。すなわち、人は、この予測ルールを見ただけでは、温度と湿度がどのような値になると機械が故障している可能性があるのかを容易に把握できない。
【００２９】
決定木は、解釈が容易である一方で、予測性能が比較的低いという欠点がある。この欠点を解消するため、多数の要素を用いた複雑な条件をノードとして用いることによって予測性能を高めた決定木も提案されている。しかしながら、決定木を複雑にすると、予測性能が向上する反面、解釈が容易であるという利点が失われてしまう。
【００３０】
次に、グラフィカルモデルについて説明する。図３は、グラフィカルモデル、及びグラフィカルモデルに対応する予測式の一例を示す図である。図３に示すグラフィカルモデルは、ロジスティック回帰と呼ばれる最も単純なグラフィカルモデルのひとつである。w0、w1、w2 はそれぞれ、クラス C0、C1、C2 を予測するための重みベクトルである。
【００３１】
このようなグラフィカルモデルでは、各要素がそれぞれ連続値を取り、さらに各要素に連続値の重みが乗算され、それらの和によって予測結果が決まる。したがって、グラフィカルモデルに対応する予測ルール（予測式）は、人間にとって解釈が難しい。例えば、各要素の重要性は、他の要素の重みとの相対的な大きさによって決定されるため、個々の要素の重要性を独立に判断することができない。
【００３２】
前述した故障予測の例で言えば、グラフィカルモデルは、温度と湿度の値を複雑に組み合わせた予測式しか示すことができず、「温度が 45 度より高くなり、しかも湿度が 70% を超えると故障する」といった直感的な理解が可能な予測式を生成できない。
【００３３】
以上のことから、１）決定木には、予測ルールの解釈は容易であるものの予測性能が低いという問題があり、２）グラフィカルモデルには、予測性能は高いものの予測ルールの解釈が難しいという問題がある。
【００３４】
この点、本実施形態の情報処理装置２０００は、入力データ１０が入力されたことに応じ、ニューラルネットワーク３０を利用して、予測の根拠（条件データ５２）とその根拠に基づく予測の結果（帰結データ５４）とを含む予測ルール５０を得ることで、入力データ１０に関する予測を行う。すなわち、情報処理装置２０００が行う予測は、条件節と帰結節とで構成される予測ルールに従った予測に相当する。よって、情報処理装置２０００によれば、人間にとって解釈が容易な予測ルールをユーザに提供することが可能となる。特に、条件節が単純な条件（例えば１つの要素に関する閾値条件）の組み合わせで構成される場合、人間にとっての解釈容易性が高くなる。
【００３５】
さらに情報処理装置２０００は、予測ルール５０の抽出にニューラルネットワーク３０を利用する。一般に、ニューラルネットワークは決定木と比べて予測精度が高い。よって、情報処理装置２０００を利用することで、決定木の様に理解が容易な予測ルールをユーザに提供することを可能にしつつ、精度の高い予測を行うことができる。
【００３６】
ここで、情報処理装置２０００における重要な利点の１つとして、「ニューラルネットワーク３０のモデルの複雑さに制限がない」ということがある。ニューラルネットワークを決定木で単純化して近似する手法（非特許文献２参照）では、決定木で近似できるような単純なモデルのニューラルネットワークしか利用できないという制限がある。そのため、予測精度を高くすることが難しい。
【００３７】
この点、情報処理装置２０００では、ニューラルネットワークに予測結果２０そのものを出力させるのではなく、予測結果２０の決定に利用する予測ルール５０をニューラルネットワーク３０に抽出させる。よって、ニューラルネットワークそのものが予測ルールを表すわけではないため、利用するニューラルネットワークは決定木に近似可能である必要がない。そのため、任意の複雑さを持ったニューラルネットワークを用いることができる。
【００３８】
ここで、ニューラルネットワーク３０を利用して抽出される予測ルール５０は、使用ルールセット６０に含まれる複数の予測ルール５０のうちの１つである。使用ルールセット６０は、予め用意しておく。予め用意されている複数の予測ルール５０の中から、予測に利用する予測ルール５０を選択することには、予測の根拠についてユーザが納得しやすいという利点がある。
【００３９】
例えば、ニューラルネットワーク３０が使用ルールセット６０の中から予測ルール５０を抽出する代わりに、ニューラルネットワーク３０が任意の予測ルール５０を生成するように構成することも考えられる。しかしながら、ニューラルネットワーク３０が任意の予測ルール５０を生成できるようにすると、互いに類似する入力データ１０について、互いに大きく異なる予測の根拠を示す予測ルール５０が生成されるなど、予測の根拠についてユーザが納得しにくい状況になることが考えられる。
【００４０】
この点、本実施形態の情報処理装置２０００によれば、使用ルールセット６０に含まれる予測ルール５０という、予め定めた範囲内の予測ルール５０を利用するため、予測の根拠についてユーザが納得しにくいという状況になることを防ぐことができる。
【００４１】
なお、図１を参照した上述の説明は、情報処理装置２０００の理解を容易にするための例示であり、情報処理装置２０００の機能を限定するものではない。以下、本実施形態の情報処理装置２０００についてさらに詳細に説明する。
【００４２】
＜情報処理装置２０００の機能構成の例＞
図４は、実施形態１の情報処理装置２０００の機能構成を例示する図である。情報処理装置２０００は、取得部２０２０、抽出部２０４０、及び出力部２０６０を有する。取得部２０２０は、入力データ１０を取得する。抽出部２０４０は、ニューラルネットワーク３０を用いて、使用ルールセット６０の中から、入力データ１０に対応する予測ルール５０を抽出する。出力部２０６０は、抽出された予測ルール５０に基づいて予測結果２０を出力する。
【００４３】
＜情報処理装置２０００のハードウエア構成＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、情報処理装置２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００４４】
図５は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、Personal Computer（PC）やサーバマシンなどである。計算機１０００は、情報処理装置２０００を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【００４５】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。
【００４６】
プロセッサ１０４０は、CPU（Central Processing Unit）、GPU（Graphics Processing Unit）、FPGA（Field-Programmable Gate Array）などの種々のプロセッサである。メモリ１０６０は、RAM（Random Access Memory）などを用いて実現される主記憶装置である。ストレージデバイス１０８０は、ハードディスク、SSD（Solid State Drive）、メモリカード、又は ROM（Read Only Memory）などを用いて実現される補助記憶装置である。
【００４７】
入出力インタフェース１１００は、計算機１０００と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース１１００には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。ネットワークインタフェース１１２０は、計算機１０００を通信網に接続するためのインタフェースである。この通信網は、例えば LAN（Local Area Network）や WAN（Wide Area Network）である。ネットワークインタフェース１１２０が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【００４８】
ストレージデバイス１０８０は、情報処理装置２０００の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールをメモリ１０６０に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【００４９】
ストレージデバイス１０８０は、使用ルールセット６０をさらに記憶していてもよい。ただし、使用ルールセット６０は、計算機１０００から取得可能な情報であればよく、ストレージデバイス１０８０に記憶されていなければならないものではない。例えば使用ルールセット６０は、ネットワークインタフェース１１２０を介して計算機１０００と接続されているデータベースサーバに記憶させておくことができる。
【００５０】
＜処理の流れ＞
図６は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。取得部２０２０は、入力データ１０を取得する（Ｓ１０２）。抽出部２０４０は、ニューラルネットワーク３０を用い、使用ルールセット６０から、入力データ１０に対応する予測ルール５０を抽出する（Ｓ１０４）。出力部２０６０は、予測ルール５０に基づいて、予測結果２０を出力する（Ｓ１０６）。
【００５１】
＜入力データ１０の取得：Ｓ１０２＞
取得部２０２０は入力データ１０を取得する（Ｓ１０２）。入力データ１０は、目的とする予測を行うために必要なデータである。例えば前述したように、画像データに含まれるオブジェクトのクラスを予測する処理においては、入力データ１０として画像データを利用することができる。ただし、入力データ１０は画像データに限定されず、テキストデータなどの任意のデータを入力データ１０とすることができる。
【００５２】
なお、画像データやテキストデータに対して特徴抽出を行う前処理を行い、その結果として得られる１つ以上の特徴（以下、特徴ベクトル）を入力データ１０としてもよい。この場合、後述するニューラルネットワーク３０は、特徴抽出を行う機能を有する必要がない。
【００５３】
入力データ１０は、１つ以上の種々のデータ（数値データ、文字データ、又は文字列データなど）で構成される。入力データ１０が２つ以上のデータで構成される場合、入力データ１０は、例えばベクトル形式で表される。例えば、(0.5, 1.5) という形式のデータが入力データ１０として得られる。
【００５４】
取得部２０２０が入力データ１０を取得する方法は任意である。例えば取得部２０２０は、入力データ１０が記憶されている記憶装置から入力データ１０を取得する。入力データ１０が記憶されている記憶装置は、情報処理装置２０００の内部に設けられていてもよいし、外部に設けられていてもよい。その他にも例えば、情報処理装置２０００は、ユーザによる入力操作によって入力される入力データ１０を取得する。その他にも例えば、取得部２０２０は、他の装置によって送信される入力データ１０を受信することで、入力データ１０を取得する。
【００５５】
＜予測ルール５０の抽出：Ｓ１０４＞
抽出部２０４０は、ニューラルネットワーク３０を用いて、使用ルールセット６０から予測ルール５０を抽出する。例えばニューラルネットワーク３０は、入力データ１０が入力されたことに応じ、使用ルールセット６０から予測ルール５０を抽出し、抽出した予測ルール５０を出力するように構成される。その他にも例えば、ニューラルネットワーク３０は、使用ルールセット６０に含まれる各予測ルール５０について、抽出すべき度合いを示すベクトルを出力してもよい。以下、ニューラルネットワーク３０の構成について具体例を挙げて説明する。
【００５６】
図７は、ニューラルネットワーク３０の構成を例示する図である。図７において、ニューラルネットワーク３０は、特徴抽出ネットワーク３２及びルール抽出ネットワーク３４を有する。なお、前述したように、入力データ１０として特徴ベクトルが入力される場合、ニューラルネットワーク３０は特徴抽出ネットワーク３２を有さなくてよい。
【００５７】
特徴抽出ネットワーク３２は、入力データ１０から特徴を抽出することで特徴ベクトルを生成するニューラルネットワークである。特徴抽出ネットワーク３２の各出力ノードは、特徴ベクトルを構成する各要素の値を出力する。例えば、畳み込みニューラルネットワークの特徴抽出層を、特徴抽出ネットワーク３２として利用することができる。ただし、特徴抽出ネットワーク３２のモデルは畳み込みニューラルネットワークには限定されず、既存の種々のモデル（例えば、多層パーセプトロンやリカレントニューラルネットワークなど）を利用することができる。
【００５８】
特徴抽出ネットワーク３２は、入力データ１０から特徴を抽出できるように予め学習させておく。なお、データから特徴を抽出するようにニューラルネットワークを学習させる技術には、既存の技術を利用することができる。
【００５９】
ルール抽出ネットワーク３４は、特徴抽出ネットワーク３２から出力された特徴ベクトルを用いて、使用ルールセット６０から予測ルール５０を抽出する。ルール抽出ネットワーク３４の複数の出力ノードそれぞれは、使用ルールセット６０に含まれる各予測ルール５０に対応づけられている。例えばルール抽出ネットワーク３４は、入力データ１０から抽出された特徴ベクトルが入力されたことに応じ、入力データ１０に対応する予測ルール５０（すなわち、抽出すべき予測ルール５０）に対応する出力ノードからは１を出力し、その他の出力ノードからは０を出力するように予め学習されている。そこで抽出部２０４０は、入力データ１０をニューラルネットワーク３０に入力し、ルール抽出ネットワーク３４において１が出力された出力ノードに対応する予測ルール５０を抽出する。
【００６０】
その他にも例えば、ルール抽出ネットワーク３４は、入力データ１０から抽出された特徴ベクトルが入力されたことに応じ、各予測ルール５０を抽出すべき度合い（例えば生起確率）を各出力ノードから出力するように予め学習されている。抽出部２０４０は、ルール抽出ネットワーク３４から各予測ルール５０について出力された値に基づいて、予測ルール５０を抽出する。例えば、ルール抽出ネットワーク３４が各予測ルール５０の生起確率を出力する場合、抽出部２０４０は、出力された各生起確率で表される確率分布に従って、使用ルールセット６０から予測ルール５０を１つサンプリングすることで、予測ルール５０を抽出する。
【００６１】
なお、ルール抽出ネットワーク３４の学習方法については後述する。
【００６２】
ルール抽出ネットワーク３４のモデルにも、特徴抽出ネットワーク３２のモデルと同様に、種々の既存のニューラルネットワークのモデルを利用できる。ここで、特徴抽出ネットワーク３２とルール抽出ネットワーク３４のモデルは、互いに同一であってもよいし、互いに異なっていてもよい。
【００６３】
ニューラルネットワーク３０の構成は、前述した特徴抽出ネットワーク３２及びルール抽出ネットワーク３４を有する構成に限定されない。例えばニューラルネットワーク３０は、特徴抽出ネットワーク３２とルール抽出ネットワーク３４の機能を併せ持つ１つのニューラルネットワークとして構成されてもよい。
【００６４】
その他にも例えば、入力データ１０から特徴データを抽出する処理には、ニューラルネットワークを用いなくてもよい。この場合、ニューラルネットワーク３０として、ルール抽出ネットワーク３４を用いる。抽出部２０４０は、入力データ１０から特徴データを抽出する処理を行い、その結果抽出された特徴データをルール抽出ネットワーク３４に入力することにより、予測ルール５０を生成する。なお、ニューラルネットワーク以外によって画像データやテキストデータなどの種々のデータから特徴を抽出する技術には、既存の技術を利用することができる。
【００６５】
また、ニューラルネットワーク３０は、入力データ１０の特徴データではなく、入力データ１０そのものに基づいて、予測ルール５０の抽出を行ってもよい。ニューラルネットワーク３０は、特徴抽出ネットワーク３２を有さず、なおかつルール抽出ネットワーク３４に対して入力データ１０を入力する。
【００６６】
＜＜ニューラルネットワーク３０の詳細な具体例＞＞
ここでは、ニューラルネットワーク３０の構成について、詳細な具体例を説明する。ただし、以下で説明する構成は一例であり、ニューラルネットワーク３０の構成には種々の構成を採用することができる。
【００６７】
図８は、ニューラルネットワーク３０の具体的な構成を例示する図である。この例では、入力データ１０以外に、正解（正しい予測結果）が既知である入力データ（以下、参照データ）が複数用意されている。そして、参照データとそれに対応する正解データとを用いて、使用ルールセット６０に含まれる各予測ルール５０に関する特徴を表す行列（以下、使用ルールセット６０の特徴行列）を用意する。ニューラルネットワーク３０は、入力データ１０から抽出される特徴ベクトルと、使用ルールセット６０の特徴行列とを用いて、各予測ルール５０を抽出すべき度合いを出力する。
【００６８】
まず、使用ルールセット６０の特徴行列を生成する方法について説明する。まず、複数の参照データを連結した行列 X （参照データはベクトル）を特徴抽出ネットワークに入力することで、各参照データの特徴ベクトルを連結した行列 D が得られる。ここで、特徴ベクトルのサイズを h とし、参照データの数を m とする。よって、行列 D はサイズ (m,h) の行列である。なお、この特徴抽出ネットワークは、前述した特徴抽出ネットワーク３２と同様のものである。
【００６９】
次に、行列 D を任意の変換層（例えば線形変換を行う層）を用いて変換し、この変換によって得られた行列と、正規化された真理値行列 Tnorm とについて行列積を算出することにより、使用ルールセット６０の特徴行列 V が得られる。なお、変換層は設けなくてもよい。
【００７０】
正規化された真理値行列 Tnorm は、真理値行列 T を、各行の合計が１になるように正規化したものである。真理値行列 T は、複数の参照データそれぞれについて、各予測ルール５０の条件データ５２を満たすか否かを表す真理値を示す。真理値行列 T は、サイズ (m,n) の行列であり、各要素は１か０のどちらかの値を取る。真理値行列 T の j 行 i 列の値は、j 番目の予測ルール rj を i 番目の参照データの特徴ベクトル fi が満たすときに１となり、それ以外のときに０となる。
【００７１】
特徴行列 V は、サイズ (m,h) の行列である。i 番目の行は、予測ルール ri の特徴ベクトルを表す。上記の計算から、予測ルール ri の特徴ベクトルは、特徴ベクトルが予測ルール ri を満たす参照データの特徴ベクトルを変換したものの平均となる。
【００７２】
入力データ１０は、特徴抽出ネットワーク３２に入力されることで、特徴ベクトル d に変換される。そして、特徴ベクトル ｄ を任意の変換層に入力し、ベクトル d' を得る。なお、変換層は設けなくてもよい。
【００７３】
さらに、入力データ１０から得られたベクトル d' と、予測ルール５０の特徴行列 V との行列積（d'V）として、アテンション a を得る。アテンション a はサイズ m のベクトルであり、i 番目の要素は、入力データ１０に対する予測ルール ri の適切度合い（入力データ１０に関する予測に利用する適切さの度合い）を表す。
【００７４】
さらに、入力データ１０の各予測ルール５０に関する真理値（すなわち、入力データ１０が各予測ルール５０の条件データ５２を満たすかどうか）を利用して、アテンション a を変換する。この処理は、入力データ１０が条件データ５２を満たさない予測ルール５０が、抽出部２０４０によって抽出されないようにするための処理である。
【００７５】
具体的には、入力データ１０の各予測ルール５０に関する真理値を表す真理値ベクトル t の各要素にマイナス１を加算した後、各要素にマイナス∞を掛ける。この真理値ベクトルは、i 番目の要素に、予測ルール ri についての真理値を示す。すなわち、i 番目の要素の値は、入力データ１０が予測ルール ri の条件データ５２を満たす場合に１であり、入力データ１０が予測ルール ri の条件データ５２を満たさない場合に０である。
【００７６】
上述した処理の結果、ベクトル t は、入力データ１０が条件データ５２を満たす予測ルール５０に対応する要素に０を示し、入力データ１０が条件データ５２を満たさない予測ルール５０に対応する要素にマイナス∞を示すベクトルに変換される。そして、変換後のベクトル t をアテンション a に加算することで、アテンション a' を得る。アテンション a' において、入力データ１０が条件データ５２を満たさない予測ルール５０に対応する要素はマイナス∞であり、その他の要素はアテンション a の対応する要素と同じである。
【００７７】
ニューラルネットワーク３０は、アテンション a' に基づくベクトルを出力する。例えばニューラルネットワーク３０は、アテンション a' を argmax 層（argmax 関数による変換を行う層）で変換したベクトルを出力する。この場合、ニューラルネットワーク３０は、アテンション a' において値が最大の要素に対応する出力ノードのみから１を出力し、その他の出力ノードからは０を出力する。抽出部２０４０は、１を出力した出力ノードに対応する予測ルール５０を抽出する。
【００７８】
ここで、後述するように、各予測ルール５０には予め優先度（第１優先度と呼ぶ）が与えられていてもよい。この場合、例えばニューラルネットワーク３０は、アテンション a' を softmax 層（softmax 関数による変換を行う層）で変換したベクトルを出力する。softmax 層により、アテンション a' の各要素が、その要素の大きさに基づく確率に変換される。抽出部２０４０は、ニューラルネットワーク３０から出力されたベクトルと、事前に与えられている各予測ルール５０の優先度を表すベクトルとを乗算し、乗算結果のベクトルを argmax 層で変換する。抽出部２０４０は、値が１である予測ルール５０を抽出する。こうすることで、ニューラルネットワーク３０から出力された確率と優先度の積が最大である予測ルール５０が抽出される。よって、各予測ルール５０の優先度を加味した上で、最も適切な予測ルール５０を抽出することができる。
【００７９】
＜予測結果２０の出力：Ｓ１０６＞
出力部２０６０は、抽出された予測ルール５０に基づいて、予測結果２０を出力する（Ｓ１０６）。例えば出力部２０６０は、予測ルール５０の内容を表す文字列を予測結果２０として出力する。その他にも例えば、出力部２０６０は、予測ルール５０の内容をグラフや図などを用いてグラフィカルに表した情報を予測結果２０として出力してもよい。
【００８０】
予測ルール５０を表す情報の出力先は様々である。例えば出力部２０６０は、ディスプレイ装置に、抽出された予測ルール５０を表す情報を表示させる。その他にも例えば、出力部２０６０は、記憶装置に、抽出された予測ルール５０を表す情報を記憶させてもよい。その他にも例えば、ユーザが他の端末から情報処理装置２０００にアクセスしている場合、情報処理装置２０００は、当該他の端末に、抽出された予測ルール５０を表す情報を送信してもよい。
【００８１】
＜予測ルール５０の優先度＞
予測ルール５０には優先度が付されていてもよい。前述したように、この優先度を第１優先度と呼ぶ。この場合、抽出部２０４０は、ニューラルネットワーク３０の出力結果と、予測ルール５０に付された第１優先度とに基づいて、抽出する予測ルール５０を決定する。例えば前述したように、ニューラルネットワーク３０から各予測ルール５０の生起確率を示すベクトルが抽出されるようにし、抽出部２０４０は、このベクトルと、各予測ルール５０の第１優先度を示すベクトルとの積を算出する。そして、抽出部２０４０は、算出されたベクトルに基づいて予測ルール５０を抽出する。例えば前述したように、抽出部２０４０は、上述した積が最大の予測ルール５０を抽出する。その他にも例えば、抽出部２０４０は、各予測ルール５０について算出された上述の積に基づく確率分布に従って、使用ルールセット６０から予測ルール５０をサンプリングすることで、予測ルール５０を抽出してもよい。
【００８２】
［実施形態２］
実施形態２の情報処理装置２０００は、使用ルールセット６０を生成する機能をさらに有する。情報処理装置２０００は、候補ルールセット７０を用いて使用ルールセット６０を生成する。候補ルールセット７０は、複数の予測ルール５０を含む。候補ルールセット７０に含まれる予測ルール５０の数は、使用ルールセット６０に含まれる予測ルール５０の数より多い。すなわち、使用ルールセット６０は、候補ルールセット７０のサブセットである。以下で説明する点を除き、実施形態２の情報処理装置２０００は、実施形態１の情報処理装置２０００と同様の機能を有する。
【００８３】
図９は、実施形態２の情報処理装置２０００の機能構成を例示するブロック図である。実施形態２の情報処理装置２０００は生成部２０８０を有する。生成部２０８０は、候補ルールセット７０を用いて使用ルールセット６０を生成する。具体的には、生成部２０８０は、候補ルールセット７０の中から複数の予測ルール５０を抽出し、抽出した複数の予測ルール５０を含む使用ルールセット６０を生成する。候補ルールセット７０から予測ルール５０を抽出する詳細な方法については後述する。
【００８４】
＜作用・効果＞
本実施形態の情報処理装置２０００によれば、抽出部２０４０が抽出する予測ルール５０の候補の集合である使用ルールセット６０を、用意された全ての予測ルール５０の集合（候補ルールセット７０）の部分集合として生成する。このように使用ルールセット６０を自動的に生成することにより、ユーザが使用ルールセット６０を生成する負担を軽減することができる。
【００８５】
また、使用ルールセット６０に含まれる予測ルール５０の数よりも多くの予測ルール５０を用意しておき、その一部で使用ルールセット６０を生成するという方法を採用することによれば、予測に不要な予測ルール５０を、情報処理装置２０００が利用する予測ルール５０の候補から除外することができる。これにより、大量のルールの中から絞り込まれた少数のルールだけで予測結果を説明できる。これにより、ユーザが予測に使われたルールを確認する負担を軽減できる。また、使用ルールセットのサイズを適切に選んだ場合は、過学習を防ぐことができ、情報処理装置２０００による予測の精度を向上させることができる。
【００８６】
＜使用ルールセット６０の生成＞
生成部２０８０が使用ルールセット６０を生成する方法には、様々な方法を採用することができる。例えば生成部２０８０は、候補ルールセット７０から所定個の予測ルール５０をランダムにサンプリングし、サンプリングした予測ルール５０を含む使用ルールセット６０を生成する。なお、サンプリングする予測ルール５０について、重複を許可してもよいし、許可しなくてもよい。前者の場合、使用ルールセット６０に含まれる予測ルール５０の数が所定個となる。一方、後者の場合、使用ルールセット６０に含まれる予測ルール５０の数が所定個以下となる。
【００８７】
ここで、重複を許可してサンプリングを行う場合、予測ルール５０に、サンプリングされた回数に応じた第１優先度を付与してもよい。すなわち、使用ルールセット６０に含める予測ルール５０の第１優先度を、候補ルールセット７０からサンプリングされた回数が多いほど高くする。
【００８８】
また、候補ルールセット７０に含まれる各予測ルール５０に、使用ルールセット６０に含める優先度（以下、第２優先度）を付しておいてもよい。この場合、生成部２０８０は、第２優先度が高い予測ルール５０ほど高い確率で使用ルールセット６０に含める。例えば、前述したサンプリングを行う際、第２優先度が大きい予測ルール５０ほど高い確率でサンプリングするようにする。各予測ルール５０をサンプリングする確率は、例えば、各予測ルール５０の第２優先度を、第２優先度の総和で割ることで算出する。
【００８９】
予測ルール５０の第２優先度の定め方は任意である。例えば、人手で生成した予測ルール５０の第２優先度を、コンピュータが自動で生成した予測ルール５０の第２優先度よりも高くする。これは、人手で生成した予測ルールの方が、コンピュータが自動生成した予測ルールよりも、解釈性が高い（人にとって読みやすい）と考えられるためである。その他にも例えば、条件データ５２が示す条件の数が少ない予測ルール５０ほど、優先度を高くしてもよい。これは、予測の根拠となる条件の数が少ない方が、解釈性が高いと言えるためである。
【００９０】
＜ハードウエア構成の例＞
実施形態２の情報処理装置２０００を実現する計算機のハードウエア構成は、実施形態１と同様に、例えば図５によって表される。ただし、本実施形態の情報処理装置２０００を実現する計算機１０００のストレージデバイス１０８０には、本実施形態の情報処理装置２０００の機能を実現するプログラムモジュールがさらに記憶される。また、本実施形態の情報処理装置２０００を実現する計算機１０００のストレージデバイス１０８０には、候補ルールセット７０が記憶されていてもよい。ただし、候補ルールセット７０は、情報処理装置２０００の外部の記憶装置ネットワークインタフェース１１２０を介して計算機１０００と接続されているデータベースサーバなど）に記憶されていてもよい。
【００９１】
［実施形態３］
実施形態３の情報処理装置２０００は、ニューラルネットワーク３０の訓練を行う機能をさらに有する。すなわち、実施形態３の情報処理装置２０００は、ニューラルネットワーク３０の出力に基づいて計算される予測損失を小さくするように、ニューラルネットワーク３０の内部パラメータを更新する機能を有する。
【００９２】
そのために情報処理装置２０００は、訓練部２１００を有する。図１０は、実施形態３の情報処理装置２０００の機能構成を例示するブロック図である。訓練部２１００は、バックプロパゲーションを用いてニューラルネットワーク３０のパラメータを更新することで、ニューラルネットワーク３０の訓練を行う。
【００９３】
以下、訓練部２１００がニューラルネットワーク３０の訓練を行う具体的な方法について説明する。
【００９４】
訓練部２１００は、訓練データ８０を取得する。訓練データ８０は、訓練入力データ８２と訓練正解データ８４とが対応づけられたデータである。訓練入力データ８２は、入力データ１０と同種のデータである。すなわち、情報処理装置２０００が入力データ１０として画像データを扱うのであれば、訓練入力データ８２も画像データである。訓練正解データ８４は、訓練入力データ８２についての正解を表すデータであり、帰結データ５４と同種のデータである。例えば情報処理装置２０００が、入力データ１０に含まれるオブジェクトのクラスを予測するとする。この場合、例えば訓練正解データ８４は、訓練入力データ８２に含まれるオブジェクトのクラスを示す。
【００９５】
訓練部２１００は、訓練入力データ８２を取得部２０２０に入力し、抽出部２０４０によって抽出される予測ルール５０を得る。そして訓練部２１００は、得られた予測ルール５０に含まれる帰結データ５４及び訓練正解データ８４について、予測損失を算出する。この予測損失としては、例えば、ニューラルネットワークの訓練に使われる一般的な予測損失（平均二乗誤差や交差エントロピー誤差など）を用いることができる。
【００９６】
訓練部２１００は、算出された予測損失を減少させるようにバックプロパゲーション処理を行うことで、ニューラルネットワーク３０のパラメータを更新する。ここで、少なくとも訓練部２１００は、ルール抽出ネットワーク３４のパラメータの更新を行う（ルール抽出ネットワーク３４の訓練を行う）。特徴抽出ネットワーク３２については、訓練部２１００による訓練が行われても良いし、行われなくてもよい。後者の場合、特徴抽出ネットワーク３２の訓練は別途の方法で行っておく。前述したように、特徴抽出ネットワーク３２の訓練には既存の手法を利用することができる。
【００９７】
なお、訓練部２１００による訓練の際（以下、トレーニングフェーズ）と情報処理装置２０００の実際の運用時（以下、テストフェーズ）とで、抽出部２０４０の動作を異ならせてもよい。例えば実施形態１で説明したニューラルネットワーク３０の詳細な具体例において、抽出部２０４０は、argmax 関数を用いて、抽出する予測ルール５０を決定していた。しかしながら、一般に、argmax 関数はバックプロパゲーションが難しい関数であると言われている。
【００９８】
そこで例えば、トレーニングフェーズにおける抽出部２０４０、すなわち訓練部２１００によって利用される際の抽出部２０４０は、argmax 関数の代わりに、バックプロパゲーションが可能な関数を利用するように構成しておく。例えば、softmax 関数を利用することが好適である。softmax 関数は、argmax 関数の連続的な近似と見ることができる。そのため、softmax 関数を利用することにより、argmax 関数を利用した場合と近い出力結果を得つつ、バックプロパゲーションが容易となる。
【００９９】
なお、温度つきの softmax 関数を利用することが特に有用である。これにより、より argmax 関数の出力に近い出力を得ることができる。以下の数式（１）は、温度つきの softmax 関数を表す式である。
【数１】
2019229931.tif 000003
ここで、a_(i) は、i 番目の予測ルール５０に対応する softmax 関数の出力であり、τは温度を表す。
【０１００】
その他にも、Gumbel-Softmax 関数や、その変種である ST Gumbel-Softmax 関数などを利用してもよい。Gumbel-Softmax 関数は、連続的な確率分布に従ってサンプリングを行い、one-hot ベクトルに近いベクトルを生成する関数である。
【０１０１】
訓練部２１００は、訓練入力データ８２を入力することで得られた帰結データ５４と訓練正解データ８４とについて予測損失を算出し、算出した予測損失に基づいてバックプロパゲーションを実行する。ここで、訓練用に生成された帰結データ５４と訓練用に用意された正解データとについて予測損失を算出する方法、及びその予測損失に基づいてバックプロパゲーションを行う技術には、既存の技術を利用することができる。また、バックプロパゲーションを用いて、予測損失が減少するようにパラメータを更新する技術には、確率的勾配降下法、Momentum、又は AdaGrad などの種々の技術を利用することができる。
【０１０２】
＜使用ルールセット６０の生成とニューラルネットワーク３０の訓練＞
情報処理装置２０００による予測の精度を向上させる方法として、ニューラルネットワーク３０の最適化と、使用ルールセット６０の最適化とがある。ニューラルネットワーク３０の最適化とは、ニューラルネットワーク３０を訓練することで予測損失を減少させることである。使用ルールセット６０の最適化とは、候補ルールセット７０の中から、予測に有用な予測ルール５０を適切に抽出することである。
【０１０３】
ここでは、ニューラルネットワーク３０の訓練を行いつつ、使用ルールセット６０に含める予測ルール５０を決定していく手法（すなわち、ニューラルネットワーク３０の最適化と使用ルールセット６０の最適化を並行して行う手法）について説明する。まず、手法の説明に入る前に、手法の説明に必要な定式化を行う。
【０１０４】
まず、候補ルールセット７０に含まれる各予測ルール５０の生起確率を表すパラメータベクトルをθ0と表記する。θ0は、候補ルールセット７０に含まれる各予測ルール５０に与えられた第２優先度に基づいて決まる。生成部２０８０は、パラメータベクトルθ0が表す生起確率の下でλ回のサンプリングを行うことで、使用ルールセット６０を生成する。ここで、使用ルールセット６０に含まれる予測ルール５０には、第１優先度として、候補ルールセット７０からその予測ルール５０がサンプリングされた回数に比例する生起確率を与えるとする。この生起確率を表すパラメータベクトルθは、以下の様に定式化される。
【数２】
2019229931.tif 000004
【０１０５】
カウント c は、候補ルールセット７０に含まれる予測ルール５０の数に等しい長さのベクトルである。c の各要素は、対応する予測ルール５０が候補ルールセット７０からサンプリングされた回数を示す。パラメータベクトルθも、候補ルールセット７０に含まれる予測ルール５０の数に等しいベクトルである。ただし、θにおいて、候補ルールセット７０からサンプリングされなかった（すなわち、使用ルールセット６０に入れられなかった）予測ルール５０についての生起確率は０となる。そのためベクトルθは、使用ルールセット６０内の各予測ルール５０に付与された生起確率を表すベクトルとも見ることができる。
【０１０６】
抽出部２０４０が使用ルールセット６０から抽出する予測ルールを z と表記すると、パラメータベクトルθに従って z を抽出するという事象は、以下のように定式化できる。また、予測ルール z が抽出される確率の分布は、P(z|θ)と表記できる。
【数３】
2019229931.tif 000005
【０１０７】
さらに、ニューラルネットワーク３０が予測ルール z を抽出する確率の分布は P(z|x,w) と表記できる。x は入力データ１０を表し、w はニューラルネットワーク３０の重みベクトルを表す。前述したニューラルネットワーク３０の詳細な具体例で言えば、P(z|x,w) は、アテンション a' を softmax 層で変換することで得られるベクトルで表される確率分布である。
【０１０８】
例えば抽出部２０４０は、P(z|x,w) と P(z|θ) とを混合することで得られる確率分布に従って、予測ルール５０を抽出する。この混合により得られる確率分布は、以下の様に表すことができる。
【数４】
2019229931.tif 000006
ここで、集合 R は候補ルールセット７０を表す。また、x は入力データを表し、y は帰結データを表す。
【０１０９】
このように２つのモデルが出力する確率分布の積を取って再度正規化する方法は、Product of experts (PoE) と呼ばれている。 モデルの出力の和を取る Mixture of Experts (MoE) に比べ、積を取る PoE では、両方のモデルで高く評価された予測ルール５０が選択される。特に、カウント c がゼロである予測ルール５０は、出現確率がゼロになるため、採択されることはなくなる。そのため、ニューラルネットワークに基づく確率の値がなんであろうとも、使用される予測ルール５０の異なり数はλを超えることがない。このモデルは、元々のルールセット（候補ルールセット７０）から、部分集合となる小規模なルールセット（使用ルールセット６０）をサンプリングして、そのサンプリングされたルールセットからさらに予測ルール５０を選んでいると見なすことができる。 
【０１１０】
上述した定式化の下で、使用ルールセット６０の最適化とニューラルネットワーク３０の最適化を並行して行う手法について説明する。この手法には、例えば、メトロポリス・ヘイスティングス法によってパラメータθの事後確率を近似する一般化 EM アルゴリズムを用いる。すなわち事後分布 p(θ|Y, X, w, θ0, λ) からθをサンプリングし、サンプリングされたθに基づいて w を更新する。ここで、X は訓練入力データ８２をまとめた行列であり、i番目の行に i 番目の訓練入力データ xi を示す。また、Yは、訓練正解データ８４をまとめた行列であり、i 番目の行に i 番目の訓練正解データ yi を示す。
【０１１１】
図１１は、使用ルールセット６０の最適化とニューラルネットワーク３０の最適化を並行して行う手法を例示する図である。T は、図１１に示す一連の処理の繰り返し回数を表すハイパーパラメータである。n は、訓練入力データ xi と訓練正解データ yi のペアの総数を表す。s は、サンプリングの数を定めるハイパーパラメータである。
【０１１２】
図１１に示す手法では、後述する提案分布 g(θ'|θ) から新しいθ'をサンプリングし、以下の数式に示す採択確率 A に基づいて採択を決定する。すなわち、０から１の範囲の乱数が採択確率を下回れば採択し、それ以外は棄却する。
【数５】
2019229931.tif 000007
【０１１３】
提案分布は、できるだけ採択確率が大きくなるような分布を設定することが望ましい。ここでは、以下のように提案を実現する。すなわち、多項分布から生成されたカウント c は出現数の合計がλである。この出現数から一様な確率 1/λ でカウントを１減少させる。そして、以下の数式（９）に示す確率 B で予測ルール z をひとつランダムに選んでカウント c に追加したカウント c' として、θ'=c'/λを得る。
【数６】
2019229931.tif 000008
【０１１４】
この提案分布では、予測ルール５０に予め与えられた第２優先度に基づく生起確率と、ニューラルネットワーク３０の出力から得られる生起確率との積が大きい予測ルール５０が追加される。そのため、一様ランダムに予測ルール５０を選ぶよりも、前述した採択確率に基づく採択において採択される蓋然性が高くなる。
【０１１５】
採択されたサンプルの集合をΘとし て、以下の数式（１０）で近似する負の対数尤度の期待値を損失として、バックプロパゲーションを行う（図１１の１１行目）。これにより、ニューラルネットワークの重 み w を更新する。 
【数７】
2019229931.tif 000009
【０１１６】
図１１の１行目から１１行目までの処理により、ニューラルネットワークが最適化される。そののち、最大事後確率推定（MAP 推定）を用いて、θ（すなわち、使用ルールセット６０）を点推定する。すなわち、サンプリングされたθのうち、負の対数尤度が最小にあるものを採用して、使用ルールセット６０とする。
【０１１７】
＜ハードウエア構成の例＞
実施形態３の情報処理装置２０００を実現する計算機のハードウエア構成は、実施形態１と同様に、例えば図５によって表される。ただし、本実施形態の情報処理装置２０００を実現する計算機１０００のストレージデバイス１０８０には、本実施形態の情報処理装置２０００の機能を実現するプログラムモジュールがさらに記憶される。
【０１１８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の構成を組み合わせた構成や、上記以外の様々な構成を採用することもできる。
【図１】
2019229931.tif 000010
【図２】
2019229931.tif 000011
【図３】
2019229931.tif 000012
【図４】
2019229931.tif 000013
【図５】
2019229931.tif 000014
【図６】
2019229931.tif 000015
【図７】
2019229931.tif 000016
【図８】
2019229931.tif 000017
【図９】
2019229931.tif 000018
【図１０】
2019229931.tif 000019
【図１１】
2019229931.tif 000020
【手続補正書】
【提出日】令和2年11月19日(2020.11.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力データを取得する取得部と、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出部と、を有し、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記抽出された予測ルールに基づく出力を行う出力部を有し、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、情報処理装置。
【請求項２】
前記ニューラルネットワークは、前記使用ルールセットに含まれる各前記予測ルールについて、前記入力データに関する予測に利用する適切さの度合いを出力し、
前記抽出部は、前記出力された適切さ度合いに基づいて、前記予測ルールの抽出を行う、請求項１に記載の情報処理装置。
【請求項３】
前記抽出部は、
前記出力された適切さ度合いが最大である前記予測ルールを抽出するか、又は、
前記出力された適切さ度合いの大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、請求項２に記載の情報処理装置。
【請求項４】
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記抽出部は、各前記予測ルールについて、前記出力された適切さ度合いと前記第１優先度との積を算出し、算出した積の大きさに基づいて、前記予測ルールの抽出を行う、請求項２に記載の情報処理装置。
【請求項５】
前記抽出部は、
前記算出された積が最大である前記予測ルールを抽出するか、又は、
前記算出された積の大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、請求項４に記載の情報処理装置。
【請求項６】
複数の前記予測ルールを含む候補ルールセットから一部の前記予測ルールを抽出し、抽出した複数の前記予測ルールを含む前記使用ルールセットを生成する生成部を有する、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
前記候補ルールセットにおいて、前記予測ルールには、前記候補ルールセットから抽出する優先度合いを表す第２優先度が与えられており、
前記生成部は、
前記第２優先度が高い予測ルールほど高い確率で前記候補ルールセットからサンプリングするサンプリング処理を複数回行い、少なくとも一回サンプリングされた各前記予測ルールを含む前記使用ルールセットを生成する、請求項６に記載の情報処理装置。
【請求項８】
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記生成部は、前記予測ルールの第１優先度を、前記候補ルールセットからサンプリングされた回数が多いほど大きい値にする、請求項７に記載の情報処理装置。
【請求項９】
コンピュータによって実行される制御方法であって、
入力データを取得する取得ステップと、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出ステップと、を有し、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記抽出された予測ルールに基づく出力を行う出力ステップを有し、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、制御方法。
【請求項１０】
コンピュータを、
入力データを取得する取得部、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出部、および、
前記抽出された予測ルールに基づく出力を行う出力部として機能させ、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、
プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明のプログラムは、コンピュータを、入力データを取得する取得部、ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出部、および、前記抽出された予測ルールに基づく出力を行う出力部として機能させる。前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
例えば入力データ１０として、「x1=0.5, x2=1.5」という２次元データが入力されたとする。この場合、例えばニューラルネットワーク３０は、使用ルールセット６０の中から、「条件データ: x1>0 and x2<2, 帰結データ：y=2」という予測ルール５０−１を抽出する。予測ルール５０−１は、入力データ１０が「x1>0 and x2<2」という条件を満たしていることを根拠として、「y=2」という予測を行う予測ルールである。ここで、図１に例示している各予測ルール５０のように、要素名、閾値、及び不等号の組み合わせで表される条件は、人間がその意味を容易に理解できる（すなわち、解釈が容易である）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
なお、温度つきの softmax 関数を利用することが特に有用である。これにより、より argmax 関数の出力に近い出力を得ることができる。以下の数式（１）は、温度つきの softmax 関数を表す式である。
【数１】
2019229931.tif 000021
ここで、ai は、i 番目の予測ルール５０に対応する softmax 関数の出力であり、τは温度を表す。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の構成を組み合わせた構成や、上記以外の様々な構成を採用することもできる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下に限られない。
１．
入力データを取得する取得部と、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出部と、を有し、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記抽出された予測ルールに基づく出力を行う出力部を有し、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、情報処理装置。
２．
前記ニューラルネットワークは、前記使用ルールセットに含まれる各前記予測ルールについて、前記入力データに関する予測に利用する適切さの度合いを出力し、
前記抽出部は、前記出力された適切さ度合いに基づいて、前記予測ルールの抽出を行う、１．に記載の情報処理装置。
３．
前記抽出部は、
前記出力された適切さ度合いが最大である前記予測ルールを抽出するか、又は、
前記出力された適切さ度合いの大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、２．に記載の情報処理装置。
４．
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記抽出部は、各前記予測ルールについて、前記出力された適切さ度合いと前記第１優先度との積を算出し、算出した積の大きさに基づいて、前記予測ルールの抽出を行う、２．に記載の情報処理装置。
５．
前記抽出部は、
前記算出された積が最大である前記予測ルールを抽出するか、又は、
前記算出された積の大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、４．に記載の情報処理装置。
６．
複数の前記予測ルールを含む候補ルールセットから一部の前記予測ルールを抽出し、抽出した複数の前記予測ルールを含む前記使用ルールセットを生成する生成部を有する、１．乃至５．いずれか一つに記載の情報処理装置。
７．
前記候補ルールセットにおいて、前記予測ルールには、前記候補ルールセットから抽出する優先度合いを表す第２優先度が与えられており、
前記生成部は、
前記第２優先度が高い予測ルールほど高い確率で前記候補ルールセットからサンプリングするサンプリング処理を複数回行い、少なくとも一回サンプリングされた各前記予測ルールを含む前記使用ルールセットを生成する、６．に記載の情報処理装置。
８．
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記生成部は、前記予測ルールの第１優先度を、前記候補ルールセットからサンプリングされた回数が多いほど大きい値にする、７．に記載の情報処理装置。
９．
前記ニューラルネットワークのパラメータを更新する訓練部を有し、
前記訓練部は、訓練入力データ及び訓練正解データを取得し、
前記ニューラルネットワークは、各前記予測ルールについて、前記訓練入力データに対応する予測ルールとして選択される確率の高さを表す値を出力し、
前記訓練部は、各前記予測ルールについて出力された前記値と前記訓練正解データとを用いて予測損失を算出し、その予測損失が減少するように前記ニューラルネットワークのパラメータを更新する、１．乃至８．いずれか一つに記載の情報処理装置。
１０．
コンピュータによって実行される制御方法であって、
入力データを取得する取得ステップと、
ニューラルネットワークを用いて、予測ルールを複数含む使用ルールセットの中から、前記入力データに対応する前記予測ルールを抽出する抽出ステップと、を有し、
前記予測ルールは、予測の根拠となる条件を示す条件データと、前記条件データが示す条件に基づく予測を表す帰結データとを対応づけており、
前記抽出された予測ルールに基づく出力を行う出力ステップを有し、
前記入力データに対応する前記予測ルールの前記条件データは、前記取得した入力データが満たす条件を示す、制御方法。
１１．
前記ニューラルネットワークは、前記使用ルールセットに含まれる各前記予測ルールについて、前記入力データに関する予測に利用する適切さの度合いを出力し、
前記抽出ステップにおいて、前記出力された適切さ度合いに基づいて、前記予測ルールの抽出を行う、１０．に記載の制御方法。
１２．
前記抽出ステップにおいて、
前記出力された適切さ度合いが最大である前記予測ルールを抽出するか、又は、
前記出力された適切さ度合いの大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、１１．に記載の制御方法。
１３．
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記抽出ステップにおいて、各前記予測ルールについて、前記出力された適切さ度合いと前記第１優先度との積を算出し、算出した積の大きさに基づいて、前記予測ルールの抽出を行う、１１．に記載の制御方法。
１４．
前記抽出ステップにおいて、
前記算出された積が最大である前記予測ルールを抽出するか、又は、
前記算出された積の大きさに基づく確率分布に従って前記使用ルールセットから前記予測ルールをサンプリングすることで、前記予測ルールを抽出する、１３．に記載の制御方法。
１５．
複数の前記予測ルールを含む候補ルールセットから一部の前記予測ルールを抽出し、抽出した複数の前記予測ルールを含む前記使用ルールセットを生成する生成ステップを有する、１０．乃至１４．いずれか一つに記載の制御方法。
１６．
前記候補ルールセットにおいて、前記予測ルールには、前記候補ルールセットから抽出する優先度合いを表す第２優先度が与えられており、
前記生成ステップにおいて、
前記第２優先度が高い予測ルールほど高い確率で前記候補ルールセットからサンプリングするサンプリング処理を複数回行い、少なくとも一回サンプリングされた各前記予測ルールを含む前記使用ルールセットを生成する、１５．に記載の制御方法。
１７．
前記使用ルールセットにおいて、前記予測ルールには、前記使用ルールセットから抽出する優先度合いを表す第１優先度が与えられており、
前記生成ステップにおいて、前記予測ルールの第１優先度を、前記候補ルールセットからサンプリングされた回数が多いほど大きい値にする、１６．に記載の制御方法。
１８．
前記ニューラルネットワークのパラメータを更新する訓練ステップを有し、
前記訓練ステップにおいて、訓練入力データ及び訓練正解データを取得し、
前記ニューラルネットワークは、各前記予測ルールについて、前記訓練入力データに対応する予測ルールとして選択される確率の高さを表す値を出力し、
前記訓練ステップにおいて、各前記予測ルールについて出力された前記値と前記訓練正解データとを用いて予測損失を算出し、その予測損失が減少するように前記ニューラルネットワークのパラメータを更新する、１０．乃至１７．いずれか一つに記載の制御方法。
１９．
１０．乃至１８．いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【国際調査報告】
2019229931.tif 000022
2019229931.tif 000023
2019229931.tif 000024
2019229931.tif 000025