(57)【要約】【課題】学習対象の順序を含めた関係を学習できる学習プログラム、学習方法および学習装置を提供する。【解決手段】学習プログラムは、複数のデータ群から、順序を有する複数の抽出データ群を抽出する処理をコンピュータに実行させる。学習プログラムは、抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成する処理をコンピュータに実行させる。学習プログラムは、生成した順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する処理をコンピュータに実行させる。【選択図】図１
2019125319.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ群から、順序を有する複数の抽出データ群を抽出し、
前記抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成し、
生成した前記順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、前記ニューラルネットワークの深層学習を行うとともに、前記テンソル分解の方法を学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項２】
前記順序は、時系列に対応する順序であり、
前記生成する処理は、直近の前記抽出データ群と、現時刻の前記抽出データ群とに基づいて、前記順序付きデータ行列を生成する、
ことを特徴とする請求項１に記載の学習プログラム。
【請求項３】
前記順序は、ランキングに対応する順序であり、
前記生成する処理は、前記抽出データ群から各々選択した２つの抽出データ群に基づいて、抽出した前記抽出データ群全体に対応する数の前記順序付きデータ行列を生成する、
ことを特徴とする請求項１に記載の学習プログラム。
【請求項４】
複数のデータ群から、順序を有する複数の抽出データ群を抽出し、
前記抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成し、
生成した前記順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、前記ニューラルネットワークの深層学習を行うとともに、前記テンソル分解の方法を学習する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項５】
複数のデータ群から、順序を有する複数の抽出データ群を抽出する抽出部と、
前記抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成する生成部と、
生成した前記順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、前記ニューラルネットワークの深層学習を行うとともに、前記テンソル分解の方法を学習する学習部と、
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
近年、機械学習を異常検知等に応用することが提案されている。例えば、複数のセンサによる異常検知を行う場合、ニューラルネットワークを用いて、複数のセンサの個別の値と異常との関係を学習することにより、センサごとに異常検知を行うことが提案されている。また、グラフ構造のデータを深層学習する事が可能なグラフ構造学習技術（以降、このようなグラフ構造学習を行う装置の一形態を「ディープテンソル」と呼ぶ。）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０５９７５４号公報
【特許文献２】特開２０１７−０６８６０８号公報
【特許文献３】特開２０１５−０８８１８８号公報
【特許文献４】特開２０１６−１６２４３７号公報
【非特許文献】
【０００４】
【非特許文献１】"Deep  Tensor:  Eliciting  New  Insights  from  Graph  Data  that  Express  Relationships  between  People  and  Things"  Koji  Maruhashi著  Fujitsu  Sci.  Tech.  J.,  Vol.53,  No.5,  pp.26-31  (September  2017）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ディープテンソルでは、グラフ構造のデータを用いることで、複数のセンサの個別の値と異常との関係だけでなく、複数のセンサ間の関係による異常検知を行うことが可能となる。例えば、所定時間幅における各センサ情報の観測値を用いて相関係数を算出し、所定以上の相関を持つセンサ間を接続したグラフ構造を入力とする事で、「センサＡとセンサＢの間に強い相関がなければ故障」といった故障検知ルールを学習することができる。
【０００６】
しかしながら、ディープテンソルでは、入力データをグラフとして処理するため、ノード順序の任意性を持つ。このため、時間の前後関係といった順序情報をそのまま扱う事はできない。例えば、「正常時のセンサＡとセンサＢとの強い相関がある装置において、この関係が消失した場合は故障」（正常時からセンサＡとセンサＢに強い相関がない場合は故障と判定しない）といった検知ルールは、別途特徴量を設ける等の対応を行わない限り、正しく学習する事ができない。この結果として、例えば、センサＡとセンサＢとが相関が無い状況から強い相関が生じる現象を、時間の前後関係が逆であるにも関わらず、異常と判定してしまう事になる。すなわち、複数のセンサのデータを、そのままディープテンソルに入力しても、順序性を問われる関係について学習することが困難である。
【０００７】
一つの側面では、学習対象の順序を含めた関係を学習できる学習プログラム、学習方法および学習装置を提供することにある。
【課題を解決するための手段】
【０００８】
一つの態様では、学習プログラムは、複数のデータ群から、順序を有する複数の抽出データ群を抽出する処理をコンピュータに実行させる。学習プログラムは、前記抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成する処理をコンピュータに実行させる。学習プログラムは、生成した前記順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、前記ニューラルネットワークの深層学習を行うとともに、前記テンソル分解の方法を学習する処理をコンピュータに実行させる。
【発明の効果】
【０００９】
学習対象の順序を含めた関係を学習できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１の学習装置の構成の一例を示すブロック図である。
【図２】図２は、グラフ構造とテンソルとの関係の一例を示す図である。
【図３】図３は、部分グラフ構造の抽出の一例を示す図である。
【図４】図４は、センサ間の接続行列に時間軸を加えた場合の一例を示す図である。
【図５】図５は、区別されないデータの一例を示す図である。
【図６】図６は、入力データ形式の一例を示す図である。
【図７】図７は、学習された判別ルールの一例を示す図である。
【図８】図８は、誤検知しない場合の一例を示す図である。
【図９】図９は、実施例１の学習処理の一例を示すフローチャートである。
【図１０】図１０は、実施例１の判別処理の一例を示すフローチャートである。
【図１１】図１１は、ランキング学習における入力データの一例を示す図である。
【図１２】図１２は、実施例２の入力データの一例を示す図である。
【図１３】図１３は、実施例２の学習結果の一例を示す図である。
【図１４】図１４は、学習プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本願の開示する学習プログラム、学習方法および学習装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１２】
図１は、実施例１の学習装置の構成の一例を示すブロック図である。図１に示す学習装置１００は、グラフ構造のデータを深層学習するディープテンソルによって判別モデルを生成し、判別モデルを用いて新規なグラフ構造のデータを判別する学習装置の一例である。学習装置１００は、複数のデータ群から、順序を有する複数の抽出データ群を抽出する。学習装置１００は、抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成する。学習装置１００は、生成した順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する。これにより、学習装置１００は、学習対象の順序を含めた関係を学習できる。
【００１３】
まず、ディープテンソルについて説明する。ディープテンソルとは、テンソル（グラフ情報）を入力とするディープラーニングであり、ニューラルネットワークの学習とともに、判別に寄与する部分グラフ構造を自動的に抽出する。この抽出処理は、ニューラルネットワークの学習とともに、入力テンソルデータのテンソル分解のパラメータを学習することによって実現される。
【００１４】
次に、図２および図３を用いてグラフ構造について説明する。図２は、グラフ構造とテンソルとの関係の一例を示す図である。図２に示すグラフ２０は、４つのノードがノード間の関係性（例えば「相関係数が所定値以上」）を示すエッジで結ばれている。なお、エッジで結ばれていないノード間は、当該関係性がないことを示す。グラフ２０を２階のテンソル、つまり行列で表す場合、例えば、ノードの左側の番号に基づく行列表現は「行列Ａ」で表され、ノードの右側の番号（囲み線で囲んだ数字）に基づく行列表現は「行列Ｂ」で表される。これらの行列の各成分は、ノード間が結ばれている（接続している）場合「１」で表され、ノード間が結ばれていない（接続していない）場合「０」で表される。以下の説明では、この様な行列を接続行列ともいう。ここで、「行列Ｂ」は、「行列Ａ」の２，３行目および２，３列目を同時に置換することで生成できる。ディープテンソルでは、この様な置換処理を用いることで順序の違いを無視して処理を行う。すなわち、「行列Ａ」および「行列Ｂ」は、ディープテンソルでは順序性が無視され、同じグラフとして扱われる。なお、３階以上のテンソルについても同様の処理となる。
【００１５】
図３は、部分グラフ構造の抽出の一例を示す図である。図３に示すグラフ２１は、６つのノードがエッジで結ばれたものである。グラフ２１は、行列（テンソル）で表すと行列２２に示すように表現できる。行列２２に対して、特定の行および列を入れ替える演算、特定の行および列を抽出する演算、ならびに、接続行列における非ゼロ要素をゼロに置換する演算を組み合わせることで、部分グラフ構造を抽出できる。例えば、行列２２の「ノード１，４，５」に対応する行列を抽出すると、行列２３となる。次に、行列２３の「ノード４，５」間の値をゼロに置換すると、行列２４となる。行列２４に対応する部分グラフ構造は、グラフ２５となる。
【００１６】
このような部分グラフ構造の抽出処理は、テンソル分解と呼ばれる数学的演算によって実現される。テンソル分解とは、入力されたｎ階テンソルをｎ階以下のテンソルの積で近似する演算である。例えば、入力されたｎ階テンソルを１つのｎ階テンソル（コアテンソルと呼ばれる。）、および、より低階のｎ個のテンソル（ｎ＞２の場合、通常は２階のテンソル、つまり行列が用いられる。）の積で近似する。この分解は一意ではなく、入力データが表すグラフ構造中の任意の部分グラフ構造をコアテンソルに含める事ができる。
【００１７】
続いて、図４および図５を用いて、各時刻のセンサ間の接続行列（２階のテンソル）に時間軸を加えた３次元配列をディープテンソルの入力とした場合について説明する。ここで、学習したい判別ルールは、「正常時においてセンサＡとセンサＢとが接続する（相関が高い）場合、故障時にはその関係が消失する。」であったとする。この判別ルールは、直近（ｔ−１）の接続行列Ｘ（ｔ−１）と、現時刻（ｔ）の接続行列Ｘ（ｔ）の変化に基づくルールであり、接続行列Ｘ（ｔ−１）と、接続行列Ｘ（ｔ）との２つの行列を用いて初めて判別可能なルールである。なお、センサＡやセンサＢが計測する対象としては、例えば、エンジン回転数、速度、加速度等が挙げられる。例えば、エンジン回転数が高くなっているにも関わらず加速度が高くならない場合に、相関が弱くなったとして警告を出すことが考えられる。
【００１８】
図４は、センサ間の接続行列に時間軸を加えた場合の一例を示す図である。図４に示す表２６は、センサ間の接続行列に時間軸を加えた３次元配列を表形式で表したものである。つまり、表２６は、「時刻」、「センサ１」および「センサ２」の３次元配列に、接続情報（接続：１，非接続：０で表す。）を対応付けたものである。表２６に示すように、時刻「０」から時刻「ｔ−１」までは、センサＡとセンサＢとは接続しているが、時刻「ｔ」においてセンサＡとセンサＢとは非接続となっている。ところが、表２６の３次元配列をディープテンソルに入力すると、ディープテンソルでは、表２６の３次元配列を３階のテンソルとして扱うので、時刻の順序性が無視され、意図した処理とならない。
【００１９】
すなわち、時間軸を追加するという処理は、グラフＸ（ｔ）と、グラフＸ（ｔ−１）とを並べることに相当し、（Ｘ（ｔ−１）のグラフ構造，Ｘ（ｔ）のグラフ構造）と表現できる。一方、この様な２つのグラフを並べた新たなグラフも、グラフとして扱われるので順序は交換可能である。つまり、上述のグラフは、（Ｘ（ｔ）のグラフ構造，Ｘ（ｔ−１）のグラフ構造）と同形である。このため、表２６に示すような、直近からのグラフ構造の変化を判別ルールに用いようとしても、グラフの性質上、この様な順序の逆転を許すので上手くいかないこととなる。
【００２０】
図５は、区別されないデータの一例を示す図である。図５は、グラフＸ（ｔ）と、グラフＸ（ｔ−１）と、時間軸との関係を示す。３次元配列データ２７は、ディープテンソルにおいて各軸の順序は意味を持たないため、時間軸上でグラフＸ（ｔ）と、グラフＸ（ｔ−１）とを置き換えた３次元配列データ２８と区別されないことになる。つまり、「センサＡとセンサＢとの接続関係が時刻ｔで消失」を表す部分グラフ構造と、「センサＡとセンサＢとの接続関係が時刻ｔで発生」を表す部分グラフ構造とは区別されない。従って、前者の部分グラフ構造を判別ルールとして学習出来たとしても、当該判別ルールは後者の部分グラフ構造にもマッチしてしまい、誤検知となってしまうことになる。これに対し、本実施例では、元々の入力データに対して順序を表す情報を追加した新たなグラフを入力データとすることで、順序性を問われる関係について学習することができる。
【００２１】
次に、学習装置１００の構成について説明する。図１に示すように、学習装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、学習装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００２２】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。通信部１１０は、例えば、管理者などの端末から学習用のデータ群や判別対象のデータ群を受信する。また、通信部１１０は、管理者などの端末に、学習結果や判別結果を送信する。
【００２３】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。
【００２４】
操作部１１２は、学習装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００２５】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、訓練データ記憶部１２１と、順序付きデータ行列記憶部１２２と、判別モデル記憶部１２３とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００２６】
訓練データ記憶部１２１は、例えば、通信部１１０を介して入力された複数のデータ群から抽出された、順序を有する複数の抽出データ群である訓練データ群を記憶する。上述のセンサＡおよびセンサＢの例では、訓練データ記憶部１２１には、時刻「０」から時刻「ｔ」までの複数のデータ群から抽出された、時刻「ｔ−１」および「ｔ」のデータ群（グラフ）であるＸ（ｔ−１）およびＸ（ｔ）が訓練データ群として記憶される。
【００２７】
順序付きデータ行列記憶部１２２は、訓練データ群の各訓練データ（グラフ）を、さらに行列で表した順序付きデータ行列、つまりテンソルを記憶する。上述のセンサＡおよびセンサＢの例では、グラフＸ（ｔ−１）およびＸ（ｔ）に順序を追加した下記の式（１）で示す順序付きデータ行列Ｙが記憶される。
【００２８】
【数１】
2019125319.tif 000003
【００２９】
ここで、グラフＸを構成するノードの数をｎとした場合、Ｉは、ｎ×ｎの行列で成分が全て「１」の行列（以下、１行列という。）である。また、Ｏは、ｎ×ｎの行列で成分が全て「０」の行列（以下、ゼロ行列という。）である。順序付きデータ行列Ｙでは、この行列Ｉおよび行列Ｏによってノード間の順序が定義される。
【００３０】
同様に、グラフＸ（ｔ−２），Ｘ（ｔ−１），Ｘ（ｔ）の３つのグラフ（訓練データ群）を入力とする場合の順序付きデータ行列Ｙは、下記の式（２）に示すように記述できる。なお、４つ以上のグラフを入力とする場合についても、同様に記述できる。
【００３１】
【数２】
2019125319.tif 000004
【００３２】
判別モデル記憶部１２３は、順序付きデータ行列を深層学習した判別モデルを記憶する。判別モデルは、学習モデルとも呼ばれ、例えば、ニューラルネットワークの各種パラメータ（重み係数）や、テンソル分解の方法等を記憶する。
【００３３】
図１の説明に戻って、制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３０は、抽出部１３１と、生成部１３２と、学習部１３３と、判別部１３４とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００３４】
抽出部１３１は、複数のデータ群から、学習したい判別ルールに関係するデータ群を抽出する。抽出部１３１は、例えば、通信部１１０を介して、管理者などの端末から学習用の複数のデータ群を受信すると、順序を有するデータ群を抽出する。抽出部１３１は、例えば、上述のセンサＡおよびセンサＢの例では、接続情報が変化する前後のデータ群である、グラフＸ（ｔ−１）およびＸ（ｔ）を抽出する。抽出部１３１は、抽出したデータ群を訓練データ群として訓練データ記憶部１２１に記憶する。抽出部１３１は、訓練データ群を訓練データ記憶部１２１に記憶すると、生成部１３２に生成指示を出力する。
【００３５】
生成部１３２は、抽出部１３１から生成指示が入力されると、訓練データ記憶部１２１を参照し、訓練データ群に基づいて、順序付きデータ行列を生成する。生成部１３２は、上述のセンサＡおよびセンサＢの例では、グラフＸ（ｔ−１）およびＸ（ｔ）に順序を追加した式（１）で示す順序付きデータ行列Ｙを生成する。生成部１３２は、生成した順序付きデータ行列Ｙを順序付きデータ行列記憶部１２２に記憶する。生成部１３２は、順序付きデータ行列Ｙを順序付きデータ行列記憶部１２２に記憶すると、学習部１３３に学習指示を出力する。
【００３６】
ここで、図６を用いて学習部１３３への入力データ形式について説明する。図６は、入力データ形式の一例を示す図である。図６に示すように、データ行列３０は、学習部１３３への入力データ形式、つまり、順序付きデータ行列Ｙのデータ形式の一例である。データ行列３０は、行列の対角成分にグラフＸ（ｔ−１）およびＸ（ｔ）を有し、上部の成分が行列Ｉ（１行列）、下部の成分が行列Ｏ（ゼロ行列）の行列を展開したものであり、グラフＸ（ｔ−１）およびＸ（ｔ）のデータ要素を行および列としている。なお、上部の成分とは、ｎ行ｍ列の行列におけるｎ＜ｍとなる成分であり、下部の成分とは、ｎ＞ｍとなる成分である。すなわち、データ行列３０は、図６に示すように、４つの行列を組み合わせた行列である。
【００３７】
また、グラフＸ（ｔ−１）およびＸ（ｔ）のデータ要素は、Ａ（ｔ−１），Ｂ（ｔ−１），Ａ（ｔ），Ｂ（ｔ）である。なお、データ行列３０の「・・・」で示す部分は、データ行列３０のテンソルの階数に応じて、データ要素の行列が増加することを表している。つまり、データ行列３０は、上述のセンサＡおよびセンサＢの例では、２階のテンソルとなり、４行４列の行列となる。
【００３８】
言い換えると、生成部１３２は、抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成する。ここで、抽出データ群は、訓練データ群に対応する。また、データ要素間の関係に応じた値は、接続行列の成分に対応する。さらに、上述のセンサＡおよびセンサＢの例に示すように、順序は、時系列に対応する順序であり、生成部１３２は、直近の抽出データ群と、現時刻の抽出データ群とに基づいて、順序付きデータ行列を生成する。
【００３９】
図１の説明に戻って、学習部１３３は、生成部１３２から学習指示が入力されると、順序付きデータ行列記憶部１２２を参照し、順序付きデータ行列を学習して判別モデルを生成または更新する。つまり、学習部１３３は、順序付きデータ行列をテンソル分解し、コアテンソル（部分グラフ構造）を生成する。学習部１３３は、生成したコアテンソルをニューラルネットワークに入力して出力を得る。学習部１３３は、出力値の誤差が小さくなるように学習するとともに、判定精度が高くなるようにテンソル分解のパラメータを学習する。テンソル分解においては自由度があり、テンソル分解のパラメータとして、分解モデル、制約、最適化アルゴリズムの組み合わせ等が挙げられる。分解モデルは、例えば、ＣＰ（Canonical  Polyadic  decomposition）やＴｕｃｋｅｒが挙げられる。制約は、例えば、直交制約、スパース制約、スムース制約、非負制約等が挙げられる。最適化アルゴリズムは、例えば、ＡＬＳ（Alternating  Least  Square）、ＨＯＳＶＤ（Higher  Order  Singular  Value  Decomposition）、ＨＯＯＩ（Higher  Order  Orthogonal  Iteration  of  tensors）等が挙げられる。ディープテンソルにおいては、「判定精度が高くなる」という制約下でテンソル分解を行う事になる。
【００４０】
その後、学習部１３３は、所定回数の学習が実行された場合、または、誤差が所定値より小さくなった場合に学習を終了し、各種パラメータやテンソル分解の方法等を判別モデルとして判別モデル記憶部１２３に記憶する。なお、ニューラルネットワークは、ＲＮＮ（再帰型ニューラルネットワーク：Recurrent  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習方法は、誤差逆伝播法など様々な手法を採用することができる。
【００４１】
ここで、図７を用いて学習された判別ルールについて説明する。図７は、学習された判別ルールの一例を示す図である。図７に示す行列３１は、上述のセンサＡおよびセンサＢの例で学習した判別モデルの判別ルールである。なお、学習した判別ルールは、「正常時においてセンサＡとセンサＢとが接続する（相関が高い）場合、故障時にはその関係が消失する。」である。グラフ３２は、行列３１が表すグラフであり、時刻ｔ−１および時刻ｔにおけるセンサＡおよびセンサＢの相関を表す。なお、エッジの矢印は有向グラフを示す。当該判別モデルでは、判別対象のデータ群がグラフ３２に示す部分グラフ構造を含んでいる場合に、故障として検知することができる。
【００４２】
言い換えると、学習部１３３は、生成した順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する。
【００４３】
図１の説明に戻って、判別部１３４は、判別モデルの学習後に、新規データ群を取得し、判別モデルを用いて判別した判別結果を出力する。判別部１３４は、例えば、通信部１１０を介して、管理者などの端末から判別対象のデータ群を受信すると、受信したデータ群を新規データ群として取得する。判別部１３４は、学習時の生成部１３２と同様に、取得した新規データ群に基づいて、順序付きデータ行列を生成する。
【００４４】
判別部１３４は、判別モデル記憶部１２３を参照し、判別モデルを用いて、生成した順序付きデータ行列を判別する。すなわち、判別部１３４は、判別モデルの各種パラメータを設定したニューラルネットワークを構築し、テンソル分解の方法を設定する。判別部１３４は、生成した順序付きデータ行列をテンソル分解し、ニューラルネットワークに入力して、判別結果を取得する。判別部１３４は、取得した判別結果を表示部１１１に出力して表示したり、記憶部１２０に出力して記憶したりする。
【００４５】
ここで、図８を用いて順序を有する関係の入力データでも誤検知しない場合について説明する。図８は、誤検知しない場合の一例を示す図である。図８に示すグラフ３３は、図４および図５に示すように、順序情報を接続行列の軸として追加した場合に誤検知となったグラフである。一方、本実施例では、順序情報が保存されているため、グラフ３３は判定ルールのグラフ３２にマッチしない。従って、判別部１３４は、グラフ３３を含むグラフ構造のデータが入力されても故障と判定しない。つまり、判別部１３４は、誤検知しないことになる。
【００４６】
次に、実施例１の学習装置１００の動作について説明する。まず、判別モデルを学習する学習処理について説明する。図９は、実施例１の学習処理の一例を示すフローチャートである。
【００４７】
抽出部１３１は、例えば、管理者などの端末から学習用の複数のデータ群を受信すると、順序を有するデータ群を抽出する（ステップＳ１）。抽出部１３１は、抽出したデータ群を訓練データ群として訓練データ記憶部１２１に記憶する。抽出部１３１は、訓練データ群を訓練データ記憶部１２１に記憶すると、生成部１３２に生成指示を出力する。
【００４８】
生成部１３２は、抽出部１３１から生成指示が入力されると、訓練データ記憶部１２１を参照し、訓練データ群に基づいて、順序付きデータ行列を生成する（ステップＳ２）。生成部１３２は、生成した順序付きデータ行列を順序付きデータ行列記憶部１２２に記憶する。生成部１３２は、順序付きデータ行列を順序付きデータ行列記憶部１２２に記憶すると、学習部１３３に学習指示を出力する。
【００４９】
学習部１３３は、生成部１３２から学習指示が入力されると、順序付きデータ行列記憶部１２２を参照し、順序付きデータ行列を学習する（ステップＳ３）。学習部１３３は、所定回数の学習が実行された場合、または、誤差が所定値より小さくなった場合に学習を終了し、各種パラメータやテンソル分解の方法等を判別モデルとして判別モデル記憶部１２３に記憶する（ステップＳ４）。これにより、学習装置１００は、学習対象の順序を含めた関係を学習できる。また、学習装置１００は、順序情報を含むグラフ構造のデータを入力できるので、人では判りにくい相関関係を学習することができる。
【００５０】
続いて、新規データを判別する判別処理について説明する。図１０は、実施例１の判別処理の一例を示すフローチャートである。
【００５１】
判別部１３４は、例えば、管理者などの端末から判別対象のデータ群を受信すると、受信したデータ群を新規データ群として取得する（ステップＳ１１）。判別部１３４は、取得した新規データ群に基づいて、順序付きデータ行列を生成する（ステップＳ１２）。判別部１３４は、判別モデル記憶部１２３を参照し、判別モデルを用いて、生成した順序付きデータ行列を判別する（ステップＳ１３）。判別部１３４は、判別モデルの判別結果を、例えば、表示部１１１に出力して表示させる（ステップＳ１４）。これにより、学習装置１００は、順序を含めた関係を有するグラフ構造のデータを判別できる。
【００５２】
このように、学習装置１００は、複数のデータ群から、順序を有する複数の抽出データ群を抽出する。また、学習装置１００は、抽出データ群のそれぞれに対応する各データ要素について、同順序のデータ要素間に該データ要素間の関係に応じた値を有し、異なる順序のデータ要素間に該順序に応じた値を有する順序付きデータ行列を生成する。また、学習装置１００は、生成した順序付きデータ行列を入力テンソルデータとしてテンソル分解し、深層学習する際に、ニューラルネットワークに入力し、ニューラルネットワークの深層学習を行うとともに、テンソル分解の方法を学習する。その結果、学習装置１００は、学習対象の順序を含めた関係を学習できる。
【００５３】
また、学習装置１００では、順序は、時系列に対応する順序である。また、学習装置１００は、直近の抽出データ群と、現時刻の抽出データ群とに基づいて、順序付きデータ行列を生成する。その結果、学習装置１００は、時系列の関係を含む学習対象を学習できる。
【実施例２】
【００５４】
上記実施例１では、時系列の関係を含むグラフ構造のデータを学習したが、ランキング学習に適用してもよく、この場合の実施の形態につき、実施例２として説明する。なお、実施例２では、基本的に実施例１の学習装置１００と同一の構成であるので、重複する構成および動作の説明については省略する。
【００５５】
実施例２では、学習装置１００は、２つの入力データのうち、どちらが高いか（大きいか）を判定するためにランキング学習を行う。まず、ランキング学習（ｐａｉｒｗｉｓｅ法）について説明する。ランキング学習では、素性ベクトル（特徴ベクトル）Ｘ（ｉ）と、目的変数Ｙ（ｉ）とが紐付けられた訓練データ（Ｘ（ｉ），Ｙ（ｉ））の、任意の組合せ（Ｘ（ｉ），Ｙ（ｉ）），（Ｘ（ｊ），Ｙ（ｊ））について学習を行う。当該学習では、素性をＸ（ｉ）−Ｘ（ｊ）とし、目的変数をｓｇｎ（Ｙ（ｉ）−Ｙ（ｊ））として学習を行い、大小関係推定モデルを生成する。なお、ｓｇｎ（ｖ）は、ｖ＞０なら１、ｖ＜０なら０をとる符号関数である。
【００５６】
ランキング学習では、ランキングを行いたい新規データ（素性ベクトルをＺ（ｉ）とする。）に対して、その任意の組合せの差分ｚ（ｉ，ｊ）を素性として生成したモデルを適用し、当該組合せの大小関係を推定する。次に、推定結果に基づいて、新規データのランキングを行う。
【００５７】
ところが、上述のランキング学習をグラフ構造のデータを入力とするディープテンソルで実現しようとすると、素性となるテンソル間の差分を定義することが出来なくなる。例えば、化合物における酸性度の強弱をランキング学習したい場合、化合物の素性と酸性度とを用いるが、化合物の素性は、化合物の構造を表す接続行列となるが、素性間の差分を定義出来ない。一方、酸性度は、例えば、小さい程酸性度が強いことを示すｐＫａを用いることで、目的変数となる酸性度の強さの大小関係は定義可能である。
【００５８】
ここで、図１１を用いて、この様な化合物のランキング学習における入力データについて説明する。図１１は、ランキング学習における入力データの一例を示す図である。図１１に示すように、化合物Ｄ（ＣＨ４）および化合物Ｅ（ＮＨ３）は、Ｃ，Ｈ，Ｎをラベル（データ要素）とした行列で表すことができる。２つの化合物の差分は、一般的に定義することは出来ないが、化合物間の酸性度の強弱関係は定義可能である。図１１の例では、化合物Ｄ（ＣＨ４）＜化合物Ｅ（ＮＨ３）と表すことができる。つまり、化合物Ｅ（ＮＨ３）の方が、酸性度が強い。
【００５９】
そこで、本実施例では、素性の差分の代わりに、素性Ｘ（ｉ）と素性Ｘ（ｊ）の順序情報付きテンソル、つまり、下記の式（３）に示す順序付きデータ行列を素性として学習および判定（推定）を行う。式（３）に示すように、２つの素性と、その順序関係が入力データとなるので、適切な学習を行うことが可能となる。
【００６０】
【数３】
2019125319.tif 000005
【００６１】
図１２は、実施例２の入力データの一例を示す図である。図１２に示すように、本実施例では、例えば、化合物Ｄ（ＣＨ４）および化合物Ｅ（ＮＨ３）をランキング学習する場合、行列３４に示すような順序付きデータ行列を生成する。つまり、本実施例では、学習装置１００は、行列３４を説明変数、「１」を目的変数とする訓練データを生成する。なお、酸性度は、化合物ＤがｐＫａ＝４９、化合物ＥがｐＫａ＝３６であるので、化合物Ｅの方が化合物Ｄよりも酸性度が強い。
【００６２】
図１３は、実施例２の学習結果の一例を示す図である。本実施例の学習装置１００は、「ＣＨ」を含む化合物と、「ＣＨ」を「Ｎ」に置き換えた化合物間の酸性度の強弱関係を訓練データとすることにより、図１３の行列３５に示す部分グラフ構造が、酸性度の強弱を判定することに寄与することを学習できる。ここで、行列３５は、「（Ｃ−Ｈ）→Ｎ」という有向エッジを含む部分グラフ構造を表す。このように、実施例２の学習装置１００は、例えば、化合物の酸性度の様なランキングを学習することができる。
【００６３】
このように、実施例２の学習装置１００では、順序は、ランキングに対応する順序である。また、学習装置１００は、抽出データ群から各々選択した２つの抽出データ群に基づいて、抽出した抽出データ群全体に対応する数の順序付きデータ行列を生成する。その結果、学習装置１００は、ランキングの関係を含む学習対象を学習できる。
【００６４】
なお、上記各実施例では、順序を無視したテンソルとして処理を行うべき軸が２つと、順序を考慮するべき軸が１つとを有する３軸のデータを用いたが、これに限定されない。例えば、順序を無視したテンソルとして扱う軸の数をｎ、順序を考慮する軸の数をｍとすると、ｎ，ｍが２以上であっても、拡張して扱うことができる。この場合、順序を無視したテンソルとして扱うｎ個の軸でテンソルＸ（ｉ）を構成する。なお、ｉはｉ番目のサンプルを表す。次に、順序を考慮するｍ個の軸をａ１〜ａｍで表すと、下記の式（４）および式（５）に示すように、逐次的にデータを構成できる。ここで、順序関係は、軸ａｘで定義される順序である。すなわち、式（４）は１つ目の順序軸に対応し、式（５）は２つ目の順序軸に対応する。以降、ｍに対応するデータを逐次構成できる。この場合の学習装置１００は、このように生成した順序付きデータ行列Ｙｍを入力データとする。これにより、この場合の学習装置１００は、順序を考慮する軸が２つ以上ある場合であっても、上記各実施例で説明した学習方法を適用することができる。
【００６５】
【数４】
2019125319.tif 000006
【数５】
2019125319.tif 000007
【００６６】
また、上記各実施例では、ニューラルネットワークとして、ＲＮＮを一例として挙げたが、これに限定されない。例えば、ＣＮＮ（Convolutional  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。また、機械学習としては、ニューラルネットワーク以外にも、ＳＶＭ（support  vector  machine）等の各種手法を用いてもよい。
【００６７】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、抽出部１３１と生成部１３２とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００６８】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００６９】
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１４は、学習プログラムを実行するコンピュータの一例を示す図である。
【００７０】
図１４に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００７１】
ハードディスク装置２０８には、図１に示した抽出部１３１、生成部１３２、学習部１３３および判別部１３４の各処理部と同様の機能を有する学習プログラムが記憶される。また、ハードディスク装置２０８には、訓練データ記憶部１２１、順序付きデータ行列記憶部１２２、判別モデル記憶部１２３、および、学習プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００の管理者から操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００の管理者に対して表示画面等の各種画面を表示する。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、他の情報処理装置と各種情報をやりとりする。
【００７２】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した抽出部１３１、生成部１３２、学習部１３３および判別部１３４として機能させることができる。
【００７３】
なお、上記の学習プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの学習プログラムを記憶させておき、コンピュータ２００がこれらから学習プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７４】
１００  学習装置
１１０  通信部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  訓練データ記憶部
１２２  順序付きデータ行列記憶部
１２３  判別モデル記憶部
１３０  制御部
１３１  抽出部
１３２  生成部
１３３  学習部
１３４  判別部
【図１】
2019125319.tif 000008
【図２】
2019125319.tif 000009
【図３】
2019125319.tif 000010
【図４】
2019125319.tif 000011
【図５】
2019125319.tif 000012
【図６】
2019125319.tif 000013
【図７】
2019125319.tif 000014
【図８】
2019125319.tif 000015
【図９】
2019125319.tif 000016
【図１０】
2019125319.tif 000017
【図１１】
2019125319.tif 000018
【図１２】
2019125319.tif 000019
【図１３】
2019125319.tif 000020
【図１４】
2019125319.tif 000021