以下、実施形態のニューラルネットワーク評価装置、ニューラルネットワーク評価方法、およびプログラムを、図面を参照して説明する。なお以下の説明では、同一または類似の機能を有する構成に同一の符号を付す。そして、それら構成の重複する説明は省略する場合がある。
また、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
(第1の実施形態)
[ニューラルネットワーク評価システム]
図1は、第1の実施形態のニューラルネットワーク評価システムの一例を示す図である。第1の実施形態のニューラルネットワーク評価システム1は、ニューラルネットワーク評価装置100と、端末装置200とを備える。ニューラルネットワーク評価装置100と、端末装置200とは、ネットワーク50を介して接続される。
ニューラルネットワーク評価装置100は、指定されたニューラルネットワークに関して、入力データのサンプル(以下「サンプル」という。)に関して、サンプルに含まれる入力値の各々を微小に変動させた場合にの、ニューラルネットワークの出力ノードの値に基づいて算出される出力値(以下、単に「出力値」という。)の変動を算出する。以下、複数の入力値の各々を微小に変動させた際の出力値の変動を、全ての入力変数について並べることによって得られるベクトルを、変動ベクトルという。なお、出力値は、ニューラルネットワークの出力ノードのうち、いずれかひとつのノードの値であっても良いし、出力ノードのうち、ひとつもしくは複数のノードの値に何らかの演算を適用して算出される値であっても良い。
ニューラルネットワーク評価装置100は、ユーザが指定した複数のサンプル集合について、変動ベクトルを算出し、算出した変動ベクトルを並べる。以下、変動ベクトルを並べることによって得られる行列を変動行列という。ここで、複数のサンプルの各々と、変動行列に含まれる要素とは、関連付けられる。
ニューラルネットワーク評価装置100は、変動行列に基づいて、各サンプルをグループ化する。本実施形態では、グループ化の一例として、クラスタリングを適用した場合について説明を続ける。この場合、ニューラルネットワーク評価装置100は、変動行列に基づいて、各サンプルをクラスタリングする。ニューラルネットワーク評価装置100は、クラスタごとに、モデルの要約情報を生成する。ここで、モデルの要約情報とは、クラスタごとに出力値に影響の強い順に入力変数を並べたランキングや、クラスタごとに出力値と入力変数の関係を単純な形で近似したモデル(例えば線形モデル)などである。
端末装置200は、ニューラルネットワーク評価装置100が送信したモデルの要約情報を受信し、受信した要約情報をユーザに提示する。
(ニューラルネットワーク評価装置)
図2は、第1の実施形態のニューラルネットワーク評価装置の一例を示すブロック図である。ニューラルネットワーク評価装置100は、例えば、通信部102と、記憶部110と、情報処理部130とを備える。
通信部102は、通信モジュールによって実現される。通信部102は、ネットワーク50を経由して、端末装置200と通信を行う。また、通信部102は、端末装置200へ、モデルの要約情報を送信する。
記憶部110は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部110の一部または全部は、ニューラルネットワーク評価装置100の一部として設けられる場合に代えて、NAS(Network Attached Storage)や外部のストレージサーバなど、ニューラルネットワーク評価装置100のプロセッサがネットワーク50を介してアクセス可能な外部装置により実現されてもよい。記憶部110には、情報処理部130により実行されるプログラム112と、設定データ114とが記憶される。設定データ114は、情報処理部130が実行する処理に関して、ユーザが設定する内容を含む。具体的には、ユーザが設定する内容は、モデルデータ、サンプル集合、サンプル集合のグループ化のための各種設定などが含まれる。
[モデルデータ]
モデルデータについて説明する。モデルデータは、要約情報を生成する対象となるニューラルネットワークのデータである。モデルデータは、最低限、与えられた入力データに対して、ニューラルネットワークの各出力ノードの値を算出するために必要な情報を含む。ここで、各出力ノードの値を算出するために必要な情報は、各エッジの重み、バイアスの値、その他活性化関数のパラメータなどの各種パラメータである。第1の実施形態では、ユーザによって、モデルデータが、ニューラルネットワーク評価装置100に、予め与えられる場合について説明を続ける。なお、要約情報を生成する対象となるニューラルネットワークは、入力変数ごとに標準化ないしは正規化した学習データセットにより学習されたものである場合について説明を続ける。
[サンプル集合]
サンプル集合について説明する。サンプル集合は、ニューラルネットワークに入力するデータのサンプルの集合である。ここで、サンプルは、ニューラルネットワークの各入力変数に対する具体的な値を、全ての入力変数についてまとめたものである。例えば、一つの入力データのサンプルを、入力変数を順に横に並べたベクトルとして表現すると、サンプル集合は全てのサンプルのベクトルを縦に並べた、「サンプル数×入力変数の数」のサイズの行列で表現できる。この行列を、以下「サンプル行列」という。
図3は、サンプル行列の一例を示す図である。図3は、入力変数が三つ(x1,x2,x3)である場合のサンプル行列の例である。具体的には、サンプル1には、0.45と、0.12と、0.81とが含まれ、サンプル2には、0.18と、0.29と、0.03とが含まれ、サンプル3には、−0.23と、0.32と、0.53とが含まれ、・・・、サンプルNには、−0.81と、−0.50と、−0.37とが含まれる。第1の実施形態では、ユーザによって、サンプル集合が、ニューラルネットワーク評価装置100に予め与えられる場合について説明を続ける。具体的には、ニューラルネットワークを学習した際の学習データのサンプル集合が、ニューラルネットワーク評価装置100に与えられる。サンプル集合に含まれる各サンプルは、ニューラルネットワークの学習前に学習データセットに対して行った標準化または正規化と同様の係数で、入力変数ごとに変換済みであるものとする。
図2に戻り、説明を続ける。情報処理部130は、例えば、CPU(Central Processing Unit)のようなプロセッサが記憶部110に記憶されたプログラム112を実行することにより実現される機能部(以下「ソフトウェア機能部」という。)である。なお、情報処理部130は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。情報処理部130は、例えば、変動行列算出部132と、グループ化部134と、要約情報生成部136とを備える。
変動行列算出部132は、記憶部110に記憶されている設定データ114に基づいて、変動行列を算出する際の設定を行う。具体的には、要約情報を生成する対象のニューラルネットワークが複数の出力ノードを含み、いずれかの出力ノードの値を出力値として設定して変動行列を算出する場合は、変動行列算出部132は、変動行列を算出する対象の出力ノードを設定する。また、ニューラルネットワークの出力ノードのうち、ひとつあるいは複数のノードの値に何らかの演算を施し、それにより得られる値を出力値として設定して変動行列を算出する場合は、その演算方法を設定する。
また、変動行列算出部132は、設定データ114に含まれるモデルデータ、サンプル集合を参照し、設定に従って変動行列を算出する。具体的には、変動行列算出部132は、各サンプルに対して、出力値の勾配ベクトルを算出する。これは、具体的には、以下のように実施できる。
ここで、変数名の上部の「→」は、その変数がベクトルであることを表す。変動行列算出部132は、モデルデータに基づきニューラルネットワークの各出力ノードの値を算出する。変動行列算出部132は、設定データ114に指定されている出力ノードの値を選択するか、設定データ114に設定されている計算法を出力ノードの値に適用することよって、出力値を取得する。このとき、取得された出力値に関する、ある入力データサンプルに対する勾配ベクトルは、式(1)で表される。
変動行列算出部132は、勾配ベクトルを、サンプル集合全体について算出し、算出した勾配ベクトルを並べた行列を変動行列として、グループ化部134へ出力する。ここで、勾配ベクトルを構成する偏微分の値は、チェーンルールなどを用いて計算できる。チェーンルールとは、複数の関数が合成された合成関数を微分するとき、その導関数がそれぞれの導関数の積で与えられるという関係式のことをいう。
図4は、変動行列の一例を示す図である。図4は、入力変数が三つの場合の例について示す。図4では、変動行列の各行の勾配ベクトルが、サンプル集合のいずれのサンプルから算出されたか対応が分かるようにするために、図3を参照して説明したサンプルの順に合わせて変動行列の各行が並ぶように示されている。具体的には、サンプル1の勾配ベクトルは、0.66、0.01、0.24であり、サンプル2の勾配ベクトルは、0.02、0.74、−0.71であり、サンプル3の勾配ベクトルは、0.01、0.63、−0.65であり、・・・、サンプルNの勾配ベクトルは、0.71、0.01、0.27である。
グループ化部134は、変動行列算出部132が出力した変動行列を取得する。グループ化部134は、取得した変動行列に基づいて、設定データ114に含まれる設定にしたがって、サンプル集合に含まれるサンプルをグループにグループ化する。本実施形態では、グループ化の一例として、クラスタリングを適用した場合について説明を続ける。この場合、グループ化部134は、取得した変動行列に基づいて、サンプル集合に含まれるサンプルを、クラスタリングする。具体的には、グループ化部134は、変動行列の各行の勾配ベクトルを、k−means法などのクラスタリングアルゴリズムでクラスタリングする。変動行列の各行は、サンプル集合に含まれる各サンプルと対応付けられている。このため、変動行列の各行の勾配ベクトルをクラスタリングすることによって、各サンプルがクラスタリングされる。
k−means法について説明する。k−means法とは、非階層型クラスタリングのアルゴリズムの一つである。k−means法は、クラスタの平均を用い、サンプル集合を与えられたクラスタ数k個に分類する。k−means法の手順の一例について説明する。データの数をn、クラスタの数をkとする。各データに対してランダムにクラスタを割り振る。割り振ったデータをもとに各クラスタの中心を計算する。各データと各クラスタの平均との距離を求め、各データを最も近い中心のクラスタに割り当て直す。上記の処理で全てのデータのクラスタの割り当てが変化しなかった場合、あるいは変化量が事前に設定した一定の閾値を下回った場合に、収束したと判断して処理を終了する。そうでない場合は新しく割り振られたクラスタから各クラスタの中心を再計算して上記の処理を繰り返す。
ユーザは、k−means法を用いてクラスタリングするクラスタ数を示す情報などを、設定データ114に記憶させる。グループ化部134は、サンプル集合に含まれる各サンプルが属するクラスタを示す情報を含むクラスタリング結果を、要約情報生成部136へ出力する。
図5は、第1の実施形態のニューラルネットワーク評価装置におけるクラスタリング結果の一例を示す図である。図5は、サンプル集合に、N個(Nは、N>0の整数)のサンプルが含まれる場合に得られるクラスタリング結果を示す。クラスタリング結果には、サンプル1のクラスタ番号−サンプルNのクラスタ番号が含まれる。具体的には、サンプル1のクラスタ番号は1であり、サンプル2のクラスタ番号は2であり、サンプル3のクラスタ番号は2であり、・・・、サンプルNのクラスタ番号は1である。
要約情報生成部136は、変動行列算出部132が出力した変動行列と、グループ化部134が出力したクラスタリング結果を取得する。以降、第1の実施形態では、グループ化部134が出力したクラスタ毎に、出力値に対する影響度の大きい順に入力変数を並べたランキングをモデル要約情報として作成するものとして説明を続ける。要約情報生成部136は、取得したクラスタリング結果に基づいて、クラスタ毎(グループ毎)に、出力値に対する入力変数の影響度を算出する。要約情報生成部136は、出力値に対する影響度の大きい順に入力変数を並べたランキングを作成する。そして、要約情報生成部136は、作成したランキングを、モデル要約情報として、通信部102へ出力する。
具体的には、要約情報生成部136は、あるクラスタに関して、そのクラスタに属するサンプルに対応する行を変動行列から抽出した行列を生成する。要約情報生成部136は、生成した行列、もしくは生成した行列の各要素の絶対値を取ることで得られる行列に対し、列ごとに和、平均値、中央値、最大値、最小値、および最頻値などの統計量を算出する。要約情報生成部136は、算出した統計量を入力変数ごとの影響度とみなす。要約情報生成部136は、影響度が大きい順に入力変数をソートし、全入力変数、もしくは上位から設定データ114に指定された個数の入力変数をランキングとして生成する。要約情報生成部136は、ランキングを生成する処理を全てのクラスタで行い、クラスタごとのランキングをモデル要約情報として、通信部102へ出力する。通信部102は、要約情報生成部136が出力したモデル要約情報を取得し、取得したモデル要約情報を、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100が送信したモデル要約情報を受信し、受信したモデル要約情報を、ユーザへ提示する。
図6は、モデル要約情報の一例を示す図である。第1の実施形態のニューラルネットワーク評価システム1では、モデル要約情報は、端末装置200が表示する。図6に示される例では、クラスタ1、クラスタ2、クラスタ3、およびクラスタ4のうち、ユーザが選択したクラスタについて、入力変数のランキングが表示される。図6に示される例では、クラスタ1が選択され、クラスタ1について、入力変数のランキングが示されている。具体的には、影響度が大きい順に、変数名x11、x4、x8、x5、x1、x7が示されている。このように構成することによって、ニューラルネットワーク評価装置100は、ユーザに、クラスタ毎にどの入力変数が出力値に強い影響を与えるかを知らせることができる。このため、ユーザは、モデルに対する理解を深めることができる。なお、モデル要約情報として、クラスタ毎の入力変数のランキングの代わりに、クラスタ毎にニューラルネットワークの入力変数と出力値との関係性を単純なモデル(例えば線形モデルなど)で近似した情報を生成しても良い。
(ニューラルネットワーク評価装置の動作)
図7は、第1の実施形態のニューラルネットワーク評価装置の動作の一例を示すフローチャートである。
(ステップS101) 変動行列算出部132は、記憶部110に記憶されている設定データ114に記憶されている情報に基づいて、変動行列を算出する際の設定を行う。変動行列算出部132は、モデルデータ、サンプル集合を参照し、設定にしたがって変動行列を算出する。変動行列算出部132は、算出した変動行列を、グループ化部134へ出力する。
(ステップS102) ニューラルネットワーク評価装置100のグループ化部134は、変動行列算出部132が出力した変動行列を取得し、取得した変動行列に基づいて、設定データ114に含まれる設定にしたがって、サンプル集合に含まれるサンプルをクラスタリングする。グループ化部134は、クラスタリング結果を、要約情報生成部136へ出力する。
(ステップS103) ニューラルネットワーク評価装置100の要約情報生成部136は、グループ化部134が出力したクラスタリング結果を取得する。要約情報生成部136は、取得したクラスタリング結果に基づいて、クラスタごとに、出力値に対する入力変数の影響度を算出する。要約情報生成部136は、出力値に対する影響度の大きい順に入力変数を並べたランキングを作成する。
(ステップS104) ニューラルネットワーク評価装置100の要約情報生成部136は、算出したランキングを示す情報を、モデル要約情報として、通信部102へ出力する。通信部102は、要約情報生成部136が出力したモデル要約情報を、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100が送信したモデル要約情報を受信し、受信したモデル要約情報を、ユーザへ提示する。
前述した実施形態では、サンプル集合、変動の情報、クラスタリング結果が行列で表される場合について説明したが、この例に限られない。例えば、サンプル集合、変動の情報、クラスタリング結果がベクトルで表されてもよい。
前述した実施形態では、モデルデータがユーザによって、ニューラルネットワーク評価装置100に予め与えられる場合について説明したが、この限りでない。例えば、ニューラルネットワーク評価装置100に、ニューラルネットワークを学習する機能を追加し、追加したニューラルネットワークを学習する機能によって学習したモデルを、要約情報を生成する対象としてもよい。
前述した実施形態においても述べたとおり、ニューラルネットワークの出力ノードのいずれかの値をそのまま出力値として選択する以外に、出力ノードのうち、ひとつあるいは複数のノードの値に何らかの演算を施し、それにより得られる値を出力値に設定して変動行列を算出しても良い。この際の「何らかの演算」とは、例えば出力ノードの値に対してsoftmaxなどの関数を適用することなどが考えられる。
前述した実施形態では、サンプル集合に含まれるサンプルの順序に合わせて変動行列の各行を並べる場合について説明したが、この限りでない。例えば、サンプル集合に含まれるサンプルの順序とは逆の順序に合わせて変動行列の各行を並べてもよい。
前述した実施形態では、変動行列算出部132が、設定データ114に含まれるモデルデータを参照して、偏微分を計算することで勾配ベクトルを導出する場合について説明したが、この限りでない。例えば、モデルデータ自体が、与えられた入力データに対する勾配ベクトルを算出する機能を備えており、変動行列算出部132はモデルデータが算出した勾配ベクトルを参照するのみであってもよい。また、変動行列算出部132が、偏微分を計算する代わりに、差分法などによって、勾配ベクトルを導出するようにしてもよい。
前述した実施形態では、グループ化部134は、k−means法などのクラスタリングアルゴリズムでクラスタリングする場合について説明したが、この限りでない。例えば、クラスタリングアルゴリズムとして、任意のアルゴリズムを用いることができる。また、グループ化部134が複数のグループ化アルゴリズムを備え、ユーザが選択できるようにしてもよい。また、グループ化部134は、何らかのクラスタリングアルゴリズムでグループ化した後に、グループ毎に指定されたモデル(線形モデルなど)を生成し、それらのモデルへの当てはまり度を評価し、当てはまり度の評価結果に基づいて、各サンプルを再振り分けするようにしてもよい。具体的には、各サンプルに対して、各グループの線形モデルにあてはめた結果と、ニューラルネットワークで求めた結果とを比較した際の差分の小ささを、その線形モデルへの当てはまり度として評価し、当てはまり度が最も高い線形モデルを持つグループへ各サンプルを再振り分けする方法が考えられる。また、線形モデルの生成と再振り分けを交互に複数回行っても良い。
前述した実施形態では、グループ化部134がクラスタリング結果を、要約情報生成部136へ出力する場合について説明したが、この限りでない。例えば、グループ化部134は、クラスタリング結果を通信部102へ出力するようにしてもよい。そして、通信部102は、グループ化部134が出力したクラスタリング結果を取得し、取得したクラスタリング結果を、端末装置200へ送信するようにしてもよい。端末装置200は、ニューラルネットワーク評価装置100が送信したクラスタリング結果を取得し、取得したクラスタリンク結果を、ユーザへ提示するようにしてもよい。
前述した実施形態では、グループ化部134が、変動行列の全ての要素を用いて、クラスタリングを行う場合について説明したが、この例に限られない。例えば、グループ化部134は、変動行列の一部の要素を用いて、クラスタリングを行うようにしてもよい。具体的には、グループ化部134は、変動行列の一部の列の要素を抜き出して、抜き出した要素を用いて、クラスタリングを行うようにしてもよい。このとき、変動行列から抜き出す列は、ユーザが指定した内容に基づいて決定してもよい。また、グループ化部134は、変動行列、もしくは変動行列の全ての要素の絶対値を取った行列について、その行列の列ごとに和、平均値、中央値、最大値、最小値、および最頻値などの統計量を算出し、算出した統計量が大きい順に、一定数の列の要素を変動行列から抜き出すようにしてもよい。そして、グループ化部134は、抜き出した要素を用いて、クラスタリングを行うようにしてもよい。
前述した実施形態において、グループ化部134は、変動行列と、サンプル行列との両者を用いて、クラスタリングを行ってもよい。具体的には、グループ化部134は、変動行列と、サンプル行列とを連結することによって得られる行列を、新たな変動行列として使用してもよい。
図8は、変動行列の一例を示す図である。図8に示される例では、サンプル行列と、変動行列とが連結されることによって、変動行列が新たに作成される。ここで、変動行列の代わりに、変動行列の一部の列を抜き出した行列を使用してもよいし、サンプル行列の代わりに、サンプル行列の一部の列を抜き出した行列を使用してもよい。
前述した実施形態において、グループ化部134は、サンプル行列でクラスタリングした後に、そのクラスタリングによって得られるクラスタごとに、変動行列でクラスタリングしてクラスタを細分化するなど、多段階のクラスタリングを行うようにしてもよい。サンプル行列をクラスタリングに用いることによって、入力変数の類似性を考慮したクラスタリングが可能となり、入力変数の空間におけるクラスタの分布の連続性を高めることができる。
前述した実施形態では、ニューラルネットワーク評価装置100が、記憶部110の設定データ114に含まれるサンプル集合を取得し、モデル要約情報を、端末装置200へ送信する場合について説明したが、この例に限られない。例えば、ニューラルネットワーク評価装置100が、キーボード、マウスなどの入力装置と、ディスプレイなどの表示装置を備え、ユーザが入力装置を操作することによって入力されるサンプルを取得し、表示装置にモデル要約情報を出力するようにしてもよい。
以上で説明した少なくとも一つの実施形態によれば、変動行列算出部132は、サンプルごとに、入力変数と出力値との関係を示す情報を算出する。このように構成することによって、サンプルごとに線形モデルなどを学習することで類似した情報を算出する場合と比較して、ニューラルネットワーク評価装置100は、偏微分や差分法など、より高速な方法で、入力変数と出力値との関係を算出できる。また、ニューラルネットワーク評価装置100は、サンプル数、入力次元数ともに大きいデータにも対応できる。
また、以上で説明した少なくとも一つの実施形態によれば、グループ化部134は、変動行列に基づいて、入力変数と出力値との関係性が類似するサンプルをまとめる。このように構成することによって、個別のサンプルについて情報を提示する場合と比較して、ニューラルネットワーク評価装置100は、ユーザが情報を把握するのに必要な労力を削減させることができる。更に、性質が類似するサンプルをクラスタに纏めることによって、ニューラルネットワーク評価装置100は、各々のクラスタで、もとのニューラルネットワークよりも単純なモデルで入力変数と出力値との関係性を表現できる。また、サンプルによるモデルの特性の違いを考慮せず、一括してモデルを単純化する技術と比べ、ニューラルネットワーク評価装置100は、クラスタごとに情報を提示するため、よりサンプルによるモデルの特性の違いを保って情報を提示できる。
また、多数の入力変数に出力値が依存するサンプルを優先的に選択して提示する技術では、少数の入力変数にのみ強く出力値が依存するサンプルは提示されない可能性がある。これに対して、ニューラルネットワーク評価装置100は、適切にクラスタリングなどのグループ分けを行うことが出来れば、少数の入力変数にのみ強く出力値が依存するサンプルの集合は、多くの入力変数に出力値が依存するサンプルとは異なるクラスタを形成する。このため、ニューラルネットワーク評価装置100は、少数の入力変数にのみ強く出力値が依存するサンプルの集合についても、モデルの要約情報をユーザに提示できる。
また、以上で説明した少なくとも一つの実施形態によれば、要約情報生成部136は、クラスタごとに、出力値に対する影響度が大きい入力変数のランキングや、入力変数と出力値との関係性を近似する線形モデルを作成する。このように構成することによって、ユーザはクラスタごとの注目すべき変数を特定したり、各入力変数と出力値との関係性を単純なモデルで把握したりすることができる。
(第2の実施形態)
(ニューラルネットワーク評価システム)
第2の実施形態のニューラルネットワーク評価システムの一例は、図1を適用できる。ただし、ニューラルネットワーク評価システム1Aは、ニューラルネットワーク評価装置100の代わりにニューラルネットワーク評価装置100Aを備える。
ニューラルネットワーク評価装置100Aは、クラスタごとに、入力データと出力値との関係性を線形モデルにより近似し、近似することによって得られる入力データと出力値との関係性をモデル要約情報として出力する。また、ニューラルネットワーク評価装置100Aは、未知のサンプルをクラスタに分類し、そのクラスタに対応する線形モデルを用いて、出力値を予測する。
(ニューラルネットワーク評価装置)
図9は、第2の実施形態のニューラルネットワーク評価装置の一例を示すブロック図である。ニューラルネットワーク評価装置100Aは、ニューラルネットワーク評価装置100と比較して、情報処理部130の代わりに情報処理部130Aを備える。また、通信部102は、端末装置200が送信した未知のサンプルを受信する。
情報処理部130Aは、例えば、CPUのようなプロセッサが記憶部110に記憶されたプログラム112を実行することにより実現されるソフトウェア機能部である。なお、情報処理部130Aは、LSI、ASIC、またはFPGAなどのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。情報処理部130Aは、例えば、変動行列算出部132と、グループ化部134Aと、要約情報生成部136Aと、分類ルール生成部138と、予測部140とを備える。
グループ化部134Aは、変動行列算出部132が出力した変動行列を取得する。グループ化部134Aは、設定データ114に含まれるモデルデータと、サンプル集合とを参照し、各サンプルにおいて、ニューラルネットワークのモデルに接する面の切片を、式(2)を用いて算出する。
図10は、第2の実施形態のニューラルネットワーク評価装置における切片の情報の一例を示す図である。図10に示される例では、グループ化部134Aは、サンプル集合内の全てのサンプルについて、切片を算出し、算出した切片を並べる。具体的には、サンプル1の切片は−0.52であり、サンプル2の切片は−0.20であり、サンプル3の切片は−0.23であり、・・・、サンプルNの切片は0.36である。
グループ化部134Aは、変動行列と、切片とに基づいて、各サンプルをグループにグループ化する。本実施形態では、グループ化の一例として、クラスタリングを適用した場合について説明を続ける。この場合、グループ化部134Aは、変動行列と、切片とに基づいて、各サンプルをクラスタリングする。具体的には、グループ化部134Aは、変動行列に基づいて、各サンプルをクラスタリングする。変動行列に基づいて、各サンプルをクラスタリングする処理は、第1の実施形態を適用できる。グループ化部134Aは、クラスタリングを行うことによって得られたクラスタ毎に、そのクラスタに属するサンプルを、切片の類似性に基づいて、さらにクラスタリングする。ここで、第1の実施形態で説明したように、グループ化部134Aは、変動行列から一部の列を抜き出すことによって得られる行列を、クラスタリングに使用してもよい。また、グループ化部134Aは、変動行列に、図10を参照して説明した切片を並べることによって得られる行列を連結することによって、行列を新たに生成し、生成した行列に基づいて、クラスタリングを行ってもよい。グループ化部134Aは、変動行列の一部の列を抜き出した行列に、図10を参照して説明した切片を並べることによって得られる行列を連結することによって、行列を新たに生成し、生成した行列に基づいて、クラスタリングを行ってもよい。また、変動行列やその一部の列などを抜き出した行列に、図10を参照して説明した切片を並べることによって得られる行列を連結する際に、それぞれの行列の要素を定数倍などして重みづけをしてから連結してもよい。
変動行列のみに基づいて、クラスタリングを行う場合には、ニューラルネットワークのモデルに接する面の傾きのみに基づいて、傾きが類似するサンプルが同じクラスタにクラスタリングされる。そのため、各クラスタにおいて切片が大きく異なるサンプルが混在すると、入力データと出力値との関係を、一つの線形モデルで上手く近似できない場合がある。ニューラルネットワーク評価装置100Aは、切片に基づいて、クラスタリングを行うことによって、切片が大きく異なるサンプルは、別のクラスタに分けられる。このように構成することによって、より適切に線形モデルを当てはめることが可能になる。グループ化部134Aは、クラスタリング結果と、各サンプルに対する切片の情報とを、要約情報生成部136Aへ、出力する。
要約情報生成部136Aは、変動行列算出部132が算出した変動行列と、グループ化部134Aが出力したクラスタリング結果と、各サンプルに対する切片の情報とを取得する。要約情報生成部136Aは、取得したクラスタリング結果に基づいて、クラスタごとに、入力データと出力値との関係性を近似した線形モデルを生成する。要約情報生成部136Aは、線形モデルの導出を、例えば次のような方法で実施する。あるクラスタcについて、入力データに対する出力値を近似する線形モデルを、式(3)によって求める。
式(4)、式(5)において、meanの演算の括弧内がベクトルである場合には平均ベクトル(要素ごとの平均値を取ったベクトル)を取り、スカラである場合には平均値を取る。要約情報生成部136Aは、全てのクラスタについて線形モデルを求め、求めたクラスタ毎の線形モデルをモデル要約情報として、分類ルール生成部138へ出力する。要約情報生成部136Aは、モデル要約情報を、通信部102へ出力するようにしてもよい。この場合、通信部102は、要約情報生成部136が出力したモデル要約情報を、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100Aが送信したモデル要約情報を受信し、受信したモデル要約情報を、ユーザへ提示する。
分類ルール生成部138は、未知のサンプルが属するクラスタを決定するための分類ルールを生成する。具体的には、分類ルール生成部138は、サンプル行列の各行を入力変数とし、各行に対応するクラスタリング結果を教師データとして、任意の識別モデルを学習することによって、分類ルールを生成する。分類ルール生成部138は、生成した分類ルールを、予測部140へ出力する。分類ルール生成部138は、分類ルールを、通信部102へ出力するようにしてもよい。この場合、通信部102は、分類ルール生成部138が出力した分類ルールを、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100Aが送信した分類ルールを受信し、受信した分類ルールを、ユーザへ提示する。
予測部140は、分類ルール生成部138が出力した分類ルールを取得する。また、予測部140は、通信部102を制御することによって、未知のサンプルを取得する。ここで、未知のサンプルは、ニューラルネットワークの学習前に学習データセットに対して行った標準化または正規化と同様の係数で、入力変数ごとに変換済みであるものとする。予測部140は、未知のサンプルを取得し、分類ルールを参照し、その未知のサンプルがどのクラスタに属するかを決定する。予測部140は、未知のサンプルが属するクラスタの線形モデルを用いて、出力値を予測し、予測値を、通信部102へ出力する。通信部102は、予測部140が出力した予測値を、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100Aが送信した予測値を受信し、受信した予測値を、ユーザへ提示する。
図11は、モデル要約情報の一例を示す図である。第2の実施形態のニューラルネットワーク評価システム1Aでは、モデル要約情報は、端末装置200が表示する。図11に示される例では、クラスタ1、クラスタ2、クラスタ3、およびクラスタ4のうち、ユーザが選択したクラスタについて、線形モデルの、入力変数ごとの重みが表示される。図11に示される例では、クラスタ1が選択され、クラスタ1について、入力変数ごとの線形モデルの重みが示されている。具体的には、線形モデルの重みの絶対値の大きさが大きい順に、変数名x11、x4、x8、x5、x1、x7が示されている。このように構成することによって、ニューラルネットワーク評価装置100Aは、ユーザに、クラスタごとに、各入力変数が変化すると、出力値が増えるか減るか、その変化量はどれくらいかを把握させることができる。このため、ユーザは、モデルに対する理解を深めることができる。
また、図11には、分類ルール生成部138が生成した分類ルールも表示されている。ここでは、一例として、分類ルールが決定木である場合について示した。このように構成することによって、ユーザは、分類ルールの決定木を見ることによって、各クラスタと入力変数の値の条件との対応を知ることができる。このため、ニューラルネットワークに対する理解が深まる。また、ユーザが、変数名を選択した場合に、表示中のクラスタ内のサンプルについて、選択した変数と出力値との散布図などを表示することによって、関係性を示すようにしてもよい。
(ニューラルネットワーク評価装置の動作)
図12は、第2の実施形態のニューラルネットワーク評価装置の動作の一例を示すフローチャートである。ステップS201は、図7を参照して説明したステップS101を適用できる。
(ステップS202) ニューラルネットワーク評価装置100Aのグループ化部134Aは、変動行列算出部132が出力した変動行列を取得する。グループ化部134Aは、設定データ114に含まれるモデルデータと、サンプル集合と、変動行列132が出力した変動行列を参照し、各サンプルにおいて、ニューラルネットワークのモデルに接する面の切片を、算出する。グループ化部134Aは、変動行列と、切片とに基づいて、クラスタリングを行う。グループ化部134Aは、クラスタリング結果を、要約情報生成部136Aへ出力する。
(ステップS203) ニューラルネットワーク評価装置100Aの要約情報生成部136Aは、変動行列算出部132が出力した変動行列と、グループ化部134Aが出力したクラスタリング結果と、各サンプルに対する切片の情報とを取得する。要約情報生成部136Aは、取得したクラスタリング結果に基づいて、クラスタごとに、入力データと出力値との関係性を近似した線形モデルを生成する。要約情報生成部136Aは、生成した線形モデルを示す情報を、分類ルール生成部138へ出力する。
(ステップS204) ニューラルネットワーク評価装置100Aの分類ルール生成部138は、グループ化部134Aが出力したクラスタリング結果と、設定データ114に含まれるサンプル集合(サンプル行列)を取得する。分類ルール生成部138は、サンプル行列の各行を入力変数とし、各行に対応するクラスタリング結果を教師データとして、任意の識別モデルを学習することによって、分類ルールを生成する。
(ステップS205) ニューラルネットワーク評価装置100Aの分類ルール生成部138は、生成した分類ルールを示す情報を、通信部102へ出力する。通信部102は、分類ルール生成部138が出力した分類ルールを示す情報を、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100Aが送信した分類ルールを示す情報を受信し、受信した分類ルールを示す情報を、ユーザへ提示する。
図13は、第2の実施形態のニューラルネットワーク評価装置の動作の一例を示すフローチャートである。図13に示される例では、ニューラルネットワーク評価装置100Aの分類ルール生成部138が、分類ルールを生成した後の動作が示される。
(ステップS301) ニューラルネットワーク評価装置100Aの予測部140は、分類ルール生成部138が出力した分類ルールと、要約情報生成部136Aが生成した各クラスタの線形モデルを取得する。また、予測部140は、通信部102を制御することによって、未知のサンプルを取得し、分類ルールを参照し、取得した未知のサンプルが属するクラスタを決定する。予測部140は、決定したクラスタの線形モデルを用いて、出力値を予測する。
(ステップS302) ニューラルネットワーク評価装置100Aの予測部140は、予測値を、通信部102へ出力する。通信部102は、予測部140が出力した予測値を、端末装置200へ送信する。端末装置200は、ニューラルネットワーク評価装置100Aが送信した予測値を受信し、受信した予測値を、ユーザへ提示する。
前述した実施形態において、グループ化部134Aは、クラスタリングに、任意のアルゴリズムを適用できる。
前述した実施形態では、サンプル集合と、変動の情報と、クラスタリング結果と、切片とが行列で表される場合について説明したが、この例に限られない。例えば、サンプル集合と、変動の情報と、クラスタリング結果と、切片とがベクトルで表されてもよい。
前述した実施形態においては、グループ化部134Aは、変動行列と切片とに基づいて、クラスタリングを行う場合について説明したが、この限りでない。例えば、グループ化部134Aは、変動行列と切片とに加え、サンプル行列に基づいて、クラスタリングを行ってもよい。また、グループ化部134Aは、第1の実施形態で説明したクラスタリング方法を用いてクラスタリングを行ってもよいし、前述したクラスタリング方法を組み合わせて、クラスタリングを行ってもよい。
前述した実施形態においては、要約情報生成部136Aが、全てのクラスタについて線形モデルを求め、求めたクラスタ毎の線形モデルをモデル要約情報として出力する場合について説明したが、この例に限られない。たとえば、要約情報生成部136Aは、全てのクラスタ、もしくは一部のクラスタについて線形モデル以外の任意のモデルを求めるようにしてもよい。
前述した実施形態において、クラスタについて線形モデルを求める場合に、要約情報生成部136Aは、改めて学習を行うことで、クラスタごとに線形モデルを求めてもよい。また、要約情報生成部136Aは、クラスタごとに求めた線形モデルに基づいて、各サンプルが属するクラスタを振り分け直してもよい。例えば、要約情報生成部136Aは、各サンプルを、最もニューラルネットワークの出力値に近い値を出力する線形モデルを含むクラスタに再度振り分け直してもよい。また、ニューラルネットワーク評価装置100Aは、クラスタの再振り分けと線形モデルの算出を交互に複数回行って、クラスタリング結果を更新していくようにしてもよい。
前述した実施形態では、ニューラルネットワーク評価装置100Aが、記憶部110の設定データ114に含まれるサンプル集合を取得し、モデル要約情報を、端末装置200へ送信する場合について説明したが、この例に限られない。例えば、ニューラルネットワーク評価装置100Aが、キーボード、マウスなどの入力装置と、ディスプレイなどの表示装置を備え、ユーザが入力装置を操作することによって入力されるサンプルを取得し、表示装置にモデル要約情報を出力するようにしてもよい。これは、予測部140に与えられる未知のサンプルについても同様である。
以上で説明した少なくとも一つの実施形態によれば、未知のサンプルをクラスタに分類し、該当クラスタの単純なモデルを使って出力値を予測できる。このように構成することによって、もとのニューラルネットワークを使うよりも、未知データへの予測処理の処理時間が短縮される。また、分類ルールを決定木などユーザが理解しやすいモデルにすることによって、生成されたクラスタがどのように形成されているかをユーザに理解させることができる。前述した実施形態において、変動行列算出部は変動導出部の一例である。
以上、本発明の実施形態およびその変形例を説明したが、これらの実施形態およびその変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態およびその変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合せを行うことができる。これら実施形態およびその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。