(57)【要約】【課題】ニューラルネットワークの隠れ層全体で、主にどのような入出力のマッピングが行われているかを解析することができる。【解決手段】関係解析部３０が、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さを算出し、前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さを算出する。役割解析部３２が、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及び前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割と前記ユニットとの関係性、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を算出する。【選択図】図１
2019194754.tif 000002
【特許請求の範囲】
【請求項１】
入力データ及び出力データからなる学習データに基づいて前記入力データから前記出力データを出力するための予め学習されたニューラルネットワークを受け付ける入力部と、
前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さを算出し、前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さを算出する関係解析部と、
前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及び前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割と前記ユニットとの関係性、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を算出する役割解析部と、
を含む解析装置。
【請求項２】
前記関係解析部は、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々について、前記入力データの前記次元の値を、前記学習データに含まれる前記入力データの前記次元の平均値で置き換えたときの前記ユニットの出力と、置き換える前の入力データに対する前記ユニットの出力との二乗誤差を前記組み合わせの関係の強さとして算出し、
前記ユニットと前記出力データの次元との組み合わせの各々について、前記ユニットの出力値を、前記学習データに含まれる前記入力データを入力したときの前記ユニットの平均の出力値で置き換えたときの前記出力データの前記次元の値と、置き換える前の前記出力データの前記次元の値との二乗誤差を前記組み合わせの関係の強さとして算出する請求項１記載の解析装置。
【請求項３】
前記役割解析部は、各ユニットについて、前記入力データの各次元との関係の強さ及び前記出力データの各次元との関係の強さを表わす行列に対して、非負値行列分解を行って、所定の種類数の役割と前記ユニットとの関係性を表わす行列、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を表わす行列を算出する請求項１又は２記載の解析装置。
【請求項４】
入力部が、入力データ及び出力データからなる学習データに基づいて前記入力データから前記出力データを出力するための予め学習されたニューラルネットワークを受け付け、
関係解析部が、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さを算出し、前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さを算出し、
役割解析部が、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及び前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割と前記ユニットとの関係性、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を算出する
解析方法。
【請求項５】
前記関係解析部が算出することでは、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々について、前記入力データの前記次元の値を、前記学習データに含まれる前記入力データの前記次元の平均値で置き換えたときの前記ユニットの出力と、置き換える前の入力データに対する前記ユニットの出力との二乗誤差を前記組み合わせの関係の強さとして算出し、
前記ユニットと前記出力データの次元との組み合わせの各々について、前記ユニットの出力値を、前記学習データに含まれる前記入力データを入力したときの前記ユニットの平均の出力値で置き換えたときの前記出力データの前記次元の値と、置き換える前の前記出力データの前記次元の値との二乗誤差を前記組み合わせの関係の強さとして算出する請求項４記載の解析方法。
【請求項６】
前記役割解析部が算出することでは、各ユニットについて、前記入力データの各次元との関係の強さ及び前記出力データの各次元との関係の強さを表わす行列に対して、非負値行列分解を行って、所定の種類数の役割と前記ユニットとの関係性を表わす行列、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を表わす行列を算出する請求項４又は５に記載の解析方法。
【請求項７】
コンピュータを、請求項１〜請求項３のいずれか１項に記載の解析装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解析装置、方法、及びプログラムに係り、特に、ニューラルネットワークの構造を解析するための解析装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
データから学習された多層ニューラルネットワークに対し、ネットワーク解析を適用することにより、クラスタ構造の抽出を行い、さらに抽出された各クラスタの役割を、入出力データの各次元との関係性から定量的に求めることを可能とした技術がある（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Watanabe. C, Hiramatsu. K, and Kashino. K. “Understanding Community Structure in Layered Neural Networks”. ArXiv. 2018
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した既存技術により、多層ニューラルネットワークから取り出されたコミュニティ構造における各コミュニティの役割を読み取ることが可能となったが、この技術においてはニューラルネットワークの各層ごとにユニットのクラスタリングが行われるため、層をまたいだ各ユニットの役割の類似性を知ることはできない。ニューラルネットワークにおける一部分が果たす役割だけでなく、ニューラルネットワークの隠れ層全体で、主にどのような入出力のマッピングが行われているかを知るためには新たな技術が必要とされている。
【０００５】
本発明は、上記事情を鑑みて成されたものであり、ニューラルネットワークの隠れ層全体で、主にどのような入出力のマッピングが行われているかを解析することができる解析装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係る解析装置は、入力データ及び出力データからなる学習データに基づいて前記入力データから前記出力データを出力するための予め学習されたニューラルネットワークを受け付ける入力部と、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さを算出し、前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さを算出する関係解析部と、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及び前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割と前記ユニットとの関係性、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を算出する役割解析部と、を含んで構成されている。
【０００７】
また、本発明に係る解析方法は、入力部が、入力データ及び出力データからなる学習データに基づいて前記入力データから前記出力データを出力するための予め学習されたニューラルネットワークを受け付け、関係解析部が、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さを算出し、前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さを算出し、役割解析部が、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及び前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割と前記ユニットとの関係性、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を算出する。
【０００８】
本発明に係るプログラムは、コンピュータを、上記の発明に係る解析装置の各部として機能させるためのプログラムである。
【発明の効果】
【０００９】
本発明の解析装置、方法、及びプログラムによれば、前記入力データの次元と前記ニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及び前記ユニットと前記出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割と前記ユニットとの関係性、並びに前記所定の種類数の役割と前記入力データの次元及び前記出力データの次元との関係性を算出することにより、ニューラルネットワークの隠れ層全体で、主にどのような入出力のマッピングが行われているかを解析することができる、という効果が得られる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る解析装置の構成を示すブロック図である。
【図２】隠れ層のユニットにおいて、入出力の寄与度を表わす場合の一例を示す図である。
【図３】各ユニットについて、入力データの各次元との関係の強さ及び出力データの各次元との関係の強さを表わす行列に対して、非負値行列分解を行った結果の一例を示す図である。
【図４】本発明の実施の形態に係る解析装置における解析処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜本発明の実施の形態に係る解析装置の構成＞
次に、本発明の実施の形態に係る解析装置の構成について説明する。図１に示すように、本発明の実施の形態に係る解析装置１００は、ＣＰＵと、ＲＡＭと、後述する解析処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この解析装置１００は、機能的には図１に示すように入力部１０と、演算部２０と、出力部５０とを備えている。
【００１３】
入力部１０は、予め学習されたニューラルネットワークを受け付ける。また、入力部１０は、ニューラルネットワークの入力データ、及び当該入力データに対する出力データからなる学習データを受け付ける。ニューラルネットワークは入力データ及び出力データからなる学習データに基づいて入力データから出力データを出力するためのニューラルネットワークとして学習されたものである。
【００１４】
演算部２０は、関係解析部３０と、役割解析部３２とを含んで構成されている。
【００１５】
関係解析部３０は、入力部１０に入力された情報に基づいて、入力データの次元ｉとニューラルネットワークの隠れ層におけるユニットｋとの組み合わせの各々の関係の強さｖk,iinを算出し、隠れ層におけるユニットｋと出力データの次元ｊとの組み合わせの各々の関係の強さｖk,joutを算出する。
【００１６】
具体的には、関係解析部３０は、学習データをニューラルネットワークに入力し、入力データの次元ｉとユニットｋとの組み合わせの各々について、学習データである入力データの次元ｉの値を、学習データに含まれる入力データの次元ｉの平均値で置き換えたときのユニットｋの出力と、置き換える前の入力データに対するユニットｋの出力との二乗誤差を、入力データの次元ｉとユニットｋとの組み合わせの関係の強さｖk,iinとして定義し、算出する。
【００１７】
また、関係解析部３０は、学習データをニューラルネットワークに入力し、ユニットｋと出力データの次元ｊとの組み合わせの各々について、ユニットｋの出力値を、学習データに含まれる入力データを入力したときのユニットｋの平均の出力値で置き換えたときの出力データの次元ｊの値と、置き換える前の出力データの次元ｊの値との二乗誤差を、ユニットｋと出力データの次元ｊとの組み合わせの関係の強さｖk,joutとして定義し、算出する。
【００１８】
上記の演算により、各ユニットｋの入出力次元との関係の強さがそれぞれベクトル形式
2019194754.tif 000003
で得られ、これらを、各ユニットｋの役割を表わす特徴ベクトルとする。
【００１９】
例えば、文字画像認識（画像を入力として、その画像に何の文字が書かれているか予測した結果を出力する）を行うニューラルネットワークを入力とした場合、ニューラルネットワークにおける隠れ層の各ユニットが、入力画像のどの部分を見て、何の文字の認識を行うのに使われているか、ということを表現したベクトルが求まる（図２参照）。
【００２０】
役割解析部３２は、入力データの次元とニューラルネットワークの隠れ層におけるユニットとの組み合わせの各々の関係の強さ、及び隠れ層におけるユニットと出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割とユニットとの関係性、並びに所定の種類数の役割と入力データの次元及び出力データの次元との関係性を算出する。
【００２１】
具体的には、各ユニットについて、入力データの各次元との関係の強さ及び出力データの各次元との関係の強さを表わす行列に対して、非負値行列分解を行って、所定の種類数の役割とユニットとの関係性を表わす行列、並びに所定の種類数の役割と入力データの次元及び出力データの次元との関係性を表わす行列を算出する。
【００２２】
例えば、関係解析部３０で求めた、各ユニットｋの入出力次元との関係の強さを表わすベクトルvin，voutを用いて、以下に説明するように、隠れ層全体における主な役割(どのような入力情報を、どのような出力情報に結び付けているか)を求める。
【００２３】
まず、各ユニットの入出力次元との関係の強さを表わすベクトルを１つの行列Ｖとして表現する。
2019194754.tif 000004
ただし、各ユニットｋの入出力次元との関係の強さを表わすベクトルvin，voutをそのまま用いるのではなく、これらの2つのベクトルにおける要素の最大値・最小値が一致するように正規化してから行列Ｖとして結合するなどの処理を行っても良い。
【００２４】
ここで、ａを入力データの次元、ｂを出力データの次元とした。隠れ層のユニット数をｋ0とすると、Ｖはk0×(a+b)の行列となる(行方向が隠れ層の各ユニットに対応し、列方向が各入出力次元に対応する)。
【００２５】
上記の行列Ｖに対し、非負値行列分解を適用することにより、以下の式で表わされる２つの行列Ｗ，Ｈを得る。
【００２６】
【数１】
2019194754.tif 000005
【００２７】
ここで、Ｗはk0×cの行列、Ｈはc×(a+b)の行列である。これは、隠れ層全体のユニットの役割をc種類に分類できるものと仮定した場合において、そのc種類の役割がどのようなものであるか(これは行列Ｈで表現される)、また隠れ層における各ユニットはそのc種類の役割とどの程度関連しているのか(これは行列Ｗで表現される)を求めている。行列Ｈの各行はc種類に分類される役割を、「各入出力次元との関係の強さ」という観点から表わしている。行列Ｗの各行は、隠れ層の各ユニットの役割を、「c種類に分類された役割のうち、どれをどの程度担っているのか」という観点から表わしている(図３参照)。なお、ｃの値（正の整数）は、予め定められている。
【００２８】
また、非負値行列分解の具体的なアルゴリズムを、以下に示す。
2019194754.tif 000006
【００２９】
出力部５０において、関係解析部３０による解析結果を解釈しやすくするために、これらの入力データの次元ｉとユニットｋとの組み合わせの関係の強さｖk,iin、及びユニットｋと出力データの次元ｊとの組み合わせの関係の強さｖk,joutについて、ベクトル又は行列により表わすように出力する。例えば、文字画像認識を行うニューラルネットワーク（画像を入力として、その画像に何の文字が書かれているか予測した結果を出力する）に本実施形態を適用して、文字画像の学習データを用いて文字画像を認識する場合に、図３に示すように、ニューラルネットワークのユニットに対して、ユニットの各出力次元との関係の強さを寄与度として棒グラフで表わすことで、ユニットがどの文字の認識に使われているかの寄与度を表わしたり、各入力次元からのユニットへの寄与度を行列の分布により表わすことで、入力画像のどの部分の情報を当該ユニットが受け付けているのかの関係の強さを寄与度として表わすことができる。
【００３０】
また、出力部５０は、役割解析部３２による解析結果としての行列Ｗの各行を、隠れ層の各ユニットがｃ個に分けられた「主な役割」のうちどれを担っているかを表わすものとして出力する。これにより、例えば、ある隠れ層のユニットが、「画像上部のピクセルの情報から4と9を見分ける」と「画像中心部のピクセルの情報から0を見分ける」を半分ずつ程度の割合で担っていることなどを把握できる。
【００３１】
また、出力部５０は、役割解析部３２による解析結果としての行列Ｈの各行を、隠れ層全体の主な役割を表わすものとして出力する。これにより、例えば、「画像上部のピクセルの情報から4と9を見分ける」などの主な役割を把握できる。
【００３２】
＜本発明の実施の形態に係る解析装置の作用＞
次に、本発明の実施の形態に係る解析装置１００の作用について説明する。入力部１０において、予め学習されたニューラルネットワークと、入力データと出力データとからなる学習データを受け付けると、解析装置１００は、図４に示す解析処理ルーチンを実行する。
【００３３】
ステップＳ１００では、関係解析部３０は、学習データをニューラルネットワークに入力し、学習データである入力データの次元ｉと隠れ層におけるユニットｋとの組み合わせの各々について、入力データの次元ｉの値を、学習データに含まれる入力データの次元ｉの平均値で置き換えたときのユニットｋの出力と、置き換える前の入力データに対するユニットｋの出力との二乗誤差を、入力データの次元ｉとユニットｋとの組み合わせの関係の強さｖk,iinとして定義し、算出する。また、学習データをニューラルネットワークに入力し、隠れ層におけるユニットｋと出力データの次元ｊとの組み合わせの各々について、ユニットｋの出力値を、学習データに含まれる入力データを入力したときのユニットｋの平均の出力値で置き換えたときの出力データの次元ｊの値と、置き換える前の出力データの次元ｊの値との二乗誤差を、ユニットｋと出力データの次元ｊとの組み合わせの関係の強さｖk,joutとして定義し、算出する。
【００３４】
ステップＳ１０２では、役割解析部３２は、各ユニットについて、入力データの各次元との関係の強さ及び出力データの各次元との関係の強さを表わす行列Ｖに対して、非負値行列分解を行って、所定の種類数の役割とユニットとの関係性を表わす行列Ｗ、並びに所定の種類数の役割と入力データの次元及び出力データの次元との関係性を表わす行列Ｈを算出する。
【００３５】
ステップＳ１０４では、出力部５０において、入力データの次元ｉとユニットｋとの組み合わせの関係の強さｖk,iin、及びユニットｋと出力データの次元ｊとの組み合わせの関係の強さｖk,joutについて、ベクトル又は行列により表わすように出力する。
【００３６】
また、出力部５０は、役割解析部３２による解析結果としての行列Ｗの各行を、各隠れユニットがｃ個に分けられた「主な役割」のうちどれを担っているかを表わすものとして出力する。また、出力部５０は、役割解析部３２による解析結果としての行列Ｈの各行を、隠れ層全体の主な役割を表わすものとして出力する。
【００３７】
以上説明したように、本発明の実施の形態に係る解析装置によれば、入力データの次元とニューラルネットワークのユニットとの組み合わせの各々の関係の強さ、及びユニットと出力データの次元との組み合わせの各々の関係の強さに基づいて、所定の種類数の役割とユニットとの関係性、並びに所定の種類数の役割と入力データの次元及び出力データの次元との関係性を算出することにより、ニューラルネットワークの隠れ層全体で、主にどのような入出力のマッピングが行われているかを解析することができる。
【００３８】
また、本発明の実施の形態の技術を用いて、隠れ層のユニット全体の主な役割を「入力データのどの次元の情報を用いて、出力のどの次元の情報を推論するのに使われているか」という観点から明らかにすることにより、データから学習されたニューラルネットワークにおける入力から出力へのマッピングの働きを大まかに知ることができる。例えば、上記図２に示すように、文字画像認識を行うニューラルネットワークに本技術を適用した場合、ニューラルネットワークが隠れ層において、入力画像のどの部分を見て、何の文字の認識を行っているか、ということを主な役割に分解した形で知ることができる。
【００３９】
また、データから学習されたニューラルネットワークに対し、各ユニットの入出力との関係を解析し、それにより定義される行列に対し非負値行列分解を適用することにより、ニューラルネットワークの隠れ層全体における推論のメカニズムについて知識を獲得することができる。
【００４０】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【００４１】
１０   入力部
２０   演算部
３０   関係解析部
３２   役割解析部
５０   出力部
１００ 解析装置
【図１】
2019194754.tif 000007
【図２】
2019194754.tif 000008
【図３】
2019194754.tif 000009
【図４】
2019194754.tif 000010