【実施例】
【0013】
図1は、実施例の学習装置の構成の一例を示すブロック図である。
図1に示す学習装置100は、グラフ構造のデータを深層学習するディープテンソルによって判別モデルを生成し、判別モデルを用いて新規なグラフ構造のデータを判別する学習装置の一例である。学習装置100は、学習対象のグラフデータから、グラフデータに含まれる各ノードの値、および、グラフデータに含まれる各ノードと他ノードとの距離に対応する値を有する、拡張グラフデータを生成する。学習装置100は、生成した拡張グラフデータを入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する。テンソル分解の結果得られたコアテンソルには、判別に寄与する部分構造を含み、これにより、学習装置100は、学習時と異なる連鎖状況のグラフについての機械学習の判別精度を向上できる。
【0014】
まず、ディープテンソルについて説明する。ディープテンソルとは、テンソル(グラフ情報)を入力とするディープラーニングであり、ニューラルネットワークの学習とともに、判別に寄与する部分グラフ構造を自動的に抽出する。この抽出処理は、ニューラルネットワークの学習とともに、入力テンソルデータのテンソル分解のパラメータを学習することによって実現される。
【0015】
次に、
図2および
図3を用いてグラフ構造について説明する。
図2は、グラフ構造とテンソルとの関係の一例を示す図である。
図2に示すグラフ20は、4つのノードがノード間の関係性(例えば「相関係数が所定値以上」)を示すエッジで結ばれている。なお、エッジで結ばれていないノード間は、当該関係性がないことを示す。グラフ20を2階のテンソル、つまり行列で表す場合、例えば、ノードの左側の番号に基づく行列表現は「行列A」で表され、ノードの右側の番号(囲み線で囲んだ数字)に基づく行列表現は「行列B」で表される。これらの行列の各成分は、ノード間が結ばれている(接続している)場合「1」で表され、ノード間が結ばれていない(接続していない)場合「0」で表される。以下の説明では、この様な行列を接続行列ともいう。ここで、「行列B」は、「行列A」の2,3行目および2,3列目を同時に置換することで生成できる。ディープテンソルでは、この様な置換処理を用いることで順序の違いを無視して処理を行う。すなわち、「行列A」および「行列B」は、ディープテンソルでは順序性が無視され、同じグラフとして扱われる。なお、3階以上のテンソルについても同様の処理となる。
【0016】
図3は、部分グラフ構造の抽出の一例を示す図である。
図3に示すグラフ21は、6つのノードがエッジで結ばれたものである。グラフ21は、行列(テンソル)で表すと行列22に示すように表現できる。行列22に対して、特定の行および列を入れ替える演算、特定の行および列を抽出する演算、ならびに、接続行列における非ゼロ要素をゼロに置換する演算を組み合わせることで、部分グラフ構造を抽出できる。例えば、行列22の「ノード1,4,5」に対応する行列を抽出すると、行列23となる。次に、行列23の「ノード4,5」間の値をゼロに置換すると、行列24となる。行列24に対応する部分グラフ構造は、グラフ25となる。
【0017】
このような部分グラフ構造の抽出処理は、テンソル分解と呼ばれる数学的演算によって実現される。テンソル分解とは、入力されたn階テンソルをn階以下のテンソルの積で近似する演算である。例えば、入力されたn階テンソルを1つのn階テンソル(コアテンソルと呼ばれる。)、および、より低階のn個のテンソル(n>2の場合、通常は2階のテンソル、つまり行列が用いられる。)の積で近似する。この分解は一意ではなく、入力データが表すグラフ構造中の任意の部分グラフ構造をコアテンソルに含める事ができる。
【0018】
続いて、ディープテンソルにおける重み付き接続行列の扱いについて説明する。重み付き接続行列は、ノード間の接続がない場合を「0」、接続がある場合はその重み(>0)が記載された行列である。重み付き接続行列は、例えば、計算機ネットワークにおいて、ノードiとノードjとの間における単位時間あたりの通信回数を(i,j)成分とする行列が挙げられる。一方、ディープテンソルでは、接続行列の重みはエッジのラベルとして扱われる。このため、例えば、大小関係や演算方法等の元々の数値の持つ性質は、考慮されないことになる。上述の計算機ネットワークの例では、(i,j)成分が「2」である場合、この成分が「1」である場合よりも多くの通信を行っていることを表す。つまり、(i,j)成分は、値の大小性を表している。これに対し、ディープテンソルにおいては、この様な関係は無視され、(i,j)成分が「2」である行列が示すグラフと、「1」である行列が示すグラフとは、異なるグラフとして扱われる。
【0019】
図4は、ディープテンソルにおける重み付き接続行列の一例を示す図である。
図4に示すように、例えば、学習時に、訓練データから判別に寄与する部分グラフ構造として、重み「1」のグラフ26および行列27が抽出されたとする。一方、判別時には、重み「2」のグラフ28および行列29が判別対象であるとした場合、グラフ26および行列27とエッジラベルが異なるので、マッチしないと判別される。つまり、ディープテンソルでは、重み付き接続行列の全てのバリエーションが訓練データに含まれていないと、学習が不完全になる場合がある。この様な場合、判別ルールとして、重み付き接続行列の重みに相当する情報が汎化された判別ルールを学習できることが望まれる。
【0020】
ここで、具体例を挙げて部分グラフ構造のバリエーションについて説明する。まず、具体的な判別タスクは、「対象者の知人関係グラフを入力として、対象者の依存症リスクを判定したい。」であるとする。ここで、依存症としては、例えば、ギャンブル依存症やアルコール依存症等が挙げられる。これらの依存症では、「知人が依存症患者であると、その人も依存症になりやすい。」という知見があり、知人関係のグラフに依存症患者がいるかどうかで依存症リスクを判定可能であるとする。このとき、真の判別ルールの例としては、「距離3以内に2人の依存症患者が存在すれば高リスク。」であるとする。なお、ここでの距離は、判定対象者と直接接続する人物を距離「1」、1人を介して接続する人物を距離「2」といったように表すものである。
【0021】
図5は、条件を満たす部分グラフ構造の一例を示す図である。
図5に示すように、上述の真の判別ルールの条件を満たす部分グラフ構造は、13個のバリエーションがあり、適切な学習を実現するには、訓練データがこの13個を全てカバーすることが求められる。
図5では、◎印が判定対象者を示し、○印が非依存症患者を示し、●印が依存症患者を示す。なお、以下の説明においても、グラフおよび接続行列のラベルに同様の印を用いる場合がある。例えば、「●−○−◎−●」は、距離「1」および「2」に依存症患者が1人ずつ存在することを示す。また、距離「2」の依存症患者は、非依存症患者の知人、つまり、非依存症患者を介して判定対象者と接続していることを示す。
【0022】
上述の真の判別ルールの条件は、13個であるので、全てのバリエーションを訓練データとして用意可能である場合もある。ところが、さらに複雑な判別ルールの条件では、バリエーションの数が増大するため、全てのバリエーションの訓練データを集められないことがある。これに対し、本実施例では、ノード間における距離nの経路数を、接続行列の数学的性質を用いて表現することで、汎化された部分グラフ構造を抽出し、抽出した部分グラフ構造を学習する。
【0023】
ここで、
図6を用いて接続行列の数学的性質を説明する。
図6は、接続行列の数学的性質を説明する図である。
図6に示すように、グラフ30は、ノード「1〜3」が、それぞれ接続されたグラフ構造である。グラフ30の接続行列31をAとすると、A^nの(i,j)成分は、ノードi,j間における距離nの経路数となる。ただし、この値には、途中の往復経路も含む。つまり、接続行列のn乗における(i,j)成分は、ノードiとノードjとの間の長さnのパスの数を表す。なお、隣接ノードは、距離「3,5,7,・・・」のノードでもある。
【0024】
例えば、A^2を示す接続行列32は、距離「2」の経路数を表し、A^3を示す接続行列33は、距離「3」の経路数を表す。接続行列32の算出結果の一例としては、A^2(1,1)=2の場合、ノード「1−2−1」、ノード「1−3−1」の2パターンとなる。同様に、例えば、A^2(1,2)=1の場合、ノード「1−3−2」の1パターンとなる。
【0025】
また、接続行列33の算出結果の一例としては、A^3(1,1)=2の場合、ノード「1−2−3−1」、ノード「1−3−2−1」の2パターンとなる。同様に、例えば、A^3(1,2)=3の場合、ノード「1−2−1−3」、ノード「1−3−1−3」、ノード「1−3−2−3」の3パターンとなる。ここで、距離kで到達する経路がある場合には、その中の1本のエッジで往復することで距離k+2の経路となる。つまり、A^k(i,j)≦A^(k+2)(i,j)が成立する。
【0026】
次に、学習装置100の構成について説明する。
図1に示すように、学習装置100は、通信部110と、表示部111と、操作部112と、記憶部120と、制御部130とを有する。なお、学習装置100は、
図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【0027】
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。通信部110は、例えば、管理者などの端末から学習用の訓練データや判別対象の新規データを受信する。また、通信部110は、管理者などの端末に、学習結果や判別結果を送信する。
【0028】
表示部111は、各種情報を表示するための表示デバイスである。表示部111は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部111は、制御部130から入力された表示画面等の各種画面を表示する。
【0029】
操作部112は、学習装置100のユーザから各種操作を受け付ける入力デバイスである。操作部112は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部112は、ユーザによって入力された操作を操作情報として制御部130に出力する。なお、操作部112は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部111の表示デバイスと、操作部112の入力デバイスとは、一体化されるようにしてもよい。
【0030】
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、訓練データ記憶部121と、拡張グラフデータ記憶部122と、判別モデル記憶部123とを有する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。
【0031】
訓練データ記憶部121は、例えば、通信部110を介して入力された学習対象の訓練データを記憶する。訓練データ記憶部121には、例えば、依存症患者に関する判定ルールの一部を表すグラフに対応する学習対象のグラフデータが訓練データとして記憶される。
【0032】
拡張グラフデータ記憶部122は、訓練データに含まれる各ノード間の最長距離までの距離数に応じて訓練データのグラフに対応する接続行列を冪乗した行列に基づく距離行列を対角成分とする行列を、拡張グラフデータとして記憶する。
【0033】
判別モデル記憶部123は、拡張グラフデータを深層学習した判別モデルを記憶する。判別モデルは、学習モデルとも呼ばれ、例えば、ニューラルネットワークの各種パラメータ(重み係数)や、テンソル分解の方法等を記憶する。
【0034】
制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部130は、取得部131と、生成部132と、学習部133と、判別部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、
図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【0035】
取得部131は、例えば、通信部110を介して、管理者などの端末から学習用の訓練データを受信して取得する。なお、取得部131は、訓練データがグラフである場合には、対応する接続行列に変換する。取得部131は、取得した行列(接続行列)、または、変換した接続行列を訓練データとして訓練データ記憶部121に記憶する。取得部131は、訓練データを訓練データ記憶部121に記憶すると、生成部132に生成指示を出力する。
【0036】
ここで、
図7を用いて訓練データについて説明する。
図7は、訓練データの一例を示す図である。
図7のグラフ34は、「●−◎−●」であるので、2人の依存症患者がどちらも判定対象者から距離「1」であることを示す。グラフ34は、行列で表現すると、接続行列35に示すようになる。取得部131は、例えば、接続行列35を訓練データとして訓練データ記憶部121に記憶する。
【0037】
図1の説明に戻って、生成部132は、取得部131から生成指示が入力されると、訓練データ記憶部121を参照し、訓練データに基づいて、拡張グラフデータを生成する。生成部132は、まず、各訓練データにおける最長距離を算出する。生成部132は、算出した各訓練データにおける最長距離のうち、最大値を最長距離mとする。例えば、
図5に示す13パターン(13個のバリエーション)の部分グラフ構造では、最長距離m=3となる。なお、最長距離mは、判定する分野の知識に基づいて、適当な値を決定してもよい。例えば、ある分野において「距離「10」以上離れている場合は影響がない。」という知見があれば、最長距離m=9とすることができる。
【0038】
次に、生成部132は、最長距離mに基づいて、k=1,2,・・・,mを用いて、距離k以内の経路数を表すS_kを算出する。つまり、生成部132は、S_k=A+A^2+・・・+A^kを算出する。ここで、Aは、接続行列を示す。続いて、生成部132は、S_kに基づいて、次のルールR1,R2で定義されるn×nの行列B_kを算出する。なお、以下の説明では、B_kを距離行列とも表現する。また、S_kは、
図6に示す接続行列の数学的性質を用いて、k>1の場合に、S_k=A^(k−1)+A^kとしてもよい。
【0039】
S_kの成分(i,j)について、ルールR1は、i=jのとき、B_k(i,j)=1とする。ルールR2は、i≠jのとき、S_k(i,j)>0ならばB_k(i,j)=k+1、S_k(i,j)=0ならばB_k(i,j)=0とする。つまり、距離行列B_kは、S_kから無駄な往復を除いている。
【0040】
このように算出された距離行列B_kは、接続行列Aにおいて距離k以内の経路が存在するノードの組が、重みk+1で接続されているとした重み付き接続行列となる。すなわち、生成部132は、A+A^2+・・・+A^kの非ゼロ要素をk+1、対角成分を1とする重み付き接続行列B_kを算出する。
【0041】
ここで、
図8を用いて距離行列B_kの算出過程を説明する。
図8は、算出過程の一例を示す図である。
図8では、
図7に示す接続行列35をAとして、S_kおよびB_k(k=3)の算出過程を示す。まず、A^1は、接続行列35となり、S_1=Aから、S_1は、接続行列35と同じである接続行列35aとなる。また、B_1は、上述のルールR1,R2に基づいて、距離行列35bとなる。
【0042】
A^2は、接続行列36となり、S_2=A+A^2から、S_2は、接続行列36aとなる。また、B_2は、上述のルールR1,R2に基づいて、距離行列36bとなる。A^3は、接続行列37となり、S_3=A+A^2+A^3から、S_3は、接続行列37aとなる。また、B_3は、上述のルールR1,R2に基づいて、距離行列37bとなる。
【0043】
次に、生成部132は、生成した距離行列B_kに基づいて、下記の式(1)に示す行列を生成する。ここで、Eはn×nの単位行列である。
図8の例では、生成部132は、B_1,B_2,B_3を対角成分とする行列Yを生成する。つまり、生成部132は、B_1〜B_mをノード間関係情報とともに合成した行列Yを生成する。
【0044】
【数1】
【0045】
生成部132は、式(1)で示す行列Yを、拡張グラフデータとして拡張グラフデータ記憶部122に記憶する。生成部132は、拡張グラフデータを拡張グラフデータ記憶部122に記憶すると、学習部133に学習指示を出力する。
【0046】
言い換えると、生成部132は、学習対象のグラフデータから、グラフデータに含まれる各ノードの値、および、グラフデータに含まれる各ノードと他ノードとの距離に対応する値を有する、拡張グラフデータを生成する。つまり、生成部132は、各ノードと他ノードとの接続を表す接続行列(A)を生成し、生成した接続行列に基づく距離行列(B_k)を対角成分とする行列(Y)を拡張グラフデータとして生成する。すなわち、生成部132は、グラフデータに含まれる各ノード間の最長距離(m)を算出し、算出した最長距離までの距離数に応じて接続行列(A)を冪乗した行列(S_k)に基づく距離行列(B_k)をそれぞれ生成する。生成部132は、生成したそれぞれの距離行列を対角成分とする行列(Y)を拡張グラフデータとして生成する。
【0047】
学習部133は、生成部132から学習指示が入力されると、拡張グラフデータ記憶部122を参照し、拡張グラフデータを学習して判別モデルを生成または更新する。つまり、学習部133は、拡張グラフデータをテンソル分解し、コアテンソル(部分グラフ構造)を生成する。学習部133は、生成したコアテンソルをニューラルネットワークに入力して出力を得る。学習部133は、出力値の誤差が小さくなるように学習するとともに、判定精度が高くなるようにテンソル分解のパラメータを学習する。テンソル分解においては自由度があり、テンソル分解のパラメータとして、分解モデル、制約、最適化アルゴリズムの組み合わせ等が挙げられる。分解モデルは、例えば、CP(Canonical Polyadic decomposition)やTuckerが挙げられる。制約は、例えば、直交制約、スパース制約、スムース制約、非負制約等が挙げられる。最適化アルゴリズムは、例えば、ALS(Alternating Least Square)、HOSVD(Higher Order Singular Value Decomposition)、HOOI(Higher Order Orthogonal Iteration of tensors)等が挙げられる。ディープテンソルにおいては、「判定精度が高くなる」という制約下でテンソル分解を行う事になる。
【0048】
その後、学習部133は、所定回数の学習が実行された場合、または、誤差が所定値より小さくなった場合に学習を終了し、各種パラメータやテンソル分解の方法等を判別モデルとして判別モデル記憶部123に記憶する。なお、ニューラルネットワークは、RNN(再帰型ニューラルネットワーク:Recurrent Neural Network)など様々なニューラルネットワークを用いることができる。また、学習方法は、誤差逆伝播法など様々な手法を採用することができる。
【0049】
ここで、
図9を用いて部分グラフ構造の抽出について説明する。
図9は、拡張グラフデータからの部分グラフ構造の抽出の一例を示す図である。
図9に示すように、行列39は、拡張グラフデータ(Y)である行列38を展開した行列であり、対角成分には、例えば、
図8のB_1,B_2,B_3に対応する距離行列35b,36b,37bを有する。学習部133は、行列39に対して、特定の行および列を入れ替える演算、特定の行および列を抽出する演算、ならびに、接続行列における非ゼロ要素をゼロに置換する演算を組み合わせることで、部分グラフ構造の行列40を抽出する。
図9の例では、学習部133は、B_3に対応する距離行列37bの値の一部をゼロに置換する演算により行列40を生成する。行列40に対応する部分グラフ構造は、グラフ41となる。なお、ディープテンソルにおいては、入力の成分における各値の数値的な意味、例えば、値の大小関係は考慮されず、エッジのラベルとして扱われる。ラベルの意味は、ラベル「1」が同一人物であることを表し、ラベル「n(n>1)」が距離n未満で接続可能であることを表す。
【0050】
グラフ41は、判定対象者と2人の依存症患者のそれぞれとを接続するエッジに距離「4」未満を表すラベルが付されている重み付きグラフである。つまり、グラフ41は、2人の依存症患者がどちらも判定対象者から距離「4」未満に存在することを表す。すなわち、グラフ41は、上述の真の判別ルールの例として挙げた「距離3以内に2人の依存症患者が存在すれば高リスク。」を表す部分グラフ構造である。このため、
図5の例では、13個のバリエーションの全ての部分グラフ構造を抽出して学習することが求められたが、学習装置100では、グラフ41の1個のバリエーションの部分グラフ構造を抽出して学習すればよいことになる。従って、学習装置100は、訓練データが少なくても、汎化された判別ルールを学習することができる。
【0051】
言い換えると、学習部133は、生成した拡張グラフデータを入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する。
【0052】
図1の説明に戻って、判別部134は、判別モデルの学習後に、新規データを取得し、判別モデルを用いて判別した判別結果を出力する。判別部134は、例えば、通信部110を介して、管理者などの端末から判別対象の新規データを受信して取得する。判別部134は、学習時の生成部132と同様に、取得した新規データに基づいて、拡張グラフデータを生成する。
【0053】
判別部134は、判別モデル記憶部123を参照し、判別モデルを用いて、生成した拡張グラフデータを判別する。すなわち、判別部134は、判別モデルの各種パラメータを設定したニューラルネットワークを構築し、テンソル分解の方法を設定する。判別部134は、生成した拡張グラフデータをテンソル分解し、ニューラルネットワークに入力して、判別結果を取得する。判別部134は、取得した判別結果を表示部111に出力して表示したり、記憶部120に出力して記憶したりする。
【0054】
ここで、
図10から
図13を用いて他の判別ルールの場合について説明する。
図10は、学習可能な他の判別ルールの一例を示す図である。
図10の例では、判別ルールとして「距離「3」以内に2人の依存症患者が存在し、うち1人は距離「1」である。」であったとする。この判別ルールに対応する部分グラフ構造を示す行列は、行列42となる。グラフ43は、行列42を重み付きグラフで表現した場合のグラフである。
図7に示す訓練データのグラフ34は、この判別ルールにマッチする。グラフ34に基づいて生成した行列である
図9の行列39は、行列42を含む。つまり、行列39は、グラフ43で示す部分グラフ構造を含む。従って、学習装置100は、当該判別ルールを学習することができる。
【0055】
図11を用いて、行列39から行列42を抽出する手順について説明する。
図11は、拡張グラフデータからの他の判別ルールに対応する部分グラフ構造の抽出の一例を示す図である。
図11に示すように、学習装置100は、行列39から、1,2,7,9行および列を抽出して、行列44を生成する。学習装置100は、行列44の2,3行および列を入れ替えて、行列45を生成する。学習装置100は、行列45の対角成分をゼロに置換して、行列42を生成する。このように、行列42は、部分グラフ構造の抽出に許される演算を用いて行列39から得ることができるので、行列39に示す拡張グラフデータは、行列42に対応する部分グラフ構造であるグラフ43を含むといえる。
【0056】
図12および
図13を用いて、学習可能な汎化された判別ルールの他の例について説明する。
図12は、学習可能な他の判別ルールの一例を示す図である。
図12の例では、判別ルールとして「距離「4」以内に2人の依存症患者が存在し、うち1人は距離「1」である。」であったとする。この判別ルールにマッチする訓練データは、グラフ47に示す部分グラフ構造を含むことになる。グラフ47に対応する行列表現は、行列48となる。つまり、学習装置100は、行列48を含む訓練データを学習することで、上述の判別ルールを学習することができる。
【0057】
図13は、学習可能な他の判別ルールの一例を示す図である。
図13の例では、判別ルールとして「距離「4」以内に3人の依存症患者が存在し、その依存症患者中の少なくとも2人は距離「2」以内である。」であったとする。この判別ルールにマッチする訓練データは、グラフ49に示す部分グラフ構造を含むことになる。グラフ49に対応する行列表現は、行列50となる。つまり、学習装置100は、行列50を含む訓練データを学習することで、上述の判別ルールを学習することができる。学習装置100は、
図12および
図13に示すような複雑な判別ルールであっても、判別ルールにマッチする全ての訓練データが同一の部分グラフ構造を含むので、判別ルールを容易に学習することができる。
【0058】
次に、実施例の学習装置100の動作について説明する。まず、判別モデルを学習する学習処理について説明する。
図14は、実施例の学習処理の一例を示すフローチャートである。
【0059】
取得部131は、例えば、管理者などの端末から学習用の訓練データを受信して取得する(ステップS1)。取得部131は、取得した訓練データを訓練データ記憶部121に記憶する。取得部131は、訓練データを訓練データ記憶部121に記憶すると、生成部132に生成指示を出力する。
【0060】
生成部132は、取得部131から生成指示が入力されると、各訓練データにおける最長距離を算出する。生成部132は、算出した各訓練データにおける最長距離のうち、最大値を最長距離mに設定する(ステップS2)。生成部132は、訓練データ記憶部121を参照し、訓練データおよび最長距離mに基づいて、拡張グラフデータを生成する(ステップS3)。生成部132は、生成した拡張グラフデータを拡張グラフデータ記憶部122に記憶する。生成部132は、拡張グラフデータを拡張グラフデータ記憶部122に記憶すると、学習部133に学習指示を出力する。
【0061】
学習部133は、生成部132から学習指示が入力されると、拡張グラフデータ記憶部122を参照し、拡張グラフデータを学習する(ステップS4)。学習部133は、所定回数の学習が実行された場合、または、誤差が所定値より小さくなった場合に学習を終了し、各種パラメータやテンソル分解の方法等を判別モデルとして判別モデル記憶部123に記憶する(ステップS5)。これにより、学習装置100は、学習時と異なる連鎖状況のグラフについての機械学習の判別精度を向上できる。また、学習装置100は、拡張グラフデータが遠距離ノード間の接続が隣接ノードとなる部分グラフ構造を含むため、遠距離ノードを含む部分グラフ構造のバリエーションが大きく抑制されるので、少ない訓練データでも判別ルールが学習できる。
【0062】
続いて、新規データを判別する判別処理について説明する。
図15は、実施例の判別処理の一例を示すフローチャートである。
【0063】
判別部134は、例えば、管理者などの端末から判別対象の新規データを受信して取得する(ステップS11)。判別部134は、取得した新規データおよび最長距離mに基づいて、拡張グラフデータを生成する(ステップS12)。判別部134は、判別モデル記憶部123を参照し、判別モデルを用いて、生成した拡張グラフデータを判別する(ステップS13)。判別部134は、判別モデルの判別結果を、例えば、表示部111に出力して表示させる(ステップS14)。これにより、学習装置100は、学習時と異なる連鎖状況のグラフであって、訓練データと共通する部分グラフ構造を有するグラフ構造のデータを判別できる。つまり、学習装置100は、学習時と異なる連鎖状況のグラフについての機械学習の判別精度を向上できる。
【0064】
このように、学習装置100は、学習対象のグラフデータから、グラフデータに含まれる各ノードの値、および、グラフデータに含まれる各ノードと他ノードとの距離に対応する値を有する、拡張グラフデータを生成する。また、学習装置100は、生成した拡張グラフデータを入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する。その結果、学習装置100は、学習時と異なる連鎖状況のグラフについての機械学習の判別精度を向上できる。
【0065】
また、学習装置100は、各ノードと他ノードとの接続を表す接続行列を生成し、生成した接続行列に基づく距離行列を対角成分とする行列を拡張グラフデータとして生成する。その結果、学習装置100は、遠距離ノードを含む場合や、距離幾つ以内といった条件を含む場合であっても、少ない訓練データで学習することができる。
【0066】
また、学習装置100は、グラフデータに含まれる各ノード間の最長距離を算出し、算出した最長距離までの距離数に応じて接続行列を冪乗した行列に基づく距離行列をそれぞれ生成する。また、学習装置100は、生成したそれぞれの距離行列を対角成分とする行列を拡張グラフデータとして生成する。その結果、学習装置100は、遠距離ノードを含む場合や、距離幾つ以内といった条件を含む場合であっても、少ない訓練データで学習することができる。
【0067】
なお、上記実施例では、ニューラルネットワークとして、RNNを一例として挙げたが、これに限定されない。例えば、CNN(Convolutional Neural Network)など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層(隠れ層)、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。また、機械学習としては、ニューラルネットワーク以外にも、SVM(support vector machine)等の各種手法を用いてもよい。
【0068】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部131と生成部132とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【0069】
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【0070】
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
図16は、学習プログラムを実行するコンピュータの一例を示す図である。
【0071】
図16に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線または無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201〜208は、バス209に接続される。
【0072】
ハードディスク装置208には、
図1に示した取得部131、生成部132、学習部133および判別部134の各処理部と同様の機能を有する学習プログラムが記憶される。また、ハードディスク装置208には、訓練データ記憶部121、拡張グラフデータ記憶部122、判別モデル記憶部123、および、学習プログラムを実現するための各種データが記憶される。入力装置202は、例えば、コンピュータ200の管理者から操作情報等の各種情報の入力を受け付ける。モニタ203は、例えば、コンピュータ200の管理者に対して表示画面等の各種画面を表示する。インタフェース装置205は、例えば印刷装置等が接続される。通信装置206は、例えば、
図1に示した通信部110と同様の機能を有し図示しないネットワークと接続され、他の情報処理装置と各種情報をやりとりする。
【0073】
CPU201は、ハードディスク装置208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を
図1に示した取得部131、生成部132、学習部133および判別部134として機能させることができる。
【0074】
なお、上記の学習プログラムは、必ずしもハードディスク装置208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD−ROMやDVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの学習プログラムを記憶させておき、コンピュータ200がこれらから学習プログラムを読み出して実行するようにしてもよい。