以下、実施形態のニューラルネット解析装置、ニューラルネット解析方法及びプログラムを、図面を参照して説明する。まず図1及び図2を用いて実施形態のニューラルネット解析装置の概要を説明する。
図1は、実施形態のニューラルネット解析装置1の概要を説明する第1の説明図である。ニューラルネット解析装置1は、解析対象のニューラルネットワークが表す学習済みモデル(以下「解析対象モデル」という。)を、テストデータが解析対象モデルに入力された際のノード被使用指標パターンに基づき線形モデルで近似する。以下、解析対象のニューラルネットワークを解析対象ニューラルネットワークという。
ノード被使用指標パターンは、ノード被使用指標をニューラルネットワークの入力層、中間層及び出力層の各ノードについて示す情報である。ノード被使用指標は、ノードが使用される度合を入力層への入力に応じて示す値である。ノード被使用指標は、例えば、ノードの活性化関数の傾きの値である。例えば、ノード被使用指標は入力と出力との関係が線形関数で表されるノードにおける線形関数の傾きであってもよい。ノード被使用指標は、例えば、以下の式(1)及び式(2)によって表される。
式(1)及び(2)において、σはf(x)を変数とする活性化関数である。f(x)はノードに入力される値を表す関数であり、xに応じた値を出力する関数である。xは、1つ前の層のノードの出力の値である。以下、xを前段ノード出力値という。なお、前段ノード出力値xは、1つ前の層が存在しない層である入力層においては、入力層へ入力される値そのものである。入力層へ入力される値とは、例えば、解析対象モデルに入力されるデータの特徴量である。式(1)及び(2)において、w及びbは解析対象ニューラルネットワークにおける重みパラメータである。式(1)及び(2)において、x、w及びbは行列やベクトル等のテンソルで表されている。
以下、説明の簡単のためノード被使用指標がノードの活性化関数の傾きの値である場合を例にニューラルネット解析装置1を説明する。
ノード被使用指標は、例えば、ノードの活性化関数がReLUである場合、0又は1の値である。活性化関数がReLUである場合においてノード被使用指標が1であることはノードが発火(Activation)したことを意味する。
入力層のノードのノード被使用指標はノードに入力された値と全単射の関係にある値である。例えば、入力層のノードのノード被使用指標はノードに入力された値と同一の値である。以下説明の簡単のため、入力層のノードのノード被使用指標がノードに入力された値と同一の値である場合を例にニューラルネット解析装置1を説明する。
中間層及び出力層のノード被使用指標は必ずしもノードに入力された値と全単射の関係にある値ではない。例えば中間層及び出力層のノードの活性化関数がReLUである場合、中間層及び出力層のノードのノード被使用指標の候補は0又は1の2つである。このような場合、例えばノード被使用指標が1であるための条件はノードに入力された値が0より大きいという条件であり、ノード被使用指標が0であるための条件はノードに入力された値が0以下という条件である。このように、中間層及び出力層のノード被使用指標は必ずしもノードに入力された値と全単射の関係にある値ではない。
なお、ニューラルネットワークにおいて前段のノードの出力(以下「ノード出力値」という。)は後段のノードに入力される。例えば、入力層のノードのノード出力値は中間層の1層目のノードに入力される。例えば、中間層のn層目のノードのノード出力値は中間層の(n+1)層目のノードに入力される(nは自然数)。例えば、中間層の最後の層のノードのノード出力値は出力層のノードに入力される。
図2は、実施形態のニューラルネット解析装置1の概要を説明する第2の説明図である。図2は、4つ種類のノード被使用指標パターンP1、P2、P3及びP4を示す。図2のノード被使用指標パターンを示す解析対象ニューラルネットワークは出力層のノードが1つであり、出力層のノードのノード被使用指標が示す値の候補は0、1、2及び3等の4つの値である。
図2においてノード被使用指標パターンP1、P2、P3及びP4の出力層のノードのノード被使用指標はそれぞれ異なる。前段の層のノードと後段の層のノードとをつなぐ線(以下「ノード接続線」という。)は、説明の簡単のために記載された説明のためのイメージの線である。ノード接続線は、後段の層のノードのノード被使用指標の決定に支配的な前段の層のノードを示す。支配的な前段の層のノードとは、ノード被使用指標の変化が、後段の層のノードのノード被使用指標に所定の大きさ以上の変化を与えるノードである。
図2の解析対象ニューラルネットワークは、入力された値に応じて4種類のノード被使用指標パターンP1、P2、P3及びP4のいずれのノード被使用指標パターンが適切か判定する。図2の解析対象ニューラルネットワークは、判定結果のノード被使用指標パターンを用いて解析対象ニューラルネットワークの出力を決定する。図2ではノード被使用指標パターンの種類が4つなので、解析対象ニューラルネットワークのユーザによるニューラルネットワークの動作の解釈は容易である可能性が高い。しかしながら、ノード被使用指標パターンの種類が多くなるほど解析対象ニューラルネットワークの動作の解釈が難しくなる。そこで、ニューラルネット解析装置1は、解析対象ニューラルネットワークのノード被使用指標パターンを分類する。
ニューラルネット解析装置1は、例えば図2の解析対象ニューラルネットワークの場合、ノード被使用指標パターンP1とノード被使用指標パターンP3とを同一の種類のノード被使用指標パターンであるようにノード被使用指標パターンを1又は複数の集合に分類する。ニューラルネット解析装置1は分類後に、集合ごとにノード指標情報を取得する。ノード指標情報は、解析対象ニューラルネットワークの各ノードについてノード指標を示す情報である。ノード指標は、ノード確率分布を表す指標である。ノード確率分布は、解析対象ニューラルネットワークのノードごとの確率分布であってノード被使用指標を確率変数とする確率分布である。
ノード指標は、例えば、ノード確率分布の期待値である。ノード指標は、例えば、ノード確率分布の中央値であってもよい。ノード指標は、例えば、カルバックライブラーの距離関数で表される指標であってもよい。図2において、情報EV1は、ノード被使用指標パターンP1とノード被使用指標パターンP3とを含む集合におけるノード指標情報である。そのため、図2における情報EV1の5つのノードの値はそれぞれ、例えば、各ノードにおけるノード確率分布の期待値である。確率分布が表す確率は、具体的には、各クラスタにおける各ノード被使用指標パターンの出現の確率(負担率)である。
ニューラルネット解析装置1は、ノード指標情報に基づき分類後の集合ごとに、集合に属するノード被使用指標パラメータの分布を表す1つの線形モデルを生成する。ニューラルネット解析装置1は、線形モデルの生成後はテストデータが入力されるたびに生成済みの線形モデルを更新する。以下、集合ごとに1つ生成された線形モデルを代表線形モデルという。各集合の代表線形モデルの集合が近似結果モデルである。
このように、ニューラルネット解析装置1は解析対象ニューラルネットワークのノード被使用指標パターンを分類し、ノード被使用指標パターンの種類を減らす。そして、種類ごとの線形モデルを取得する。そのため、ニューラルネット解析装置1はユーザによるニューラルネットワークの動作の解釈を容易にする。
なお、線形モデルとは、複数の入力の和に対応する出力の値が各入力の出力の値の和に一致するモデル(すなわち線形写像)である。ニューラルネット解析装置1は、解析対象モデルを1つの線形モデルで近似してもよいし、複数の線形モデルで近似してもよい。解析対象モデルを線形モデルで近似するとは、入力と出力との関係が解析対象モデルとある程度似ている線形モデル(以下「近似結果モデル」という。)を取得することを意味する。
テストデータは、解析対象モデルに入力されるデータである。テストデータは解析対象モデルに入力可能なデータであればどのようなデータであってもよい。
図1の説明に戻る。図2では、出力層のノードのノード被使用指標の候補が4つのニューラルネットワークを用いてニューラルネット解析装置1の動作の概要を説明した。しかしながらノードのノード被使用指標の候補が多いほど説明は難しくなるので、以下説明の簡単のため、ノードのノード被使用指標の候補が2つである場合を例にニューラルネット解析装置1を説明する。ノードのノード被使用指標の候補が2つであるニューラルネットワークとは具体的には、以下の入力情報条件、入力層条件及びReLU発火条件が満たされるニューラルネットワークである。
入力条件は、ニューラルネットワークに入力される情報は入力層が備える各ノードに入力される値を示し、各ノードに入力される値は0又は1であるという条件である。ニューラルネットワークに入力される情報は、例えばテストデータである。
入力層条件は、入力層の各ノードのノード被使用指標は各ノードに入力された値に同一であるという条件である。
ReLU発火条件は、中間層及び出力層のノードの活性化関数がReLUであるという条件である。そのため、ReLU発火条件は、入力された値が0より大きい場合にノード被使用指標は1を示し、入力された値が0以下である場合にノード被使用指標は0を示すという条件を含む。
以下、中間層のノードのうちノード被使用指標が1を示すノードを中間層励起ノードという。以下、出力層のノードのうちノード被使用指標が1を示すノードを出力層励起ノードという。以下、中間層のノードのうちノード被使用指標が0を示すノードを中間層非励起ノードという。以下、出力層のノードのうちノード被使用指標が0を示すノードを出力層非励起ノードという。
以下、入力層のノードのうち、ノード被使用指標が1であるノードを入力層励起ノードという。以下、入力層の各ノードのうち、ノード被使用指標が0であるノードを入力層非励起ノードという。
以下、説明の簡単のため、入力層励起ノード、中間層励起ノード又は出力層励起ノードであるノードを励起ノードという。すなわち、励起ノードはノード被使用指標が1のノードである。以下、説明の簡単のため、入力層非励起ノード、中間層非励起ノード又は出力層非励起ノードであるノードを非励起ノードという。すなわち、非励起ノードはノード被使用指標が0のノードである。
励起パターンは、ニューラルネットワークの入力層、中間層及び出力層の各ノードのノード被使用指標を示す情報であるので、入力情報条件、入力層条件及びReLU発火条件が満たされる場合にはノード被使用指標パターンは励起ノードを示す情報である。
図1におけるノード被使用指標パターンEx1及びノード被使用指標パターンEx2は、それぞれ入力情報条件、入力層条件及びReLU発火条件を満たすニューラルネットワークにおけるノード被使用指標パターンの1例である。ノード被使用指標パターンEx1とノード被使用指標パターンEx2とは、入力層励起ノード、中間層励起ノード又は出力層励起ノードの少なくとも1つが異なる。このように、ノード被使用指標パターンはテストデータ等の入力層に入力された情報と全単射の関係にある。
図3は、実施形態のニューラルネット解析装置1のハードウェア構成の一例を示す図である。ニューラルネット解析装置1は、バスで接続されたCPU(Central Processing Unit)等のプロセッサ91とメモリ92とを備える制御部10を備え、プログラムを実行する。ニューラルネット解析装置1は、プログラムの実行によって制御部10、通信部11、記憶部12及びユーザインタフェース13を備える装置として機能する。
より具体的には、ニューラルネット解析装置1は、プロセッサ91が記憶部12に記憶されているプログラムを読み出し、読み出したプログラムをメモリ92に記憶させる。プロセッサ91が、メモリ92に記憶させたプログラムを実行することによって、ニューラルネット解析装置1は、制御部10、通信部11、記憶部12及びユーザインタフェース13を備える装置として機能する。
制御部10は、ニューラルネット解析装置1が備える各機能部の動作を制御する。制御部10は例えば解析対象モデルの近似結果モデルを取得する処理を実行する。制御部10は取得された近似結果モデルを記憶部12に記録する。制御部10は例えば通信部11の動作を制御する。
通信部11は、ニューラルネット解析装置1を外部装置に接続するための通信インタフェースを含んで構成される。通信部11は、例えば、通信先の外部装置に近似結果モデルを送信する。外部装置は、例えば、近似結果モデルを出力するプリンタである。通信部11は、例えば、外部装置からテストデータを取得する。
記憶部12は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。記憶部12はニューラルネット解析装置1に関する各種情報を記憶する。記憶部12は例えば、ニューラルネット解析装置1が備える各機能部の動作を制御するプログラムを予め記憶する。記憶部12は例えば、予め解析対象ニューラルネットワークを表す情報を記憶する。解析対象モデルを表す情報は、例えば、解析対象モデルを表すニューラルネットワークのハイパパラメータを含む。記憶部12は例えば、近似結果モデルを記憶する。記憶部12は、例えば、ノード被使用指標パターンを分類する各集合を示す情報を記憶する。後述するクラスタはノード被使用指標パターンを分類する集合の一例である。記憶部12は、例えば、代表線形モデルを記憶する。記憶部12は、ノード被使用指標パターンを記憶する。
ユーザインタフェース13は、ニューラルネット解析装置1に対する入力を受け付ける入力部131とニューラルネット解析装置1に関する各種情報を表示する出力部132とを備える。ユーザインタフェース13は、例えば、タッチパネルである。入力部131は、自装置に対する入力を受け付ける。入力部131は、例えばマウスやキーボード、タッチパネル等の入力端末である。入力部131は、例えば、これらの入力端末を自装置に接続するインタフェースとして構成されてもよい。入力部131が受け付ける入力は、例えば、解析対象モデルを表す情報である。入力部131が受け付ける入力は、例えば、テストデータである。
出力部132は、例えば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置である。出力部132は、例えば、これらの表示装置を自装置に接続するインタフェースとして構成されてもよい。出力部132は、例えばスピーカー等の音声出力装置であってもよい。出力部132が出力する情報は、例えば、近似結果モデルである。以下、説明の簡単のため出力部132が表示装置である場合を例にニューラルネット解析装置1を説明する。
図4は、実施形態における制御部10の機能構成の一例を示す図である。
制御部10は、テストデータ取得部101、ノード被使用指標パターン取得部102、クラスタリング部103、ノード指標情報取得部104、代表線形モデル取得部105、動作制御部106及び出力制御部107を備える。
テストデータ取得部101は、通信部11又はユーザインタフェース13を介してテストデータを取得する。
ノード被使用指標パターン取得部102は、テストデータを解析対象モデルに入力し、入力したテストパターンに対応するノード被使用指標パターンを取得する。
クラスタリング部103は、初期化段階クラスタリング部301及び更新段階クラスタリング部302を備える。
初期化段階クラスタリング部301は、ノード被使用指標パターン取得部102が取得したノード被使用指標パターンに基づきテストデータを予め定められたK個(Kは整数)のクラスタにクラスタリングする。ノード被使用指標パターンはテストデータと全単射の関係にあるため、ノード被使用指標パターンに基づきテストデータをクラスタリングすることで、ノード被使用指標パターンもまたクラスタリングされる。このように、初期化段階クラスタリング部301は、ノード被使用指標パターン取得部102が取得したノード被使用指標パターンに基づき、テストデータ及びノード被使用指標パターンをクラスタリングする。
更新段階クラスタリング部302は、テストデータを分類するK個のクラスタが既に生成済みという条件が少なくとも満たされる場合に動作する。すなわち、更新段階クラスタリング部302は、テストデータを分類するK個のクラスタが既に生成済みという条件を含む所定の条件が満たされる場合に動作する。更新段階クラスタリング部302は、追加のテストデータが入力された場合における解析対象モデルの出力に基づき、追加のテストデータも含めて解析対象モデルに入力済みのテストデータの全てを複数のクラスタにクラスタリングする。
例えば、更新段階クラスタリング部302は所属クラスタ判定処理の実行により、テストデータ及びノード被使用指標パターンの全てを複数のクラスタにクラスタリングする。所属クラスタ判定処理において、更新段階クラスタリング部302はまず、追加のテストデータが入力された場合における解析対象モデルの出力結果と、追加のテストデータが入力された場合における各クラスタの代表線形モデルの出力結果とを比較する。代表線形モデルの出力結果とは、例えば、代表線形モデルの出力層の各ノードのノード出力値である。
追加のテストデータが入力された場合における解析対象モデルの出力結果は、例えば、追加のテストデータが入力された場合における解析対象モデルの出力層の各ノードのノード出力値である。
所属クラスタ判定処理において、次に更新段階クラスタリング部302は、高類似モデルが属するクラスタを、追加のテストデータが属するクラスタであると判定する。高類似モデルは、追加のテストデータが入力された場合における解析対象モデルの出力結果との違いが最も小さい出力結果を出力する代表線形モデルである。所属クラスタ判定処理において更新段階クラスタリング部302は、所属クラスタ判定処理の実行前に既にクラスタリングされたテストデータについては、属するクラスタを変更しない。
以下の式(3)は、所属クラスタ判定処理において追加のテストデータが属するクラスタと追加のテストデータが入力された場合における解析対象モデルとの間の類似の度合(以下「クラス類似度」という。)を表す関数の一例である。所属クラスタ判定処理における違いが最も小さいという条件は、式(3)が大きいという条件であってもよい。
qはクラス類似度を表す。なお、以下、アンダーバーは下付き文字を表す。具体的には、A_BはABを表す。なお、以下、ハットは上付き文字を表す。具体的には、A^Bは、ABを表す。
nはデータインデックス番号を示す。データインデックスとは各データを識別するための識別子である。nは1以上N以下の整数である。Nは整数である。Nの定義はデータ数である。kは、ノード被使用指標パターンインデックスである。ノード被使用指標パターンインデックスとは、所属クラスタ判定処理の実行により生成された各クラスタを識別するための識別子である。u_k^(n)の定義は、n番目データがk番目ノード被使用指標パターンに所属すれば1であり、n番目データがk番目ノード被使用指標パターンに所属しなければ0となる確率である。
p(A|B)は、Bという条件が満たされる場合にAという条件が満たされる確率(すなわち条件付き確率)である。yの定義はデータの教師信号であり、y^(n)の定義はn番目のデータの教師信号である。Φはモデルパラメータの1つである。モデルパラメータは、ニューラルネットワークが表すモデルの構造に関するパラメータを意味する。モデルの構造に関するパラメータは、例えばモデルの構造を表すパラメータである。モデルの構造に関するパラメータは、例えばモデルにおける重みパラメータである。Φは、具体的には、モデルパラメータの1つであるところの重みベクトルである。gは領域インデックスである。領域インデックスとは領域を識別するための識別子である。領域とは、解析学における領域を表し、具体的には特徴量空間上の連結な開部分集合を表す。fはノード被使用指標パターンインデックスkから領域インデックスを求める関数である。例えば恒等写像である。φgはノード被使用指標パターンインデックスがgのモデルパラメータである。x^(n)の定義は前段ノード出力値xそのものとは異なる定義でありn番目の入力データである。
mはノード被使用指標パターンの特徴量インデックスである。ノード被使用指標パターンの特徴量インデックスとはノード被使用指標パターンのベクトルの各要素を識別するための識別子である。ノード被使用指標パターンの特徴量インデックスとは、例えば、ノード被使用指標パターンのベクトルの1要素を指す番号である。mは1以上M以下の整数である。Mは整数である。Mの定義はノード被使用指標パターン特徴量を示すベクトルの要素数である。
ηはモデルパラメータの1つである。ηは、具体的には、モデルパラメータの1つであるところの代表ノード被使用指標パターンを表す。sはノード被使用指標パターンを表す。(s_m)^(n)は、n番目データのノード被使用指標パターンの特徴量ベクトルのm番目の要素を意味する。η_(k、m)の定義は、以下の式(4)で表される。
Π_m=1^M(η_k、m)^((s_m)^(n))(1-η_k、m)^(1-(s_m)^(n))は、n番目のデータのノード被使用指標パターンのk番目の代表ノード被使用指標パターンでの発生確率を表す。αはモデルパラメータの1つである。αは、具体的には、モデルパラメータの1つであるところの代表ノード被使用指標パターンの重みを表す。なお、以下の式(5)で表される記号は、積(product)を表す数学の記号である。
なお、α_kの定義は以下の式(6)で表される定義である。
このように、更新段階クラスタリング部302は、クラスタを更新する処理である。クラスタを更新するとは、具体的には、テストデータが各クラスタに属するための条件を更新することを意味する。
ノード指標情報取得部104は、属するノード被使用指標パターンに基づきクラスタごとにノード指標情報を取得する。以下、説明の簡単のためノード指標がノード確率分布の期待値である場合を例に、ニューラルネット解析装置1を説明する。
代表線形モデル取得部105は、ノード指標情報に基づき分類後のクラスタごとに代表線形モデルを取得する処理を実行する。未だ代表線形モデルが生成されていない場合における代表線形モデルを取得する処理は、新たに代表線形モデルを生成する処理である。既に各クラスタについて代表線形モデルが生成済みの場合における代表線形モデルを取得する処理は、生成済みの代表線形モデルを更新する処理であってもよいし新たに代表線形モデルを生成する処理であってもよい。
ノード指標情報に基づき分類後のクラスタごとに代表線形モデルを取得する処理は、具体的には、ニューラルネットの各ノードの活性化関数をノード指標情報が示す値で固定し代表線形モデルを算出する処理である。各ノードの活性化関数をノード指標情報が示す値で固定するとは、出力を入力で微分した際の勾配の一定化、つまり線形モデル化を意味する。勾配の一定化とは、具体的には、ある入力を与えた際の活性化関数の勾配ベクトルを算出し、モデルの活性化関数を入力と勾配ベクトルとのアダマール積関数に置き換える処理のことである。入力値によってモデルの勾配が変化することがなくなるため、勾配の一定化が行われたモデルは線形モデルとなる。各ノードの活性化関数をノード指標情報が示す値で固定した後、代表線形モデルを算出する処理は、具体的には各ノードが属する層の直前の層の重み行列とノード指標情報と活性化関数後の層の重み行列との行列積を算出する処理である。なお、上述した式(4)の左辺(すなわちη_(k、m))は、代表線形モデルを表す。
以下の式(7)は、代表線形モデルを取得する処理の一例を表す数式である。
βは更新幅を定義するハイパパラメータである。Lはy、x及びΦ_gを変数とする損失関数である。Lは、例えば二乗誤差である。Lは識別誤差であってもよい。ΔLは、損失関数における変数Φ_gを変化させた際のLの変化量を表す。
動作制御部106は、ノード被使用指標パターン取得部102、初期化段階クラスタリング部301、ノード指標情報取得部104、代表線形モデル取得部105及び更新段階クラスタリング部302の動作を制御する。動作制御部106は、線形モデルの取得に関する所定の条件が満たされるまで(以下「解析処理初期化段階」という。)は、ノード被使用指標パターン取得部102、初期化段階クラスタリング部301、ノード指標情報取得部104及び代表線形モデル取得部105を動作させる。
動作制御部106は解析処理更新段階においてノード被使用指標パターン取得部102、ノード指標情報取得部104、代表線形モデル取得部105及び更新段階クラスタリング部302を動作させる。すなわち、動作制御部106は、解析処理更新段階においては解析処理初期化段階で動作させていた初期化段階クラスタリング部301に代えて更新段階クラスタリング部302を動作させる。解析処理更新段階は、線形モデルの取得に関する所定の条件(以下「動作変更条件」という。)が満たされた後である。
動作変更条件は、例えば、代表線形モデルの取得に用いたテストデータの数が所定の数に達したという条件である。動作変更条件は、例えば、新たなテストデータが追加されたことによる代表線形モデルの変化が所定の変化未満という条件であってもよい。
動作変更条件は、例えば、解析処理更新段階で用いるデータであることを示す情報が予め付与されたテストデータが入力される、という条件であってもよい。以下、説明の簡単のため動作変更条件が、線形モデルの取得に用いたテストデータの数が所定の数に達したという条件である場合を例に、ニューラルネット解析装置1を説明する。
なお、動作変更条件が満たされたか否かを示す情報は、記憶部12が記憶する。
出力制御部107は、出力部132の動作を制御する。出力制御部107は、出力部132の動作を制御して、出力部132に例えば近似結果モデルを出力させる。
図5は、実施形態における制御部10が実行する解析処理初期化段階における処理の流れの一例を示すフローチャートである。
テストデータ取得部101が1又は複数のテストデータを取得する(ステップS101)。次にノード被使用指標パターン取得部102が、ステップS101で取得された各テストデータを解析対象モデルに入力し、テストデータごとにノード被使用指標パターンを取得する(ステップS102)。次に初期化段階クラスタリング部301が、取得済みのノード被使用指標パターンに基づきテストデータ及びノード被使用指標パターンをクラスタリングする(ステップS103)。テストデータのクラスタリングによってノード被使用指標パターンもクラスタリングされる。
次にノード指標情報取得部104が、属するノード被使用指標パターンに基づきクラスタごとにノード指標情報を取得する(ステップS104)。すなわち、ノード指標情報取得部104が、属するノード被使用指標パターンに基づきクラスタごとに解析対象ニューラルネットワークのノードごとにノード確率分布の期待値を取得する。
次に代表線形モデル取得部105が、ノード指標情報に基づき分類後のクラスタごとに代表線形モデルを取得する(ステップS105)。次に動作制御部106が、動作変更条件が満たされたか否かを判定する(ステップS106)。動作変更条件が満たされた場合、制御部10が実行する解析処理初期化段階における処理が終了する。一方、動作変更条件が満たされていない場合、ステップS101の処理に戻る。なお、図5に記載の“更新の段階”とは、解析処理更新段階を意味する。
図6は、実施形態における制御部10が実行する解析処理更新段階における処理の流れの一例を示すフローチャートである。解析処理更新段階における処理は、初期化段階における処理の終了後に初期化段階における処理で使用されていないテストデータが存在する場合に実行される。解析処理更新段階における処理は、例えば、初期化段階における処理の終了後にユーザインタフェース13又は通信部11を介してテストデータが入力された場合に実行される。解析処理更新段階における処理は、例えば、初期化段階における処理の終了時点で、ユーザインタフェース13又は通信部11を介して既に入力済みであるものの初期化段階における処理で使用されなかったテストデータがある場合に実行されてもよい。
テストデータ取得部101が1又は複数のテストデータを取得する(ステップS201)。次にノード被使用指標パターン取得部102が、ステップS201で取得された各テストデータを解析対象モデルに入力し、テストデータごとにノード被使用指標パターンを取得する(ステップS202)。次に更新段階クラスタリング部302が、S202で取得済みのノード被使用指標パターンに基づきクラスタを更新する(ステップS203)。
次にノード指標情報取得部104が、属するノード被使用指標パターンに基づきクラスタごとにノード指標情報を取得する(ステップS204)。すなわち、ノード指標情報取得部104が、属するノード被使用指標パターンに基づきクラスタごとに解析対象ニューラルネットワークのノードごとにノード確率分布の期待値を取得する。
次にノード指標情報取得部104が、属するノード被使用指標パターンに基づきクラスタごとにノード指標情報を取得する(ステップS204)。すなわち、ノード指標情報取得部104が、属するノード被使用指標パターンに基づきクラスタごとに解析対象ニューラルネットワークのノードごとにノード確率分布の期待値を取得する。
次に代表線形モデル取得部105が、ノード指標情報に基づき分類後のクラスタごとに代表線形モデルを取得する(ステップS205)。取得された各クラスタの代表線形モデルを要素とする集合が近似結果モデルである。次に出力制御部107が出力部132に近似結果モデルを表示させる(ステップS206)。
このように構成されたニューラルネット解析装置1は、ノード被使用指標パターンに基づいて解析対象モデルを線形モデルで近似する制御部10を備える。そのため、このように構成されたニューラルネット解析装置1は、予測精度の低下を抑制しつつ学習済みモデルの解釈を容易にする。
(変形例)
なお、ニューラルネット解析装置1は必ずしも更新段階クラスタリング部302を備える必要はない。このような場合、解析処理更新段階におけるクラスタリングを初期化段階クラスタリング部301が解析処理初期化段階におけるクラスタリングと同様の方法で実行してもよい。具体的にはこのような場合、解析処理更新段階においても、テストデータが追加されるたびに、新たに追加されたテストデータと既に使用されたテストデータとを用いてステップS102からステップS105の処理が実行される。そして、ステップS105の実行結果が近似結果モデルとして表示される。
なお、ニューラルネット解析装置1が行う処理は、以下の式(8)及び(9)によって表される式に基づき式(10)で表される式を取得する処理である。ニューラルネット解析装置1が行う処理は具体的には、解析対象モデルをテストデータが解析対象モデルに入力された際のノード被使用指標パターンに基づき線形モデルで近似する処理である。
Ωは、式(9)が表すようにモデルパラメータの集合を表す。Gはクラスタの集合を表す。式(8)の左辺はクラスタ集合とモデルパラメータが与えられた場合の出力値とノード被使用指標パターンとクラス所属の同時確率を示す。式(10)の関数は、パラメータΦ_gとデータxが与えられた場合の出力値yの出現率を示す。
なお、ニューラルネット解析装置1が備える機能部は必ずしも一つの筐体に実装される必要は無い。ニューラルネット解析装置1は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、ニューラルネット解析装置1が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。例えば、初期化段階クラスタリング部301と、更新段階クラスタリング部302とは異なる情報処理装置に実装されてもよい。
以上説明した少なくともひとつの実施形態によれば、ニューラルネット解析装置1は、ニューラルネットワークのノードが使用される度合を入力層への入力に応じて示す値であるノード被使用指標をニューラルネットワークの入力層、中間層及び出力層の各ノードについて示す情報であるノード被使用指標パターンを、解析対象のニューラルネットワークである解析対象ニューラルネットワークが表す学習済みモデルに入力されたテストデータごとに取得するノード被使用指標パターン取得部102と、ノード被使用指標パターン取得部102が取得したノード被使用指標パターンに基づきテストデータ及びノード被使用指標パターンをクラスタリングするクラスタリング部103と、を備える。そのため、このように構成されたニューラルネット解析装置1は、予測精度の低下を抑制しつつ学習済みモデルの解釈を容易にする。
なお、制御部10の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。