JP6927409B2 - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP6927409B2
JP6927409B2 JP2020503221A JP2020503221A JP6927409B2 JP 6927409 B2 JP6927409 B2 JP 6927409B2 JP 2020503221 A JP2020503221 A JP 2020503221A JP 2020503221 A JP2020503221 A JP 2020503221A JP 6927409 B2 JP6927409 B2 JP 6927409B2
Authority
JP
Japan
Prior art keywords
data
condition
prediction
neural network
conditions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020503221A
Other languages
English (en)
Other versions
JPWO2019167240A1 (ja
Inventor
穣 岡嶋
穣 岡嶋
定政 邦彦
邦彦 定政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2019167240A1 publication Critical patent/JPWO2019167240A1/ja
Application granted granted Critical
Publication of JP6927409B2 publication Critical patent/JP6927409B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/24765Rule-based classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/251Fusion techniques of input or preprocessed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • G06V10/765Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明はニューラルネットワークを利用した予測に関する。
機械学習分野において、単純な条件を複数組み合わせるルールベースのモデルは、解釈が容易であるという利点がある。その代表例は決定木である。決定木のひとつひとつのノードは単純な条件を表しており、決定木をルートから葉に辿ることは、複数の単純な条件を組み合わせた判定ルールを用いて予測することに相当する。
一方、ニューラルネットワークのような複雑なモデルを用いた機械学習が高い予測性能を示し、注目を集めている。特に、画像やテキストなど、複雑な表現を持つデータにおいて、決定木のようなルールベースのモデルに比べて高い予測性能を示している。
ニューラルネットワークのような複雑なモデルの欠点は、その内部構造が複雑であるため、推論過程を解釈することが難しいことである。すなわち、人間がその予測の根拠を理解しづらいことである。たとえば、YESかNOを出力する二値分類を行う場合を考える。ニューラルネットワークでは、YESとNOのどちらであるかを高い精度で出力することができる。しかしながら、YESとNOの判別過程が複雑であり、人間がその根拠を理解することは難しい。
上記技術分野において、非特許文献1には、ニューラルネットワークを直接予測に使う代わりに、ニューラルネットワークにグラフィカルモデルのパラメータを調整させる技術が開示されている。この技術を用いることで、ニューラルネットワークの代わりに、ニューラルネットワークよりは単純なモデルであるグラフィカルモデルを人間に提示することができる。
非特許文献2には、訓練済みのニューラルネットワークの構造を決定木で近似する技術が開示されている。この技術を用いることで、決定木で近似できるような単純なニューラルネットワークであれば、ニューラルネットワークを模倣した動作をする決定木を人間に提示することができる。
Maruan Al-Shedivat、Avinava Dubey、及び Eric P. Xing、「Contextual Explanation Networks」、[online]、2017年5月29日、arXiv、[2018年3月1日検索]、インターネット<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、2017年、vol 9956
先行技術では、解釈の容易さと予測精度の高さが両立していない。例えば非特許文献1に開示されているグラフィカルモデルには、単純な条件の組み合わせに分解することはできないため、解釈が難しいという問題がある。また、非特許文献2に記載の技術では、利用できるニューラルネットワークのモデルが、決定木で近似できるような単純なモデルに限定されてしまうため、予測性能が低くなってしまう。
本願発明は上記の課題に鑑みてなされたものであり、予測の根拠が容易に解釈でき、なおかつ精度が高い予測を実現することである。
本発明の情報処理装置は、1)入力データを取得する取得部と、2)ニューラルネットワークを用いて、入力データが満たす条件を1つ以上示す条件データを生成する生成部と、3)条件データによって示される条件の少なくとも一部を満たす用例データに対応する正解データに基づいて決定された値を、入力データに対応する予測データとして決定する決定部と、を有する。
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、1)入力データを取得する取得ステップと、2)ニューラルネットワークを用いて、入力データが満たす条件を1つ以上示す条件データを生成する生成ステップと、3)条件データによって示される条件の少なくとも一部を満たす用例データに対応する正解データに基づいて決定された値を、入力データに対応する予測データとして決定する決定ステップと、を有する。
本発明のプログラムは、コンピュータに、本発明の制御方法が有する各ステップを実行させる。
本発明によれば、予測の根拠が容易に解釈でき、なおかつ精度が高い予測が実現される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本実施形態の情報処理装置が行う処理を概念的に示す図である。 2次元の特徴空間を例示する図である。 決定木、及び決定木に対応する予測ルールの一例を示す図である。 グラフィカルモデル、及びグラフィカルモデルに対応する予測式の一例を示す図である。 実施形態1の情報処理装置の機能構成を例示する図である。 情報処理装置を実現するための計算機を例示する図である。 実施形態1の情報処理装置によって実行される処理の流れを例示するフローチャートである。 ニューラルネットワークの構成を例示する図である。 条件生成ニューラルネットワークの出力を用いて条件データを生成する処理を概念的に例示する図である。 閾値を出力する条件生成ニューラルネットワークを例示する図である。 条件生成 RNN を利用して候補条件を選択する処理の流れを例示するフローチャートである。 条件生成 RNN を利用して複合条件ベクトルが生成される流れを概念的に例示する図である。 用例情報の構成をテーブル形式で例示する図である。 用例情報の別の例を示す図である。 分類問題を扱う場合における予測データを例示する図である。 回帰問題を扱う場合における予測データを例示する図である。 予測ルール出力部を有する情報処理装置を例示するブロック図である。 予測ルールをグラフィカルに出力する例を示す図である。 条件満足度を利用して予測データを決定する処理を概念的に例示する図である。 実施形態2の情報処理装置の機能構成を例示するブロック図である。 事前に生成した条件データを条件生成ニューラルネットワークで選択するケースを例示する図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
[実施形態1]
<概要>
図1は、本実施形態の情報処理装置が行う処理を概念的に示す図である。情報処理装置2000は、入力されたデータに関する予測を出力する。図1において、入力されるデータは入力データ10であり、予測の結果を表すデータは予測データ20である。入力に対する予測を行う処理としては、例えば、入力された画像データに含まれるオブジェクトのクラス(例えば、人、犬、車など)を予測する処理(分類問題)がある。この場合、入力された画像データが入力データ10であり、予測されたクラスが予測データ20である。
情報処理装置2000は、入力データ10を取得すると、ニューラルネットワーク(NN: Neural Network)30を用いて、入力データ10が満たす条件を表す条件データ50を生成する。例えば入力データ10として、「x1=0.5, x2=1.5」という2次元データが入力されたとする。この場合、入力データ10が満たす条件としては、「x1>0 and x2<2」といった条件が考えられる。そこで例えば、ニューラルネットワーク30は、「x1=0.5, x2=1.5」という入力データについて、「x1>0 and x2<2」という条件データを生成する。このように、要素名、閾値、及び不等号の組み合わせで表される条件は、人間がその意味を容易に理解できる(すなわち、解釈が容易である)。
なお、後述するように、条件データ50によって条件付けられる要素(上述の x1 や x2)は、入力データ10によって直接示されている値ではなく、入力データ10から抽出される特徴(例えば、画像データから抽出される特徴量)であってもよい。この場合、入力データ10から特徴を抽出した上で、その特徴についての条件を表す条件データ50を生成する。特徴抽出についての詳細は後述する。
情報処理装置2000は、用例データ40を利用して予測データ20を決定する。例えば用例データ40は、上述した1つ以上の特徴の値を示す。各用例データ40には、その特徴に対応する正解を表す正解データ42が付されている。例えば上述したように、画像データに含まれるオブジェクトの分類を行うとする。この場合、正解が分かっている画像データから抽出した特徴を用例データ40に示し、その正解を表す正解データ42がその用例データ40に対応づけられている。
情報処理装置2000は、条件データ50が示す条件の少なくとも一部を満たす用例データ40に対応する正解データ42に基づいて決定された値を、予測データ20として出力する。この値は、情報処理装置2000によって決定される値であってもよいし、予め計算されている値であってもよい。
図1では一例として、情報処理装置2000が用例データ40に対応する正解データ42を用いて予測データ20を算出するケースを示している。なお、以下の説明では、特に断らない限り、条件データ50が示す条件の全てを満たす用例データ40を特定するケースについて説明する。条件データ50が示す条件の一部のみを満たす用例データ40を利用するケースについては後述する。
情報処理装置2000は、条件データ50が示す条件を満たす用例データ40を特定し、特定した用例データ40に対応する正解データ42を取得する。図1では、条件データ50が示す「x1>0 and x2<2」という条件を満たす用例データ40が2つあり、対応づけられている正解データ42はいずれも「A」である。そこで情報処理装置2000は、「A」という予測データ20を算出する。
「x1>0 and x2<2」という条件データ50から「A」という予測データ20を決定することは、「x1>0 and x2<2 -> A」という予測ルールを作り出すことにも相当する。このような予測ルールは、人にとって解釈が容易なルールであると言える。すなわち、情報処理装置2000は、入力データ10が入力されたことに応じ、動的に解釈容易な予測ルールを生成し、その予測ルールに従う予測データ20を出力するものであると言える。
なお、図1では説明を分かりやすくするために、条件データ50によって示される条件を満たす各用例データ40が、互いに同一の値を示す正解データ42に対応づけられている。しかしながら後述するように、条件データ50によって示される条件を満たす各用例データ40は、必ずしも互いに同一の値を示す正解データ42に対応づけられている必要はない。このようなケースについての説明も含め、正解データ42を用いて予測データ20を決定する方法の具体的な説明は後述する。
概念的には、条件データ50を生成することは、1つ以上の特徴によって構成される特徴空間の中から、入力データ10から抽出される特徴が属する部分空間を特定することに相当する。図2は、2次元の特徴空間を例示する図である。バツ印は、入力データ10を表す。また、「A」は、対応づけられている正解データがAである用例データ40を表し、「B」は、対応付けられている正解データがBである用例データ40を表す。情報処理装置2000は、ニューラルネットワーク30を利用して入力データ10に対応する条件データ50を生成することで、入力データ10が属する部分空間を特定する。条件データ50はその部分空間を表す。
ここで、互いに同じ部分空間に属する特徴(すなわち、類似する特徴)については、対応する出力も同じであると予想できる。そこで情報処理装置2000は、入力データ10から抽出された特徴と互いに同じ部分空間に属する各用例データ40(すなわち、条件データ50によって示される条件を満たす用例データ40)に対応付けられている正解データ42を利用して、入力データ10に対応する予測データ20を決定する。
<作用効果>
本実施形態の情報処理装置2000によって奏される作用効果を明瞭にするため、本技術分野の前提技術である決定木とグラフィカルモデルを説明する。
図3は、決定木、及び決定木に対応する予測ルールの一例を示す図である。決定木の内部ノードはそれぞれ条件を表し、条件の真と偽に対応する2つの子ノードを持つ。決定木では、データが入力されると、根ノードから探索が開始される。入力されたデータについて、条件が真であれば真に対応する子ノード以下がさらに探索され、偽であれば偽に対応する子ノード以下がさらに探索される。この探索を繰り返し、葉ノードに到達すれば、葉ノードが持つ予測値を予測結果として出力する。
決定木のルートから葉ノードに至るパスは、それぞれ、条件部と帰結節から構成される予測ルールであると解釈できる。条件部は、根ノードから葉ノードへのパスで通過する内部ノードに含まれる条件を、否定と論理積(AND)で結合した複合条件で表される。図3の例では、決定木が持つ4つの葉ノードに対応する4つの予測ルールが示されている。
決定木に対応する予測ルールは、人間にとって解釈が容易である。なぜなら、一つの要素に関する単純な条件の組み合わせとして見ることができるためである。また、各条件の真偽は他の条件に影響されないため、それぞれの条件の真偽を人間が容易に判断できるためである。図3の例で言えば、「x0>1」が成り立つかどうかは要素 x0 の値だけを確認すれば良く、それ以外の要素 x1 は考慮する必要がない。また、この条件が成り立つかどうかは、真か偽のどちらかで曖昧さがない。
また、各条件が一つの要素と一つの閾値から構成されるとき、閾値自体が持つ意味が分かりやすく、それらの条件を組み合わせた複合的な条件の意味も分かりやすくなる。
例えば、機械の故障予測において、観測データが温度と湿度を表すとする。このとき、『「温度 > 45 and 湿度 > 70」という条件が成り立つ時に機械が故障する』という予測ルールが得られたとする。この予測ルールによれば、「温度が 45 度より高くなり、なおかつ湿度が 70% を超えると故障する」という直感的に分かりやすい知見が得られ、ユーザには有用である。
これに対し、複数の要素を組み合わせた値についての条件で予測ルールを生成すると、そのルールの解釈が難しくなる。例えば、『「3.5 * 温度 + 1.9 * 湿度 > 23」という条件が成り立つ時に機械が故障する』という予測ルールがあるとする。この場合、23 という閾値は、温度や湿度を直接的に表す値ではないため、その意味を直感的に理解することが難しい。すなわち、人は、この予測ルールを見ただけでは、温度と湿度がどのような値になると機械が故障している可能性があるのかを容易に把握できない。
決定木は、解釈が容易である一方で、予測性能が比較的低いという欠点がある。この欠点を解消するため、多数の要素を用いた複雑な条件をノードとして用いることによって予測性能を高めた決定木も提案されている。しかしながら、決定木を複雑にすると、予測性能が向上する反面、解釈が容易であるという利点が失われてしまう。
次に、グラフィカルモデルについて説明する。図4は、グラフィカルモデル、及びグラフィカルモデルに対応する予測式の一例を示す図である。図4に示すグラフィカルモデルは、ロジスティック回帰と呼ばれる最も単純なグラフィカルモデルのひとつである。w0、w1、w2 はそれぞれ、クラス C0、C1、C2 を予測するための重みベクトルである。
このようなグラフィカルモデルでは、各要素がそれぞれ連続値を取り、さらに各要素に連続値の重みが乗算され、それらの和によって予測結果が決まる。したがって、グラフィカルモデルに対応する予測ルール(予測式)は、人間にとって解釈が難しい。例えば、各要素の重要性は、他の要素の重みとの相対的な大きさによって決定されるため、個々の要素の重要性を独立に判断することができない。
前述した故障予測の例で言えば、グラフィカルモデルは、温度と湿度の値を複雑に組み合わせた予測式しか示すことができず、「温度が 45 度より高くなり、しかも湿度が 70% を超えると故障する」といった直感的な理解が可能な予測式を生成できない。
以上のことから、1)決定木には、予測ルールの解釈は容易であるものの予測性能が低いという問題があり、2)グラフィカルモデルには、予測性能は高いものの予測ルールの解釈が難しいという問題がある。
この点、本実施形態の情報処理装置2000は、入力データ10が入力されたことに応じ、単純な条件(例えば1つの要素に関する閾値条件)の組み合わせとして条件データ50を生成し、その条件データ50に基づいて定まる正解データ42を利用して、予測データ20を決定する。ここで、入力データ10は、条件データ50が示す条件を満たす。そのため、条件データ50と予測データ20との対応関係は、条件節と帰結節の関係にあると見ることができる。すなわち、情報処理装置2000が行う予測は、単純な条件の組み合わせから成る条件節と、その条件によって導かれる予測データ20を示す帰結節とで構成される予測ルールに従った予測に相当する。よって、情報処理装置2000によれば、人間にとって解釈が容易な予測ルールをユーザに提供することが可能となる。
さらに情報処理装置2000は、条件データ50の生成にニューラルネットワーク30を利用する。一般に、ニューラルネットワークは決定木と比べて予測精度が高い。よって、情報処理装置2000を利用することで、決定木の様に理解が容易な予測ルールをユーザに提供することを可能にしつつ、精度の高い予測を行うことができる。
ここで、情報処理装置2000における重要な利点の1つとして、「ニューラルネットワーク30のモデルの複雑さに制限がない」ということがある。ニューラルネットワークを決定木で単純化して近似する手法(非特許文献2参照)では、決定木で近似できるような単純なモデルのニューラルネットワークしか利用できないという制限がある。そのため、予測精度を高くすることが難しい。
この点、情報処理装置2000では、ニューラルネットワークに予測データ20そのものを出力させるのではなく、予測データ20の決定に利用する条件を、ニューラルネットワークに出力させる。よって、ニューラルネットワークそのものが予測ルールを表すわけではないため、利用するニューラルネットワークは決定木に近似可能である必要がない。そのため、任意の複雑さを持ったニューラルネットワークを用いることができる。
なお、図1を参照した上述の説明は、情報処理装置2000の理解を容易にするための例示であり、情報処理装置2000の機能を限定するものではない。以下、本実施形態の情報処理装置2000についてさらに詳細に説明する。
<情報処理装置2000の機能構成の例>
図5は、実施形態1の情報処理装置2000の機能構成を例示する図である。情報処理装置2000は、取得部2020、生成部2040、及び決定部2060を有する。取得部2020は、入力データ10を取得する。生成部2040は、ニューラルネットワーク30を用いて条件データ50を生成する。条件データ50は、入力データ10が満たす1つ以上の条件の組み合わせである。決定部2060は、条件データ50によって示される条件の少なくとも一部を満たす用例データ40に対応する正解データ42に基づいて決定された値を予測データ20として決定する。
<情報処理装置2000のハードウエア構成>
情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
図6は、情報処理装置2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)やサーバマシンなどである。計算機1000は、情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
ストレージデバイス1080は、情報処理装置2000の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
ストレージデバイス1080は、用例情報をさらに記憶していてもよい。ただし、用例情報は、計算機1000から取得可能な情報であればよく、ストレージデバイス1080に記憶されていなければならないものではない。例えば用例情報は、ネットワークインタフェース1120を介して計算機1000と接続されているデータベースサーバに記憶させておくことができる。
<処理の流れ>
図7は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は、入力データ10を取得する(S102)。生成部2040は、ニューラルネットワーク30を用いて条件データ50を生成する(S104)。決定部2060は、条件データ50によって示される条件の少なくとも一部を満たす用例データ40を特定する(S106)。決定部2060は、特定した用例データ40に対応づけられた正解データ42を用いて予測データ20を決定する(S108)。
ただし、情報処理装置2000によって実行される処理の流れは、図7に示す流れに限定されない。例えば、予め条件に対応づけられて定められている値を予測データ20として利用するケースでは、決定部2060は、上述のS106とS108を実行する代わりに、条件データ50によって示される条件に対応づけられている値を取得し、取得した値を予測データ20として決定する。このように予め定められている値を予測データ20として利用するケースについても、後に詳しく説明する。
<入力データ10の取得:S102>
取得部2020は入力データ10を取得する(S102)。入力データ10は、目的とする予測を行うために必要なデータである。例えば前述したように、画像データに含まれるオブジェクトのクラスを予測する処理においては、入力データ10として画像データを利用することができる。ただし、入力データ10は画像データに限定されず、テキストデータなどの任意のデータを入力データ10とすることができる。
なお、画像データやテキストデータに対して特徴抽出を行う前処理を行い、その結果として得られる1つ以上の特徴(以下、特徴ベクトル)を入力データ10としてもよい。この場合、後述するニューラルネットワーク30は、特徴抽出を行う機能を有する必要がない。
入力データ10は、1つ以上の種々のデータ(数値データ、文字データ、又は文字列データなど)で構成される。入力データ10が2つ以上のデータで構成される場合、入力データ10は、例えばベクトル形式で表される。例えば、(0.5, 1.5) という形式のデータが入力データ10として得られる。
取得部2020が入力データ10を取得する方法は任意である。例えば取得部2020は、入力データ10が記憶されている記憶装置から入力データ10を取得する。入力データ10が記憶されている記憶装置は、情報処理装置2000の内部に設けられていてもよいし、外部に設けられていてもよい。その他にも例えば、情報処理装置2000は、ユーザによる入力操作によって入力される入力データ10を取得する。その他にも例えば、取得部2020は、他の装置によって送信される入力データ10を受信することで、入力データ10を取得する。
<条件データ50の生成:S104>
生成部2040は、ニューラルネットワーク30を用いて条件データ50を生成する。ニューラルネットワーク30は、入力データ10が入力されたことに応じ、条件データ50を生成するために必要な情報を出力するように構成される。以下、ニューラルネットワーク30の構成について具体例を挙げて説明する。
図8は、ニューラルネットワーク30の構成を例示する図である。図8において、ニューラルネットワーク30は、特徴抽出ニューラルネットワーク32及び条件生成ニューラルネットワーク34を有する。なお、前述したように、入力データ10として特徴ベクトルが入力される場合、ニューラルネットワーク30は特徴抽出ニューラルネットワーク32を有さなくてよい。
特徴抽出ニューラルネットワーク32は、入力データ10から特徴を抽出することで特徴ベクトルを生成するニューラルネットワークである。特徴抽出ニューラルネットワーク32の各出力ノードは、特徴ベクトルを構成する各要素の値を出力する。例えば、畳み込みニューラルネットワークの特徴抽出層を、特徴抽出ニューラルネットワーク32として利用することができる。ただし、特徴抽出ニューラルネットワーク32のモデルは畳み込みニューラルネットワークには限定されず、既存の種々のモデル(例えば、多層パーセプトロンやリカレントニューラルネットワークなど)を利用することができる。
特徴抽出ニューラルネットワーク32は、入力データ10から特徴を抽出できるように予め学習させておく。なお、データから特徴を抽出するようにニューラルネットワークを学習させる技術には、既存の技術を利用することができる。
条件生成ニューラルネットワーク34は、特徴抽出ニューラルネットワーク32から出力された特徴ベクトルを用いて、条件データ50を生成する。例えば条件生成ニューラルネットワーク34は、条件データ50に含める条件の候補(以下、候補条件と呼ぶ)の中から1つ以上を選択する。候補条件は、特徴ベクトルを構成する要素ごとに1つ以上定めておく。特徴ベクトルの各要素についての条件は、例えば、その要素についての閾値条件(閾値と不等号の組み合わせ)である。
例えば特徴ベクトル F が x1 と x2 という2つの要素で構成される(すなわち、F=(x1, x2))とする。この場合、候補条件は x1 と x2 それぞれについて定められる「閾値、不等号」の組み合わせである。具体的には、x1 について「x1>0」、「x1>1」、「X1<0」、及び「x1<1」などの候補条件を定めておく。x2 についても同様である。このように要素ごとに定めた閾値条件は、前述したように人にとって解釈が容易である。
条件生成ニューラルネットワーク34の各出力ノードは、予め候補条件のいずれかに対応づけられている。条件生成ニューラルネットワーク34は、特徴ベクトルが入力されたことに応じ、各出力ノードから対応する候補条件を選択するか否かを示す値が出力されるように、予め学習させておく(学習の方法については後述の実施形態2で説明する)。
例えば条件生成ニューラルネットワーク34の各出力ノードは、対応する候補条件を肯定形式(そのままの形)で選択する場合には 1 を出力し、対応する候補条件を否定形式(否定した形)で選択する場合には -1 を出力し、対応する候補条件を選択しない場合には 0 を出力する。「候補条件を否定形式で選択する」とは、例えば候補条件が「x1>0」である場合に、「X1>0」の否定である「x1<=0」を条件データ50に含めるということを意味する。
生成部2040は、対応する候補条件が選択されたことを表す出力ノード(上述の例では 1 又は -1 を出力した出力ノード)に対応する候補条件を表す情報(以下、候補条件情報)を取得する。生成部2040は、取得した候補条件情報を用いて条件データ50を生成する。
図9は、条件生成ニューラルネットワーク34の出力を用いて条件データ50を生成する処理を概念的に例示する図である。条件生成ニューラルネットワーク34は、F=(0.5, 1.0) という特徴ベクトルが入力されたことに応じ、(c1, c2, c3, c4) = (1, 0, 0, -1) を出力している。この出力は、候補条件 c1 については肯定形式で選択され、候補条件 c4 については否定形式で選択されたことを意味する。そのため、生成部2040は「c1 and ¬c4」という条件データ50を生成する。以下、上述の(c1, c2, c3, c4)の様に、条件データ50を定めるベクトルを複合条件ベクトルと呼ぶ。
候補条件情報は、生成部2040からアクセス可能な記憶装置に予め記憶させておく。ここで、候補条件は、人手で生成されてもよいし、コンピュータによって生成されてもよい。後者の場合、例えば、ランダムに選択した不等号に対してランダムに生成した閾値を組み合わせることで、各要素についての候補条件を生成する。そして、生成した各候補条件を条件生成ニューラルネットワーク34の出力ノードに割り当てるようにする。
また、候補条件をコンピュータによって生成する場合、別途候補条件生成用のニューラルネットワークを用意し、このニューラルネットワークを利用して候補条件を生成してもよい。候補条件を生成するニューラルネットワークの学習は、後述の実施形態2で説明するニューラルネットワーク30の学習と共に行うことができる。すなわち、情報処理装置2000の最終的な出力である予測データ20に基づいて定まる予測損失(詳しくは後述)の誤差を逆伝播する際に、候補条件を生成するニューラルネットワークまで誤差を逆伝播させることで学習を行うことができる。
ここで、条件生成ニューラルネットワーク34は、各候補条件について、肯定形式と否定形式のどちらで選択するかまでは判断せず、選択するか否かのみを判断するように構成されてもよい。この場合、例えば条件生成ニューラルネットワーク34は、選択する候補条件に対応する出力ノードからは 1 を出力し、選択しない候補条件に対応する出力ノードからは 0 を出力する。生成部2040は、1 を出力した出力ノードに対応する各候補条件について、その候補条件を入力データ10から抽出された特徴ベクトルが満たすか否かを判定する。そして、生成部2040は、満たすと判定された候補条件については肯定形式で条件データ50に含め、満たさないと判定された候補条件については否定形式で条件データ50に含める。
候補条件の構成は、閾値と不等号の組み合わせには限定されない。例えば候補条件は不等号のみを表すこととし、閾値は条件生成ニューラルネットワーク34によって出力されるようにしてもよい。この場合、条件生成ニューラルネットワーク34の各出力は、「特徴ベクトルの要素、不等号」の組み合わせに対応づけられる。候補条件情報は、条件生成ニューラルネットワーク34の各出力に対し、「特徴ベクトルの要素、不等号」の組み合わせを対応づけた情報となる。
条件生成ニューラルネットワーク34は、選択する候補条件に対応する出力ノードからは閾値を出力し、選択しない不等号を表すものについてはその旨を示す所定値(例えば、+∞や−∞などを表す値)を出力するように、予め学習させておく。生成部2040は、条件生成ニューラルネットワーク34の出力ノードのうち、閾値を出力した出力ノードについて、出力された閾値とその出力ノードに対応づけられている「特徴ベクトルの要素、不等号」とを対応づける。なお、コンピュータにおいて擬似的に+∞や−∞を表す方法については、既存の技術を利用することができる。
図10は、閾値を出力する条件生成ニューラルネットワーク34を例示する図である。この例では、「要素:x1、不等号:>」に対応づけられた出力ノードから -1 が出力され、「要素:x2、不等号:<=」に対応づけられた出力ノードから 3 が出力されている。そのため、生成部2040は、「x1>-1 and x2<=3」という条件データ50を生成する。
条件生成ニューラルネットワーク34のモデルにも、特徴抽出ニューラルネットワーク32のモデルと同様に、種々の既存のニューラルネットワークのモデルを利用できる。ここで、特徴抽出ニューラルネットワーク32と条件生成ニューラルネットワーク34のモデルは、互いに同一であってもよいし、互いに異なっていてもよい。
ニューラルネットワーク30の構成は、前述した特徴抽出ニューラルネットワーク32及び条件生成ニューラルネットワーク34を有する構成に限定されない。例えばニューラルネットワーク30は、特徴抽出ニューラルネットワーク32と条件生成ニューラルネットワーク34の機能を併せ持つ1つのニューラルネットワークとして構成されてもよい。
その他にも例えば、入力データ10から特徴データを抽出する処理には、ニューラルネットワークを用いなくてもよい。この場合、ニューラルネットワーク30として、条件生成ニューラルネットワーク34を用いる。生成部2040は、入力データ10から特徴データを抽出する処理を行い、その結果抽出された特徴データを条件生成ニューラルネットワーク34に入力することにより、条件データを生成する。なお、ニューラルネットワーク以外によって画像データやテキストデータなどの種々のデータから特徴を抽出する技術には、既存の技術を利用することができる。
<<ニューラルネットワーク30の詳細な具体例>>
ここでは、条件生成ニューラルネットワーク34の具体的な構成の例を説明する。本具体例において、条件生成ニューラルネットワーク34のモデルは、リカレントニューラルネットワーク(recurrent neural network)である。以下、この具体例における条件生成ニューラルネットワーク34を、条件生成 RNN 70と呼ぶ。
条件生成 RNN 70は、候補条件の内の1つを選択する処理(以下、条件選択処理)を K 回繰り返すことで、K 個の候補条件を選択する。候補条件の総数は N であるとする。
図11は、条件生成 RNN 70を利用して候補条件を選択する処理の流れを例示するフローチャートである。生成部2040は、条件生成 RNN 70の内部状態のベクトルの初期値として、特徴抽出ニューラルネットワーク32によって生成された特徴ベクトルを設定する(S202)。内部状態のベクトルは、条件生成 RNN 70の出力に影響を与える内部パラメータ群であり、条件生成 RNN 70を動作させることで更新されていく。
S204からS208までの一連の処理は、ループ処理である。このループ処理は、選択する候補条件の数と同じ回数(すなわち、K回)繰り返される。ループ処理内の一連の処理が、前述した条件選択処理を表す。
生成部2040は、条件生成 RNN 70に対し、前回のループ処理で生成された注目ベクトルを入力することで、注目ベクトルを得る(S206)。t回目のループ処理における条件生成ニューラルネットワーク34の入力と出力との関係は、例えば、数式(1)で表される。
Figure 0006927409
・・・(1)
ここで、RNN は条件生成 RNN 70を関数として表現したものである。vt は、t 回目のループ処理において条件生成 RNN 70から出力される注目ベクトルである。
注目ベクトルは、N 個(候補条件の総数)の要素を持つベクトルであり、各要素が1つの候補条件に対応している。そして、注目ベクトルは、或る1つの要素についてのみ値が1であり、その他の要素については値が0である(すなわち、one-hot ベクトルである)。注目ベクトルにおいて値が1の要素は、条件生成 RNN 70によって選択された候補条件を表す。
例えば条件生成 RNN 70は、出力層において argmax 関数を利用することにより、出力する値の内の1つのみが1となり、他の値が0となるようにする。argmax 関数は、ベクトルの入力を受け付け、入力されたベクトルにおいて最大の要素の値を1に変換し、なおかつ他の要素の値を0に変換する。
各条件選択処理で生成される注目ベクトルは、それまでに行われた条件選択処理で生成された注目ベクトルのいずれとも異なるものとする。すなわち、vt は、v1, v2, ..., vt-1 のいずれとも異なるベクトルである。
なお、S206の1回目の実行においては、生成部2040は、初期値として、事前に用意されているダミーのベクトルを入力する。例えばダミーベクトルは、要素が全てゼロであるベクトルである。
S208はループ処理の終端であるため、図11の処理はS204に戻る。
ループ処理の実行が終わった後、生成部2040は、得られた K 個の注目ベクトルの総和を算出する(S210)。その結果得られるベクトルを、複合注目ベクトルと呼ぶ。ここで、上記ループ処理の結果、それぞれ異なる K 個の注目ベクトルが得られる。よって、複合注目ベクトルは、K個の要素の値が 1 であり、他の要素の値が 0 となる。すなわち、複合注目ベクトルは、条件生成 RNN 70によって選択されたK個の候補条件を表す。
生成部2040は、選択された各候補条件についての候補条件情報を取得する。(S212)。生成部2040は、取得した候補条件情報を用いて、特徴ベクトルが選択された各候補条件を満たすか否か判定することで、複合条件ベクトルを生成する(S214)。特徴ベクトルが或る候補条件を満たす場合、生成部2040は、複合条件ベクトルにおいて、その候補条件に対応する要素の値を1にする。一方、特徴ベクトルが或る候補条件を満たさない場合、生成部2040は、複合条件ベクトルにおいて、その候補条件に対応する要素の値を -1 にする。条件生成 RNN 70によって選択されなかった各候補条件に対応する要素(すなわち、複合注目ベクトルにおいて値が0である要素)については、複合条件ベクトルにおいても0を設定する。
図12は条件生成 RNN 70を利用して複合条件ベクトルが生成される流れを概念的に例示する図である。候補条件は C1 から C4 の4つである。また、選択する候補条件の数は2つである。そのため、2つの注目ベクトルが生成されている。1つ目の注目ベクトル v1=(0,1,0,0) は2番目の要素が1である。そのため、1回目の条件選択処理では条件 c2 が選択されている。2つ目の注目ベクトル v2=(0,0,1,0) は3番目の要素が1である。そのため、2回目の条件選択処理では、条件 c3 が選択されている。
上記2つの注目ベクトルを加算することで、複合注目ベクトル (0,1,1,0) が生成される。生成部2040は、入力データ10から抽出された特徴ベクトルが条件 C2 と C3 それぞれを満たすか否かを判定する。図12の例では、C2 は満たされ(C2:真)、C3 は満たされない(C3:偽)。そのため、複合条件ベクトルは (0,1,-1,0) となる。
<用例データ40の特定:S106>
決定部2060は、条件データ50によって示される条件を満たす用例データ40を特定し、特定した用例データ40に対応する正解データ42を取得する(S106)。前述したように、用例データ40と正解データ42とを対応づけた情報を、用例情報と呼ぶ。用例情報は、情報処理装置2000が実行する予測について、予め用意された正解を表す情報である。
図13は、用例情報の構成をテーブル形式で例示する図である。図13のテーブルをテーブル200と呼ぶ。テーブル200は、用例データ202及び正解データ204を有する。
用例データ202及び正解データ204はそれぞれ、互いに対応する用例データ40と正解データ42を示す。例えば、情報処理装置2000が、画像データが入力されたことに応じ、その画像データに含まれるオブジェクトのクラスを出力するとする。この場合、用例情報は、用例データ202に画像データから抽出される特徴ベクトルを示し、正解データ204にその画像データに含まれるオブジェクトのクラスを示す。このように、テーブル200の各レコードは、特定の特徴ベクトル及びその特徴データについての正解を表している。
ここで、用例データ202は、特徴ベクトルを加工したデータを示してもよい。例えば候補条件が、要素、閾値、及び不等号の組み合わせとして予め用意されているとする。この場合、各用例について、特徴ベクトルが各候補条件を満たすかどうかを、予め判定しておくことができる。そこで例えば、用例データ202に、或る特徴ベクトルが複数の候補条件それぞれを満たすかどうかを示すフラグの集合を示すようにする。すなわち、用例データ40として特徴ベクトルをそのまま示すのではなく、その特徴ベクトルが各候補条件を満たすか否かを判定し、その判定結果の集合を用例データ40に示しておく。
図14は、用例情報の別の例を示す図である。この図において、用例情報は、或る特徴ベクトルについての正解を正解データ204に示し、その特徴ベクトルについて各候補条件 C1 から C4 が満たされるか否かを示すフラグを用例データ202に示している。
用例情報を図14に示す構成にすると、用例データ40が条件データ50によって示される各条件を満たすか否かが、より容易に判定できる。また、1 ビットで表すことができる真偽値と比較し、特徴ベクトルの各要素はデータサイズが大きいと言える。そのため、用例の特徴ベクトルそのものについて利用する必要がない場合には、用例情報の構成を図14に示す構成にすることで、用例情報のデータサイズを削減することができる。
なお、所定の条件を満たすデータを記憶装置等から取得する技術には、既存の技術を利用することができる。例えば決定部2060は、用例情報が格納されているデータベースサーバに対し、「用例データ202が条件データ50に示される条件を満たす各レコードについて、正解データ204を取得する」という検索条件を表すクエリを送信することで、所望の正解データ42を取得する。
ここで、決定部2060は、条件データ50に示される条件を満たす用例データ40の全てを利用せず、その一部のみを利用するようにしてもよい。例えば、予測データ20の決定に利用する用例データ40の数を、基準の個数以下とするように設定しておく。この場合、決定部2060は、条件データ50に示される条件を満たす用例データ40が基準の個数以上であれば、その中から基準の個数の用例データ40を選択するようにする。この選択は、例えばランダムに行われる。
<予測データ20の決定:S108>
決定部2060は、取得した正解データ42を用いて予測データ20を決定する。例えば、決定部2060は、取得した正解データ42について統計処理を行い、その結果として得られるデータを予測データ20とする。以下、情報処理装置2000が分類問題を扱う場合と回帰問題を扱う場合のそれぞれについて説明する。
<<分類問題を扱う場合>>
情報処理装置2000が分類問題を扱う場合、例えば予測データ20は、クラスの識別子であるラベルとなる。例えば画像データに含まれるオブジェクトのクラスを判別する場合、ラベルは「人」や「車」といったラベルとなる。この場合において、正解データ42がラベルを示しているとする。例えば決定部2060は、取得した正解データ42について各ラベルの出現数を算出し、出現数が最大のラベルを予測データ20とする。
図15は、分類問題を扱う場合における予測データ20を例示する図である。図15では、10個の正解データ42が取得されており、出現数が最大のラベルはAである。そこで決定部2060は、「A」を予測データ20とする。
その他にも例えば、各クラスについてそのクラスが正解である確率を表すデータ(クラスの確率分布)を、予測データ20としてもよい。この場合、例えば決定部2060は、取得した正解データ42について各クラスの出現数を算出し、その出現数を取得した正解データ42の総数で割ることで、各クラスについての確率を算出する。
例えば図15の例において、A、B、Cというラベルの出現数がそれぞれ6個、3個、1個である。そこで決定部2060は、予測データ20として、「A:60%、B:30%、C:10%」という確率分布を生成する。
<<回帰問題を扱う場合>>
情報処理装置2000が回帰問題を扱う場合、予測データ20は所定の意味を持つ数値となる。この場合、決定部2060は、正解データ42の統計値(平均値、中央値、最頻値、最大値、又は最小値など)を算出し、算出した統計値を予測データ20とする。
図16は、回帰問題を扱う場合における予測データ20を例示する図である。図16では、10個の正解データ42が取得されており、各正解データ42が数値を示している。そこで決定部2060は、これらの数値の平均値を算出し、算出した平均値を予測データ20としている。
<予測データ20の決定方法のバリエーション>
前述の説明では、条件データ50に示される全ての条件を満たす用例データ40を特定し、特定した用例データ40に対応する正解データ42を利用して予測データ20を算出することで、予測データ20を決定していた。しかしながら、予測データ20の決定方法は必ずしもこの方法に限定されない。以下、予測データ20の決定方法の他のバリエーションについて説明する。
<<条件データ50が示す条件を部分的に満たす用例データ40も利用する方法>>
予測データ20の決定に利用される用例データ40は、必ずしも条件データ50に示される全ての条件を満たすものでなくてもよい。すなわち、決定部2060は、条件データ50に示される条件の一部を満たす用例データ40も利用して、予測データ20を決定してもよい。例えば決定部2060は、各用例データ40について、条件データ50に示される条件を満たす度合いを算出する。この度合いを条件満足度と呼ぶ。決定部2060は、条件満足度が高い用例データ40に対応づけられている正解データ42ほど、より大きい重みを与えるようにして、正解データ42の統計値を算出する。そして、この統計値を予測データ20とする。
図19は、条件満足度を利用して予測データ20を決定する処理を概念的に例示する図である。図19において、真理値行列は、用例データ40が各候補条件を満たすか否かを示している。なお、複合条件ベクトルと真理値行列は、全ての候補条件についてではなく、選択された候補条件についての要素のみを有してもよい。
決定部2060は、複合条件ベクトルと真理値行列の積を算出する。ここで算出される行列は、条件データ50によって示される各条件を用例データ40が満たすか否かを示す。条件を満たす場合には 1 が示され、条件を満たさない場合には -1 が示される。例えば図19において、ID=1 の用例データ40は、C1 について条件(¬C1)と C3 についての条件(¬C3)の双方を満たしている。
決定部2060は、算出された行列において、行ごとに全ての列の値を積算することで、条件満足度ベクトルを生成する。条件満足度ベクトルの各要素は、対応する用例データ40についての条件満足度を示す。
決定部2060は、条件満足度ベクトルに Softmax 関数を適用することで、重みベクトルを生成する。Softmax 関数の性質により、重みベクトルの要素の値は、1)満足度ベクトルにおける値が大きい要素ほど値が大きく、2)0 以上 1 以下であり、3)総和が1となる。
決定部2060は、各用例データ40に対応する正解データ42に対して重みベクトルに示される重みを適用した統計処理(例えば、加重平均)を行うことで、予測データ20を算出する。
上述の方法によれば、条件データ50に示される条件を一部しか満たさない用例データ40についても、予測データ20の決定に考慮される。こうすることで、条件データ50に示される条件を全て満たす用例データ40の数が少ない場合であっても、安定した予測結果を得ることができるようになる。
なお、決定部2060は、上述の方法を無条件に利用してもよいし、条件データ50に示される条件を全て満たす用例データ40の数が基準の個数に満たない場合のみ、上述の方法を利用するようにしてもよい。
条件データ50に示される条件を一部しか満たさない用例データ40も利用する方法は、上述の方法に限定されない。例えば決定部2060は、条件データ50に示される条件から一部を除外するようにしてもよい。その具体的な方法は様々である。例えば条件生成ニューラルネットワーク34として前述した条件生成 RNN 70を利用する場合、決定部2060は、より遅く選択された候補条件から順に除外していき、条件データ50に示される条件を満たす用例データ40の数が基準の個数以上になるようにする。言い換えれば、より早く選択された候補条件ほど除外されにくいようにする。条件生成 RNN 70がより早く選択した候補条件ほど重要な条件であると考えられるため、このようにすることで、重要度の高い条件を優先して条件データ50に残すことができるようになる。
その他にも例えば、決定部2060は、除外することによる用例データ40の増分が大きい条件から順に条件データ50から除外するようにする。例えば、条件データ50に条件 C1 から C3 が含まれており、条件 C1 を除外すると用例データ40が10個増え、条件 C2 を外すと用例データ40が5個増え、条件 C3 を外すと用例データ40が15個増えるとする。この場合、増分が最大である条件 C3 を条件データ50から除外するようにする。こうすることで、条件データ50から除外する条件の数をできる限り少なくするようにすることができる。言い換えれば、できる限り多くの条件を条件データ50に残しつつ、用例データ40の数を基準の個数以上にすることができる。
<<事前に決定されている値を予測データ20として利用する方法>>
条件データ50が示す条件を満たす予測データ20は、予め決定されていてもよい。例えば、条件データ50として生成されうる複数の条件それぞれについて、前述した方法で正解データ42から予測データ20を算出することで、条件に対応する予測データ20を予め求めておく。条件データ50と予測データ20との対応付けは、決定部2060からアクセス可能な記憶装置に記憶させておく。運用時には、決定部2060は、生成部2040によって生成された条件データ50に対応する予測データ20を記憶装置から取得することで、予測データ20を決定する。こうすることで、予測データ20を決定する処理を高速化することができる。
その他にも例えば、試験用に別途用意した入力データを利用することで、条件データ50と予測データ20との組み合わせを複数求め、求めた各組み合わせを記憶装置に記憶させておいてもよい。具体的には、情報処理装置2000に、試験用の入力データを入力データ10として入力し、条件データ50を生成する処理、及び正解データ42から予測データ20を算出する処理を行わせる。その結果得られた条件データ50と予測データ20との組み合わせを、記憶装置に記憶させておく。運用時には、決定部2060は、生成部2040によって生成された条件データ50に対応する予測データ20を記憶装置から取得することで、入力データ10に対応する予測データ20を決定する。
なお、記憶装置に記憶させておく条件データ50と予測データ20との組み合わせは、頻出パターンマイニングなどの手法を利用して絞り込んでもよい。例えば、試験用の入力データを利用して得られた条件データ50と予測データ20との組み合わせのうち、頻度が所定値以上のもののみを、記憶装置に記憶させておくようにする。こうすることで、精度の高い予測を実現しつつ、記憶装置の記憶容量を削減できる。
ここで、このように事前に用意した試験用の入力データを使って条件データ50と予測データ20の組み合わせを求めておく方法では、運用時に条件データ50として生成されうる条件の全てが網羅されるとは限らない。そこで例えば、運用時の決定部2060は、生成された条件データ50に対応する予測データ20が記憶装置に記憶されている場合にはその予測データ20を取得して利用し、記憶されていない場合には条件データ50に基づいて正解データ42を取得して予測データ20を算出するようにする。
その他にも例えば、運用時に利用する条件生成ニューラルネットワーク34の各出力を、事前に生成した条件データ50のいずれかに対応するように学習させてもよい。すなわち、条件生成ニューラルネットワーク34が、事前に生成した条件データ50のいずれか1つを選択する出力を行う。決定部2060は、条件生成ニューラルネットワーク34によって選択された条件データ50に対応づけて記憶されている予測データ20を、記憶装置から取得する。そして、決定部2060は、取得した予測データ20を、入力データ10に対応する予測データ20として決定する。
図21は、事前に生成した条件データ50を条件生成ニューラルネットワーク34で選択するケースを例示する図である。図21では、対応する予測データ20が予め決定されている条件データ50として、「C1 and ¬c4」、「c2 and c3」、「¬c3 and c4」、及び「c2 and c4」という条件データ50が定められている。この条件生成ニューラルネットワーク34は、選択する条件データ50に対応する出力ノードから1を出力し、その他の出力ノードから0を出力する。図21では、「C1 and ¬c4」に対応する出力ノードから1が出力されており、この条件データ50が選択されたことを表している。
また、決定部2060が正解データ42を用いて予測データ20を決定した際に、条件データ50と予測データ20との組み合わせをキャッシュとして記憶装置に記憶させるようにしてもよい。この場合、決定部2060は、過去に生成部2040によって生成された条件データ50が再度生成部2040によって生成された場合には、その条件データ50に対応する予測データ20を記憶装置から取得することで、予測データ20を高速に得ることができる。
<予測ルールの出力>
情報処理装置2000は、条件データ50と予測データ20との組み合わせを表す予測ルールを出力する機能を有していてもよい。予測ルールを生成して出力する機能を実現する機能構成部を、出力部2070と呼ぶ。図17は、出力部2070を有する情報処理装置2000を例示するブロック図である。
予測ルールは、例えば、条件節と帰結節の2つで構成されるルールである。条件節は条件データ50を示し、帰結節は予測データ20を示す。例えば、条件データ50が「x1>0 and x2<2」であり、予測データ20が「A」である場合において、「x1>0 and x2<2 -> A」という予測ルールが生成される。
条件データ50は、情報処理装置2000が入力データ10に対する予測値を予測データ20にした理由(予測データ20を決定する基準)を表すと言える。言い換えれば、条件データ50は、情報処理装置2000による入力データ10の解釈を表すと言える。そのため、上述の予測ルールを見ることで、ユーザは、どのような基準で入力データ10に対する予測値が予測データ20になったのか(入力データ10がどのように解釈されたのか)を容易に把握できる。
なお、情報処理装置2000によって生成される条件データ50は、入力データ10に依存する。そこで、予測ルールは、条件データ50と予測データ20に加え、入力データ10を示してもよい。例えば、入力データ10が D1 であり、条件データ50が「x1>0 and x2<2」であり、予測データ20が「A」である場合において、「入力:D1、ルール:x1>0 and x2<2 -> A」という予測ルールが生成される。
なお、出力される予測データは、上述の様に文字列を使って表されたものに限定されず、グラフ等を用いて表されてもよい。図18は、予測ルールをグラフィカルに出力する例を示す図である。入力データ10から抽出された特徴ベクトルは、バツ印が表されている。用例データ40は、対応する正解データ42を表す文字で表されている。条件データ50は、領域60として表されている。この表示を見たユーザは、入力データ10が属する領域60に「A」という正解データ42が多く含まれていることを容易に理解できる。そのため、ユーザは、「A」という予測結果が正しいこと、及びその予測がどのようにして導かれたのかを、容易に理解することができる。
なお、図18のようにグラフィカルな表示を行う際、出力部2070は、予測データ20の決定に利用した全ての用例データ40を表示してもよいし、一部の用例データ40のみを表示するようにしてもよい。後者の場合、例えば出力部2070は、予測データ20の決定に利用した用例データ40から、所定個の用例データ40をランダムに選択し、選択した用例データ40についての表示を行う。
また、出力部2070は、条件データ50によって示される条件を満たさない用例データ40(領域60に含まれない用例データ40)を表示してもよい。この場合、出力部2070は、領域60付近の用例データ40を優先的に表示することが好ましい。例えば出力部2070は、領域60が拡大されるように、条件データ50によって示される条件の閾値を所定値ずらして(条件を緩めて)用例データ40を検索することで、領域60付近の用例データ40を特定する。
出力部2070が予測ルールを出力する方法は様々である。例えば出力部2070は、ディスプレイ装置に予測ルールを表示させる。その他にも例えば、出力部2070は、記憶装置に予測ルールを記憶させてもよい。その他にも例えば、ユーザが他の端末から情報処理装置2000にアクセスしている場合、情報処理装置2000は、当該他の端末に予測ルールを送信してもよい。
[実施形態2]
実施形態2の情報処理装置2000は、ニューラルネットワーク30の訓練を行う機能をさらに有する。すなわち、実施形態2の情報処理装置2000は、ニューラルネットワーク30の出力の予測損失を小さくするように、ニューラルネットワーク30の内部パラメータを更新する機能を有する。
そのために情報処理装置2000は、訓練部2080を有する。図20は、実施形態2の情報処理装置2000の機能構成を例示するブロック図である。訓練部2080は、バックプロパゲーションを用いてニューラルネットワーク30のパラメータを更新することで、ニューラルネットワーク30の訓練を行う。
以下、訓練部2080がニューラルネットワーク30の訓練を行う具体的な方法について説明する。
訓練部2080は、訓練データ80を取得する。訓練データ80は、訓練入力データ82と訓練正解データ84とが対応づけられたデータである。訓練入力データ82は、入力データ10と同種のデータである。すなわち、情報処理装置2000が入力データ10として画像データを扱うのであれば、訓練入力データ82も画像データである。訓練正解データ84は、訓練入力データ82についての正解を表すデータであり、正解データ42と同種のデータである。例えば情報処理装置2000が、入力データ10に含まれるオブジェクトのクラスを予測するとする。この場合、例えば訓練正解データ84は、訓練入力データ82に含まれるオブジェクトのクラスを示す。
訓練部2080は、訓練入力データ82を取得部2020に入力することで、予測データ20を得る。訓練部2080は、得られた予測データ20及び訓練正解データ84について、予測損失を算出する。この予測損失としては、例えば、ニューラルネットワークの訓練に使われる一般的な予測損失(平均二乗誤差や交差エントロピー誤差など)を用いることができる。
訓練部2080は、算出された予測損失を減少させるようにバックプロパゲーション処理を行うことで、ニューラルネットワーク30のパラメータを更新する。ここで、少なくとも訓練部2080は、条件生成ニューラルネットワーク34のパラメータの更新を行う(条件生成ニューラルネットワーク34の訓練を行う)。特徴抽出ニューラルネットワーク32については、訓練部2080による訓練が行われても良いし、行われなくてもよい。後者の場合、特徴抽出ニューラルネットワーク32の訓練は別途の方法で行っておく。前述したように、特徴抽出ニューラルネットワーク32の訓練には既存の手法を利用することができる。
なお、訓練部2080による訓練の際(以下、トレーニングフェーズ)と情報処理装置2000の実際の運用時(以下、テストフェーズ)とで、ニューラルネットワーク30の動作を異ならせてもよい。例えば実施形態1で条件生成ニューラルネットワーク34の具体例として説明した条件生成 RNN 70では、argmax 関数を用いて注目ベクトルを生成していた。しかしながら、一般に、argmax 関数はバックプロパゲーションが難しい関数であると言われている。
そこで例えば、トレーニングフェーズにおける条件生成ニューラルネットワーク34、すなわち訓練部2080によって利用される際の条件生成ニューラルネットワーク34は、argmax 関数の代わりに、バックプロパゲーションが可能な関数を利用して注目ベクトルを生成するように構成しておく。例えば、softmax 関数を利用して注目ベクトルを生成することが好適である。softmax 関数は、argmax 関数の連続的な近似と見ることができる。そのため、softmax 関数を利用することにより、argmax 関数の近い注目ベクトル(one-hot ベクトルに近い注目ベクトル)を生成しつつ、バックプロパゲーションが容易となる。
なお、温度つきの softmax 関数を利用することが特に有用である。これにより、より argmax 関数の出力に近い出力を得ることができる。
以下の数式(2)は、温度つきの softmax 関数を表す式である。温度τを 0.1 などの小さい値に設定することで、one-hot ベクトルに近い注目ベクトルを計算できる。
Figure 0006927409
・・・(2)
ここで、a_(i,t) は、t 回目のループ処理で生成される注目ベクトルの i 番目の要素の値である。e_(i,t) は、t 回目のループ処理で条件生成 RNN 70の出力層に入力される値であって、注目ベクトルの i 番目の要素を出力するノードに対して入力されるものである。
その他にも、Gumbel-Softmax 関数や、その変種である ST Gumbel-Softmax 関数などを利用してもよい。Gumbel-Softmax 関数は、連続的な確率分布に従ってサンプリングを行い、one-hot ベクトルに近いベクトルを生成する関数である。温度つき Softmax 関数を利用すると各実行においてほぼ同じ候補条件が選ばれるが、Gumbel-Softmax 関数を利用すると実行ごとにそれぞれ異なる候補条件同士の組み合わせがサンプリングされうる。そのため、より適切に条件生成ニューラルネットワーク34の訓練を進めることができる。
訓練部2080は、条件生成ニューラルネットワーク34によって出力される複数の注目ベクトルの総和である複合注目ベクトルを生成する。さらに訓練部2080は、複合注目ベクトルから複合条件ベクトルを生成する。ここで、訓練部2080によって生成される複合条件ベクトルの各要素は、実施形態1で説明したものと異なり、-1 以上 +1 以下の連続値を示す。ここで、訓練入力データ82から抽出される特徴ベクトルによって満たされる候補条件に対応する要素については、注目ベクトルの値をそのまま複合条件ベクトルに設定する。一方、訓練入力データ82から抽出される特徴ベクトルによって満たされない候補条件に対応する要素については、注目ベクトルの値に -1 を掛けた値を複合条件ベクトルに設定する。
例えば訓練部2080は、実施形態1において図19を用いて説明した方法、すなわち条件満足度を利用する方法を用いて、訓練用の予測データ(以下、訓練予測データ)を生成する。この方法によれば、複合条件ベクトルが連続値を示していても、訓練予測データを生成することができる。なお、回帰問題を扱う場合、訓練部2080が生成する訓練予測データは、予測データ20と同様に連続値である。一方、分類問題を扱う場合、訓練部2080は、訓練予測データとして、各クラスについてその確からしさを表す値を出力する。すなわち、訓練用予測データは、クラスの総数と同じ数の要素を持つベクトルとなる。
訓練部2080は、訓練予測データと訓練正解データ84とについて予測損失を算出し、算出した予測損失に基づいてバックプロパゲーションを実行する。ここで、訓練用に生成された予測データと訓練用に用意された正解データとについて予測損失を算出する方法、及びその予測損失を用いてバックプロパゲーションを行う技術には、既存の技術を利用することができる。
<ハードウエア構成の例>
実施形態2の情報処理装置2000を実現する計算機のハードウエア構成は、実施形態1と同様に、例えば図6によって表される。ただし、本実施形態の情報処理装置2000を実現する計算機1000のストレージデバイス1080には、本実施形態の情報処理装置2000の機能を実現するプログラムモジュールがさらに記憶される。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の構成を組み合わせた構成や、上記以外の様々な構成を採用することもできる。

Claims (10)

  1. 入力データを取得する取得部と、
    ニューラルネットワークを用いて、前記入力データが満たす条件を1つ以上示す条件データを生成する生成部と、
    前記条件データによって示される条件の少なくとも一部を満たす用例データに対応する正解データに基づいて決定された値を、前記入力データに対応する予測データとして決定する決定部と、
    を有する情報処理装置。
  2. 前記条件データに含める条件の候補である複数の候補条件が定められており、
    前記ニューラルネットワークは、前記入力データが入力されたことに応じて、前記条件データに含める候補条件を表す情報を出力し、
    前記生成部は、前記ニューラルネットワークの出力によって表される各候補条件の論理積を表す複合条件を、前記条件データが示す条件とする、請求項1に記載の情報処理装置。
  3. 前記候補条件は、前記入力データから得られる複数の要素それぞれについて、閾値と大小関係との組み合わせを示す、請求項2に記載の情報処理装置。
  4. 前記生成部は、前記ニューラルネットワークに対して繰り返し入力を行い、その入力ごとに出力される情報に基づいて、前記条件データに含める複数の候補条件を決定する、請求項2又は3に記載の情報処理装置。
  5. 前記決定部は、前記条件データによって示される条件の少なくとも一部を満たす用例データに対応する正解データを取得し、前記取得した正解データを統計処理することで、前記予測データを生成する、請求項1乃至4いずれか一項に記載の情報処理装置。
  6. 前記条件データに含める条件の候補である複数の候補条件が定められており、
    前記決定部は、複数の前記候補条件の1つ以上の組み合わせごとに予測データが対応づけて記憶されている記憶装置から、前記生成された条件データに含まれている候補条件の組み合わせに対応づけられている前記予測データを取得し、前記取得した予測データを前記入力データに対応する予測データとして決定する、請求項1乃至4いずれか一項に記載の情報処理装置。
  7. 前記条件データによって示される条件と前記予測データとを対応づけた予測ルールを出力する出力部を有する、請求項1乃至いずれか一項に記載の情報処理装置。
  8. 前記ニューラルネットワークのパラメータを更新する訓練部を有し、
    前記訓練部は、
    訓練入力データ及び訓練正解データを取得し、
    前記訓練入力データを前記生成部に入力することで前記条件データを取得し、
    前記取得した条件データによって示される条件の少なくとも一部を満たす前記用例データに対応づけられている前記正解データを取得し、その正解データを用いて予測データを決定し、
    前記決定した予測データと前記訓練正解データとについて予測損失を算出し、その予測損失が減少するように前記ニューラルネットワークのパラメータを更新する、請求項1乃至いずれか一項に記載の情報処理装置。
  9. コンピュータによって実行される制御方法であって、
    入力データを取得する取得ステップと、
    ニューラルネットワークを用いて、前記入力データが満たす条件を1つ以上示す条件データを生成する生成ステップと、
    前記条件データによって示される条件の少なくとも一部を満たす用例データに対応する正解データに基づいて決定された値を、前記入力データに対応する予測データとして決定する決定ステップと、
    を有する制御方法。
  10. 請求項に記載の制御方法が有する各ステップをコンピュータに実行させるプログラム。
JP2020503221A 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム Active JP6927409B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/007888 WO2019167240A1 (ja) 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019167240A1 JPWO2019167240A1 (ja) 2021-02-04
JP6927409B2 true JP6927409B2 (ja) 2021-08-25

Family

ID=67805988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020503221A Active JP6927409B2 (ja) 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US11983633B2 (ja)
JP (1) JP6927409B2 (ja)
WO (1) WO2019167240A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321051B2 (en) * 2019-05-21 2022-05-03 Arm Limited Statistical mode determination
US11263753B2 (en) * 2020-04-07 2022-03-01 Naver Corporation Method for training a convolutional neural network for image recognition using image-conditioned masked language modeling

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160662A (ja) * 1993-12-02 1995-06-23 Hitachi Ltd ニューラルネットワークの予測結果における信頼度算出方法
US6289329B1 (en) * 1997-11-26 2001-09-11 Ishwar K. Sethi System for converting neural network to rule-based expert system using multiple-valued logic representation of neurons in feedforward network
JP3795775B2 (ja) * 2001-07-16 2006-07-12 株式会社山武 下水流入量予測装置および方法、サーバ装置
US10824959B1 (en) * 2016-02-16 2020-11-03 Amazon Technologies, Inc. Explainers for machine learning classifiers
US11144825B2 (en) * 2016-12-01 2021-10-12 University Of Southern California Interpretable deep learning framework for mining and predictive modeling of health care data

Also Published As

Publication number Publication date
WO2019167240A1 (ja) 2019-09-06
US20200410361A1 (en) 2020-12-31
US11983633B2 (en) 2024-05-14
JPWO2019167240A1 (ja) 2021-02-04

Similar Documents

Publication Publication Date Title
CN109120462B (zh) 机会网络链路的预测方法、装置及可读存储介质
CN113239186B (zh) 一种基于多依存关系表示机制的图卷积网络关系抽取方法
Wang et al. Incremental subgraph feature selection for graph classification
JP7020547B2 (ja) 情報処理装置、制御方法、及びプログラム
CN106997474A (zh) 一种基于深度学习的图节点多标签分类方法
Jabbari et al. Discovery of causal models that contain latent variables through Bayesian scoring of independence constraints
CN112106040A (zh) 事件预测装置、预测模型生成装置以及事件预测用程序
CN105095494A (zh) 一种对分类数据集进行测试的方法
CN111078876A (zh) 一种基于多模型集成的短文本分类方法和***
JP2022530447A (ja) ディープラーニングに基づく中国語単語分割方法、装置、記憶媒体及びコンピュータ機器
JP2019082841A (ja) 生成プログラム、生成方法及び生成装置
JP6927409B2 (ja) 情報処理装置、制御方法、及びプログラム
CN112488316A (zh) 事件意图推理方法、装置、设备及存储介质
CN111444399A (zh) 回复内容的生成方法、装置、设备及可读存储介质
CN115757804A (zh) 一种基于多层路径感知的知识图谱外推方法及***
CN117616431A (zh) 针对大规模数据的可解释的机器学习
CN113837492B (zh) 物品供应量的预测方法、设备、存储介质及程序产品
JP2019105871A (ja) 異常候補抽出プログラム、異常候補抽出方法および異常候補抽出装置
CN114897085A (zh) 一种基于封闭子图链路预测的聚类方法及计算机设备
Sree et al. Optimized conversion of categorical and numerical features in machine learning models
CN114254686A (zh) 对抗样本的识别方法及装置
Dash DECPNN: A hybrid stock predictor model using Differential Evolution and Chebyshev Polynomial neural network
WO2023132029A1 (ja) 情報処理装置、情報処理方法及びプログラム
Kihlman et al. Classifying human rights violations using deep multi-label co-training
CN116361788A (zh) 一种基于机器学习的二进制软件漏洞预测方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200812

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210719

R150 Certificate of patent or registration of utility model

Ref document number: 6927409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150