(57)【要約】【課題】多層ニューラルネットを圧縮することができる。【解決手段】大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出する。辺定義部が、大局構造抽出部によって抽出された、各層ｄのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、ニューラルネットから、コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、２つのコミュニティc1とc2の間に辺を持たない場合には、ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除する。【選択図】図８
2018195200.tif 000002
【特許請求の範囲】
【請求項１】
学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層ｄに対し、前記層ｄのコミュニティを抽出する大局構造抽出部と、
前記大局構造抽出部によって抽出された、各層ｄのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、２つのコミュニティc1とc2の間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除する辺定義部と、
を含む大局構造抽出装置。
【請求項２】
前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行う並列学習部を更に含む請求項１記載の大局構造抽出装置。
【請求項３】
大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層ｄに対し、前記層ｄのコミュニティを抽出し、
辺定義部が、前記大局構造抽出部によって抽出された、各層ｄのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、２つのコミュニティc1とc2の間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除する
ことを特徴とする大局構造抽出方法。
【請求項４】
更に、並列学習部が、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行うことを特徴とする請求項３記載の大局構造抽出方法。
【請求項５】
コンピュータを、請求項１又は２項記載の大局構造抽出装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大局構造抽出装置、方法、及びプログラムに係り、特に、多層ニューラルネットの各層のコミュニティを抽出する大局構造抽出装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
ネットワークの結合構造に基づき頂点のコミュニティ抽出を行う方法が知られている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Newman. M. E. J and Leicht. E. A. Mixture models and exploratory analysis in networks. Proceedings of the National Academy of Sciences, Vol. 104, No. 23. pp. 9564-9569, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１の方法では、多層ニューラルネットの大局構造を抽出するものではない。
【０００５】
本発明は、何らかの観測データに基づいて学習した多層ニューラルネットからの知識発見において、既存技術が抱えていた以下の問題を解決することを目的とする。
【０００６】
近年、深層学習のように大規模かつ複雑なネットワーク構造に基づく学習器を用いる方法により、様々なデータの予測や認識を高精度で行うことができることが示されてきた。しかし、そのような大規模で複雑なネットワーク構造において、どの部分がどのような働きをしているのかを人間が理解することは難しく、学習後のネットワークからの知識発見が困難であるという課題があった。
【０００７】
本発明は、上記の事情に鑑みてなされたもので、多層ニューラルネットを圧縮することができる大局構造抽出装置、方法、及びプログラムを提供することを目的とする。
また、多層ニューラルネットの学習に係る時間を短縮することができる大局構造抽出装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために第１の発明に係る大局構造抽出装置は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層ｄに対し、前記層ｄのコミュニティを抽出する大局構造抽出部と、前記大局構造抽出部によって抽出された、各層ｄのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、２つのコミュニティc1とc2の間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除する辺定義部と、を含んで構成されている。
【０００９】
第２の発明に係る大局構造抽出装置は、第１の発明に係る大局構造抽出装置において、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行う並列学習部を更に含んで構成されている。
【００１０】
第３の発明に係る大局構造抽出方法は、大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層ｄに対し、前記層ｄのコミュニティを抽出し、辺定義部が、前記大局構造抽出部によって抽出された、各層ｄのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、２つのコミュニティc1とc2の間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除することを特徴とする。
【００１１】
第４の発明に係る大局構造抽出方法は、第３の発明に係る大局構造抽出方法において、更に、並列学習部が、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行うことを特徴とする。
【００１２】
第５の発明に係るプログラムは、コンピュータを、上記の大局構造抽出装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１３】
以上説明したように、本発明の大局構造抽出装置、方法、及びプログラムによれば、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮することができる、という効果が得られる。また同様に、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、２つのコミュニティc1とc2が間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除することにより、多層ニューラルネットを圧縮することができる、という効果が得られる。
【００１４】
本発明の大局構造抽出装置、方法、及びプログラムによれば、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行うことにより、多層ニューラルネットの学習に係る時間を短縮することができる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態に係る大局構造抽出装置の構成を示す概略図である。
【図２】本発明の第１の実施の形態に係る大局構造抽出装置の処理概要を示す図である。
【図３】多層ニューラルネットの学習アルゴリズムを示す図である。
【図４】本発明の第１の実施の形態に係る大局構造抽出装置の大局構造抽出部の構成を示す概略図である。
【図５】多層ニューラルネットのコミュニティ抽出を行うアルゴリズムを示す図である。
【図６】多層ニューラルネットのコミュニティ抽出を行うアルゴリズムを示す図である。
【図７】多層ニューラルネットのコミュニティ抽出を行うアルゴリズムを示す図である。
【図８】多層ニューラルネットを圧縮する方法を説明するための図である。
【図９】本発明の第１の実施の形態に係る大局構造抽出装置の可視化部の構成を示す概略図である。
【図１０】多層ニューラルネットを可視化する方法を説明するための図である。
【図１１】本発明の第１の実施の形態に係る大局構造抽出プログラムを示すフローチャートである。
【図１２】本発明の第２の実施の形態に係る大局構造抽出装置の構成を示す概略図である。
【図１３】多層ニューラルネットを分割する方法を説明するための図である。
【図１４】本発明の第２の実施の形態に係る大局構造抽出プログラムを示すフローチャートである。
【図１５】多層ニューラルネットの圧縮を行うアルゴリズムを示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１７】
＜第１の実施の形態＞
【００１８】
[大局構造抽出装置の構成]
【００１９】
以下、本発明の第１の実施の形態に係る大局構造抽出装置について図面を参照して説明する。大局構造抽出装置は、ＣＰＵと、ＲＡＭと、プログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図１には、本発明の実施形態に係る大局構造抽出装置１００の構成の概略が示されている。図１に示すように、本実施形態に係る大局構造抽出装置１００は、入力部１０と、演算部２０と、出力部５０とで構成されている。
【００２０】
大局構造抽出装置１００は、入力部１０により、観測される入出力データの組
2018195200.tif 000003
といくつかのパラメータを受け付け、演算部２０により、学習した多層ニューラルネットの大まかな関係構造を抽出し、出力部５０により出力する。
【００２１】
入力部１０は、下記の観測データと第１〜第１４のパラメータを入力として受け付ける。
【００２２】
まず、観測データとして、観測データの入出力の組
2018195200.tif 000004
を受け付ける。ここで、Ndataはデータの個数、
2018195200.tif 000005
の各次元数を
2018195200.tif 000006
とおく。
【００２３】
第１のパラメータは、観測データの正規化における入力値の最大値xmaxである。例えば、xmax = 3 と設定すればよい。
【００２４】
第２のパラメータは、観測データの正規化における入力値の最小値xminである。例えば、xmin=-3 と設定すればよい。
【００２５】
第３のパラメータは、観測データの正規化における出力値の最大値ymaxである。ymax<1とする．例えば、ymax = 0.99と設定すればよい。
【００２６】
第４のパラメータは、観測データの正規化における出力値の最小値yminである。ymin >0とする．例えば、ymin = 0.01 と設定すればよい。
【００２７】
第５のパラメータは、多層ニューラルネットの学習における反復回数NNNである。例えば、NNN = 10000 と設定すればよい。
【００２８】
第６のパラメータは、多層ニューラルネットの層の数（入力層・出力層を含む）Ndepthである。多層ニューラルネットの深さd = 1 は入力層、深さd=Ndepthは出力層と対応する。
【００２９】
第７のパラメータは、多層ニューラルネットの各層に含まれる頂点数
2018195200.tif 000007
である。ただし、
2018195200.tif 000008
である。
【００３０】
第８のパラメータは、多層ニューラルネットの学習におけるステップ幅ηである。例えば、η = 0.7と設定すればよい。
【００３１】
第９のパラメータは、多層ニューラルネットの学習における辺のスパース化の度合いを表すパラメータ
2018195200.tif 000009
である。例えば、
2018195200.tif 000010
と設定すればよい。
【００３２】
第１０のパラメータは、多層ニューラルネットの学習において辺の有無を決定するための閾値ξNNである。例えば、ξNN =0.01 と設定すればよい。
【００３３】
第１１のパラメータは、多層ニューラルネットの学習におけるパラメータ更新のオフセット値
2018195200.tif 000011
である。例えば、
2018195200.tif 000012
と設定すればよい。
【００３４】
第１２のパラメータは、学習済み多層ニューラルネットのコミュニティ抽出における反復回数NEMである。例えば、NEM =1000 と設定すればよい。
【００３５】
第１３のパラメータは、学習済み多層ニューラルネットのコミュニティ抽出における１層のコミュニティ数の上限Ncである。例えば、Nc = 10 と設定すればよい。
【００３６】
第１４のパラメータは、 学習済み多層ニューラルネットの各コミュニティ間の辺の有無を決定するための閾値
2018195200.tif 000013
である。例えば、
2018195200.tif 000014
と設定すればよい。
【００３７】
演算部２０は、多層ニューラルネット学習部２２と、隣接行列変換部２４と、大局構造抽出部２６と、可視化部２８とを備えている。
【００３８】
演算部２０の処理は、大まかに、多層ニューラルネット学習部２２で観測データから多層ニューラルネットの学習を行い(図２(a))、大局構造抽出部２６でその多層ニューラルネットにおけるコミュニティ抽出を行った後(図２(b))、得られたコミュニティ間の辺を定義する(図2(c))。以降、各ブロックの処理について詳細に説明する。
【００３９】
（多層ニューラルネット学習部２２）
多層ニューラルネット学習部２２は、入力部１０で受け付けた、観測データの入出力の組
2018195200.tif 000015
と、パラメータとを用い、多層ニューラルネットにおけるパラメータの学習を行う。ここで、シグモイド関数をσ(x)= 1／(1 + exp(-x))、符号関数を
【００４０】
【数１】
2018195200.tif 000016
【００４１】
と表記する。ただし、ここでxはベクトルや行列で表される値も許しており、その場合はxの各要素に関して上記の関数を適用するものとする。また、ここでは最も基礎的な多層ニューラルネットの学習方法の例を記載するが、本発明はより一般的な多層ニューラルネット、例えばいくつかの頂点を削除した多層ニューラルネットなどにも同様に適用可能である。
【００４２】
（観測データの前処理）
まず、多層ニューラルネット学習部２２は、前処理として、入力部１０で受け付けた、観測データの入出力の組
2018195200.tif 000017
について正規化を行う。入力データ｛xｉn｝の最大値がxmax、最小値がxminとなるように正規化するには、以下の計算により入力データの値を変換すればよい。
【００４３】
｛xｉn｝のもともとの最大値、最小値をそれぞれamax、aminとするとき、正規化された入力データ
2018195200.tif 000018
は以下の式に従って得られる。
【００４４】
【数２】
2018195200.tif 000019
【００４５】
同様の計算により、出力データ｛yｉn｝についても、その最大値がymax、最小値がyminとなるように正規化を行う。
【００４６】
（多層ニューラルネットのパラメータ初期化）
次に、多層ニューラルネット学習部２２は、多層ニューラルネットのパラメータの初期化を行う。多層ニューラルネットにおけるパラメータは、深さdの層の頂点viと、深さd + 1の層の頂点vjを結ぶ辺の重みWdi,jの集合と、深さdの層の各頂点vdiにおける出力のバイアスθdiである。ここで、｛Wdi,j｝と｛θdi｝の初期値はそれぞれ、例えば(0, 1)の一様分布などからランダムに決めればよい。
【００４７】
（多層ニューラルネットの学習）
多層ニューラルネット学習部２２は、上記で初期化したパラメータ｛Wdi,j｝と｛θdi｝と観測データから、パラメータの更新を行う。図３に示すAlgorithm1はパラメータ更新方法の一例であり、多層ニューラルネットによる出力値と観測データの二乗誤差を目的関数とする最急降下法によるものである。
【００４８】
（学習した多層ニューラルネットの後処理）
多層ニューラルネット学習部２２は、学習した多層ニューラルネットにおける各辺の重みに対し、閾値処理を行う。具体的には、深さdの層の各頂点viと、深さd + 1の層の各頂点vjを結ぶ辺について、その重みの絶対値｜Wdi,j｜が閾値ξNN以上であればそのままとし、そうでなければWdi,j←0 とする。
【００４９】
（隣接行列変換部２４）
隣接行列変換部２４は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、各層の隣接行列を生成する。
【００５０】
ここで、隣接行列と次数について説明する。グラフG=(V,E)の隣接行列A ={Aij}は、以下の方法で定義される。重みなし隣接行列は、全ての(i,j) の組み合わせに対し、(i，j)∈E ならばAij = 1、
2018195200.tif 000020
ならばAij = 0 を満たす行列である。重みつき隣接行列は、行列の各要素Aijの値として任意の実数をとりうる。本発明においては、隣接行列の各要素の値は任意の正の実数をとりうるものとする。
【００５１】
多層ニューラルネット学習部２２で得られた｛Wdi,j｝に基づき、学習後の多層ニューラルネット全体をNdepth個のグラフに分割し、それらの隣接行列
2018195200.tif 000021
を定義する。元の多層ニューラルネットにおける深さd’のi番目の頂点が、この隣接行列Adでは頂点番号
2018195200.tif 000022
を持つとすると、重みなし隣接行列では、Wd′i,j＝0 ならば
2018195200.tif 000023
とし、Wd′i,j≠0 ならば
2018195200.tif 000024
とする。また、重みつき隣接行列では、辺の重みの絶対値を代入し、
2018195200.tif 000025
とする。ここで、各隣接行列Adに含める頂点集合の組み合わせは様々に考えられるが、少なくとも学習後の多層ニューラルネットにおける深さd の頂点を全て含むものとする。以下に、(i)〜(iii)の隣接行列Adに含める頂点集合の一例を示す。
【００５２】
(i) A１は、深さ1，2 の頂点全てを含む隣接行列である。
【００５３】
(ii)
2018195200.tif 000026
について、Adは、深さd-1，d，d+1の頂点全てを含む隣接行列である。
【００５４】
(iii)
2018195200.tif 000027
は、深さNdepth-1, Ndepth の頂点全てを含む隣接行列である。
【００５５】
以降、(i), (ii), (iii) で定義された隣接行列を用いるものとして説明を進める。
【００５６】
最後に、上記の多層ニューラルネット学習部２２による閾値処理により独立な(つまり、他の頂点への結合を持たない)頂点が生じた場合、このような頂点の番号に対応するAdの行・列を削除する。例えば、多層ニューラルネットにおける深さd’の頂点viが他の頂点への結合を持たない場合、行
2018195200.tif 000028
と列
2018195200.tif 000029
を削除する。
【００５７】
（大局構造抽出部２６）
大局構造抽出部２６は、隣接行列変換部２４により得られたNdepth個のグラフの隣接行列
2018195200.tif 000030
に対して、それぞれコミュニティ抽出を行うことで、多層ニューラルネットの大局構造を抽出する。本実施の形態では、図４に示すように、大局構造抽出部２６は、コミュニティ抽出部３２と、辺定義部３４とを備えている。
【００５８】
コミュニティ抽出部３２は、多層ニューラルネット学習部２２によって学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、多層ニューラルネットの各層ｄに対し、当該層ｄのコミュニティを抽出する。
【００５９】
グラフ構造であるコミュニティ抽出手法は様々に考えられるが、以下では実施例として(1)上記非特許文献１に記載のコミュニティ抽出手法を用いる方法（図５のAlgorithm 2）と、(2) 上記非特許文献１記載の手法を拡張した独自のコミュニティ抽出手法を用いる方法（図６のAlgorithm 3）、(3) さらに(2) の手法を変分ベイズ法を用いて拡張した独自のコミュニティ抽出手法を用いる方法（図７のAlgorithm 4）とについて記載する。これらのアルゴリズムを適用した結果として、多層ニューラルネットの各層の頂点集合は、最大でNc個のコミュニティに分割される。全ての層についてコミュニティ抽出を行った結果、得られたコミュニティの集合を
2018195200.tif 000031
とおく。これは、学習した多層ニューラルネットのおおまかな構造を表すグラフにおける、頂点とみなすことができる。
【００６０】
図６のAlgorithm 3を適用する場合には、コミュニティ抽出部３２は、層ｄのコミュニティを抽出する際に、層ｄの頂点が各コミュニティｃに属する確率πcと、各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を始点とした辺が層ｄ＋１の各頂点ｉを終点とする確率τ´c,i、又は各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を終点とした辺が層ｄ−１の各頂点ｉを始点とする確率τc,iとに基づいて、層ｄに含まれる各頂点が、各コミュニティｃに属する確率ｑi,cを推定することにより、層ｄのコミュニティを抽出する。
図７のAlgorithm 4を適用する場合には、コミュニティ抽出部３２は、層ｄのコミュニティを抽出する際に、層ｄの頂点が各コミュニティｃに属する確率πcの事前分布を決めるハイパーパラメータαcと、各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を始点とした辺が層ｄ＋１の各頂点ｊを終点とする確率τ´c,iの事前分布を決めるハイパーパラメータγc,j、又は各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を終点とした辺が層ｄ−１の各頂点ｋを始点とする確率τc,kの事前分布を決めるハイパーパラメータβc,kとに基づいて、層ｄに含まれる各頂点ｉが、各コミュニティｃに属する確率ｑi,cを推定することにより、層ｄのコミュニティを抽出する。
【００６１】
次に、辺定義部３４は、コミュニティ抽出部３２で得られた各層ｄのコミュニティに基づいて、隣接する層のコミュニティ同士をつなぐ辺の集合
2018195200.tif 000032
を定義する。
【００６２】
ある深さd のコミュニティC と、深さd + 1 のコミュニティC′との間の辺の有無は、C に含まれる頂点とC′に含まれる頂点の間の辺の情報から決定する。この方法は様々に考えられるが、例えば以下の方法1、方法2、方法3、または方法4のように決めればよい。
【００６３】
方法1では、コミュニティC に含まれる頂点とコミュニティC′に含まれる頂点の間に、少なくとも1 つの辺が存在するならば、その場合のみコミュニティC とコミュニティC′の間を辺で結ぶ。
【００６４】
方法2では、深さd のコミュニティC に含まれる頂点と深さd+1 のコミュニティC′に含まれる頂点の全ての組み合わせの個数(C の頂点がMC 個，C′ の頂点がMC′個ならばMC×MC′) に対する辺の数の割合rC,C′ (C の頂点とC′の頂点の間にM 本の辺がある場合、
2018195200.tif 000033
）が閾値ξcd以上ならば、その場合のみコミュニティCとコミュニティC′の間を辺で結ぶ。
【００６５】
方法3では、方法2で定義された辺のうち、以下の条件(1) を満たすか、または条件(2) を満たすもののみを残し、残りを削除する。
【００６６】
条件（１）は、深さd のコミュニティC と深さd + 1 のコミュニティC′をつなぐ辺について、
2018195200.tif 000034
であることである。条件（２）は、深さd のコミュニティC と深さd + 1 のコミュニティC′をつなぐ辺について、
2018195200.tif 000035
であることである。
【００６７】
方法4は、方法2 で定義された辺のうち、上記の条件(1) を満たし、かつ条件(2) を満たすもののみを残し、残りを削除することである。
【００６８】
このようにして得られたコミュニティの集合
2018195200.tif 000036
と、コミュニティ同士を結ぶ辺の集合
2018195200.tif 000037
とにより、学習した多層ニューラルネットの大局構造を表すグラフを抽出することができる。
【００６９】
また、辺定義部３４は、図８（２）に示すように、隣接する層のコミュニティ間を結ぶ辺を定義した結果、次の層への辺を持たないコミュニティがある場合には、多層ニューラルネット学習部２２で学習後の多層ニューラルネットから、当該コミュニティに含まれる頂点と、当該コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮する。また同様に、図８（１）に示すように、ある２つのコミュニティc1とc2がそれらの間に辺を持たない場合には、多層ニューラルネット学習部２２で学習後の多層ニューラルネットから、当該コミュニティc1とc2の間に存在する辺を削除することにより、多層ニューラルネットを圧縮する。これにより、パラメータ数を減らした多層ニューラルネットを生成でき、計算時間や必要メモリを削減することができる。
【００７０】
（可視化部）
可視化部２８は、多層ニューラルネットの大局構造を表すグラフにおける頂点集合
2018195200.tif 000038
と辺集合
2018195200.tif 000039
とを可視化して、出力部５０により表示する。
【００７１】
図９に示すように、可視化部２８は、大局構造可視化部４０、コミュニティ受付部４２、及び入出力可視化部４４を備えている。
【００７２】
大局構造可視化部４０は、図２（ｃ）に示すように、大局構造抽出部２６によって得られた、各層ｄのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、出力部５０により表示する。
【００７３】
コミュニティ受付部４２は、大局構造可視化部４０による可視化に対して、ユーザから、中間層のコミュニティの指定を受け付ける。
【００７４】
入出力可視化部４４は、図１０に示すように、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化し、出力部５０による表示する。図１０の例のように、多層ニューラルネットのタスクが、画像の特徴量から、その画像に写っているものを予測するタスクの場合、中間層の真ん中のコミュニティが指定されると、指定されたコミュニティにつながっている入力層のコミュニティの各頂点と、出力層のコミュニティの各頂点とを示す情報が可視化される。これにより、中間層の真ん中のコミュニティが、「特徴量３〜５」の値から「数字の画像」を予測する役割を果たしていることが分かる。
【００７５】
また、中間層の右側のコミュニティが指定されると、指定されたコミュニティにつながっている入力層のコミュニティの頂点と、出力層のコミュニティの頂点とを示す情報が可視化される。これにより、中間層の右側のコミュニティが、「特徴量１、２、６〜１０」の値から「動物の画像」を予測する役割を果たしていることが分かる。
【００７６】
［大局構造抽出装置の作用］
次に、本発明の第１の実施の形態に係る大局構造抽出装置１００の作用を説明する。
【００７７】
図１１には、本発明の第１の実施の形態に係る大局構造抽出プログラムを示すフローチャートが示されている。大局構造抽出装置１００の入力部１０により、観測される入出力データの組といくつかのパラメータとを受け付け、大局構造抽出プログラムがスタートすると、ステップＳ１００で、多層ニューラルネット学習部２２は、入力部１０で受け付けた、観測データの入出力の組
2018195200.tif 000040
と、パラメータとを用い、多層ニューラルネットにおけるパラメータの学習を行う。例えば、図３に示すAlgorithm1に従って、多層ニューラルネットによる出力値と観測データの二乗誤差を目的関数とする最急降下法により、多層ニューラルネットにおける各辺の重みを学習する。そして、学習した多層ニューラルネットにおける各辺の重みに対し、閾値処理を行う。
【００７８】
ステップＳ１０２では、隣接行列変換部２４は、学習後の多層ニューラルネット全体をNdepth 個のグラフに分割し、分割されたNdepth個のグラフの各々に対し、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、各層の隣接行列を生成する。
【００７９】
ステップＳ１０６では、コミュニティ抽出部３２は、上記ステップＳ１０２で生成された各層の隣接行列に基づいて、多層ニューラルネットの各層ｄに対し、当該層ｄのコミュニティを抽出する。例えば、図６に示すAlgorithm3に従って、層ｄのコミュニティを抽出する際に、層ｄに含まれる各頂点ｉが、各コミュニティｃに属する確率ｑi,cの更新と、層ｄの頂点が各コミュニティｃに属する確率πcの更新と、各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を始点とした辺が層ｄ＋１の各頂点ｉを終点とする確率τ´c,i、又は各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を終点とした辺が層ｄ−１の各頂点ｉを始点とする確率τc,iの更新とを繰り返し、層ｄに含まれる各頂点ｉが、各コミュニティｃに属する確率ｑi,cを推定することにより、層ｄのコミュニティを抽出する。
あるいは、図７に示すAlgorithm4に従って、層ｄのコミュニティを抽出する際に、層ｄに含まれる各頂点ｉが、各コミュニティｃに属する確率ｑi,cの更新と、層ｄの頂点が各コミュニティｃに属する確率πcの事前分布を決めるハイパーパラメータαcの更新と、各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を始点とした辺が層ｄ＋１の各頂点ｊを終点とする確率τ´c,ｊの事前分布を決めるハイパーパラメータγc,j、又は各コミュニティｃについての、コミュニティｃに属する前記層ｄの頂点を終点とした辺が層ｄ−１の各頂点ｋを始点とする確率τc,ｋの事前分布を決めるハイパーパラメータβc,kの更新とを繰り返し、層ｄに含まれる各頂点ｉが、各コミュニティｃに属する確率ｑi,cを推定することにより、層ｄのコミュニティを抽出する。
【００８０】
ステップＳ１０８では、辺定義部３４は、コミュニティ抽出部３２で得られた各層ｄのコミュニティに基づいて、隣接する層のコミュニティ同士をつなぐ辺の集合
2018195200.tif 000041
を定義する。
【００８１】
また、辺定義部３４は、隣接する層のコミュニティ間を結ぶ辺を定義した結果、次の層への辺を持たないコミュニティがある場合には、多層ニューラルネット学習部２２で学習後の多層ニューラルネットから、当該コミュニティに含まれる頂点と、当該コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮する。また同様に、ある２つのコミュニティc1とc2がそれらの間に辺を持たない場合には、多層ニューラルネット学習部２２で学習後の多層ニューラルネットから、当該コミュニティc1とc2の間に存在する辺を削除することにより、多層ニューラルネットを圧縮する。
【００８２】
ステップＳ１１０では、大局構造可視化部４０は、各層ｄのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、出力部５０により表示する。
【００８３】
ステップＳ１１２では、コミュニティ受付部４２は、大局構造可視化部４０による可視化に対して、ユーザから、中間層のコミュニティの指定を受け付ける。
【００８４】
ステップＳ１１４では、入出力可視化部４４は、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化し、出力部５０による表示し、大局構造抽出プログラムを終了する。
【００８５】
以上説明したように、本発明の第１の実施の形態に係る大局構造抽出装置によれば、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出する際に、前記層ｄの頂点が各コミュニティｃに属する確率と、各コミュニティｃについての、前記コミュニティｃに属する前記層ｄの頂点を始点とした辺が層ｄ＋１の各頂点ｉを終点とする確率、又は各コミュニティｃについての、前記コミュニティｃに属する前記層ｄの頂点を終点とした辺が層ｄ−１の各頂点ｉを始点とする確率とに基づいて、前記層ｄに含まれる各頂点ｉが、各コミュニティｃに属する確率を推定することにより、層ｄのコミュニティを適切に抽出することができ、学習結果を人間にも理解しやすい形で提示するために、学習後の多層ニューラルネットから大まかな関係構造を抽出することができる。
【００８６】
また、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮することができる。また同様に、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、２つのコミュニティc1とc2が間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除することにより、多層ニューラルネットを圧縮することができる。
【００８７】
また、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化することにより、多層ニューラルネットの学習結果を人間にも理解しやすい形で提示することができる。
【００８８】
また、学習した多層ニューラルネットの結合構造に基づいて簡略化された関係構造を抽出し、大規模かつ複雑な多層ニューラルネットの学習結果を人間にも理解しやすい形で提示することができる。
【００８９】
＜第２の実施の形態＞
[大局構造抽出装置の構成]
次に、第２の実施の形態に係る大局構造抽出装置について説明する。なお、第１の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【００９０】
第２の実施の形態では、コミュニティ抽出の結果、多層ニューラルネットを分割できる場合には、分割した多層ニューラルネットを並列に再学習する点が、第１の実施の形態と異なっている。
【００９１】
図１２に示すように、第２の実施形態に係る大局構造抽出装置２００の演算部２２０は、多層ニューラルネット学習部２２と、隣接行列変換部２４と、大局構造抽出部２６と、多層ニューラルネット分割部２２８と、並列学習部２３０とを備えている。
【００９２】
多層ニューラルネット分割部２２８は、辺定義部３４により多層ニューラルネットを圧縮した結果、図１３に示すように、多層ニューラルネットを、複数の多層ニューラルネットに分割することができる場合には、複数の多層ニューラルネットに分割する。
【００９３】
並列学習部２３０は、入力部１０で受け付けた、観測データの入出力の組
2018195200.tif 000042
に基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行い、学習結果を出力部５０により出力する。
【００９４】
[大局構造抽出装置の作用]
次に、本発明の第２の実施の形態に係る大局構造抽出装置２００の作用を説明する。なお、第１の実施の形態と同様の処理については、同一符号を付して詳細な説明を省略する。
【００９５】
図１４には、本発明の第２の実施の形態に係る大局構造抽出プログラムを示すフローチャートが示されている。大局構造抽出装置２００の入力部１０により、観測される入出力データの組といくつかのパラメータとを受け付け、大局構造抽出プログラムがスタートすると、ステップＳ１００で、多層ニューラルネット学習部２２は、入力部１０で受け付けた、観測データの入出力の組
2018195200.tif 000043
と、パラメータとを用い、多層ニューラルネットにおけるパラメータの学習を行う。そして、学習した多層ニューラルネットにおける各辺の重みに対し、閾値処理を行う。
【００９６】
ステップＳ１０２では、隣接行列変換部２４は、学習後の多層ニューラルネット全体をNdepth個のグラフに分割し、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、各層の隣接行列を生成する。
【００９７】
ステップＳ１０６では、コミュニティ抽出部３２は、生成された各層の隣接行列に基づいて、多層ニューラルネットの各層ｄに対し、当該層ｄのコミュニティを抽出する。
【００９８】
ステップＳ１０８では、辺定義部３４は、コミュニティ抽出部３２で得られた各層ｄのコミュニティに基づいて、隣接する層のコミュニティ同士をつなぐ辺の集合
2018195200.tif 000044
を定義する。
【００９９】
また、辺定義部３４は、隣接する層のコミュニティ間を結ぶ辺を定義した結果、次の層への辺を持たないコミュニティがある場合には、多層ニューラルネット学習部２２で学習後の多層ニューラルネットから、当該コミュニティに含まれる頂点と、当該コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮する。また同様に、ある２つのコミュニティc1とc2がそれらの間に辺を持たない場合には、多層ニューラルネット学習部２２で学習後の多層ニューラルネットから、当該コミュニティc1とc2の間に存在する辺を削除することにより、多層ニューラルネットを圧縮する。
【０１００】
ステップＳ２００では、多層ニューラルネット分割部２２８は、上記ステップＳ１０８において多層ニューラルネットを圧縮した結果、多層ニューラルネットを、複数の多層ニューラルネットに分割することができる場合には、複数の多層ニューラルネットに分割する。
【０１０１】
ステップＳ２０２では、並列学習部２３０は、入力部１０で受け付けた、観測データの入出力の組
2018195200.tif 000045
に基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行い、学習結果を出力部５０により出力する。
【０１０２】
以上説明したように、本発明の第２の実施の形態に係る大局構造抽出装置によれば、多層ニューラルネットの各層ｄに対し、層ｄのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、また、２つのコミュニティc1とc2が間に辺を持たない場合には、前記ニューラルネットから、前記コミュニティc1とc2の間に存在する辺を削除し、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行うことにより、多層ニューラルネットの学習に係る時間を短縮することができる。
【０１０３】
[変形例]
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０４】
例えば、コミュニティ抽出を行った結果に基づいて圧縮された多層ニューラルネットに対して、もう一度コミュニティ抽出を行うようにしてもよい。また、コミュニティ抽出を行った結果に基づいて圧縮された多層ニューラルネットに対して、再度コミュニティ抽出を行うことを、収束するまで繰り返すことにより、中間層の最適化を行うようにしてもよい。この場合には、最終的に多層ニューラルネットに残る頂点・辺の組み合わせが変わらなくなった時点で、繰り返し処理を終了するようにしてもよい。このような繰り返し処理による多層ニューラルネットの圧縮アルゴリズムの一例を、Algorithm5 に示す（図１５参照）。
【０１０５】
大局構造抽出装置の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、大局構造抽出装置に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１０６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１０７】
１０   入力部
２０、２２０  演算部
２２   多層ニューラルネット学習部
２４   隣接行列変換部
２６   大局構造抽出部
２８   可視化部
３２   コミュニティ抽出部
３４   辺定義部
４０   大局構造可視化部
４２   コミュニティ受付部
４４   入出力可視化部
５０   出力部
１００、２００       大局構造抽出装置
２２８ 多層ニューラルネット分割部
２３０ 並列学習部
【図１】
2018195200.tif 000046
【図２】
2018195200.tif 000047
【図３】
2018195200.tif 000048
【図４】
2018195200.tif 000049
【図５】
2018195200.tif 000050
【図６】
2018195200.tif 000051
【図７】
2018195200.tif 000052
【図８】
2018195200.tif 000053
【図９】
2018195200.tif 000054
【図１０】
2018195200.tif 000055
【図１１】
2018195200.tif 000056
【図１２】
2018195200.tif 000057
【図１３】
2018195200.tif 000058
【図１４】
2018195200.tif 000059
【図１５】
2018195200.tif 000060