【文献】
岡本 洋,「全脳ネットワーク分析:複雑ネットワーク科学とコネクトームとの融合から全脳アーキテクチャにせまる」,知能と情報,日本知能情報ファジィ学会,2016年 4月15日,第28巻,第2号,pp.28−37
(58)【調査した分野】(Int.Cl.,DB名)
学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部であって、
前記層dのコミュニティを抽出する際に、前記層dの頂点が各コミュニティcに属する確率と、各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率、又は各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率とに基づいて、前記層dに含まれる各頂点iが、各コミュニティcに属する確率を推定することにより、前記層dのコミュニティを抽出する大局構造抽出部
を含む大局構造抽出装置。
前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義する辺定義部を更に含む請求項1記載の大局構造抽出装置。
学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部と、
前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除する辺定義部と、
を含む大局構造抽出装置。
学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部と、
前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義する辺定義部と、
各層dのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化する可視化部と、
を含む大局構造抽出装置。
学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部と、
前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除する辺定義部と、
前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行う並列学習部と、
を含む大局構造抽出装置。
大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出することであって、
前記層dのコミュニティを抽出する際に、前記層dの頂点が各コミュニティcに属する確率と、各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率、又は各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率とに基づいて、前記層dに含まれる各頂点iが、各コミュニティcに属する確率を推定することにより、前記層dのコミュニティを抽出する
ことを特徴とする大局構造抽出方法。
大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出し、
辺定義部が、前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、
可視化部が、各層dのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化する
ことを特徴とする大局構造抽出方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1の方法では、多層ニューラルネットの大局構造を抽出するものではない。
【0005】
本発明は、何らかの観測データに基づいて学習した多層ニューラルネットからの知識発見において、既存技術が抱えていた以下の問題を解決することを目的とする。
【0006】
近年、深層学習のように大規模かつ複雑なネットワーク構造に基づく学習器を用いる方法により、様々なデータの予測や認識を高精度で行うことができることが示されてきた。しかし、そのような大規模で複雑なネットワーク構造において、どの部分がどのような働きをしているのかを人間が理解することは難しく、学習後のネットワークからの知識発見が困難であるという課題があった。
【0007】
本発明は、上記の事情に鑑みてなされたもので、学習結果を人間にも理解しやすい形で提示するために、学習後の多層ニューラルネットから大まかな関係構造を抽出することができる大局構造抽出装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するために第1の発明に係る大局構造抽出装置は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部であって、前記層dのコミュニティを抽出する際に、前記層dの頂点が各コミュニティcに属する確率と、各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率、又は各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率とに基づいて、前記層dに含まれる各頂点iが、各コミュニティcに属する確率を推定することにより、前記層dのコミュニティを抽出する大局構造抽出部を含んで構成されている。
【0009】
第2の発明に係る大局構造抽出装置は、上記第1の発明において、前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義する辺定義部を更に含む。
【0010】
第3の発明に係る大局構造抽出装置は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部と、前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除する辺定義部と、を含んで構成されている。
【0011】
第4の発明に係る大局構造抽出装置は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部と、前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義する辺定義部と、各層dのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化する可視化部と、を含んで構成されている。
【0012】
第5の発明に係る大局構造抽出装置は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出する大局構造抽出部と、前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除する辺定義部と、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行う並列学習部と、を含んで構成されている。
【0013】
第6の発明に係る大局構造抽出方法は、大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出することであって、前記層dのコミュニティを抽出する際に、前記層dの頂点が各コミュニティcに属する確率と、各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率、又は各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率とに基づいて、前記層dに含まれる各頂点iが、各コミュニティcに属する確率を推定することにより、前記層dのコミュニティを抽出することを特徴とする。
【0014】
第7の発明に係る大局構造抽出方法は、大局構造抽出部が、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、前記ニューラルネットの各層dに対し、前記層dのコミュニティを抽出し、辺定義部が、前記大局構造抽出部によって抽出された、各層dのコミュニティに基づいて、隣接する層のコミュニティ間を結ぶ辺を定義し、可視化部が、各層dのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化することを特徴とする。
【0015】
第8の発明に係るプログラムは、コンピュータを、上記の大局構造抽出装置の各部として機能させるためのプログラムである。
【発明の効果】
【0016】
以上説明したように、本発明の大局構造抽出装置、方法、及びプログラムによれば、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出する際に、前記層dの頂点が各コミュニティcに属する確率と、各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率、又は各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率とに基づいて、前記層dに含まれる各頂点iが、各コミュニティcに属する確率を推定することにより、層dのコミュニティを適切に抽出することができ、学習結果を人間にも理解しやすい形で提示するために、学習後の多層ニューラルネットから大まかな関係構造を抽出することができる、という効果が得られる。
【0017】
本発明の大局構造抽出装置、及びプログラムによれば、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮することができる、という効果が得られる。
【0018】
本発明の大局構造抽出装置、方法、及びプログラムによれば、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化することにより、多層ニューラルネットの学習結果を人間にも理解しやすい形で提示することができる、という効果が得られる。
【0019】
本発明の大局構造抽出装置、及びプログラムによれば、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行うことにより、多層ニューラルネットの学習に係る時間を短縮することができる、という効果が得られる。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0024】
以下、本発明の第1の実施の形態に係る大局構造抽出装置について図面を参照して説明する。大局構造抽出装置は、CPUと、RAMと、プログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
図1には、本発明の実施形態に係る大局構造抽出装置100の構成の概略が示されている。
図1に示すように、本実施形態に係る大局構造抽出装置100は、入力部10と、演算部20と、出力部50とで構成されている。
【0025】
大局構造抽出装置100は、入力部10により、観測される入出力データの組
といくつかのパラメータを受け付け、演算部20により、学習した多層ニューラルネットの大まかな関係構造を抽出し、出力部50により出力する。
【0026】
入力部10は、下記の観測データと第1〜第14のパラメータを入力として受け付ける。
【0027】
まず、観測データとして、観測データの入出力の組
を受け付ける。ここで、N
dataはデータの個数、
の各次元数を
とおく。
【0028】
第1のパラメータは、観測データの正規化における入力値の最大値x
maxである。例えば、x
max = 3 と設定すればよい。
【0029】
第2のパラメータは、観測データの正規化における入力値の最小値x
minである。例えば、x
min=-3 と設定すればよい。
【0030】
第3のパラメータは、観測データの正規化における出力値の最大値y
maxである。y
max<1とする.例えば、y
max = 0.99と設定すればよい。
【0031】
第4のパラメータは、観測データの正規化における出力値の最小値y
minである。y
min >0とする.例えば、y
min = 0.01 と設定すればよい。
【0032】
第5のパラメータは、多層ニューラルネットの学習における反復回数N
NNである。例えば、N
NN = 10000 と設定すればよい。
【0033】
第6のパラメータは、多層ニューラルネットの層の数(入力層・出力層を含む)N
depthである。多層ニューラルネットの深さd = 1 は入力層、深さd=N
depthは出力層と対応する。
【0034】
第7のパラメータは、多層ニューラルネットの各層に含まれる頂点数
である。ただし、
である。
【0035】
第8のパラメータは、多層ニューラルネットの学習におけるステップ幅ηである。例えば、η = 0.7と設定すればよい。
【0036】
第9のパラメータは、多層ニューラルネットの学習における辺のスパース化の度合いを表すパラメータ
である。例えば、
と設定すればよい。
【0037】
第10のパラメータは、多層ニューラルネットの学習において辺の有無を決定するための閾値ξ
NNである。例えば、ξ
NN =0.01 と設定すればよい。
【0038】
第11のパラメータは、多層ニューラルネットの学習におけるパラメータ更新のオフセット値
である。例えば、
と設定すればよい。
【0039】
第12のパラメータは、学習済み多層ニューラルネットのコミュニティ抽出における反復回数N
EMである。例えば、N
EM =1000 と設定すればよい。
【0040】
第13のパラメータは、学習済み多層ニューラルネットのコミュニティ抽出における1層のコミュニティ数の上限N
cである。例えば、N
c = 10 と設定すればよい。
【0041】
第14のパラメータは、 学習済み多層ニューラルネットの各コミュニティ間の辺の有無を決定するための閾値
である。例えば、
と設定すればよい。
【0042】
演算部20は、多層ニューラルネット学習部22と、隣接行列変換部24と、大局構造抽出部26と、可視化部28とを備えている。
【0043】
演算部20の処理は、大まかに、多層ニューラルネット学習部22で観測データから多層ニューラルネットの学習を行い(
図2(a))、大局構造抽出部26でその多層ニューラルネットにおけるコミュニティ抽出を行った後(
図2(b))、得られたコミュニティ間の辺を定義する(
図2(c))。以降、各ブロックの処理について詳細に説明する。
【0044】
(多層ニューラルネット学習部22)
多層ニューラルネット学習部22は、入力部10で受け付けた、観測データの入出力の組
と、パラメータとを用い、多層ニューラルネットにおけるパラメータの学習を行う。ここで、シグモイド関数をσ(x)= 1/(1 + exp(-x))、符号関数を
【0046】
と表記する。ただし、ここでxはベクトルや行列で表される値も許しており、その場合はxの各要素に関して上記の関数を適用するものとする。また、ここでは最も基礎的な多層ニューラルネットの学習方法の例を記載するが、本発明はより一般的な多層ニューラルネット、例えばいくつかの頂点を削除した多層ニューラルネットなどにも同様に適用可能である。
【0047】
(観測データの前処理)
まず、多層ニューラルネット学習部22は、前処理として、入力部10で受け付けた、観測データの入出力の組
について正規化を行う。入力データ{x
in}の最大値がx
max、最小値がx
minとなるように正規化するには、以下の計算により入力データの値を変換すればよい。
【0048】
{x
in}のもともとの最大値、最小値をそれぞれa
max、a
minとするとき、正規化された入力データ
は以下の式に従って得られる。
【0050】
同様の計算により、出力データ{y
in}についても、その最大値がy
max、最小値がy
minとなるように正規化を行う。
【0051】
(多層ニューラルネットのパラメータ初期化)
次に、多層ニューラルネット学習部22は、多層ニューラルネットのパラメータの初期化を行う。多層ニューラルネットにおけるパラメータは、深さdの層の頂点v
iと、深さd + 1の層の頂点v
jを結ぶ辺の重みW
di,jの集合と、深さdの層の各頂点v
diにおける出力のバイアスθ
diである。ここで、{W
di,j}と{θ
di}の初期値はそれぞれ、例えば(0, 1)の一様分布などからランダムに決めればよい。
【0052】
(多層ニューラルネットの学習)
多層ニューラルネット学習部22は、上記で初期化したパラメータ{W
di,j}と{θ
di}と観測データから、パラメータの更新を行う。
図3に示すAlgorithm1はパラメータ更新方法の一例であり、多層ニューラルネットによる出力値と観測データの二乗誤差を目的関数とする最急降下法によるものである。
【0053】
(学習した多層ニューラルネットの後処理)
多層ニューラルネット学習部22は、学習した多層ニューラルネットにおける各辺の重みに対し、閾値処理を行う。具体的には、深さdの層の各頂点v
iと、深さd + 1の層の各頂点v
jを結ぶ辺について、その重みの絶対値|W
di,j|が閾値ξ
NN以上であればそのままとし、そうでなければW
di,j←0 とする。
【0054】
(隣接行列変換部24)
隣接行列変換部24は、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、各層の隣接行列を生成する。
【0055】
ここで、隣接行列と次数について説明する。グラフG=(V,E)の隣接行列A ={A
ij}とは、全ての(i,j) の組み合わせに対し、(i,j)∈E ならばA
ij = 1、
ならばA
ij = 0 を満たす行列である。また、グラフの各頂点v
iの次数とは、v
iにつながる辺の数として定義される。
【0056】
多層ニューラルネット学習部22で得られた{W
di,j}に基づき、学習後の多層ニューラルネット全体をN
depth個のグラフに分割し、それらの隣接行列
を定義する。元の多層ニューラルネットにおける深さd’のi番目の頂点が、この隣接行列A
dでは頂点番号
を持つとすると、W
d′i,j=0 ならば
とし、W
d′i,j≠0 ならば
とする。ここで、各隣接行列A
dに含める頂点集合の組み合わせは様々に考えられるが、少なくとも学習後の多層ニューラルネットにおける深さd の頂点を全て含むものとする。以下に、(i)〜(iii)の隣接行列A
dに含める頂点集合の一例を示す。
【0057】
(i) A
1は、深さ1,2 の頂点全てを含む隣接行列である。
【0058】
(ii)
について、A
dは、深さd-1,d,d+1の頂点全てを含む隣接行列である。
【0059】
(iii)
は、深さN
depth-1, N
depth の頂点全てを含む隣接行列である。
【0060】
以降、(i), (ii), (iii) で定義された隣接行列を用いるものとして説明を進める。
【0061】
最後に、上記の多層ニューラルネット学習部22による閾値処理により独立な(つまり、次数が0の)頂点が生じた場合、このような頂点の番号に対応するA
dの行・列を削除する。例えば、多層ニューラルネットにおける深さd’の頂点v
iの次数が0の場合、行
と列
を削除する。
【0062】
(大局構造抽出部26)
大局構造抽出部26は、隣接行列変換部24により得られたN
depth個のグラフの隣接行列
に対して、それぞれコミュニティ抽出を行うことで、多層ニューラルネットの大局構造を抽出する。本実施の形態では、
図4に示すように、大局構造抽出部26は、コミュニティ抽出部32と、辺定義部34とを備えている。
【0063】
コミュニティ抽出部32は、多層ニューラルネット学習部22によって学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の接続関係に基づいて、多層ニューラルネットの各層dに対し、当該層dのコミュニティを抽出する。
【0064】
グラフ構造であるコミュニティ抽出手法は様々に考えられるが、以下では実施例として(1)上記非特許文献1に記載のコミュニティ抽出手法を用いる方法(
図5のAlgorithm 2)と、(2) 上記非特許文献1記載の手法を拡張した独自のコミュニティ抽出手法を用いる方法(
図6のAlgorithm 3)について記載する。これらのアルゴリズムを適用した結果として、多層ニューラルネットの各層の頂点集合は、最大でN
c個のコミュニティに分割される。全ての層についてコミュニティ抽出を行った結果、得られたコミュニティの集合を
とおく。これは、学習した多層ニューラルネットのおおまかな構造を表すグラフにおける、頂点とみなすことができる。
【0065】
図6のAlgorithm 3を適用する場合には、コミュニティ抽出部32は、層dのコミュニティを抽出する際に、層dの頂点が各コミュニティcに属する確率π
cと、各コミュニティcについての、コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率τ´
c,i、又は各コミュニティcについての、コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率τ
c,iとに基づいて、層dに含まれる各頂点が、各コミュニティcに属する確率q
i,cを推定することにより、層dのコミュニティを抽出する。
【0066】
次に、辺定義部34は、コミュニティ抽出部32で得られた各層dのコミュニティに基づいて、隣接する層のコミュニティ同士をつなぐ辺の集合
を定義する。
【0067】
ある深さd のコミュニティC と、深さd + 1 のコミュニティC′との間の辺の有無は、C に含まれる頂点とC′に含まれる頂点の間の辺の情報から決定する。この方法は様々に考えられるが、例えば以下の方法1、方法2、方法3、または方法4のように決めればよい。
【0068】
方法1では、コミュニティC に含まれる頂点とコミュニティC′に含まれる頂点の間に、少なくとも1 つの辺が存在するならば、その場合のみコミュニティC とコミュニティC′の間を辺で結ぶ。
【0069】
方法2では、深さd のコミュニティC に含まれる頂点と深さd+1 のコミュニティC′に含まれる頂点の全ての組み合わせの個数(C の頂点がM
C 個,C′ の頂点がM
C′個ならばM
C×M
C′) に対する辺の数の割合r
C,C′ (C の頂点とC′の頂点の間にM 本の辺がある場合、
)が閾値ξ
cd以上ならば、その場合のみコミュニティCとコミュニティC′の間を辺で結ぶ。
【0070】
方法3では、方法2で定義された辺のうち、以下の条件(1) を満たすか、または条件(2) を満たすもののみを残し、残りを削除する。
【0071】
条件(1)は、深さd のコミュニティC と深さd + 1 のコミュニティC′をつなぐ辺について、
であることである。条件(2)は、深さd のコミュニティC と深さd + 1 のコミュニティC′をつなぐ辺について、
であることである。
【0072】
方法4は、方法2 で定義された辺のうち、上記の条件(1) を満たし、かつ条件(2) を満たすもののみを残し、残りを削除することである。
【0073】
このようにして得られたコミュニティの集合
と、コミュニティ同士を結ぶ辺の集合
とにより、学習した多層ニューラルネットの大局構造を表すグラフを抽出することができる。
【0074】
また、辺定義部34は、
図7に示すように、隣接する層のコミュニティ間を結ぶ辺を定義した結果、次の層への辺を持たないコミュニティがある場合には、多層ニューラルネット学習部22で学習後の多層ニューラルネットから、当該コミュニティに含まれる頂点と、当該コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮する。これにより、パラメータ数を減らした多層ニューラルネットを生成でき、計算時間や必要メモリを削減することができる。
【0075】
(可視化部)
可視化部28は、多層ニューラルネットの大局構造を表すグラフにおける頂点集合
と辺集合
とを可視化して、出力部50により表示する。
【0076】
図8に示すように、可視化部28は、大局構造可視化部40、コミュニティ受付部42、及び入出力可視化部44を備えている。
【0077】
大局構造可視化部40は、上記
図2(c)に示すように、大局構造抽出部26によって得られた、各層dのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、出力部50により表示する。
【0078】
コミュニティ受付部42は、大局構造可視化部40による可視化に対して、ユーザから、中間層のコミュニティの指定を受け付ける。
【0079】
入出力可視化部44は、
図9に示すように、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化し、出力部50による表示する。上記
図9の例のように、多層ニューラルネットのタスクが、画像の特徴量から、その画像に写っているものを予測するタスクの場合、中間層の真ん中のコミュニティが指定されると、指定されたコミュニティにつながっている入力層のコミュニティの各頂点と、出力層のコミュニティの各頂点とを示す情報が可視化される。これにより、中間層の真ん中のコミュニティが、「特徴量3〜5」の値から「数字の画像」を予測する役割を果たしていることが分かる。
【0080】
また、中間層の右側のコミュニティが指定されると、指定されたコミュニティにつながっている入力層のコミュニティの頂点と、出力層のコミュニティの頂点とを示す情報が可視化される。これにより、中間層の右側のコミュニティが、「特徴量1、2、6〜10」の値から「動物の画像」を予測する役割を果たしていることが分かる。
【0081】
[大局構造抽出装置の作用]
次に、本発明の第1の実施の形態に係る大局構造抽出装置100の作用を説明する。
【0082】
図10には、本発明の第1の実施の形態に係る大局構造抽出プログラムを示すフローチャートが示されている。大局構造抽出装置100の入力部10により、観測される入出力データの組といくつかのパラメータとを受け付け、大局構造抽出プログラムがスタートすると、ステップS100で、多層ニューラルネット学習部22は、入力部10で受け付けた、観測データの入出力の組
と、パラメータとを用い、多層ニューラルネットにおけるパラメータの学習を行う。例えば、上記
図3に示すAlgorithm1に従って、多層ニューラルネットによる出力値と観測データの二乗誤差を目的関数とする最急降下法により、多層ニューラルネットにおける各辺の重みを学習する。そして、学習した多層ニューラルネットにおける各辺の重みに対し、閾値処理を行う。
【0083】
ステップS102では、隣接行列変換部24は、学習後の多層ニューラルネット全体をNdepth 個のグラフに分割し、分割されたNdepth 個のグラフの各々に対し、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、各層の隣接行列を生成する。
【0084】
ステップS106では、コミュニティ抽出部32は、上記ステップS102で生成された各層の隣接行列に基づいて、多層ニューラルネットの各層dに対し、当該層dのコミュニティを抽出する。例えば、上記
図6に示すAlgorithm3に従って、層dのコミュニティを抽出する際に、層dに含まれる各頂点iが、各コミュニティcに属する確率qi,cの更新と、層dの頂点が各コミュニティcに属する確率πcの更新と、各コミュニティcについての、コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率τ´c,i、又は各コミュニティcについての、コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率τc,iの更新とを繰り返し、層dに含まれる各頂点iが、各コミュニティcに属する確率qi,cを推定することにより、層dのコミュニティを抽出する。
【0085】
ステップS108では、辺定義部34は、コミュニティ抽出部32で得られた各層dのコミュニティに基づいて、隣接する層のコミュニティ同士をつなぐ辺の集合
を定義する。
【0086】
また、辺定義部34は、隣接する層のコミュニティ間を結ぶ辺を定義した結果、次の層への辺を持たないコミュニティがある場合には、多層ニューラルネット学習部22で学習後の多層ニューラルネットから、当該コミュニティに含まれる頂点と、当該コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮する。
【0087】
ステップS110では、大局構造可視化部40は、各層dのコミュニティと、隣接する層のコミュニティ間を結ぶ辺とを可視化し、出力部50により表示する。
【0088】
ステップS112では、コミュニティ受付部42は、大局構造可視化部40による可視化に対して、ユーザから、中間層のコミュニティの指定を受け付ける。
【0089】
ステップS114では、入出力可視化部44は、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化し、出力部50による表示し、大局構造抽出プログラムを終了する。
【0090】
以上説明したように、本発明の第1の実施の形態に係る大局構造抽出装置によれば、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出する際に、前記層dの頂点が各コミュニティcに属する確率と、各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を始点とした辺が層d+1の各頂点iを終点とする確率、又は各コミュニティcについての、前記コミュニティcに属する前記層dの頂点を終点とした辺が層d−1の各頂点iを始点とする確率とに基づいて、前記層dに含まれる各頂点iが、各コミュニティcに属する確率を推定することにより、層dのコミュニティを適切に抽出することができ、学習結果を人間にも理解しやすい形で提示するために、学習後の多層ニューラルネットから大まかな関係構造を抽出することができる。
【0091】
また、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮することができる。
【0092】
また、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、中間層のコミュニティの指定を受け付けたときに、指定されたコミュニティと関連する入力層のコミュニティ、及び出力層のコミュニティに含まれる頂点の情報を可視化することにより、多層ニューラルネットの学習結果を人間にも理解しやすい形で提示することができる。
【0093】
また、学習した多層ニューラルネットの結合構造に基づいて簡略化された関係構造を抽出し、大規模かつ複雑な多層ニューラルネットの学習結果を人間にも理解しやすい形で提示することができる。
【0094】
<第2の実施の形態>
[大局構造抽出装置の構成]
次に、第2の実施の形態に係る大局構造抽出装置について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【0095】
第2の実施の形態では、コミュニティ抽出の結果、多層ニューラルネットを分割できる場合には、分割した多層ニューラルネットを並列に再学習する点が、第1の実施の形態と異なっている。
【0096】
図11に示すように、第2の実施形態に係る大局構造抽出装置200の演算部220は、多層ニューラルネット学習部22と、隣接行列変換部24と、大局構造抽出部26と、多層ニューラルネット分割部228と、並列学習部230とを備えている。
【0097】
多層ニューラルネット分割部228は、辺定義部34により多層ニューラルネットを圧縮した結果、
図12に示すように、多層ニューラルネットを、複数の多層ニューラルネットに分割することができる場合には、複数の多層ニューラルネットに分割する。
【0098】
並列学習部230は、入力部10で受け付けた、観測データの入出力の組
に基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行い、学習結果を出力部50により出力する。
【0099】
[大局構造抽出装置の作用]
次に、本発明の第2の実施の形態に係る大局構造抽出装置200の作用を説明する。なお、第1の実施の形態と同様の処理については、同一符号を付して詳細な説明を省略する。
【0100】
図13には、本発明の第2の実施の形態に係る大局構造抽出プログラムを示すフローチャートが示されている。大局構造抽出装置200の入力部10により、観測される入出力データの組といくつかのパラメータとを受け付け、大局構造抽出プログラムがスタートすると、ステップS100で、多層ニューラルネット学習部22は、入力部10で受け付けた、観測データの入出力の組
と、パラメータとを用い、多層ニューラルネットにおけるパラメータの学習を行う。そして、学習した多層ニューラルネットにおける各辺の重みに対し、閾値処理を行う。
【0101】
ステップS102では、隣接行列変換部24は、学習後の多層ニューラルネット全体をN
depth個のグラフに分割し、学習後の多層ニューラルネットにおける各辺によって定まる、隣接する層の頂点間の結合関係に基づいて、各層の隣接行列を生成する。
【0102】
ステップS106では、コミュニティ抽出部32は、生成された各層の隣接行列に基づいて、多層ニューラルネットの各層dに対し、当該層dのコミュニティを抽出する。
【0103】
ステップS108では、辺定義部34は、コミュニティ抽出部32で得られた各層dのコミュニティに基づいて、隣接する層のコミュニティ同士をつなぐ辺の集合
を定義する。
【0104】
また、辺定義部34は、隣接する層のコミュニティ間を結ぶ辺を定義した結果、次の層への辺を持たないコミュニティがある場合には、多層ニューラルネット学習部22で学習後の多層ニューラルネットから、当該コミュニティに含まれる頂点と、当該コミュニティに含まれる頂点に繋がる辺とを削除することにより、多層ニューラルネットを圧縮する。
【0105】
ステップS200では、多層ニューラルネット分割部228は、上記ステップS108において多層ニューラルネットを圧縮した結果、多層ニューラルネットを、複数の多層ニューラルネットに分割することができる場合には、複数の多層ニューラルネットに分割する。
【0106】
ステップS202では、並列学習部230は、入力部10で受け付けた、観測データの入出力の組
に基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行い、学習結果を出力部50により出力する。
【0107】
以上説明したように、本発明の第2の実施の形態に係る大局構造抽出装置によれば、多層ニューラルネットの各層dに対し、層dのコミュニティを抽出し、隣接する層のコミュニティ間を結ぶ辺を定義し、次の層への辺を持たないコミュニティがある場合には、前記ニューラルネットから、前記コミュニティに含まれる頂点と、前記コミュニティに含まれる頂点に繋がる辺とを削除し、前記ニューラルネットを、複数の多層ニューラルネットに分割し、予め用意された学習データに基づいて、分割された複数の多層ニューラルネットの各々の学習を並列に行うことにより、多層ニューラルネットの学習に係る時間を短縮することができる。
【0108】
[変形例]
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0109】
例えば、コミュニティ抽出を行った結果に基づいて圧縮された多層ニューラルネットに対して、もう一度コミュニティ抽出を行うようにしてもよい。また、コミュニティ抽出を行った結果に基づいて圧縮された多層ニューラルネットに対して、再度コミュニティ抽出を行うことを、収束するまで繰り返すことにより、中間層の最適化を行うようにしてもよい。この場合には、最終的に多層ニューラルネットに残る頂点・辺の組み合わせが変わらなくなった時点で、繰り返し処理を終了するようにしてもよい。
【0110】
大局構造抽出装置の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、大局構造抽出装置に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0111】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。