(57)【要約】  高次の特徴を抽出可能なニューラルネットワークの設計を容易にする情報処理装置等を提供する。情報処理装置１００は、複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出する抽出部１１０と、抽出された複数の部分グラフ間の距離を算出する算出部１２０と、グラフの少なくとも一部を入力とするニューラルネットワークを、算出された距離に基づいて設計する設計部１３０とを含む。
2018135515.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出する抽出手段と、
前記抽出された複数の部分グラフ間の距離を算出する算出手段と、
前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する設計手段と
を備える情報処理装置。
【請求項２】
前記設計手段は、
ニューロンに対する入力を前記距離に基づいて決定する
請求項１に記載の情報処理装置。
【請求項３】
前記設計手段は、
前記複数の部分グラフのうち、ある部分グラフと、当該部分グラフとの前記距離が閾値以下である部分グラフとを同一のニューロンに対する入力とする
請求項２に記載の情報処理装置。
【請求項４】
前記設計手段は、
前記複数の部分グラフのうち、前記複数のノードの少なくともいずれかを共通に含む部分グラフを同一のニューロンに対する入力とする
請求項２又は請求項３に記載の情報処理装置。
【請求項５】
前記算出手段は、
２個の部分グラフがノードを共有する場合に、共有されるノードの数が多いほど前記距離を短くする
請求項１から請求項４までのいずれか１項に記載の情報処理装置。
【請求項６】
前記算出手段は、
ある部分グラフと別の部分グラフとを接続するエッジに割り当てられた重みに基づいて前記距離を算出する
請求項１から請求項５までのいずれか１項に記載の情報処理装置。
【請求項７】
前記抽出手段、前記算出手段及び前記設計手段は、処理を再帰的に実行する
請求項１から請求項６までのいずれか１項に記載の情報処理装置。
【請求項８】
前記設計されたニューラルネットワークに学習させる学習手段をさらに備える
請求項１から請求項７までのいずれか１項に記載の情報処理装置。
【請求項９】
複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出し、
前記抽出された複数の部分グラフ間の距離を算出し、
前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する
ニューラルネットワークの設計方法。
【請求項１０】
コンピュータに、
複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出するステップと、
前記抽出された複数の部分グラフ間の距離を算出する処理と、
前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する処理と
を実行させるためのプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置等に関する。
【背景技術】
【０００２】
構造をグラフによって表現できる対象は、ビジネスモデル、ソーシャルネットワーク、化学構造など、多数存在する。特許文献１は、遺伝子等の生命情報をグラフによって可視化する技術を開示している。また、非特許文献１は、ニューラルネットワークを用いたグラフ構造の学習に関する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０８７１２５号公報
【非特許文献】
【０００４】
【非特許文献１】Mathias Niepert, Mohamed Ahmed, Konstantin Kutzkov "Learning Convolutional Neural Networks for Graphs", [online], 2016年6月, Proceedings of The 33rd International Conference on Machine Learning, PMLR 48, インターネット（URL: http://proceedings.mlr.press/v48/niepert16.pdf ）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ニューラルネットワークによって高次の特徴を抽出するためには、低次の特徴を抽出し、それらを適切に組み合わせることが重要である。非特許文献１には、学習対象になるグラフから複数の部分グラフをニューラルネットワークに対する受容野（Receptive field）として抽出する方法が開示されている。抽出された部分グラフは低次の特徴とみなせるが、前記の方法ではそれらを適切に組み合わせることができない。そのため、非特許文献１で開示されている方法では、高次の特徴を抽出することが困難である。【０００６】
本開示の例示的な目的は、高次の特徴を抽出可能なニューラルネットワークの設計を容易にするための技術を提供することにある。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る情報処理装置は、複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出する抽出手段と、前記抽出された複数の部分グラフ間の距離を算出する算出手段と、前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する設計手段とを含む。【０００８】
本開示の別の態様に係る情報処理方法は、複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出し、前記抽出された複数の部分グラフ間の距離を算出し、前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計することを含む。【０００９】
本開示のさらに別の態様に係るプログラムは、コンピュータに、複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出するステップと、前記抽出された複数の部分グラフ間の距離を算出するステップと、前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計するステップとを実行させる。【００１０】
なお、上記本開示のさらに別の態様に係るプログラムは記録媒体に記録されてもよい。この場合、本開示の目的は、上記プログラムを記録した記録媒体によっても達成される。
【発明の効果】
【００１１】
本開示によれば、高次の特徴を抽出可能なニューラルネットワークの設計が容易になる。
【図面の簡単な説明】
【００１２】
【図１】図１は、情報処理装置の構成の一例を示すブロック図である。
【図２】図２は、部分グラフ及び部分グラフ間の距離を例示する図である。
【図３】図３は、情報処理装置により実行される処理の一例を示すフローチャートである。
【図４】図４は、あるグラフ構造を例示する図である。
【図５】図５は、学習装置の構成の一例を示すブロック図である。
【図６】図６は、学習装置により実行される処理の一例を示すフローチャートである。
【図７】図７は、学習装置の動作の具体例を示す図である。
【図８】図８は、距離の算出方法の一例を説明するための図である。
【図９】図９は、コンピュータ装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
［第１実施形態］
図１は、第一の実施形態に係る情報処理装置１００の構成を示すブロック図である。情報処理装置１００は、グラフに基づいてニューラルネットワークを設計するための装置である。情報処理装置１００は、抽出部１１０と、算出部１２０と、設計部１３０とを含む。情報処理装置１００は、他の構成要素をさらに含んでもよい。
【００１４】
本開示におけるグラフは、複数のノードと複数のエッジ（リンクともいう。）とを含んで構成される。ノードは構造の要素を表し、エッジはノード間の接続関係を表す。本開示に係るグラフは、例えば、複数のノードを表すデータと、ノード間の接続の有無（すなわちエッジ）を表すデータとによって構成される。以下においては、グラフを表すこれらのデータのことを「グラフデータ」ともいう。また、本開示に係るグラフによって表現される構造は、特定の対象に限定されない。また、以下においては、グラフに含まれるノードの総数のことを「ノード数」ともいう。
【００１５】
本開示におけるニューラルネットワークとは、人工ニューラルネットワークをいう。また、以下において、ニューラルネットワークは、「ＮＮ」と略記される場合がある。ＮＮは、入力層と、１又は複数の中間層（隠れ層ともいう。）と、出力層とを含む。各層は、１又は複数のニューロン（ユニットともいう。）を含む。本開示において、ニューロンの受容野は、グラフ（又はノード）に相当する。
【００１６】
抽出部１１０は、グラフから部分グラフを抽出する。部分グラフとは、グラフを構成するノード及びエッジの一部により構成されるグラフをいい、サブグラフともいう。抽出部１１０は、１個のグラフから複数の部分グラフを抽出する。抽出部１１０は、抽出された部分グラフを表すデータを、メモリ等に一時的に記憶させる。部分グラフを表すデータは、部分グラフを構成するノードを表すデータと、ノード間の接続の有無を表すデータとを含む。
【００１７】
抽出部１１０は、所定の規則に従って部分グラフを抽出してもよい。いくつかの場合において、抽出部１１０は、周知のランキングアルゴリズムに基づいてノードを順位付けすることによって部分グラフを抽出することができる。より詳細には、抽出部１１０は、所定の順位までのノードと、当該ノードと所定の接続関係となるノードとによって構成されるグラフを部分グラフとして抽出する。ノードの順位付けに利用可能なランキングアルゴリズムは、例えば、PageRank（登録商標）、次数中心性（Degree centrality）、近接中心性（Closeness centrality）、媒介中心性（Betweenness centrality）又は固有ベクトル中心性（Eigenvector centrality）に基づいてノードに順位（ランク）を付与するアルゴリズムである。ノードの順位付けは、非特許文献１に記載された方法と同様であってもよい。
【００１８】
抽出部１１０により抽出される部分グラフの総数は、特定の数に限定されない。また、部分グラフのノード数も、特定の数に限定されない。これらの数は、ニューラルネットワークの設計に際し、あらかじめ決められていてもよい。あるいは、抽出部１１０は、入力されるグラフのノード数などに基づいて、部分グラフの数及びノード数を決定してもよい。
【００１９】
算出部１２０は、部分グラフ間の距離を算出する。ここでいう距離は、２個の部分グラフの関係を示す指標である。いくつかの場合において、部分グラフ間の距離は、ノード間の距離（すなわち、２個のノード間の最短経路を構成するエッジの数）と同様に定義することができる。この場合、部分グラフ間の距離は、ある部分グラフを構成するノードと、別の部分グラフを構成するノードとの距離のうちの最短の距離（すなわち最小値）で表される。
【００２０】
なお、２個の部分グラフの距離は、これらが共通のノードを含む場合に、そうでない場合よりも短くなる。以下においては、２個の部分グラフが共通のノードを含む場合の部分グラフ間の接続関係を、「隣接」ともいう。２個の部分グラフが隣接する場合には、２個の部分グラフが１個のノードを共有する場合と２個以上のノードを共有する場合とが含まれ得る。
【００２１】
図２は、部分グラフ及び部分グラフ間の距離を例示する図である。例えば、部分グラフＳＧ１１と部分グラフＳＧ１２との間の距離は、エッジ１個分に相当するため、「１」と表すことができる。そうすると、部分グラフＳＧ１１と部分グラフＳＧ１３との間の距離は、エッジ２個分に相当するため、「２」と表すことができる。
【００２２】
一方、部分グラフＳＧ１１と部分グラフＳＧ１４とは、隣接する関係にある。部分グラフＳＧ１４は、部分グラフＳＧ１２、ＳＧ１３に比べて部分グラフＳＧ１１と距離的に近い関係であるといえる。そこで、部分グラフＳＧ１１と部分グラフＳＧ１４との間の距離は、部分グラフＳＧ１１と部分グラフＳＧ１２との間の距離よりも小さい値、例えば「０」と表すことができる。
【００２３】
なお、図２を参照して説明された距離は、例示にすぎない。部分グラフ間の距離は、他の部分グラフの組み合わせと比較可能であれば、どのように定義されてもよい。例えば、２個の部分グラフが隣接する場合におけるこれらの距離は、「０」以外の値で表されてもよく、共有されるノードの数に応じて異なってもよい。
【００２４】
また、他の例として、算出部１２０は、２個の部分グラフの距離を他の部分グラフの隣接を介してつながる数で定義してよい。例えば、算出部１２０は、第１の部分グラフが第２の部分グラフと隣接している場合には、距離を「１」であると定義してよい。また、算出部１２０は、この第１の部分グラフとは隣接せず、この第２の部分グラフとは隣接している第３の部分グラフと第１の部分グラフとの距離を、これらの部分グラフが２回の隣接を介してつながるため、「２」であると定義してよい。
【００２５】
算出部１２０は、抽出部１１０により抽出された部分グラフによって選ばれる組み合わせ（ペア）の全てについて、距離を算出する。例えば、抽出部１１０により抽出された部分グラフが図２の部分グラフＳＧ１１〜ＳＧ１４であるとした場合、算出部１２０は、ＳＧ１１−ＳＧ１２、ＳＧ１１−ＳＧ１３、ＳＧ１１−ＳＧ１４、ＳＧ１２−ＳＧ１３、ＳＧ１２−ＳＧ１４、ＳＧ１３−ＳＧ１４のそれぞれの間の距離を算出する。
【００２６】
設計部１３０は、グラフに基づいてＮＮを設計する。より詳細には、設計部１３０は、入力されたグラフデータが表すグラフの少なくとも一部を入力として用いるＮＮを設計する。具体的には、設計部１３０は、抽出部１１０により抽出された部分グラフに含まれる各ノードを入力とし、ニューロン間の結合を部分グラフ間の距離によって決定することによりＮＮを設計する。設計部１３０によるＮＮの設計は、ニューロン間の結合関係を決定することであるともいえる。なお、設計部１３０により設計されるＮＮは、中間層が１層でも多層でもよい。
【００２７】
図３は、情報処理装置１００により実行される処理を示すフローチャートである。情報処理装置１００は、グラフが入力されたタイミングや、ユーザによって指示されたタイミングなどでこの処理の実行を開始することができる。なお、ここにおいて、グラフのノード数は、「ｎ」であるとする。
【００２８】
ステップＳ１１において、抽出部１１０は、グラフから部分グラフを抽出する。より詳細には、抽出部１１０は、まず、第１の規則に基づいてｎ個のノードからｗ個のノードを選択する。なお、ｗは、ｎ以下の正の整数である。次に、抽出部１１０は、選択されたｗ個のノードのそれぞれについて、当該ノードと部分グラフを構成するｋ−１個のノードを、第２の規則に基づいて選択する。なお、ｋは、部分グラフのノード数に相当し、ｎ以下の正の整数である。第１の規則及び第２の規則は、例えば、所定のランキングアルゴリズムである。第１の規則及び第２の規則は、同じであってもよいが、そうでなくてもよい。また、第１の規則及び第２の規則は、非特許文献１に記載された方法と同様であってもよい。
【００２９】
抽出部１１０は、このようにノードを選択することで、ｗ個の部分グラフを抽出する。この例において、個々の部分グラフは、選択されたｗ個のノードのいずれかと、当該ノードについて選択されたｋ−１個のノードとにより構成される。ただし、個々の部分グラフのノード数は、一定でなくてもよい。例えば、抽出部１１０により抽出される部分グラフは、ノード数がｋ未満のものが含まれてもよい。
【００３０】
ステップＳ１２において、算出部１２０は、ステップＳ１１において抽出された部分グラフ間の距離を算出する。この例において、算出部１２０は、ｗ個の部分グラフの相互の距離を算出する。すなわち、算出部１２０は、ｗ個の部分グラフのそれぞれについて、当該部分グラフ以外のｗ−１個の部分グラフとの距離をそれぞれ算出する。
【００３１】
ステップＳ１３において、設計部１３０は、グラフに含まれるノードの少なくとも一部を入力とするＮＮを設計する。具体的には、設計部１３０は、ある層（第１の層）のニューロンと次の層（第２の層）のニューロンとの結合関係を、ステップＳ１２において算出された距離に基づいて決定する。例えば、設計部１３０は、抽出部１１０により抽出された部分グラフを入力層（第１の層）のニューロンへの入力とした場合に、中間層（第２の層）のニューロンと結合する入力層のニューロンをステップＳ１２において算出された距離に基づいて決定する。
【００３２】
より詳細には、設計部１３０は、第１の層に入力される部分グラフ（に対応するニューロンからの出力）と、当該部分グラフとの距離が所定の閾値以下である他の部分グラフ（に対応するニューロンからの出力）とを、第２の層のニューロンに対する入力とする。
【００３３】
第１の層のニューロンから第２の層のニューロンへの結合は、あらかじめ決められた数であってもよい。この場合、設計部１３０は、ある部分グラフ（に対応するニューロンからの出力）と、当該部分グラフとの距離が短い所定数の他の部分グラフ（に対応するニューロンからの出力）とを第２の層のニューロンに対する入力とする。
【００３４】
以上のとおり、本実施形態の情報処理装置１００は、部分グラフの距離を算出し、算出された距離に基づいてＮＮを設計する構成を有する。この構成は、部分グラフを用いたＮＮにおいて、ある層のニューロンと次の層のニューロンとを選択的に結合することを可能にする。換言すれば、この構成は、情報の取捨選択を可能にするともいえる。このように設計されたＮＮは、部分グラフ間の関係性又は類似性を伝播させることが可能であるため、そうでないＮＮと比べて高次の特徴を抽出することが容易になる。
【００３５】
また、本実施形態の情報処理装置１００は、本実施形態でいう「隣接」の関係に基づいて部分グラフの距離を定義することにより、他の基準（例えばエッジ数）を用いて部分グラフの距離を定義する場合に比べて以下のような作用効果を奏し得る。
【００３６】
図４は、あるグラフ構造を例示する図である。このグラフ構造は、４個の部分グラフＳＧ２１、ＳＧ２２、ＳＧ２３及びＳＧ２４を含む。この例において、部分グラフ間の距離は、ある部分グラフを構成するノードと別の部分グラフを構成するノードの距離の最小値であるとする。例えば、部分グラフＳＧ２１と部分グラフＳＧ２２との間の距離は、エッジ２個分であるため「２」である。
【００３７】
図４の例において、部分グラフＳＧ２１、ＳＧ２２間の距離と部分グラフＳＧ２１、ＳＧ２３間の距離は、いずれも「２」である。ただし、部分グラフＳＧ２１は、部分グラフＳＧ２４と隣接している。また、部分グラフＳＧ２４は、部分グラフＳＧ２３と隣接している。
【００３８】
この場合、部分グラフＳＧ２１と部分グラフＳＧ２３とは、部分グラフＳＧ２４を介して何らかの機能や特徴が連動しているとみなすことができる。したがって、部分グラフＳＧ２１と部分グラフＳＧ２３の組み合わせは、部分グラフＳＧ２１と部分グラフＳＧ２２の組み合わせに比べ、何らかの関連性又は類似性を有している可能性が高いといえる。
【００３９】
本実施形態の情報処理装置１００は、このような隣接する関係にある部分グラフを共通のニューロンに対する入力とすることにより、そうでない場合（例えば全結合の場合）に比べてより高次の特徴を抽出しやすいＮＮを設計することが可能である。ただし、第２の層の１個のニューロンに対して入力される部分グラフが隣接する関係にあることは、上述のとおり、情報処理装置１００により設計されるＮＮにおいて必須ではない。
【００４０】
［第２実施形態］
図５は、別の実施形態に係る学習装置２００の構成を示すブロック図である。学習装置２００は、ＮＮを用いて学習を実行するための装置である。学習装置２００は、抽出部２１０と、算出部２２０と、設計部２３０と、学習部２４０とを含む。学習装置２００は、第１実施形態の情報処理装置１００の一例に相当する。
【００４１】
抽出部２１０、算出部２２０及び設計部２３０は、情報処理装置１００の抽出部１１０、算出部１２０及び設計部１３０と同様の機能を有する。また、抽出部２１０、算出部２２０及び設計部２３０は、第１実施形態において説明された機能に加え、処理を再帰的に実行する機能を有する。ここでいう再帰的な処理とは、ノードに対して実行した処理を、当該ノードを含む部分グラフに対して実行する処理をいう（詳細は後述）。
【００４２】
学習部２４０は、設計部２３０により設計されたＮＮに学習させる。例えば、学習部２４０は、学習のためのサンプルデータをＮＮに入力し、サンプルデータに含まれる特徴をＮＮに学習させる。サンプルデータは、例えば、ある判断基準に対して正解又は不正解であるグラフ構造を示すデータである。学習部２４０による学習の具体的な手法は、周知のいずれの方法であってもよい。
【００４３】
図６は、学習装置２００により実行される処理を示すフローチャートである。このフローチャートは、ＮＮの中間層が少なくともｍ層ある場合を示している。なお、ｍは、２以上の整数である。ステップＳ２１において、抽出部２１０は、グラフから部分グラフを抽出する。また、ステップＳ２２において、算出部２２０は、ステップＳ２１において抽出された部分グラフ間の距離を算出する。ステップＳ２１〜Ｓ２２の処理は、第１実施形態のステップＳ１１〜Ｓ１２の処理と同様である。
【００４４】
ステップＳ２３において、抽出部２１０は、ステップＳ２１〜Ｓ２２の処理がｍ回繰り返されたか判断する。抽出部２１０は、ステップＳ２１〜Ｓ２２の処理がｍ回繰り返されていない場合（Ｓ２３：ＮＯ）、ステップＳ２１の処理を再度実行する。ただし、抽出部２１０は、この場合、１回前に実行されたステップＳ２１の処理において抽出された部分グラフをノードとみなしたグラフから部分グラフを抽出する。なお、ｗ及びｋは、各回のループ処理において共通であってもよく、異なってもよい。
【００４５】
ステップＳ２１の処理において抽出された部分グラフをノードとみなしたグラフについて説明する。以下においては、学習装置２００に入力されたグラフ（すなわち元のグラフ）を「第１のグラフ」といい、この第１のグラフから変換されたグラフを「第２のグラフ」ともいう。第２のグラフは、第１のグラフに含まれる部分グラフを１個のノードとみなし、個々のノード（すなわち第１のグラフに含まれる部分グラフ）の接続関係がノード間の距離に応じて定義される。同様に、ｍ−１回目の処理におけるグラフの部分グラフを１個のノードとみなし変換されたグラフを「第ｍのグラフ」という。
【００４６】
例えば、抽出部２１０は、第１のグラフの部分グラフが抽出され、抽出された部分グラフ間の距離が算出された後、第２のグラフ、すなわち第１のグラフの部分グラフをノードとするグラフから部分グラフを抽出する。抽出部２１０は、ステップＳ２１〜Ｓ２２のループ処理の１回目において第１のグラフから部分グラフを抽出し、２回目において第２のグラフから部分グラフを抽出し、という処理を続け、ｍ回目において第ｍのグラフから部分グラフを抽出する。抽出部２１０は、このように、ｍ回のループ処理を実行する。
【００４７】
ステップＳ２１〜Ｓ２２の処理がｍ回繰り返されると（Ｓ２３：ＹＥＳ）、設計部２３０は、ｍ回の処理に基づいてステップＳ２４の処理を実行する。ステップＳ２４において、設計部２３０は、ｍ層の中間層を含むＮＮを設計する。具体的には、設計部２３０は、中間層の第ｍ層におけるニューロンの入力をｍ回目のループ処理において計算された距離に基づいて決定する（詳細は後述）。
【００４８】
なお、ステップＳ２４において、設計部２３０は、第ｍ層の次に１つ又は複数の層を追加してもよい。第ｍ層と次の層（第ｍ＋１層）の結合関係は、あらかじめ定められていてもよいし、ユーザの入力により決定されてもよい。
【００４９】
ステップＳ２５において、学習部２４０は、ステップＳ２４において設計されたＮＮを用いて学習処理を実行する。この学習処理には、ＮＮの学習における一般的な手法を用いることが可能である。すなわち、学習処理の具体的な手法は、特に限定されない。
【００５０】
図７は、本実施形態における動作の具体例を示す図である。この例において、部分グラフＳＧ１ａ、ＳＧ１ｂ、ＳＧ１ｃ、ＳＧ１ｄ、ＳＧ１ｅ、ＳＧ１ｆ、ＳＧ１ｇは、第１のグラフに含まれる部分グラフである。また、第１層においては、ｗ＝７、ｋ＝５であり、第２層においては、ｗ＝３、ｋ＝３であるとする。
【００５１】
まず、抽出部２１０は、第１のグラフからノード数がｋ（＝５）であるｗ（＝７）個の部分グラフＳＧ１ａ、ＳＧ１ｂ、ＳＧ１ｃ、ＳＧ１ｄ、ＳＧ１ｅ、ＳＧ１ｆ、ＳＧ１ｇを抽出する。この場合において、設計部２３０は、これらの部分グラフのノードを、第１層のニューロンに対する入力とする。例えば、第１層には、各部分グラフに対応する７個のニューロンが含まれていてよい。なお、第１のグラフは、これらの部分グラフのいずれにも含まれないノードを含んでもよい。
【００５２】
また、算出部２２０は、これらの部分グラフ間の距離を算出する。図７においては、隣接する関係にある部分グラフ同士がエッジで接続されている。例えば、部分グラフＳＧ１ａは、部分グラフＳＧ１ｂ、ＳＧ１ｃ、ＳＧ１ｄ、ＳＧ１ｅと隣接している。一方、部分グラフＳＧ１ｆは、部分グラフＳＧ１ｇのみと隣接している。グラフＧ２は、これらの部分グラフをノードとし、隣接する部分グラフをエッジで接続した第２のグラフに相当する。
【００５３】
抽出部２１０は、グラフＧ２から部分グラフＳＧ２ａ、ＳＧ２ｂ、ＳＧ２ｃを抽出する。より詳細には、抽出部２１０は、グラフＧ２を構成するノード（すなわち部分グラフＳＧ１ａ〜ＳＧ１ｇ）のうち、ランクが高いｗ（＝３）個のノード（この例では、部分グラフＳＧ１ａ、ＳＧ１ｂ、ＳＧ１ｇ）に基づいて、ノード数がｋ（＝３）である部分グラフを抽出する。
【００５４】
設計部２３０は、これらの部分グラフのノードを、第２層のニューロンに対する入力とする。例えば、第２層には、各部分グラフに対応する３個のニューロンが含まれており、第２層の第１のニューロンに対する入力は、部分グラフＳＧ１ａ、ＳＧ１ｄ、ＳＧ１ｅである。第２層の第２のニューロンに対する入力は、部分グラフＳＧ１ａ、ＳＧ１ｂ、ＳＧ１ｃである。第２層の第３のニューロンに対する入力は、部分グラフＳＧ１ｃ、ＳＧ１ｆ、ＳＧ１ｇである。
【００５５】
学習装置２００は、第１のグラフに対して実行した処理を第２のグラフに対しても実行することができる。学習装置２００は、部分グラフＳＧ２ａ、ＳＧ２ｂ、ＳＧ２ｃをノードとする第３のグラフに基づいて、部分グラフの抽出や部分グラフ間の距離の算出を実行する。
【００５６】
以上のとおり、本実施形態の学習装置２００によれば、グラフ構造をＮＮに学習させることが可能である。ＮＮは、学習により、出力の精度を向上させることが可能である。本実施形態の学習装置２００により設計されたＮＮは、ニューロンに対する入力が部分グラフ間の関係性又は類似性に基づいて決定されるため、中間層の多層に渡って特徴を伝播させることが可能である。
【００５７】
［変形例］
上述された第１〜第２実施形態は、例えば、以下のような変形を適用することができる。これらの変形例は、必要に応じて適宜組み合わせることも可能である。
【００５８】
（変形例１）
部分グラフ間の距離は、２個の部分グラフを接続するエッジの数以外の要素によって決定されてもよい。例えば、エッジに対して重みが定義されている場合、算出部１２０は、２個の部分グラフを接続するエッジの重みに基づいてこれらの間の距離を算出してもよい。算出部１２０は、２個の部分グラフが複数のエッジによって接続される場合に、これらのエッジの重みを加算したり平均したりすることによって距離を算出してもよい。
【００５９】
また、算出部１２０は、隣接する関係にある２個の部分グラフにおいて共有されているノードの数に基づいて、これらの部分グラフの距離を決定してもよい。より詳細には、算出部１２０は、２個の部分グラフにおいて共有されるノードの数が多いほど、これらが距離的に近い関係になるように距離を決定してもよい。
【００６０】
図８は、本例に係る距離の算出方法を説明するための図である。この例において、部分グラフＳＧ３１は、部分グラフＳＧ３２、ＳＧ３３と隣接する関係にある。部分グラフＳＧ３１は、部分グラフＳＧ３２とは２個のノードを共有する一方、部分グラフＳＧ３３とは１個のノードを共有する。
【００６１】
この場合、算出部１２０は、部分グラフＳＧ３１と部分グラフＳＧ３２との距離を部分グラフＳＧ３１と部分グラフＳＧ３３との距離よりも短くする。なぜならば、隣接する関係にある部分グラフは、共有するノードの数が多いほど、より強い関係性又は類似性を有しているといえるからである。
【００６２】
（変形例２）
本開示に係る装置の具体的なハードウェア構成は、特定の構成に限定されなくてもよい。本開示において、ブロック図を用いて機能的に説明された構成要素は、さまざまなハードウェア及びソフトウェアによって実現可能であり、必ずしも特定の構成に関連付けられない。また、本開示において１個のブロックによって説明された構成要素は、複数のハードウェアの協働によって実現されてもよい。
【００６３】
図９は、本開示に係る装置を実現するコンピュータ装置３００のハードウェア構成の一例を示すブロック図である。コンピュータ装置３００は、ＣＰＵ（Central Processing Unit）３０１と、ＲＯＭ（Read Only Memory）３０２と、ＲＡＭ（Random Access Memory）３０３と、記憶装置３０４と、ドライブ装置３０５と、通信インタフェース３０６と、入出力インタフェース３０７とを含んで構成される。
【００６４】
ＣＰＵ３０１は、ＲＡＭ３０３を用いてプログラム３０８を実行する。プログラム３０８は、ＲＯＭ３０２に記憶されていてもよい。また、プログラム３０８は、メモリカード等の記録媒体３０９に記録され、ドライブ装置３０５によって読み出されてもよいし、外部装置からネットワーク３１０を介して送信されてもよい。通信インタフェース３０６は、ネットワーク３１０を介して外部装置とデータをやり取りする。入出力インタフェース３０７は、周辺機器（入力装置、表示装置など）とデータをやり取りする。通信インタフェース３０６及び入出力インタフェース３０７は、データを取得又は出力するための構成要素として機能することができる。
【００６５】
本開示に係る装置は、図９に示される構成（又はその一部）によって実現され得る。例えば、ＣＰＵ３０１は、ＲＡＭ３０３を一時的な記憶領域として用いることにより、部分グラフを抽出する機能（抽出部１１０、２１０）、部分グラフ間の距離を算出する機能（算出部１２０、２２０）、ＮＮを設計する機能（設計部１３０、２３０）及びＮＮに学習させる機能（学習部２４０）を実現することができる。
【００６６】
なお、本開示に係る装置の構成要素は、単一の回路（プロセッサ等）によって構成されてもよいし、複数の回路の組み合わせによって構成されてもよい。ここでいう回路（circuitry）は、専用又は汎用のいずれであってもよい。例えば、本開示に係る装置は、一部が専用のプロセッサによって実現され、他の部分が汎用のプロセッサによって実現されてもよい。
【００６７】
上述された実施形態において単体の装置として説明された構成は、複数の装置に分散して設けられてもよい。例えば、情報処理装置１００は、クラウドコンピューティング技術などを用いて、複数のコンピュータ装置の協働によって実現されてもよい。また、学習装置２００は、抽出部２１０、算出部２２０及び設計部２３０と、学習部２４０とが別の装置によって構成されてもよい。すなわち、ＮＮを設計するための構成と、その設計されたＮＮを用いて学習するための構成とは、不可分ではない。
【００６８】
以上、本発明は、上述された実施形態及び変形例を模範的な例として説明された。しかし、本発明は、これらの実施形態及び変形例に限定されない。本発明は、本発明のスコープ内において、いわゆる当業者が把握し得るさまざまな変形又は応用を適用した実施の形態を含み得る。また、本発明は、本明細書に記載された事項を必要に応じて適宜に組み合わせ、又は置換した実施の形態を含み得る。例えば、特定の実施形態を用いて説明された事項は、矛盾を生じない範囲において、他の実施形態に対しても適用し得る。この出願は、２０１７年１月２３日に出願された日本出願特願２０１７−００９７３０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００６９】
１００    情報処理装置
２００    学習装置
１１０、２１０    抽出部
１２０、２２０    算出部
１３０、２３０    設計部
２４０    学習部
３００    コンピュータ装置
【図１】
2018135515.tif 000003
【図２】
2018135515.tif 000004
【図３】
2018135515.tif 000005
【図４】
2018135515.tif 000006
【図５】
2018135515.tif 000007
【図６】
2018135515.tif 000008
【図７】
2018135515.tif 000009
【図８】
2018135515.tif 000010
【図９】
2018135515.tif 000011
【手続補正書】
【提出日】令和1年6月21日(2019.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出する抽出手段と、
前記抽出された複数の部分グラフ間の距離を算出する算出手段と、
前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する設計手段と
を備える情報処理装置。
【請求項２】
前記設計手段は、
ニューロンに対する入力を前記距離に基づいて決定する
請求項１に記載の情報処理装置。
【請求項３】
前記設計手段は、
前記複数の部分グラフのうち、ある部分グラフと、当該部分グラフとの前記距離が閾値以下である部分グラフとを同一のニューロンに対する入力とする
請求項２に記載の情報処理装置。
【請求項４】
前記設計手段は、
前記複数の部分グラフのうち、前記複数のノードの少なくともいずれかを共通に含む部分グラフを同一のニューロンに対する入力とする
請求項２又は請求項３に記載の情報処理装置。
【請求項５】
前記算出手段は、
２個の部分グラフがノードを共有する場合に、共有されるノードの数が多いほど前記距離を短くする
請求項１から請求項４までのいずれか１項に記載の情報処理装置。
【請求項６】
前記算出手段は、
ある部分グラフと別の部分グラフとを接続するエッジに割り当てられた重みに基づいて前記距離を算出する
請求項１から請求項５までのいずれか１項に記載の情報処理装置。
【請求項７】
前記抽出手段、前記算出手段及び前記設計手段は、処理を再帰的に実行する
請求項１から請求項６までのいずれか１項に記載の情報処理装置。
【請求項８】
前記設計されたニューラルネットワークに学習させる学習手段をさらに備える
請求項１から請求項７までのいずれか１項に記載の情報処理装置。
【請求項９】
複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出し、
前記抽出された複数の部分グラフ間の距離を算出し、
前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する
ニューラルネットワークの設計方法。
【請求項１０】
コンピュータに、
複数のノードと複数のエッジとを含むグラフから複数の部分グラフを抽出するステップと、
前記抽出された複数の部分グラフ間の距離を算出する処理と、
前記グラフの少なくとも一部を入力とするニューラルネットワークを、前記算出された距離に基づいて設計する処理と
を実行させるためのプログラム。
【国際調査報告】
2018135515.tif 000012
2018135515.tif 000013
2018135515.tif 000014
2018135515.tif 000015