IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

<>
  • 特許-訓練装置、生成装置及びグラフ生成方法 図1
  • 特許-訓練装置、生成装置及びグラフ生成方法 図2
  • 特許-訓練装置、生成装置及びグラフ生成方法 図3
  • 特許-訓練装置、生成装置及びグラフ生成方法 図4
  • 特許-訓練装置、生成装置及びグラフ生成方法 図5
  • 特許-訓練装置、生成装置及びグラフ生成方法 図6
  • 特許-訓練装置、生成装置及びグラフ生成方法 図7
  • 特許-訓練装置、生成装置及びグラフ生成方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-14
(45)【発行日】2023-09-25
(54)【発明の名称】訓練装置、生成装置及びグラフ生成方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230915BHJP
   G06N 3/04 20230101ALI20230915BHJP
【FI】
G06N20/00
G06N3/04
【請求項の数】 28
(21)【出願番号】P 2019082977
(22)【出願日】2019-04-24
(65)【公開番号】P2020181312
(43)【公開日】2020-11-05
【審査請求日】2022-03-31
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100091982
【弁理士】
【氏名又は名称】永井 浩之
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】ピツワラカンカナマゲ カウシャリヤマアダワ
(72)【発明者】
【氏名】中郷 孝祐
(72)【発明者】
【氏名】石黒 勝彦
【審査官】小林 秀和
(56)【参考文献】
【文献】国際公開第2019/048965(WO,A1)
【文献】JEPSEN, Tobias Skovgaard,"How to do Deep Learning on Graphs with Graph Convolutional Networks, Part 1: A High-Level Introduct,[online],2018年09月18日,[retrieved on 2020.04.06], Retrieved from the Internet: <URL: https://towardsdatascience.com/how-to-deep-learning-on-graph-convolutional-networks-7d2250723780>
【文献】HAMON, Ronan, et al.,"From graphs to signals and back: Identification of network structures using spectral analysis",arXiv:1502.04697v3,version v3,[online], arXiv (Cornell University),2016年06月10日,Pages 1-19,[retrieved on 2020.04.06], Retrieved from the Internet: <URL: https://arxiv.org/abs/1502.04697v3>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
グラフのノードに関する第1特徴量及び前記グラフの構造に関する第2特徴量を、逆変換が定義できる変換により第1潜在値に変換する第1変換器、及び、前記第2特徴量を逆変換が定義できる変換により第2潜在値に変換する第2変換器を、前記第1潜在値及び前記第2潜在値に基づいて訓練する、
訓練装置。
【請求項2】
前記1又は複数のプロセッサにより、
前記第1変換器及び前記第2変換器は、非線形な写像に基づく変換を行う、
請求項1に記載の訓練装置。
【請求項3】
前記1又は複数のプロセッサにより、
前記第1変換器及び前記第2変換器は、NVP(Non-volume Preserving)写像に基づく写像を実行する、
請求項2に記載の訓練装置。
【請求項4】
前記1又は複数のプロセッサにより、
前記第1変換器は、前記第1特徴量及び前記第2特徴量に写像を複数回適用して前記第1潜在値を算出し、
前記第2変換器は、前記第2特徴量に写像を複数回適用して前記第2潜在値を算出する、
請求項1から請求項3のいずれかに記載の訓練装置。
【請求項5】
前記グラフは化合物のグラフであって、
前記第1特徴量は、前記化合物の原子を表す情報であり、
前記第2特徴量は、隣接状態を表す情報である、
請求項1から請求項4のいずれかに記載の訓練装置。
【請求項6】
前記第1特徴量は、前記グラフのノードの特徴を示す第1テンソルであり、
前記第2特徴量は、前記グラフの構造を示す第2テンソルである、
請求項1から請求項5のいずれかに記載の訓練装置。
【請求項7】
前記1又は複数のプロセッサは、さらに、
取得した前記グラフに関するデータを、前記第1テンソル及び前記グラフの隣接行列を含む前記第2テンソルに加工する、
請求項6に記載の訓練装置。
【請求項8】
前記1又は複数のプロセッサは、
前記第1潜在値及び前記第2潜在値が所定の分布に従うように前記第1変換器及び前記第2変換器を訓練する、
請求項1から請求項7のいずれかに記載の訓練装置。
【請求項9】
前記1又は複数のプロセッサは、
前記第1潜在値及び前記第2潜在値の事前分布に基づいて、前記第1変換器及び前記第2変換器を訓練する、
請求項1から請求項8のいずれかに記載の訓練装置。
【請求項10】
前記第1変換器は、第1ニューラルネットワークモデルを備え、
前記1又は複数のプロセッサは、
前記第1ニューラルネットワークモデルを訓練する、
請求項1から請求項9のいずれかに記載の訓練装置。
【請求項11】
前記第2変換器は、第2ニューラルネットワークモデルを備え、
前記1又は複数のプロセッサは、
前記第2ニューラルネットワークモデルを訓練する、
請求項1から請求項10のいずれかに記載の訓練装置。
【請求項12】
請求項10又は11に記載の訓練装置を用いて、ニューラルネットワークモデルを生成する、
モデル生成方法。
【請求項13】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
逆変換が定義できる変換を実行可能な第1変換器を用いて、グラフのノードに関する第1特徴量及び前記グラフの構造に関する第2特徴量を第1潜在値に変換し、
逆変換が定義できる変換を実行可能な第2変換器を用いて、前記第2特徴量を第2潜在値に変換する、
生成装置。
【請求項14】
前記1又は複数のプロセッサにより、
前記第1変換器及び前記第2変換器は、非線形な写像に基づく変換を行う、
請求項13に記載の生成装置。
【請求項15】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第2逆変換器を用いて、第2データを第1グラフの構造に関する第2特徴量へと変換し、
第1逆変換器及び前記第2特徴量を用いて、第1データを前記第1グラフのノードに関する第1特徴量へと変換する、
生成装置。
【請求項16】
前記第1データは、前記1又は複数のプロセッサにより、第2グラフのノードに関する第1特徴量及び前記第2グラフの構造に関する第2特徴量を、逆変換が定義できる第1変換器を用いて第1潜在値に変換したものであり、
前記第2データは、前記1又は複数のプロセッサにより、前記第2グラフの構造に関する前記第2特徴量を、逆変換が定義できる第2変換器を用いて第2潜在値に変換したものである、
請求項15に記載の生成装置。
【請求項17】
前記第1グラフと前記第2グラフは同じグラフである、
請求項16に記載の生成装置。
【請求項18】
前記1又は複数のプロセッサにより、
前記第1逆変換器は、前記第1変換器の逆変換を実行し、
前記第2逆変換器は、前記第2変換器の逆変換を実行する、
請求項16又は請求項17に記載の生成装置。
【請求項19】
前記第1データ及び前記第2データは、乱数に基づいて生成される、
請求項15に記載の生成装置。
【請求項20】
前記第1データ及び前記第2データは、所定の分布に基づいて生成される、
請求項15に記載の生成装置。
【請求項21】
前記1又は複数のプロセッサは、さらに、
前記第1データ及び前記第2データを変換する前に、前記第1データ又は前記第2データの少なくとも一方にノイズを付与する、
請求項15、請求項16、又は、請求項16に従属し請求項17に従属しない請求項18のいずれかに記載の生成装置。
【請求項22】
前記1又は複数のプロセッサは、さらに、
前記第1逆変換器を用いて変換された前記第1特徴量及び前記第2逆変換器を用いて変換された前記第2特徴量に基づいて、前記第1グラフのデータを生成する、
請求項15から請求項21のいずれかに記載の生成装置。
【請求項23】
前記1又は複数のプロセッサは、
ワンショット方式で前記第1グラフのデータを生成する、
請求項22に記載の生成装置。
【請求項24】
前記第1逆変換器は、第1ニューラルネットワークモデルを備える、
請求項15から請求項23のいずれかに記載の生成装置。
【請求項25】
前記第2逆変換器は、第2ニューラルネットワークモデルを備える、
請求項15から請求項24のいずれかに記載の生成装置。
【請求項26】
前記第1グラフのノードに関する前記第1特徴量は、前記第1グラフのノードの特徴量を示す第1テンソルであり、
前記第1グラフの構造に関する前記第2特徴量は、前記第1グラフの構造を示す第2テンソルである、
請求項15から請求項25のいずれかに記載の生成装置。
【請求項27】
前記第1グラフは化合物のグラフであって、
前記第1グラフのノードに関する前記第1特徴量は、前記化合物の原子を表す情報であり、
前記第1グラフの構造に関する前記第2特徴量は、隣接状態を表す情報である、
請求項15から請求項26のいずれかに記載の生成装置。
【請求項28】
請求項15から請求項27のいずれかに記載の生成装置を用いて、前記第1グラフを生成する、
グラフ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、訓練装置、推定装置、訓練方法、推定方法及びプログラムに関する。
【背景技術】
【0002】
グラフデータ生成モデルは、適当な乱数等を入力すると、グラフ構造を有するデータを生成するアルゴリズムを備える数学モデルである。例えば、新規化合物、薬物の創出における計算機による候補物質生成等に利用できる。このグラフデータ生成モデルの研究が、近年急速に発展してきている。グラフデータ生成モデルの構造、訓練の代表的なものとして、Variational AutoEncoder(VAE)と、Generative Adversarial Networks(GAN)の2つがある。また、グラフデータの生成手順として、グラフにノードを1つずつ加える、又は、削除するインクリメンタルな手法と、全ノードの関係を表す量を一度に生成するワンショットの方法がある。
【先行技術文献】
【非特許文献】
【0003】
【文献】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
【発明の概要】
【発明が解決しようとする課題】
【0004】
精度の高いグラフ生成アルゴリズムの訓練装置、また、精度の高いグラフデータ推定装置を提供する。
【課題を解決するための手段】
【0005】
一実施形態よれば、訓練装置は、ノード特徴量及び構造に関するデータを少なくとも含む、グラフに関するデータを取得する、取得部と、前記グラフのノード特徴量を示す第1テンソル及び前記グラフの構造を示す第2テンソルを、逆変換が定義できる変換により第1潜在値に変換する第1変換器、及び、前記第2テンソルを逆変換が定義できる変換により第2潜在値に変換する第2変換器を、前記第1潜在値及び前記第2潜在値に対する事前分布に基づいて訓練する、訓練部と、を備える。
【図面の簡単な説明】
【0006】
図1】一実施形態に係る訓練装置の機能を示すブロック図。
図2】一実施形態に係るテンソルを示す図。
図3】一実施形態に係る訓練装置の処理の流れを示すフローチャート。
図4】一実施形態に係る推定装置の機能を示すブロック図。
図5】一実施形態に係る訓練装置の処理の流れを示すフローチャート。
図6】一実施形態に係る推定装置の機能を示すブロック図。
図7】一実施形態に係る推定装置の処理の流れを示すフローチャート。
図8】一実施形態に係るハードウェア実装例を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。化合物の例を挙げて説明するが、本実施形態の適用範囲は、これに限られるものではない。例えば、他の態様としては、回路設計、交通網・ネットワーク等のインフラ整備、建築、言語学、ウェブ等における種々のグラフに適用できるものである。また、化合物の場合も、ノードの要素は原子として説明するが、これには限られず、例えば、分子、基(group、radical)等により示される意味のある集まりであってもよい。
【0008】
図1は、一実施形態に係る訓練装置1の機能を示すブロック図である。訓練装置1は、入力部10と、記憶部12と、加工部14と、訓練部16と、出力部18と、を備える。この他に、データを変換するデータ変換器であって訓練装置1の訓練の対象となる、第1変換器100と、第2変換器120と、を備える。なお、第1変換器100と第2変換器120が訓練装置1の外部にあり、訓練装置1から参照できる構成であってもよい。また、記憶部12が訓練装置1の外部にあり、訓練装置1から参照できる構成であってもよい。
【0009】
入力部10は、グラフに関するデータを取得する。すなわち、入力部10は、データを取得する取得部として機能する。グラフに関するデータは、ノード及びエッジのデータであってもよいし、ノードの特徴を示すテンソルと隣接状態を示すテンソルのデータに分割されているデータであってもよい。すなわち、グラフのノードの特徴量と、隣接状態が分かるデータであればその形式は問わない。隣接状態とは、ノードの接続を示す状態量であり、例えば、隣接行列を備える。さらに、化合物である場合には、2重結合、3重結合等を考慮した量であってもよい。なお、化合物のグラフでは一般的に無向グラフであるが、隣接状態を示すテンソルに、有向の状態量を追加することにより、有向グラフに対しても本実施形態を適用することは可能である。
【0010】
記憶部12は、処理に必要となる訓練データ等のデータを記憶する。入力部10が取得したデータを記憶してもよい。また、訓練対象となる各種ネットワークを構成するパラメータを記憶してもよい。さらに、訓練装置1がソフトウェアの処理がハードウェアを用いて具体的実行される場合には、実行に必要なプログラム、バイナリデータ等を記憶してもよい。この場合、記憶部12に記憶されている実行ファイルをプロセサが読み出すことにより処理を実行してもよい。
【0011】
加工部14は、入力部10が取得したデータが、グラフのノードの特徴量を示す第1テンソル及びグラフの構造を示す第2テンソルではない場合に、当該データを第1テンソル及び第2テンソルへと加工する。
【0012】
図2は、第1テンソル及び第2テンソルの一例を示す。図に示す罫線は、見やすくするために描いたものであり、テンソルの要素は、罫線内に記載された数値で示される。第1テンソルは、例えば、(特徴量数)×(ノード数)の次元を有する行列として示される。化合物である場合、一例として、ノード特徴量は、原子(例えば、それぞれ炭素、窒素、酸素、水素の原子)であり、各ノードにどの原子が存在しているかを示す行列となる。この場合、各ノードに対して1が示されている原子が1つ存在し、この1が示されている原子が各ノードを構成する原子を意味する。
【0013】
一方、第2テンソルは、例えば、(ノード数)×(ノード数)×(パターン数)の次元を有するテンソルであり、隣接行列をパターン数分備えるテンソルとして示される。第1パターンは、1重結合しているノード同士を表し、第2パターンは、2重結合しているノード同士を表す。例えば、図2に示す第2テンソルについては、第1ノードと第2ノードは、第1パターン及び第2パターンで1、第3パターンで0であるので、2重結合であることを示す。同様に、第1ノードと第3ノードは、第1パターンで1であり、第2パターンで0であるので、単結合であることを示す。このような行列表現には限られず、例えば、1重結合の場合には第1パターンを1、他のパターンを0にし、2重結合の場合には、第2パターンを1、他のパターンを0としてもよい。また、例えば、隣接するノード同士についてπ結合、σ結合等を示すパターンをさらに備えていてもよい。
【0014】
加工部14は、入力部10が入力したデータが、例えば、図2に示すような構造ではない場合に、図2に示すような構造となるようにデータを加工する。例えば、ノードの原子と、各ノード間を接続するエッジの状態を示すデータが入力された場合、ノードの原子を第1テンソルとして加工し、エッジの状態を示すデータから、各エッジが多重結合か否かを確認して、各ノードの接続状態を示す第2テンソルをとして加工する。これには限られず、構造式の図面を表すデータ、また、構造式をXML形式で示すデータを入力としてもよい。これには限られず、グラフを正しく表すデータであれば、入力されるデータはどのようなものでもよく、加工部14は、入力されるデータの形式に基づいて複数存在していてもよい。加工部14は、例えば、上記の加工を、ルールベースの変換式を用いて加工してもよいし、機械学習により訓練(学習)された学習済みモデル(訓練済みモデル)を用いて加工してもよい。
【0015】
また、入力部10に第1テンソル、第2テンソルが入力される場合、又は、単純に第1テンソルと第2テンソルとを結合した値が入力される場合には、加工部14は必須の構成ではない。この場合、図1に戻り、破線で示すように、入力部10から直接的に第1変換器100、第2変換器120へと値が出力されてもよい。また、加工部14の有無に拘わらず、入力部10が取得したデータは、少なくとも一時的に記憶部12に記憶されて、必要になった場合に、加工部14又は各変換器に参照されてもよい。
【0016】
第1変換器100及び第2変換器120は、逆写像が容易に定義できる写像、例えば、NVP(Non-volume Preserving)写像を用いて表される。第1変換器100及び第2変換器120は、例えば、非線形な写像により、また、複数回適用される写像を用いて表されてもよい。以下に、一例として具体的な写像を説明するが、本実施形態に係る写像は、これに限られるものではない。本実施形態においては、NVP写像に基づいた写像は、以下の式により示されるものとする。
【数1】
【0017】
ここで、s(x)、t(x)は、任意の写像であり、○の中に・を記載した記号(odot)は、アダマール積(要素同士の積)を示す。例えば、機械学習モデル、特に、ディープニューラルネットワーク等の複雑な写像を用いても学習が困難ではない。本実施形態においては、この写像を、グラフデータが適用できるようにする。以下、Nをノード数、Mを原子の種類(特徴量数)、Pを結合の種類(パターン数)とする。これらのN、M、Pの値は訓練及び推定において所定の値であるものとする。所定の値とすることにより、ワンショット方式におけるグラフデータから潜在値への変換(及び後述する逆変換)が実行可能となる。
【0018】
第1変換器100は、第1テンソル及び第2テンソルを、第1潜在値へと変換する。この変換は、例えば、[数1]の写像に基づいたグラフデータを処理可能なニューラルネットワークを備える変換写像により実行される。第1テンソルに対する第1潜在値を少なくとも1回は更新するように、以下の写像をL1回繰り返すことにより、第1テンソル及び第2テンソルから、第1潜在値を算出する。
【数2】
【0019】
ここで、zX(∈RN×M)は第1潜在値を示すテンソル、fは第1潜在値の行のインデクス、Aは第2テンソルを示す。fは、fupdateとfparamとに分けて計算され、fupdateは更新対象として選択されている行の集合、fparamはfのうち更新対象として選択されていない行の集合を示す。sf及びtfは、変換の中心となる写像であり、それぞれスケールとトランスレーションである。例えば、zX[fupdate,:]は、zXのうち、図2の例で示すと、更新する行の要素の集合を示し、zX[fparam,:]は、更新する行以外の要素の集合を示す。初期値は、例えば、zX=Xとしてもよい。
【0020】
l(<L1)回目の更新では、fupdate=l、fparam={x|xはl以外の[1,N]を順序で並べたもの}、としてもよい。この場合、L1=Nとなる。N回の更新を繰り返すことにより、第1潜在値の各行、すなわち、全ての要素が更新される。sf及びtfは、例えば、R(N-1)×M+N×N×Pの行列をR1×Mのベクトルへと変換する写像として表される。
【0021】
別の例として、l回目の更新でfupdate=lとすることは同様であるが、fparamとして用いるものに、l行目を0、それ以外を1としてマスキングしたものを用いてもよい。この場合、sf及びtfは、例えば、RN×M+N×N×Pの行列をR1×Mのベクトル又はRN×Mの行列へと変換する写像として表される。N×M次元への行列への変換である場合には、更新のタイミングでfupdateに対応する行を1とし、その他を0とするマスクを掛けて更新を行う。
【0022】
いずれの場合においても、sf及びtfは、パラメータを計算する写像であり、学習可能なパラメータを有する任意の写像としてもよい。特に、第2テンソルであるAというグラフを含む変換を行うので、グラフデータを扱うことのできるニューラルネットワークを用いて表現されることにより効率よく学習を行うことが可能となる。例えば、GNN(Graph Neural Network)、GCN(Graph Convolutional Network)、Relational GCN等を用いることにより学習の効率化を図ることが可能である。しかしながら、これらの手法に限られるものではなく、適切にグラフデータを変換し、訓練が可能であるモデル、例えば、MLP(Multi-Layer Perceptron)等であれば、どのようなモデルであっても構わない。
【0023】
一方、第2変換器120は、第2テンソルを、第2潜在値へと変換する。この変換も、第1変換器100と同様に、第2テンソルに対する第2潜在値の各要素を少なくとも1回は更新するように、以下の写像をL2回繰り返すことにより、第2テンソルから、第2潜在値を算出する。
【数3】
【0024】
ここで、zA(∈RN×N×P)は第2潜在値を示すテンソル、aは第2潜在値の行のインデクスを示す。aは、aupdateとaparamとに分けて計算され、aupdateは更新対象として選択されている行の集合、aparamはaのうち更新対象として選択されていない行の集合を示す。sa及びtaは、変換の中心となる写像であり、それぞれスケールとトランスレーションである。例えば、zA[aupdate,:,:]は、zAのうち、図2の例で示すと、パターン数分の更新する行の要素の集合を示し、zA[aparam,:,:]は、パターン数分の更新する行以外の要素の集合を示す。初期値は、例えば、za=Aとしてもよい。
【0025】
l(<L2)回目の更新では、aupdate=l、aparam={y|yはl以外の[1,N]を順序で並べたもの}、としてもよい。この場合、L2=Nとなる。N回の更新を繰り返すことにより、第2潜在値の各行、すなわち、全ての要素が更新される。sa及びtaは、例えば、RN×N×Pの行列をR1×N×Pのベクトルへと変換する写像として表される。
【0026】
別の例として、l回目の更新でaupdate=lとすることは同様であるが、aparamとして用いるものに、l行目を0、それ以外を1としてマスキングしたものを用いてもよい。この場合、sa及びtaは、例えば、RN×N×Pの行列をR1×N×Pのベクトル又はRN×N×Mの行列へと変換する写像として表される。N×N×M次元への行列への変換である場合には、更新のタイミングでパターンに亘り、aupdateに対応する行を1とし、その他を0とするマスクを掛けて更新を行う。
【0027】
いずれの場合においても、sa及びtaは、パラメータを計算する写像であり、学習可能なパラメータを有する任意の写像としてもよい。例えば、機械学習を用いて訓練が可能であるモデル、MLP(Multi-Layer Perceptron)等であれば、どのようなモデルであっても構わない。
【0028】
なお、第1潜在値及び第2潜在値を求める写像における繰り返しにおいては、行ごとに指定するものとしたが、行単位に更新することには限られず、テンソルの要素ごとに更新する要素と更新しない要素とを設定してもよい。すなわち、例えば、[数2]を以下のように書き換えてもよい。[数3]等についても同様に行ではなく要素で指定してもよい。
【数4】
【0029】
この場合、fupdateは、更新対象となる要素のインデクスの集合、fparamは、それ以外の要素のインデクスの集合である。この場合においても、更新する要素を選択する順番は、変換、逆変換において所定の順番であるものとする。すなわち、訓練及び推定の各フェーズにおいて所定の順番が守られているのであれば、第1テンソル及び第2テンソルから第1潜在値及び第2潜在値を求める変換における更新について、任意の要素単位及び任意の順番で行ってもよい。
【0030】
さらに、上述のようにl回目の更新でl行目ではなく、更新の対象とする行の値を、全ての行について更新がされるように所定の順番で入れ替えてもよい。逆変換は、所定の順番の逆の順番で実行される。この所定の順番は、あらかじめ乱数で定義し、訓練及び推定時には固定されるものとしてもよい。また、行単位で行う場合においても、1行ずつ行う必要は無く、全ての行が更新されるように、複数行ごとに所定の順番で更新をしてもよい。このように、全ての潜在値の要素が更新される変換であればよい。
【0031】
例えば、上述したように、第1変換器100と第2変換器120とのそれぞれの変換において、l回目の更新でl行目を更新するとした場合、L1=L2となるが、これには限られない。また、ノードの行に着目したが、第1テンソルにおける特徴量の列に着目し、更新する列と、更新しない列とに分けて変換をしてもよい。第2テンソルにおいては、例えば、全てのパターンの同じノードの行を更新するとしたが、これには限られず、自由に更新する要素と更新しない要素とを設定してもよい。また、更新する要素に対して、他の全ての要素を変換していたが、これには限られない。すなわち、更新する要素に対して、他の全ての要素ではなく、少なくとも一部の要素を用いて更新してもよい。
【0032】
zX、zAの初期値として、X、Aの値をそのまま用いるとしたが、これも、これに限られるものではない。X、Aの値に対して、所定の処理、例えば、ノイズを重畳してzX、zAの初期値としてもよい。
【0033】
図1に戻り、訓練部16は、訓練を実行することにより、第1変換器100及び第2変換器120を最適化する。訓練の対象となるのは、sf、tf、sa及びtaの各変換である。上述したように、これらの変換に備えられるネットワークの構成は、自由に決めることができる。訓練部16は、これらの変換を最適化できる機械学習、ディープラーニングの手法で訓練を行う。例えば、SGD(確率的勾配降下法:Stochastic Gradient Descent)の手法を用いて訓練を行ってもよい。もちろん、これ以外の機械学習の手法を用いてもよい。
【0034】
SGDを用いる場合、訓練部16は、対数尤度を以下の式に基づいて算出し、尤度が大きくなるように訓練する。
【数5】
zは、結合された潜在値であり、第1潜在値と第2潜在値とを結合したものである。より具体的には、各テンソルを構成する要素を、第1潜在値zXの1行目1列目からM列目、2行目1列目からM列目、・・・、N行目1列目からM列目、第2潜在値zAの1パターン目1行目1列目からN列目、・・・、N行目1列目からN列目、2パターン目1行目1列目から・・・、Pパターン目N行目1列目からN列目、と結合し、第1潜在値及び第2潜在値の全ての値を有するベクトルである。また、pz(z)は、結合された潜在値zに対する事前分布であり、例えば、zの要素数と同じ次元を有する多次元正規分布を利用して生成する。detの対象である∂z/∂Gは、G=(A,X)の値におけるzのヤコブ行列であり、右辺の第2項のlogの中身は、ヤコビアンである。
【0035】
[数2]及び[数3]で表されるように第1変換器100及び第2変換器120を定義することにより、ヤコブ行列をブロック三角行列とすることが可能となる。このため、ヤコビアンを算出するコストを軽減することが可能となる。また、同様に、これらの式で表されるように変換を定義することにより、逆変換を定義することも可能となる。もちろん、[数4]のように、より一般化しても、同様のことが言えることに留意されたい。
【0036】
第1変換器100及び第2変換器120により、第1潜在値及び第2潜在値が繰り返しの更新により変換された後、訓練部16は、[数5]に基づいて対数尤度を算出する。まず、変換後の第1潜在値及び第2潜在値から結合された潜在値zを取得し、Gの値におけるヤコビアンを算出し、事前確率に基づいて[数5]により対数尤度を算出する。算出された対数尤度に基づいて学習を行うことによりsf、tf、sa及びtaの各変換が最適化される。事前確率として正規分布を用いることにより、特徴量及び構造を示すグラフの潜在値が正規分布となるように訓練される。
【0037】
SDGを用いる場合、sf、tf、sa及びtaの全てのパラメータを更新するのではなく、一部のパラメータを更新しないようにしてもよい。例えば、事前分布pzを多次元正規分布とする場合には、この正規分布の平均ベクトルがゼロベクトルとなるようにしてもよい。別の例として、この共分散行列を対角行列としてもよい。
【0038】
なお、最適化の手法はこれには限られず、例えば、変換を行った後のデータが正規分布にしたがうように、正規分布にしたがった乱数を教師データとして用いて、他の教師あり学習により最適化を行ってもよい。SGDに限られず、種々のニューラルネットワークの最適化手法を用いることも可能である。また、複数のグラフデータに対しての処理は、ミニバッチ処理等を用いて効率化、高精度化を図ってもよい。訓練部16は、このように、種々の手法を用いて、複数のグラフデータに対する第1変換器100及び第2変換器120の出力に基づいてsf、tf、sa及びtaの最適化を行う。最適化の終了条件についても、用いる手法に基づいて決定する。
【0039】
出力部18は、訓練部16が最適化したネットワークのパラメータ等を出力する。なお、本実施形態において出力とは、インタフェースを介して訓練装置1の外部へと出力することのみならず、訓練装置1内の記憶部12へ最適化されたパラメータ等を記憶させることも含む概念である。
【0040】
図3は、訓練装置1の処理の流れを示すフローチャートである。この図3を用いて上記した各部の動作について簡単にまとめる。詳しい動作については、上記を参照されたい。
【0041】
まず、入力部10を介してグラフに関するデータを取得する(S100)。
【0042】
次に、必要であれば、加工部14により第1テンソル、第2テンソルを生成する(S102)。
【0043】
次に、第1変換器100を用いて第1潜在値を算出する(S104)。
【0044】
次に、第2変換器120を用いて第2潜在値を算出する(S106)。なお、第1潜在値と第2潜在値の算出順序は、これに限られるものではない。例えば、S106の後にS104の処理を行ってもよいし、並列に行ってもよい。
【0045】
次に、訓練部16は、潜在値の対数尤度を算出する(S108)。
【0046】
次に、訓練部16は、算出した対数尤度に基づいて、第1変換器100及び第2変換器120に備えられるニューラルネットワークに関するパラメータを更新する(S110)。例えば、対数尤度に基づいて誤差逆伝播を行い、各種パラメータを更新する。この更新は、上述においては、1のグラフデータに対する処理を説明したが、複数のグラフデータに対して対数尤度を求めてネットワークの更新を行う。例えば、訓練データであるグラフデータ全てに対して1セットのニューラルネットワークのパラメータを設定し、この1セットのパラメータを更新することにより、全てのグラフデータに対して対数尤度が大きくなるよう、所謂バッチ学習をしてもよい。別の例としては、訓練データを所定数のミニバッチに分割し、所謂ミニバッチ学習により更新をしてもよい。この処理は、利用できる資源に応じて適宜変更することが可能である。
【0047】
次に、訓練部16は、訓練が終了条件を満たしたか否かを判断する(S112)。終了条件を満たしていない場合(S112:NO)、S104からの処理を繰り返す。メモリ等の資源の問題により、第1テンソル等を適宜消去している場合にはS102から繰り返してもよい。
【0048】
終了条件を満たしている場合(S112:YES)、出力部18は、最適化されたネットワークのパラメータ等を出力して(S114)、処理を終了する。
【0049】
以上のように、本実施形態によれば、ノード数及び特徴量数が設定されている状態において、グラフデータを潜在値、例えば、正規分布にしたがった潜在値へと変換する写像を、GCN、GNN、あるいはその他のネットワークを用いた手法により最適化することにより、計算コストを抑え、かつ、高精度に訓練することが可能となる。また、上記の第1変換器100、第2変換器120は、逆演算を容易に定義することができるので、訓練装置1によるグラフデータから潜在値への最適化を行うとともに、以下に説明する潜在値からグラフデータへの逆変換も容易に最適化できることを意味する。
【0050】
このように訓練したモデルにしたがえば、滞在変数zの空間において、簡単な線形回帰モデル等の予測モデルを用いると、zの値と、その値から生成される化合物グラフが有する物質の特性値、例えば、水への溶けやすさ等、を高精度に予測することが可能となる。逆に、当該予測値が高くなるようなzを選択することにより、性質のよい可能性が高いグラフを効率よく生成することができる。
【0051】
例えば、GANに基づく生成モデルは、あるグラフデータをエンコードして、デコードした場合に、同じグラフデータが生成できるとは限られず、訓練等の正当性、信頼性を検証することが容易ではない。また、VAEに基づく生成モデルは、尤度の近似値を目的地とするため、訓練の正当性は検証できるが、訓練されたネットワークの内部表現とグラフデータとの相互変換における再現性が高くなる保証はない。インクリメンタルの手法は、1つのノードを操作する度にグラフの妥当性をチェックするため、適切なタイミングでグラフの操作を終了することができるが、それ故に終了判定が必要であり、また、生成物のグラフの大きさを規定することが困難である。ワンショットの手法では、必ず指定したサイズのグラフを生成することが可能であるが、ノード数が増えるとモデルの学習(訓練)、グラフの生成についてコストが急速に高くなるため、大ノード数のグラフを生成することが困難である。以上のような問題を、本実施形態によれば解決することが可能である。
【0052】
図4は、本実施形態に係る推定装置2の機能を示すブロック図である。推定装置2は、入力部20と、記憶部22と、ノイズ生成部24と、第1逆変換器200と、第2逆変換器220と、生成部26と、出力部28と、を備える。推定装置2は、入力された乱数情報、又は、ノイズ生成部24により生成されたノイズデータから、当該分布に基づいてグラフデータを生成する。すなわち、推定装置2は、所定のデータからグラフを生成するグラフ生成装置として機能してもよい。
【0053】
入力部20は、データを取得する。データは、例えば、N×Mの要素を有する第1データと、N×N×Pの要素を有する第2データである。このデータは、例えば、正規分布、一様分布等により設定された乱数に基づく数値であってもよい。また、ユーザが任意に選択した値を有するデータであってもよい。入力部20が取得したデータは、一時的に記憶部22へと記憶されてもよい。
【0054】
記憶部22は、推定装置2に必要なデータ等を記憶する。上述した訓練装置1と同様に、推定装置2を動作させるためのプログラムや、推定装置2の推定に使用するデータ等を記憶してもよい。
【0055】
ノイズ生成部24は、入力部20から乱数データが入力されない場合に、第1データ及び第2データを生成する。この場合、入力部20からは、ユーザにより、例えば、乱数データを生成してグラフを生成する旨の指示がされてもよい。この指示を受け、ノイズ生成部24が乱数データを生成する。
【0056】
第2逆変換器220は、第2データを第2潜在値として、グラフの構造を示す第2テンソルへと変換する。この第2逆変換器220は、前述した訓練装置1により最適化された学習済みモデルを有する第2変換器120の逆変換を行う変換器である。前述のように、第2変換器120を適切に定義することにより、この第2変換器120の逆変換として、第2逆変換器220を定義することが可能となる。例えば、第2変換器120がMLPで定義されている場合には、このMLPの逆変換となるMLPを第2逆変換器220として定義する。他の形式に基づくネットワークの場合も同様である。より具体的には、[数3]の式の逆変換を行う式により第2逆変換器220は定義される。例えば、第2変換器120の変換の第L回目の更新をまず逆変換し、逐次的に第1回目の更新まで逆変換を行うことにより、第2逆変換器220が定義される。
【0057】
第1逆変換器200は、第1データを第1潜在値とし、第2逆変換器220により変換された第2テンソルを用いて、ノード特徴量を示す第1テンソルへと変換する。この第1逆変換器200は、前述した訓練装置1により最適化された学習済みモデルを有する第1変換器100の逆変換を行う変換器である。第2逆変換器220と同様に、第1変換器100を適切に定義することにより、第1逆変換器200をその逆変換として定義することができる。第1変換器100がGNN、GCN等の変換である場合に、その逆変換として第1逆変換器200が定義される。より具体的には、[数2]の式の逆変換を行う式により、第1逆変換器200は、定義される。更新については、第2逆変換器220と同様であるので省略する。
【0058】
生成部26は、第1逆変換器200により変換された第1テンソル及び第2逆変換器220により変換された第2テンソルに基づいて、グラフデータを生成する。なお、生成部26は、必須の構成ではない。
【0059】
出力部28は、生成部26が生成したグラフデータを出力する。生成部26が備えられていない場合には、出力部28は、第1テンソル及び第2テンソルの値を出力してもよい。
【0060】
図5は、本実施形態に係る推定装置2の処理の流れを示すフローチャートである。
【0061】
まず、入力部20は、第1データ及び第2データを取得する(S200)。このステップは、省略されてもよく、省略された場合には、例えば、ノイズ生成部24が乱数データを生成するステップが代わりに実行される。
【0062】
次に、第2データに基づいて、第2逆変換器220により第2テンソルを推定する(S202)。
【0063】
次に、第1データ及びS202で推定された第2データに基づいて、第1逆変換器200により第1テンソルを推定する(S204)。
【0064】
次に、生成部26は、第1テンソル及び第2テンソルに基づいてグラフデータを生成する(S206)。
【0065】
次に、出力部28は、生成されたグラフデータを出力する(S208)。第1テンソル及び第2テンソルをそのまま出力する場合には、S206のステップを省略して、出力部28が推定された第1テンソル及び第2テンソルを出力する。
【0066】
以上のように、本実施形態に係る推定装置2によれば、前述の訓練装置1により訓練された第1変換器100、第2変換器120にそれぞれ基づいて定義された第1逆変換器200、第2逆変換器220により、乱数データからグラフを高精度に変換することが可能となる。本実施形態に係る逆変換器は、乱数の分布(潜在値)からグラフの推定(生成)を行うので、この分布を変えることにより、異なるグラフを容易に推定(生成)することが可能となる。かつ、同じ分布から推定した場合には、同じグラフデータとなる。すなわち、あるグラフデータを第1変換器100及び第2変換器120により変換し、この変換された潜在値に基づいて第1逆変換器200及び第2逆変換器220により変換を実行すると、入力したグラフデータと同じグラフデータが出力される。
【0067】
さらに、N、M、Pに基づいてグラフを生成するので、ワンショットによりグラフを推定する。一方で、ワンショットの手法であるにも拘わらず、本実施形態の訓練装置1によれば、ノード数が増えてもモデルの学習コストは上述したヤコビアンの算出と逆変換の定義の容易さからそれほど高くならず、ノード数が大きいグラフの生成を高精度に行うことが可能となる。
【0068】
(変形例)
図6は、別の態様に係る推定装置2の機能を示すブロック図である。本変形例に係る推定装置2は、入力部20と、記憶部22と、第1逆変換器200と、第2逆変換器220と、生成部26と、出力部28と、を備え、さらに、ノイズ付与部30と、訓練装置1により学習された第1変換器100と、第2変換器120と、を備える。この推定装置2は、例えば、あるグラフデータに対して、当該グラフデータを入力すると、自動的に近傍に存在するグラフデータを推定して出力するものである。
【0069】
同じ符号が付与されている構成については、特に説明が無い限り、前述の実施形態に係る訓練装置1又は推定装置2と同様の構成であるので詳しい説明は省略したものである。
【0070】
第1変換器100は、訓練装置1により訓練された学習済みモデルを備える変換器である。同様に、第2変換器120も、訓練装置1により訓練された学習済みモデルを備える変換器である。
【0071】
ノイズ付与部30は、第1変換器100により第1テンソルから変換された第1潜在値、及び、第2変換器120により第2テンソルから変換された第2潜在値にたいして、ノイズを付与する。付与するノイズのレベル、分散、平均値、乱数のパターン、乱数の生成方法等は、ユーザが設定できるものであってもよい。また、双方の潜在値にノイズを付与してもよいし、いずれか一方の潜在値にノイズを付与してもよい。
【0072】
第1逆変換器200及び第2逆変換器220は、ノイズが付与された潜在値のデータを変換して、第1テンソル及び第2テンソルをそれぞれ推定する。
【0073】
このように、本変形例に係る推定装置2は、グラフデータが入力されると、潜在値へと変換し、当該潜在値にノイズを付与した上で逆変換を行って、グラフデータを出力する。
【0074】
図7は、本変形例に係る推定装置2の処理の流れを示すフローチャートである。
【0075】
まず、入力部10は、グラフに関するデータを取得する(S210)。
【0076】
次に、必要であれば、加工部14により第1テンソル、第2テンソルを生成する(S212)。
【0077】
次に、学習済みモデルを備える第1変換器100を用いて第1潜在値を算出する(S214)。
【0078】
次に、学習済みモデルを備える第2変換器120を用いて第2潜在値を算出する(S216)。なお、第1潜在値と第2潜在値の算出順序は、これに限られるものではない。例えば、S216の後にS214の処理を行ってもよいし、並列に行ってもよい。
【0079】
次に、ノイズ付与部30は、算出された第1潜在値及び第2潜在値にノイズを付与する(S218)。
【0080】
以下の流れは、前述の実施形態に係る推定装置2と同様であるので省略する。
【0081】
以上のように、本変形例によれば、訓練装置1において訓練された第1変換器100及び第2変換器120を用いて変換したグラフデータに対してノイズを付与することにより、当該グラフデータの近傍のグラフデータを推定することが可能となる。ノイズを付与しない場合には、入力したグラフと同じグラフが生成されてもよい。このように同じグラフが生成されることにより、訓練装置1において訓練された各変換器、及び、各逆変換器が正常に機能していることが分かる。
【0082】
なお、図6においては、第1変換器100と第1逆変換器200は、別の構成であるとしたが、同じモジュールで変換、逆変換ができるように設計してもよい。すなわち、第1変換器100と第1逆変換器200は、同一のモジュール内に備えられていてもよい。第2変換器120と第2逆変換器220についても同様である。
【0083】
上述したように、推定装置2は、ユーザが生成した(乱数)データ、ノイズ生成部24で生成したデータ、あるいは、グラフから変換された潜在値にノイズを付与したデータからグラフを推定する。また、別の例としては、ユーザが生成したデータにノイズ生成部24が生成したノイズデータを付加して、当該データからグラフを推定してもよい。入力されたデータに対してノイズデータを付加する場合、図4の構成において、図6に記載のノイズ付与部30を備え、ノイズ付与部30が入力データにノイズを付与してもよい。ノイズ付与部30は、入力データに対する第1データ及び第2データの少なくとも1つにノイズを付与するものであってもよい。
【0084】
例えば、グラフデータとして第1グラフを推定する場合、入力データ、ノイズデータ又は入力データにノイズ付加したものから第1グラフを生成してもよい。別の例として、生成したいグラフと類似する第2グラフを入力し、変換器により第2グラフの潜在値を求め、当該第2グラフの潜在値から第1グラフを生成してもよい。
【0085】
また、前述の推定装置2、及び、変形例に係る推定装置2について、訓練装置1と別の構成であるとしたが、これには限られない。例えば、訓練装置1と推定装置2が同じ装置内に備えられ、訓練装置1において訓練した後にそのまま推定装置2として機能するものであってもよい。ユーザが、ユーザインタフェースを介して、訓練装置1と推定装置2とを切り替え可能であるものであってもよい。また、訓練装置1及び推定装置2が備える機能が複数のコンピュータにより実装され、各コンピュータがネットワークを介して情報のやり取りを実行するようにしてもよい。
【0086】
前述した実施形態及び変形例における訓練装置1及び推定装置2において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等によるものであってもよい。
【0087】
上記の全ての記載において、訓練装置1及び推定装置2の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU等が実施をしてもよい。ソフトウェアで構成される場合には、訓練装置1及び推定装置2及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。モデルの生成や、モデルに入力をした後の処理は、例えば、GPU等のアクセラレータを使用して行ってもよい。
【0088】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0089】
図8は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。訓練装置1及び推定装置2は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ装置7として実現できる。
【0090】
なお、図8のコンピュータ装置7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図8では、1台のコンピュータ装置7が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0091】
プロセッサ71は、コンピュータの制御装置および演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry)である。プロセッサ71は、コンピュータ装置7の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ71は、コンピュータ装置7のOS(オペレーティングシステム)や、アプリケーションなどを実行することにより、コンピュータ装置7を構成する各構成要素を制御する。プロセッサ71は、上記の処理を行うことができれば特に限られるものではない。訓練装置1及び推定装置2の各構成要素は、プロセッサ71により実現される。
【0092】
主記憶装置72は、プロセッサ71が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により直接読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。訓練装置1及び推定装置2内において各種データを保存するためのメモリは、主記憶装置72または補助記憶装置73により実現されてもよい。例えば、記憶部12は、この主記憶装置72又は補助記憶装置73に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、記憶部12は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【0093】
ネットワークインタフェース74は、無線または有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して通信接続された外部装置9Aと情報のやり取りが行われてもよい。
【0094】
外部装置9Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置9Aは、訓練装置1及び推定装置2の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置7は、訓練装置1及び推定装置2の処理結果の一部を、クラウドサービスのように通信ネットワーク8を介して受け取ってもよい。
【0095】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB(Universal Serial Bus)などのインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部12は、外部装置9Bにより実現されてもよい。
【0096】
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
【0097】
なお、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置7に与える。入力装置からの信号はプロセッサ71に出力される。また、本開示の処理、手段等の一部又は全部は、ネットワークを介したクラウド上に備えられる制御回路及び記憶回路の少なくとも一方に基づいて実行され又は機能されるものであってもよい。
【0098】
上記の全ての記載に基づいて、実施形態の追加、効果又は種々の変形を想到できるかもしれないが、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数式および数値は、一例として示したものであり、これらに限られるものではない。
【0099】
学習、推論の各種演算は、例えば、GPU等のアクセラレータを用いて、又は、ネットワークを介した複数の計算機を用いて、並列処理により実行されるものであってもよい。例えば、学習におけるバッチ処理、推論における各オブジェクトの動作情報の生成等の処理は、複数ある演算コアに演算を振り分けて同じタイミングで実行されるものであってもよい。
【符号の説明】
【0100】
1:訓練装置、10:入力部、12:記憶部、14:加工部、16:訓練部、18:出力部、100:第1変換器、120:第2変換器、
2:推定装置、20:入力部、22:記憶部、24:ノイズ生成部、26:生成部、28:出力部、30:ノイズ付与部、200:第1逆変換器、220:第2逆変換器
図1
図2
図3
図4
図5
図6
図7
図8