(57)【要約】【課題】精度の高いグラフ生成アルゴリズムの訓練をする。【解決手段】訓練装置は、ノード特徴量及び構造に関するデータを少なくとも含む、グラフに関するデータを取得する、取得部と、前記グラフのノード特徴量を示す第１テンソル及び前記グラフの構造を示す第２テンソルを、逆変換が定義できる変換により第１潜在値に変換する第１変換器、及び、前記第２テンソルを逆変換が定義できる変換により第２潜在値に変換する第２変換器を、前記第１潜在値及び前記第２潜在値に対する事前分布に基づいて訓練する、訓練部と、を備える。【選択図】図１
2020181312.tif 000002
【特許請求の範囲】
【請求項１】
ノード特徴量及び構造に関するデータを少なくとも含む、グラフに関するデータを取得する、取得部と、
前記グラフのノード特徴量を示す第１テンソル及び前記グラフの構造を示す第２テンソルを、逆変換が定義できる変換により第１潜在値に変換する第１変換器、及び、前記第２テンソルを逆変換が定義できる変換により第２潜在値に変換する第２変換器を、前記第１潜在値及び前記第２潜在値に対する事前分布に基づいて訓練する、訓練部と、
を備える訓練装置。
【請求項２】
前記第１変換器は、グラフデータを処理可能なニューラルネットワークモデルを備え、
前記第２変換器は、ニューラルネットワークモデルを備え、
前記訓練部は、各変換器におけるニューラルネットワークモデルを訓練する、
請求項１に記載の訓練装置。
【請求項３】
前記第１変換器及び前記第２変換器は、非線形な写像に基づいて変換を行う、請求項１又は請求項２に記載の訓練装置。
【請求項４】
前記第１変換器及び前記第２変換器は、NVP（Non-volume Preserving）写像に基づいた写像を備える、請求項３に記載の訓練装置。
【請求項５】
前記第１変換器は、前記第１テンソル及び前記第２テンソルにNVP写像を複数回適用して前記第１潜在値を算出し、
前記第２変換器は、前記第２テンソルにNVP写像を複数回適用して前記第２潜在値を算出する、
請求項４に記載の訓練装置。
【請求項６】
前記第１変換器は、所定の順番により、前記第１テンソルの一部のノードに対する要素以外の要素と前記第２テンソルとを、第１写像により変換し、前記第１テンソルの全てのノードに対する要素が少なくとも１回変換されるまで前記第１写像を繰り返し、
前記第２変換器は、所定の順番により、前記第２テンソルの一部のノードに対する要素以外の要素を、第２写像により変換し、前記第２テンソルの全てのノードに対する要素が少なくとも１回変換されるまで前記第２写像を繰り返す、
請求項１から請求項５のいずれかに記載の訓練装置。
【請求項７】
前記取得部が取得した前記グラフに関するデータを、前記ノード特徴量を示す前記第１テンソル及び前記グラフの隣接行列を含む前記第２テンソルに加工する、加工部、
をさらに備える、請求項１から請求項６のいずれかに記載の訓練装置。
【請求項８】
第１データ及び第２データに対して、
前記第２データを第１グラフの構造を示す第２テンソルへと変換する、第２逆変換器と、
前記第１データと前記第２テンソルとを、前記第１グラフのノード特徴量を示す第１テンソルへと変換する、第１逆変換器と、
を備える、推定装置。
【請求項９】
前記第１データは、第２グラフにおけるノード特徴量を示す第１テンソル及び前記第２グラフの構造を示す前記第２テンソルを、逆変換が定義できる変換により第１潜在値に変換する第１変換器により生成された前記第１潜在値であり、
前記第２データは、前記第２グラフの構造を示す前記第２テンソルを、逆変換が定義できる変換により第２潜在値に変換する第２変換器により生成された前記第２潜在値であり、
前記第１逆変換器は、前記第１変換器の逆変換を実行し、
前記第２逆変換器は、前記第２変換器の逆変換を実行する、
請求項８に記載の推定装置。
【請求項１０】
前記第１データ及び前記第２データは、乱数に基づいて生成される、請求項８に記載の推定装置。
【請求項１１】
前記第１データ及び前記第２データの少なくとも１つにノイズを付与する、ノイズ付与部、を更に備える、
請求項８又は請求項９に記載の推定装置。
【請求項１２】
前記第１グラフと前記第２グラフは同じグラフである、請求項９に記載の推定装置。
【請求項１３】
前記第１逆変換器に変換された前記第１テンソル及び前記第２逆変換器に変換された前記第２テンソルに基づいて、グラフデータを生成する、生成部、
をさらに備える、請求項８から請求項１２のいずれかに記載の推定装置。
【請求項１４】
前記第１変換器と前記第２変換器とを更に備える、請求項９に記載の推定装置。
【請求項１５】
前記第１逆変換器が備える学習済みモデルは、前記第１逆変換器が実行する変換の逆変換における潜在値に対する事前分布に基づいて訓練されたモデルであり、
前記第２逆変換器が備える学習済みモデルは、前記第２逆変換器が実行する変換の逆変換における潜在値に対する事前分布に基づいて訓練されたモデルである、
請求項８から請求項１４のいずれかに記載の推定装置。
【請求項１６】
処理回路が、
グラフに関するデータを取得し、
前記グラフにおけるノード特徴量を示す第１テンソル及び前記グラフの構造を示す第２テンソルを逆変換が定義できる変換により第１潜在値に変換する第１変換器、及び、前記第２テンソルを逆変換が定義できる変換により第２潜在値に変換する第２変換器を、前記第１潜在値及び前記第２潜在値に対する事前分布に基づいて訓練する、
を備える訓練方法。
【請求項１７】
コンピュータを、
グラフに関するデータを取得する、入力手段、
前記グラフにおけるノード特徴量を示す第１テンソル及び前記グラフの構造を示す第２テンソルを逆変換が定義できる変換により第１潜在値に変換する第１変換器、及び、前記第２テンソルを逆変換が定義できる変換により第２潜在値に変換する第２変換器を、前記第１潜在値及び前記第２潜在値に対する事前分布に基づいて訓練する、最適化手段、
として機能させるプログラム。
【請求項１８】
制御回路が、
第１データ及び第２データに対して、
前記第２データを第１グラフの構造を示す第２テンソルへと第２逆変換し、
前記第１データと前記第２テンソルとを、前記第１グラフのノード特徴量を示す第１テンソルへと第１逆変換する、
推定方法。
【請求項１９】
前記第１データは、第２グラフにおけるノード特徴量を示す第１テンソル及び前記第２グラフの構造を示す前記第２テンソルを、逆変換が定義できる変換により第１潜在値に変換する第１変換により生成された前記第１潜在値であり、
前記第２データは、前記第２グラフの構造を示す前記第２テンソルを、逆変換が定義できる変換により第２潜在値に変換する第２変換により生成された前記第２潜在値であり、
前記第１逆変換は、前記第１変換の逆変換であり、
前記第２逆変換は、前記第２変換の逆変換である、
請求項１８に記載の推定方法。
【請求項２０】
コンピュータを、
第１データ及び第２データを取得する、取得手段、
前記第２データを第１グラフの構造を示す第２テンソルへと変換する、第２逆変換手段、
前記第１データと前記第２テンソルとを、前記第１グラフのノード特徴量を示す第１テンソルへと変換する、第１逆変換手段、
として機能させるプログラム。
【請求項２１】
コンピュータを、
第２グラフにおけるノード特徴量を示す第１テンソル及び前記第２グラフの構造を示す前記第２テンソルを、逆変換が定義できる変換により第１潜在値に変換する、第１変換手段、
前記第２グラフの構造を示す前記第２テンソルを、逆変換が定義できる変換により第２潜在値に変換する、第２変換手段、
として機能させ、
前記第１データは、前記第１潜在値であり、
前記第２データは、前記第２潜在値であり、
前記第１逆変換手段は、前記第１変換手段の逆変換を行う手段であり、
前記第２逆変換手段は、前記第２変換手段の逆変換を行う手段である、
請求項２０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、訓練装置、推定装置、訓練方法、推定方法及びプログラムに関する。
【背景技術】
【０００２】
グラフデータ生成モデルは、適当な乱数等を入力すると、グラフ構造を有するデータを生成するアルゴリズムを備える数学モデルである。例えば、新規化合物、薬物の創出における計算機による候補物質生成等に利用できる。このグラフデータ生成モデルの研究が、近年急速に発展してきている。グラフデータ生成モデルの構造、訓練の代表的なものとして、Variational AutoEncoder（VAE）と、Generative Adversarial Networks（GAN）の２つがある。また、グラフデータの生成手順として、グラフにノードを１つずつ加える、又は、削除するインクリメンタルな手法と、全ノードの関係を表す量を一度に生成するワンショットの方法がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】L. Dinh, et.al., "Density estimation using Real NVP," arXiv:1605.08803v3, https://arxiv.org/abs/1605.08803v3, Feb. 27, 2017
【非特許文献２】L. Dinh, et.al, "NICE: Non-linear Independent Components Estimation," arXiv:1410.8516v6, https://arxiv.org/abs/1410.8516v6, Apr. 10, 2015
【発明の概要】
【発明が解決しようとする課題】
【０００４】
精度の高いグラフ生成アルゴリズムの訓練装置、また、精度の高いグラフデータ推定装置を提供する。
【課題を解決するための手段】
【０００５】
一実施形態よれば、訓練装置は、ノード特徴量及び構造に関するデータを少なくとも含む、グラフに関するデータを取得する、取得部と、前記グラフのノード特徴量を示す第１テンソル及び前記グラフの構造を示す第２テンソルを、逆変換が定義できる変換により第１潜在値に変換する第１変換器、及び、前記第２テンソルを逆変換が定義できる変換により第２潜在値に変換する第２変換器を、前記第１潜在値及び前記第２潜在値に対する事前分布に基づいて訓練する、訓練部と、を備える。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に係る訓練装置の機能を示すブロック図。
【図２】一実施形態に係るテンソルを示す図。
【図３】一実施形態に係る訓練装置の処理の流れを示すフローチャート。
【図４】一実施形態に係る推定装置の機能を示すブロック図。
【図５】一実施形態に係る訓練装置の処理の流れを示すフローチャート。
【図６】一実施形態に係る推定装置の機能を示すブロック図。
【図７】一実施形態に係る推定装置の処理の流れを示すフローチャート。
【図８】一実施形態に係るハードウェア実装例を示す図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。化合物の例を挙げて説明するが、本実施形態の適用範囲は、これに限られるものではない。例えば、他の態様としては、回路設計、交通網・ネットワーク等のインフラ整備、建築、言語学、ウェブ等における種々のグラフに適用できるものである。また、化合物の場合も、ノードの要素は原子として説明するが、これには限られず、例えば、分子、基（group、radical）等により示される意味のある集まりであってもよい。
【０００８】
図１は、一実施形態に係る訓練装置１の機能を示すブロック図である。訓練装置１は、入力部１０と、記憶部１２と、加工部１４と、訓練部１６と、出力部１８と、を備える。この他に、データを変換するデータ変換器であって訓練装置１の訓練の対象となる、第１変換器１００と、第２変換器１２０と、を備える。なお、第１変換器１００と第２変換器１２０が訓練装置１の外部にあり、訓練装置１から参照できる構成であってもよい。また、記憶部１２が訓練装置１の外部にあり、訓練装置１から参照できる構成であってもよい。
【０００９】
入力部１０は、グラフに関するデータを取得する。すなわち、入力部１０は、データを取得する取得部として機能する。グラフに関するデータは、ノード及びエッジのデータであってもよいし、ノードの特徴を示すテンソルと隣接状態を示すテンソルのデータに分割されているデータであってもよい。すなわち、グラフのノードの特徴量と、隣接状態が分かるデータであればその形式は問わない。隣接状態とは、ノードの接続を示す状態量であり、例えば、隣接行列を備える。さらに、化合物である場合には、２重結合、３重結合等を考慮した量であってもよい。なお、化合物のグラフでは一般的に無向グラフであるが、隣接状態を示すテンソルに、有向の状態量を追加することにより、有向グラフに対しても本実施形態を適用することは可能である。
【００１０】
記憶部１２は、処理に必要となる訓練データ等のデータを記憶する。入力部１０が取得したデータを記憶してもよい。また、訓練対象となる各種ネットワークを構成するパラメータを記憶してもよい。さらに、訓練装置１がソフトウェアの処理がハードウェアを用いて具体的実行される場合には、実行に必要なプログラム、バイナリデータ等を記憶してもよい。この場合、記憶部１２に記憶されている実行ファイルをプロセサが読み出すことにより処理を実行してもよい。
【００１１】
加工部１４は、入力部１０が取得したデータが、グラフのノードの特徴量を示す第１テンソル及びグラフの構造を示す第２テンソルではない場合に、当該データを第１テンソル及び第２テンソルへと加工する。
【００１２】
図２は、第１テンソル及び第２テンソルの一例を示す。図に示す罫線は、見やすくするために描いたものであり、テンソルの要素は、罫線内に記載された数値で示される。第１テンソルは、例えば、（特徴量数）×（ノード数）の次元を有する行列として示される。化合物である場合、一例として、ノード特徴量は、原子（例えば、それぞれ炭素、窒素、酸素、水素の原子）であり、各ノードにどの原子が存在しているかを示す行列となる。この場合、各ノードに対して１が示されている原子が１つ存在し、この１が示されている原子が各ノードを構成する原子を意味する。
【００１３】
一方、第２テンソルは、例えば、（ノード数）×（ノード数）×（パターン数）の次元を有するテンソルであり、隣接行列をパターン数分備えるテンソルとして示される。第１パターンは、１重結合しているノード同士を表し、第２パターンは、２重結合しているノード同士を表す。例えば、図２に示す第２テンソルについては、第１ノードと第２ノードは、第１パターン及び第２パターンで１、第３パターンで０であるので、２重結合であることを示す。同様に、第１ノードと第３ノードは、第１パターンで１であり、第２パターンで０であるので、単結合であることを示す。このような行列表現には限られず、例えば、１重結合の場合には第１パターンを1、他のパターンを0にし、２重結合の場合には、第２パターンを1、他のパターンを0としてもよい。また、例えば、隣接するノード同士についてπ結合、σ結合等を示すパターンをさらに備えていてもよい。
【００１４】
加工部１４は、入力部１０が入力したデータが、例えば、図２に示すような構造ではない場合に、図２に示すような構造となるようにデータを加工する。例えば、ノードの原子と、各ノード間を接続するエッジの状態を示すデータが入力された場合、ノードの原子を第１テンソルとして加工し、エッジの状態を示すデータから、各エッジが多重結合か否かを確認して、各ノードの接続状態を示す第２テンソルをとして加工する。これには限られず、構造式の図面を表すデータ、また、構造式をXML形式で示すデータを入力としてもよい。これには限られず、グラフを正しく表すデータであれば、入力されるデータはどのようなものでもよく、加工部１４は、入力されるデータの形式に基づいて複数存在していてもよい。加工部１４は、例えば、上記の加工を、ルールベースの変換式を用いて加工してもよいし、機械学習により訓練（学習）された学習済みモデル（訓練済みモデル）を用いて加工してもよい。
【００１５】
また、入力部１０に第１テンソル、第２テンソルが入力される場合、又は、単純に第１テンソルと第２テンソルとを結合した値が入力される場合には、加工部１４は必須の構成ではない。この場合、図１に戻り、破線で示すように、入力部１０から直接的に第１変換器１００、第２変換器１２０へと値が出力されてもよい。また、加工部１４の有無に拘わらず、入力部１０が取得したデータは、少なくとも一時的に記憶部１２に記憶されて、必要になった場合に、加工部１４又は各変換器に参照されてもよい。
【００１６】
第１変換器１００及び第２変換器１２０は、逆写像が容易に定義できる写像、例えば、NVP（Non-volume Preserving）写像を用いて表される。第１変換器１００及び第２変換器１２０は、例えば、非線形な写像により、また、複数回適用される写像を用いて表されてもよい。以下に、一例として具体的な写像を説明するが、本実施形態に係る写像は、これに限られるものではない。本実施形態においては、NVP写像に基づいた写像は、以下の式により示されるものとする。
【数１】
2020181312.tif 000003
【００１７】
ここで、s(x)、t(x)は、任意の写像であり、○の中に・を記載した記号（odot）は、アダマール積（要素同士の積）を示す。例えば、機械学習モデル、特に、ディープニューラルネットワーク等の複雑な写像を用いても学習が困難ではない。本実施形態においては、この写像を、グラフデータが適用できるようにする。以下、Nをノード数、Mを原子の種類（特徴量数）、Pを結合の種類（パターン数）とする。これらのN、M、Pの値は訓練及び推定において所定の値であるものとする。所定の値とすることにより、ワンショット方式におけるグラフデータから潜在値への変換（及び後述する逆変換）が実行可能となる。  
【００１８】
第１変換器１００は、第１テンソル及び第２テンソルを、第１潜在値へと変換する。この変換は、例えば、［数１］の写像に基づいたグラフデータを処理可能なニューラルネットワークを備える変換写像により実行される。第１テンソルに対する第１潜在値を少なくとも１回は更新するように、以下の写像をL1回繰り返すことにより、第１テンソル及び第２テンソルから、第１潜在値を算出する。
【数２】
2020181312.tif 000004
【００１９】
ここで、zX（∈RN×M）は第１潜在値を示すテンソル、fは第１潜在値の行のインデクス、Aは第２テンソルを示す。fは、fupdateとfparamとに分けて計算され、fupdateは更新対象として選択されている行の集合、fparamはfのうち更新対象として選択されていない行の集合を示す。sf及びtfは、変換の中心となる写像であり、それぞれスケールとトランスレーションである。例えば、zX[fupdate,:]は、zXのうち、図２の例で示すと、更新する行の要素の集合を示し、zX[fparam,:]は、更新する行以外の要素の集合を示す。初期値は、例えば、zX=Xとしてもよい。
【００２０】
l（＜L1）回目の更新では、fupdate=l、fparam={x|xはl以外の[1,N]を順序で並べたもの}、としてもよい。この場合、L1＝Nとなる。N回の更新を繰り返すことにより、第１潜在値の各行、すなわち、全ての要素が更新される。sf及びtfは、例えば、R（N−1）×M＋N×N×Pの行列をR1×Mのベクトルへと変換する写像として表される。
【００２１】
別の例として、l回目の更新でfupdate=lとすることは同様であるが、fparamとして用いるものに、l行目を0、それ以外を1としてマスキングしたものを用いてもよい。この場合、sf及びtfは、例えば、RN×M＋N×N×Pの行列をR1×Mのベクトル又はRN×Mの行列へと変換する写像として表される。N×M次元への行列への変換である場合には、更新のタイミングでfupdateに対応する行を1とし、その他を0とするマスクを掛けて更新を行う。
【００２２】
いずれの場合においても、sf及びtfは、パラメータを計算する写像であり、学習可能なパラメータを有する任意の写像としてもよい。特に、第２テンソルであるAというグラフを含む変換を行うので、グラフデータを扱うことのできるニューラルネットワークを用いて表現されることにより効率よく学習を行うことが可能となる。例えば、GNN（Graph Neural Network）、GCN（Graph Convolutional Network）、Relational GCN等を用いることにより学習の効率化を図ることが可能である。しかしながら、これらの手法に限られるものではなく、適切にグラフデータを変換し、訓練が可能であるモデル、例えば、MLP（Multi-Layer Perceptron）等であれば、どのようなモデルであっても構わない。
【００２３】
一方、第２変換器１２０は、第２テンソルを、第２潜在値へと変換する。この変換も、第１変換器１００と同様に、第２テンソルに対する第２潜在値の各要素を少なくとも１回は更新するように、以下の写像をL2回繰り返すことにより、第２テンソルから、第２潜在値を算出する。
【数３】
2020181312.tif 000005
【００２４】
ここで、zA（∈RN×N×P）は第２潜在値を示すテンソル、aは第２潜在値の行のインデクスを示す。aは、aupdateとaparamとに分けて計算され、aupdateは更新対象として選択されている行の集合、aparamはaのうち更新対象として選択されていない行の集合を示す。sa及びtaは、変換の中心となる写像であり、それぞれスケールとトランスレーションである。例えば、zA[aupdate,:,:]は、zAのうち、図２の例で示すと、パターン数分の更新する行の要素の集合を示し、zA[aparam,:,:]は、パターン数分の更新する行以外の要素の集合を示す。初期値は、例えば、za=Aとしてもよい。
【００２５】
l（＜L2）回目の更新では、aupdate=l、aparam={y|yはl以外の[1,N]を順序で並べたもの}、としてもよい。この場合、L2＝Nとなる。N回の更新を繰り返すことにより、第２潜在値の各行、すなわち、全ての要素が更新される。sa及びtaは、例えば、RN×N×Pの行列をR1×N×Pのベクトルへと変換する写像として表される。
【００２６】
別の例として、l回目の更新でaupdate=lとすることは同様であるが、aparamとして用いるものに、l行目を0、それ以外を1としてマスキングしたものを用いてもよい。この場合、sa及びtaは、例えば、RN×N×Pの行列をR1×N×Pのベクトル又はRN×N×Mの行列へと変換する写像として表される。N×N×M次元への行列への変換である場合には、更新のタイミングでパターンに亘り、aupdateに対応する行を1とし、その他を0とするマスクを掛けて更新を行う。
【００２７】
いずれの場合においても、sa及びtaは、パラメータを計算する写像であり、学習可能なパラメータを有する任意の写像としてもよい。例えば、機械学習を用いて訓練が可能であるモデル、MLP（Multi-Layer Perceptron）等であれば、どのようなモデルであっても構わない。
【００２８】
なお、第１潜在値及び第２潜在値を求める写像における繰り返しにおいては、行ごとに指定するものとしたが、行単位に更新することには限られず、テンソルの要素ごとに更新する要素と更新しない要素とを設定してもよい。すなわち、例えば、［数２］を以下のように書き換えてもよい。［数３］等についても同様に行ではなく要素で指定してもよい。
【数４】
2020181312.tif 000006
【００２９】
この場合、fupdateは、更新対象となる要素のインデクスの集合、fparamは、それ以外の要素のインデクスの集合である。この場合においても、更新する要素を選択する順番は、変換、逆変換において所定の順番であるものとする。すなわち、訓練及び推定の各フェーズにおいて所定の順番が守られているのであれば、第１テンソル及び第２テンソルから第１潜在値及び第２潜在値を求める変換における更新について、任意の要素単位及び任意の順番で行ってもよい。
【００３０】
さらに、上述のようにl回目の更新でl行目ではなく、更新の対象とする行の値を、全ての行について更新がされるように所定の順番で入れ替えてもよい。逆変換は、所定の順番の逆の順番で実行される。この所定の順番は、あらかじめ乱数で定義し、訓練及び推定時には固定されるものとしてもよい。また、行単位で行う場合においても、１行ずつ行う必要は無く、全ての行が更新されるように、複数行ごとに所定の順番で更新をしてもよい。このように、全ての潜在値の要素が更新される変換であればよい。
【００３１】
例えば、上述したように、第１変換器１００と第２変換器１２０とのそれぞれの変換において、l回目の更新でl行目を更新するとした場合、L1=L2となるが、これには限られない。また、ノードの行に着目したが、第１テンソルにおける特徴量の列に着目し、更新する列と、更新しない列とに分けて変換をしてもよい。第２テンソルにおいては、例えば、全てのパターンの同じノードの行を更新するとしたが、これには限られず、自由に更新する要素と更新しない要素とを設定してもよい。また、更新する要素に対して、他の全ての要素を変換していたが、これには限られない。すなわち、更新する要素に対して、他の全ての要素ではなく、少なくとも一部の要素を用いて更新してもよい。
【００３２】
zX、zAの初期値として、X、Aの値をそのまま用いるとしたが、これも、これに限られるものではない。X、Aの値に対して、所定の処理、例えば、ノイズを重畳してzX、zAの初期値としてもよい。
【００３３】
図１に戻り、訓練部１６は、訓練を実行することにより、第１変換器１００及び第２変換器１２０を最適化する。訓練の対象となるのは、sf、tf、sa及びtaの各変換である。上述したように、これらの変換に備えられるネットワークの構成は、自由に決めることができる。訓練部１６は、これらの変換を最適化できる機械学習、ディープラーニングの手法で訓練を行う。例えば、SGD（確率的勾配降下法：Stochastic Gradient Descent）の手法を用いて訓練を行ってもよい。もちろん、これ以外の機械学習の手法を用いてもよい。
【００３４】
SGDを用いる場合、訓練部１６は、対数尤度を以下の式に基づいて算出し、尤度が大きくなるように訓練する。
【数５】
2020181312.tif 000007
zは、結合された潜在値であり、第１潜在値と第２潜在値とを結合したものである。より具体的には、各テンソルを構成する要素を、第１潜在値zXの１行目１列目からM列目、２行目１列目からM列目、・・・、N行目１列目からM列目、第２潜在値zAの１パターン目１行目１列目からN列目、・・・、N行目１列目からN列目、２パターン目１行目１列目から・・・、Pパターン目N行目１列目からN列目、と結合し、第１潜在値及び第２潜在値の全ての値を有するベクトルである。また、pz(z)は、結合された潜在値zに対する事前分布であり、例えば、zの要素数と同じ次元を有する多次元正規分布を利用して生成する。detの対象である∂z／∂Gは、G=(A,X)の値におけるzのヤコブ行列であり、右辺の第２項のlogの中身は、ヤコビアンである。
【００３５】
［数２］及び［数３］で表されるように第１変換器１００及び第２変換器１２０を定義することにより、ヤコブ行列をブロック三角行列とすることが可能となる。このため、ヤコビアンを算出するコストを軽減することが可能となる。また、同様に、これらの式で表されるように変換を定義することにより、逆変換を定義することも可能となる。もちろん、［数４］のように、より一般化しても、同様のことが言えることに留意されたい。
【００３６】
第１変換器１００及び第２変換器１２０により、第１潜在値及び第２潜在値が繰り返しの更新により変換された後、訓練部１６は、［数５］に基づいて対数尤度を算出する。まず、変換後の第１潜在値及び第２潜在値から結合された潜在値zを取得し、Gの値におけるヤコビアンを算出し、事前確率に基づいて［数５］により対数尤度を算出する。算出された対数尤度に基づいて学習を行うことによりsf、tf、sa及びtaの各変換が最適化される。事前確率として正規分布を用いることにより、特徴量及び構造を示すグラフの潜在値が正規分布となるように訓練される。
【００３７】
SDGを用いる場合、sf、tf、sa及びtaの全てのパラメータを更新するのではなく、一部のパラメータを更新しないようにしてもよい。例えば、事前分布pzを多次元正規分布とする場合には、この正規分布の平均ベクトルがゼロベクトルとなるようにしてもよい。別の例として、この共分散行列を対角行列としてもよい。
【００３８】
なお、最適化の手法はこれには限られず、例えば、変換を行った後のデータが正規分布にしたがうように、正規分布にしたがった乱数を教師データとして用いて、他の教師あり学習により最適化を行ってもよい。SGDに限られず、種々のニューラルネットワークの最適化手法を用いることも可能である。また、複数のグラフデータに対しての処理は、ミニバッチ処理等を用いて効率化、高精度化を図ってもよい。訓練部１６は、このように、種々の手法を用いて、複数のグラフデータに対する第１変換器１００及び第２変換器１２０の出力に基づいてsf、tf、sa及びtaの最適化を行う。最適化の終了条件についても、用いる手法に基づいて決定する。
【００３９】
出力部１８は、訓練部１６が最適化したネットワークのパラメータ等を出力する。なお、本実施形態において出力とは、インタフェースを介して訓練装置１の外部へと出力することのみならず、訓練装置１内の記憶部１２へ最適化されたパラメータ等を記憶させることも含む概念である。
【００４０】
図３は、訓練装置１の処理の流れを示すフローチャートである。この図３を用いて上記した各部の動作について簡単にまとめる。詳しい動作については、上記を参照されたい。
【００４１】
まず、入力部１０を介してグラフに関するデータを取得する（Ｓ１００）。
【００４２】
次に、必要であれば、加工部１４により第１テンソル、第２テンソルを生成する（Ｓ１０２）。
【００４３】
次に、第１変換器１００を用いて第１潜在値を算出する（Ｓ１０４）。
【００４４】
次に、第２変換器１２０を用いて第２潜在値を算出する（Ｓ１０６）。なお、第１潜在値と第２潜在値の算出順序は、これに限られるものではない。例えば、Ｓ１０６の後にＳ１０４の処理を行ってもよいし、並列に行ってもよい。
【００４５】
次に、訓練部１６は、潜在値の対数尤度を算出する（Ｓ１０８）。
【００４６】
次に、訓練部１６は、算出した対数尤度に基づいて、第１変換器１００及び第２変換器１２０に備えられるニューラルネットワークに関するパラメータを更新する（Ｓ１１０）。例えば、対数尤度に基づいて誤差逆伝播を行い、各種パラメータを更新する。この更新は、上述においては、１のグラフデータに対する処理を説明したが、複数のグラフデータに対して対数尤度を求めてネットワークの更新を行う。例えば、訓練データであるグラフデータ全てに対して１セットのニューラルネットワークのパラメータを設定し、この１セットのパラメータを更新することにより、全てのグラフデータに対して対数尤度が大きくなるよう、所謂バッチ学習をしてもよい。別の例としては、訓練データを所定数のミニバッチに分割し、所謂ミニバッチ学習により更新をしてもよい。この処理は、利用できる資源に応じて適宜変更することが可能である。
【００４７】
次に、訓練部１６は、訓練が終了条件を満たしたか否かを判断する（Ｓ１１２）。終了条件を満たしていない場合（Ｓ１１２：ＮＯ）、Ｓ１０４からの処理を繰り返す。メモリ等の資源の問題により、第１テンソル等を適宜消去している場合にはＳ１０２から繰り返してもよい。
【００４８】
終了条件を満たしている場合（Ｓ１１２：ＹＥＳ）、出力部１８は、最適化されたネットワークのパラメータ等を出力して（Ｓ１１４）、処理を終了する。
【００４９】
以上のように、本実施形態によれば、ノード数及び特徴量数が設定されている状態において、グラフデータを潜在値、例えば、正規分布にしたがった潜在値へと変換する写像を、GCN、GNN、あるいはその他のネットワークを用いた手法により最適化することにより、計算コストを抑え、かつ、高精度に訓練することが可能となる。また、上記の第１変換器１００、第２変換器１２０は、逆演算を容易に定義することができるので、訓練装置１によるグラフデータから潜在値への最適化を行うとともに、以下に説明する潜在値からグラフデータへの逆変換も容易に最適化できることを意味する。
【００５０】
このように訓練したモデルにしたがえば、滞在変数zの空間において、簡単な線形回帰モデル等の予測モデルを用いると、zの値と、その値から生成される化合物グラフが有する物質の特性値、例えば、水への溶けやすさ等、を高精度に予測することが可能となる。逆に、当該予測値が高くなるようなzを選択することにより、性質のよい可能性が高いグラフを効率よく生成することができる。
【００５１】
例えば、GANに基づく生成モデルは、あるグラフデータをエンコードして、デコードした場合に、同じグラフデータが生成できるとは限られず、訓練等の正当性、信頼性を検証することが容易ではない。また、VAEに基づく生成モデルは、尤度の近似値を目的地とするため、訓練の正当性は検証できるが、訓練されたネットワークの内部表現とグラフデータとの相互変換における再現性が高くなる保証はない。インクリメンタルの手法は、１つのノードを操作する度にグラフの妥当性をチェックするため、適切なタイミングでグラフの操作を終了することができるが、それ故に終了判定が必要であり、また、生成物のグラフの大きさを規定することが困難である。ワンショットの手法では、必ず指定したサイズのグラフを生成することが可能であるが、ノード数が増えるとモデルの学習（訓練）、グラフの生成についてコストが急速に高くなるため、大ノード数のグラフを生成することが困難である。以上のような問題を、本実施形態によれば解決することが可能である。
【００５２】
図４は、本実施形態に係る推定装置２の機能を示すブロック図である。推定装置２は、入力部２０と、記憶部２２と、ノイズ生成部２４と、第１逆変換器２００と、第２逆変換器２２０と、生成部２６と、出力部２８と、を備える。推定装置２は、入力された乱数情報、又は、ノイズ生成部２４により生成されたノイズデータから、当該分布に基づいてグラフデータを生成する。すなわち、推定装置２は、所定のデータからグラフを生成するグラフ生成装置として機能してもよい。
【００５３】
入力部２０は、データを取得する。データは、例えば、N×Mの要素を有する第１データと、N×N×Pの要素を有する第２データである。このデータは、例えば、正規分布、一様分布等により設定された乱数に基づく数値であってもよい。また、ユーザが任意に選択した値を有するデータであってもよい。入力部２０が取得したデータは、一時的に記憶部２２へと記憶されてもよい。
【００５４】
記憶部２２は、推定装置２に必要なデータ等を記憶する。上述した訓練装置１と同様に、推定装置２を動作させるためのプログラムや、推定装置２の推定に使用するデータ等を記憶してもよい。
【００５５】
ノイズ生成部２４は、入力部２０から乱数データが入力されない場合に、第１データ及び第２データを生成する。この場合、入力部２０からは、ユーザにより、例えば、乱数データを生成してグラフを生成する旨の指示がされてもよい。この指示を受け、ノイズ生成部２４が乱数データを生成する。
【００５６】
第２逆変換器２２０は、第２データを第２潜在値として、グラフの構造を示す第２テンソルへと変換する。この第２逆変換器２２０は、前述した訓練装置１により最適化された学習済みモデルを有する第２変換器１２０の逆変換を行う変換器である。前述のように、第２変換器１２０を適切に定義することにより、この第２変換器１２０の逆変換として、第２逆変換器２２０を定義することが可能となる。例えば、第２変換器１２０がMLPで定義されている場合には、このMLPの逆変換となるMLPを第２逆変換器２２０として定義する。他の形式に基づくネットワークの場合も同様である。より具体的には、［数３］の式の逆変換を行う式により第２逆変換器２２０は定義される。例えば、第２変換器１２０の変換の第L２回目の更新をまず逆変換し、逐次的に第１回目の更新まで逆変換を行うことにより、第２逆変換器２２０が定義される。
【００５７】
第１逆変換器２００は、第１データを第１潜在値とし、第２逆変換器２２０により変換された第２テンソルを用いて、ノード特徴量を示す第１テンソルへと変換する。この第１逆変換器２００は、前述した訓練装置１により最適化された学習済みモデルを有する第１変換器１００の逆変換を行う変換器である。第２逆変換器２２０と同様に、第１変換器１００を適切に定義することにより、第１逆変換器２００をその逆変換として定義することができる。第１変換器１００がGNN、GCN等の変換である場合に、その逆変換として第１逆変換器２００が定義される。より具体的には、［数２］の式の逆変換を行う式により、第１逆変換器２００は、定義される。更新については、第２逆変換器２２０と同様であるので省略する。
【００５８】
生成部２６は、第１逆変換器２００により変換された第１テンソル及び第２逆変換器２２０により変換された第２テンソルに基づいて、グラフデータを生成する。なお、生成部２６は、必須の構成ではない。
【００５９】
出力部２８は、生成部２６が生成したグラフデータを出力する。生成部２６が備えられていない場合には、出力部２８は、第１テンソル及び第２テンソルの値を出力してもよい。
【００６０】
図５は、本実施形態に係る推定装置２の処理の流れを示すフローチャートである。
【００６１】
まず、入力部２０は、第１データ及び第２データを取得する（Ｓ２００）。このステップは、省略されてもよく、省略された場合には、例えば、ノイズ生成部２４が乱数データを生成するステップが代わりに実行される。
【００６２】
次に、第２データに基づいて、第２逆変換器２２０により第２テンソルを推定する（Ｓ２０２）。
【００６３】
次に、第１データ及びＳ２０２で推定された第２データに基づいて、第１逆変換器２００により第１テンソルを推定する（Ｓ２０４）。
【００６４】
次に、生成部２６は、第１テンソル及び第２テンソルに基づいてグラフデータを生成する（Ｓ２０６）。
【００６５】
次に、出力部２８は、生成されたグラフデータを出力する（Ｓ２０８）。第１テンソル及び第２テンソルをそのまま出力する場合には、Ｓ２０６のステップを省略して、出力部２８が推定された第１テンソル及び第２テンソルを出力する。
【００６６】
以上のように、本実施形態に係る推定装置２によれば、前述の訓練装置１により訓練された第１変換器１００、第２変換器１２０にそれぞれ基づいて定義された第１逆変換器２００、第２逆変換器２２０により、乱数データからグラフを高精度に変換することが可能となる。本実施形態に係る逆変換器は、乱数の分布（潜在値）からグラフの推定（生成）を行うので、この分布を変えることにより、異なるグラフを容易に推定（生成）することが可能となる。かつ、同じ分布から推定した場合には、同じグラフデータとなる。すなわち、あるグラフデータを第１変換器１００及び第２変換器１２０により変換し、この変換された潜在値に基づいて第１逆変換器２００及び第２逆変換器２２０により変換を実行すると、入力したグラフデータと同じグラフデータが出力される。
【００６７】
さらに、N、M、Pに基づいてグラフを生成するので、ワンショットによりグラフを推定する。一方で、ワンショットの手法であるにも拘わらず、本実施形態の訓練装置１によれば、ノード数が増えてもモデルの学習コストは上述したヤコビアンの算出と逆変換の定義の容易さからそれほど高くならず、ノード数が大きいグラフの生成を高精度に行うことが可能となる。
【００６８】
（変形例）
図６は、別の態様に係る推定装置２の機能を示すブロック図である。本変形例に係る推定装置２は、入力部２０と、記憶部２２と、第１逆変換器２００と、第２逆変換器２２０と、生成部２６と、出力部２８と、を備え、さらに、ノイズ付与部３０と、訓練装置１により学習された第１変換器１００と、第２変換器１２０と、を備える。この推定装置２は、例えば、あるグラフデータに対して、当該グラフデータを入力すると、自動的に近傍に存在するグラフデータを推定して出力するものである。
【００６９】
同じ符号が付与されている構成については、特に説明が無い限り、前述の実施形態に係る訓練装置１又は推定装置２と同様の構成であるので詳しい説明は省略したものである。
【００７０】
第１変換器１００は、訓練装置１により訓練された学習済みモデルを備える変換器である。同様に、第２変換器１２０も、訓練装置１により訓練された学習済みモデルを備える変換器である。
【００７１】
ノイズ付与部３０は、第１変換器１００により第１テンソルから変換された第１潜在値、及び、第２変換器１２０により第２テンソルから変換された第２潜在値にたいして、ノイズを付与する。付与するノイズのレベル、分散、平均値、乱数のパターン、乱数の生成方法等は、ユーザが設定できるものであってもよい。また、双方の潜在値にノイズを付与してもよいし、いずれか一方の潜在値にノイズを付与してもよい。
【００７２】
第１逆変換器２００及び第２逆変換器２２０は、ノイズが付与された潜在値のデータを変換して、第１テンソル及び第２テンソルをそれぞれ推定する。
【００７３】
このように、本変形例に係る推定装置２は、グラフデータが入力されると、潜在値へと変換し、当該潜在値にノイズを付与した上で逆変換を行って、グラフデータを出力する。
【００７４】
図７は、本変形例に係る推定装置２の処理の流れを示すフローチャートである。
【００７５】
まず、入力部１０は、グラフに関するデータを取得する（Ｓ２１０）。
【００７６】
次に、必要であれば、加工部１４により第１テンソル、第２テンソルを生成する（Ｓ２１２）。
【００７７】
次に、学習済みモデルを備える第１変換器１００を用いて第１潜在値を算出する（Ｓ２１４）。
【００７８】
次に、学習済みモデルを備える第２変換器１２０を用いて第２潜在値を算出する（Ｓ２１６）。なお、第１潜在値と第２潜在値の算出順序は、これに限られるものではない。例えば、Ｓ２１６の後にＳ２１４の処理を行ってもよいし、並列に行ってもよい。
【００７９】
次に、ノイズ付与部３０は、算出された第１潜在値及び第２潜在値にノイズを付与する（Ｓ２１８）。
【００８０】
以下の流れは、前述の実施形態に係る推定装置２と同様であるので省略する。
【００８１】
以上のように、本変形例によれば、訓練装置１において訓練された第１変換器１００及び第２変換器１２０を用いて変換したグラフデータに対してノイズを付与することにより、当該グラフデータの近傍のグラフデータを推定することが可能となる。ノイズを付与しない場合には、入力したグラフと同じグラフが生成されてもよい。このように同じグラフが生成されることにより、訓練装置１において訓練された各変換器、及び、各逆変換器が正常に機能していることが分かる。
【００８２】
なお、図６においては、第１変換器１００と第１逆変換器２００は、別の構成であるとしたが、同じモジュールで変換、逆変換ができるように設計してもよい。すなわち、第１変換器１００と第１逆変換器２００は、同一のモジュール内に備えられていてもよい。第２変換器１２０と第２逆変換器２２０についても同様である。
【００８３】
上述したように、推定装置２は、ユーザが生成した（乱数）データ、ノイズ生成部２４で生成したデータ、あるいは、グラフから変換された潜在値にノイズを付与したデータからグラフを推定する。また、別の例としては、ユーザが生成したデータにノイズ生成部２４が生成したノイズデータを付加して、当該データからグラフを推定してもよい。入力されたデータに対してノイズデータを付加する場合、図４の構成において、図６に記載のノイズ付与部３０を備え、ノイズ付与部３０が入力データにノイズを付与してもよい。ノイズ付与部３０は、入力データに対する第１データ及び第２データの少なくとも１つにノイズを付与するものであってもよい。
【００８４】
例えば、グラフデータとして第１グラフを推定する場合、入力データ、ノイズデータ又は入力データにノイズ付加したものから第１グラフを生成してもよい。別の例として、生成したいグラフと類似する第２グラフを入力し、変換器により第２グラフの潜在値を求め、当該第２グラフの潜在値から第１グラフを生成してもよい。
【００８５】
また、前述の推定装置２、及び、変形例に係る推定装置２について、訓練装置１と別の構成であるとしたが、これには限られない。例えば、訓練装置１と推定装置２が同じ装置内に備えられ、訓練装置１において訓練した後にそのまま推定装置２として機能するものであってもよい。ユーザが、ユーザインタフェースを介して、訓練装置１と推定装置２とを切り替え可能であるものであってもよい。また、訓練装置１及び推定装置２が備える機能が複数のコンピュータにより実装され、各コンピュータがネットワークを介して情報のやり取りを実行するようにしてもよい。
【００８６】
前述した実施形態及び変形例における訓練装置１及び推定装置２において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等によるものであってもよい。
【００８７】
上記の全ての記載において、訓練装置１及び推定装置２の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ等が実施をしてもよい。ソフトウェアで構成される場合には、訓練装置１及び推定装置２及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ等の回路に実装され、ハードウェアが実行するものであってもよい。モデルの生成や、モデルに入力をした後の処理は、例えば、ＧＰＵ等のアクセラレータを使用して行ってもよい。
【００８８】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【００８９】
図８は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。訓練装置１及び推定装置２は、プロセッサ７１と、主記憶装置７２と、補助記憶装置７３と、ネットワークインタフェース７４と、デバイスインタフェース７５と、を備え、これらがバス７６を介して接続されたコンピュータ装置７として実現できる。
【００９０】
なお、図８のコンピュータ装置７は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図８では、１台のコンピュータ装置７が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【００９１】
プロセッサ７１は、コンピュータの制御装置および演算装置を含む電子回路（処理回路、Processing circuit、Processing circuitry）である。プロセッサ７１は、コンピュータ装置７の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ７１は、コンピュータ装置７のＯＳ（オペレーティングシステム）や、アプリケーションなどを実行することにより、コンピュータ装置７を構成する各構成要素を制御する。プロセッサ７１は、上記の処理を行うことができれば特に限られるものではない。訓練装置１及び推定装置２の各構成要素は、プロセッサ７１により実現される。
【００９２】
主記憶装置７２は、プロセッサ７１が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置７２に記憶された情報がプロセッサ７１により直接読み出される。補助記憶装置７３は、主記憶装置７２以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。訓練装置１及び推定装置２内において各種データを保存するためのメモリは、主記憶装置７２または補助記憶装置７３により実現されてもよい。例えば、記憶部１２は、この主記憶装置７２又は補助記憶装置７３に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、記憶部１２は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【００９３】
ネットワークインタフェース７４は、無線または有線により、通信ネットワーク８に接続するためのインタフェースである。ネットワークインタフェース７４は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース７４により、通信ネットワーク８を介して通信接続された外部装置９Ａと情報のやり取りが行われてもよい。
【００９４】
外部装置９Ａは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置９Ａは、訓練装置１及び推定装置２の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置７は、訓練装置１及び推定装置２の処理結果の一部を、クラウドサービスのように通信ネットワーク８を介して受け取ってもよい。
【００９５】
デバイスインタフェース７５は、外部装置９Ｂと直接接続するＵＳＢ（Universal Serial Bus）などのインタフェースである。外部装置９Ｂは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部１２は、外部装置９Ｂにより実現されてもよい。
【００９６】
外部装置９Ｂは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ（Plasma Display Panel）、スピーカなどがあるが、これらに限られるものではない。
【００９７】
なお、外部装置９Ｂは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置７に与える。入力装置からの信号はプロセッサ７１に出力される。また、本開示の処理、手段等の一部又は全部は、ネットワークを介したクラウド上に備えられる制御回路及び記憶回路の少なくとも一方に基づいて実行され又は機能されるものであってもよい。
【００９８】
上記の全ての記載に基づいて、実施形態の追加、効果又は種々の変形を想到できるかもしれないが、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数式および数値は、一例として示したものであり、これらに限られるものではない。
【００９９】
学習、推論の各種演算は、例えば、ＧＰＵ等のアクセラレータを用いて、又は、ネットワークを介した複数の計算機を用いて、並列処理により実行されるものであってもよい。例えば、学習におけるバッチ処理、推論における各オブジェクトの動作情報の生成等の処理は、複数ある演算コアに演算を振り分けて同じタイミングで実行されるものであってもよい。
【符号の説明】
【０１００】
１：訓練装置、１０：入力部、１２：記憶部、１４：加工部、１６：訓練部、１８：出力部、１００：第１変換器、１２０：第２変換器、
２：推定装置、２０：入力部、２２：記憶部、２４：ノイズ生成部、２６：生成部、２８：出力部、３０：ノイズ付与部、２００：第１逆変換器、２２０：第２逆変換器
【図１】
2020181312.tif 000008
【図２】
2020181312.tif 000009
【図３】
2020181312.tif 000010
【図４】
2020181312.tif 000011
【図５】
2020181312.tif 000012
【図６】
2020181312.tif 000013
【図７】
2020181312.tif 000014
【図８】
2020181312.tif 000015