(57)【要約】【課題】大規模なネットワークの学習を高速かつ高精度で実行する。【解決手段】訓練装置は、抽象層およびレンダリング層を備えるモデルを訓練する装置であって、入力データを抽象化した抽象データを前記抽象層に入力して得られる特徴量マップをサンプリングする、サンプリング部と、前記サンプリングされた特徴量マップを前記レンダリング層に入力してレンダリング結果を出力する、レンダリング部と、前記レンダリング結果と、教師データと、に基づいて逆伝播を行い、前記抽象層と前記レンダリング層とを更新する、逆伝播部と、を備える。【選択図】図１
2020080050.tif 000002
【特許請求の範囲】
【請求項１】
抽象層およびレンダリング層を備えるモデルを訓練する装置であって、
入力データを抽象化した抽象データを前記抽象層に入力して得られる特徴量マップをサンプリングする、サンプリング部と、
前記サンプリングされた特徴量マップを前記レンダリング層に入力してレンダリング結果を出力する、レンダリング部と、
前記レンダリング結果と、教師データと、に基づいて逆伝播を行い、前記抽象層と前記レンダリング層とを更新する、逆伝播部と、
を備える、訓練装置。
【請求項２】
前記入力データを抽象化して前記抽象データを生成する、抽象データ生成部をさらに備える、請求項１に記載の訓練装置。
【請求項３】
前記抽象データは、前記入力データ及び前記教師データよりも疎なデータである、請求項１又は請求項２に記載の訓練装置。
【請求項４】
前記サンプリング部は、前記特徴量マップを確率的にサブサンプリングする、請求項１乃至請求項３のいずれかに記載の訓練装置。
【請求項５】
前記逆伝播部は、前記レンダリング結果と、前記レンダリング部がレンダリングした前記特徴量マップと同じ条件で前記教師データをサンプリングしたデータと、に基づいて、逆伝播する、請求項１乃至請求項４のいずれかに記載の訓練装置。
【請求項６】
前記逆伝播部は、前記レンダリング結果と、前記教師データとの間の損失を算出し、前記損失の勾配を算出し、前記勾配に基づいて逆伝播する、請求項１乃至請求項５のいずれかに記載の訓練装置。
【請求項７】
複数の前記抽象層と、複数の前記レンダリング層とを備えるモデルであって、前記抽象層のそれぞれが異なる密度のデータについて前記特徴量マップを出力するモデルを訓練する、請求項１乃至請求項６のいずれかに記載の訓練装置。
【請求項８】
請求項１乃至請求項７のいずれかに記載の訓練装置により訓練された、前記抽象層と、前記レンダリング層と、を備える学習済みモデルを備える、推定装置。
【請求項９】
抽象層及びレンダリング層を備えるモデルを訓練する方法であって、
入力データを抽象化した抽象データを、前記抽象層に入力して特徴量マップを出力し、
前記特徴量マップをサンプリングし、
前記サンプリングされた特徴量マップを前記レンダリング層に入力してレンダリングし、
前記レンダリングした結果と、教師データと、に基づいて、逆伝播を行う、
訓練方法。
【請求項１０】
コンピュータに、
抽象層及びレンダリング層を備えるモデルを訓練させる手段であって、
入力データを抽象化した抽象データを前記抽象層に入力して得られる特徴量マップをサンプリングする、サンプリング手段、
前記サンプリングされた特徴量マップをレンダリング層に入力してレンダリング結果を出力する、レンダリング手段、
前記レンダリング結果と、教師データと、に基づいて逆伝播を行い、前記抽象層と、前記レンダリング層とを更新する、逆伝播手段、
を備える手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、訓練装置、訓練方法及びプログラムに関する。
【背景技術】
【０００２】
ディープラーニング等の機械学習の発展により、推定モデルを形成するネットワークは、大規模なものへと変遷してきている。このため、大規模なネットワークを高速に学習する手法を確立することが重要な課題となっている。例えば、初期に比較的小規模なネットワークを学習し、次第に大規模にしていくことでネットワークの大規模化を図る手法が知られている。しかしながら、学習時間ごとに、モデルを増大させるパラメータを決定する必要がある。また、大規模なネットワークを形成する際に、小規模なネットワークを形成した際に用いたデータの密度、粒度、解像度等を上げてネットワークを拡大していくと、そのデータの格納、演算等に必要となるメモリが逼迫され、適宜バッチサイズを調節する必要がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】T. Karras et. al., "Progressive Growing of GANs for Improved Quality, Stability, and Variation," [インターネット] arXive:1710.10196, v3, https://arxiv.org/abs/1710.10196
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、大規模なネットワークの学習を高速かつ高精度で実行する、訓練装置、訓練方法及びプログラムを提供する。
【課題を解決するための手段】
【０００５】
一実施形態によれば、訓練装置は、抽象層およびレンダリング層を備えるモデルを訓練する装置であって、入力データを抽象化した抽象データを前記抽象層に入力して得られる特徴量マップをサンプリングする、サンプリング部と、前記サンプリングされた特徴量マップを前記レンダリング層に入力してレンダリング結果を出力する、レンダリング部と、前記レンダリング結果と、教師データと、に基づいて逆伝播を行い、前記抽象層と前記レンダリング層とを更新する、逆伝播部と、を備える。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に係る訓練装置の機能を示すブロック図。
【図２】一実施形態に係るモデルを示す図。
【図３】一実施形態に係る訓練装置の処理を示すフローチャート。
【図４】一実施形態に係るモデルを示す図。
【図５】一実施形態に係る訓練装置の処理を示すフローチャート。
【図６】一実施形態に係るハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して一実施形態について説明する。
【０００８】
図１は、一実施形態に係る訓練装置１の機能を示すブロック図である。訓練装置１は、入力部１００と、抽象データ生成部１０２と、サンプリング部１０４と、レンダリング部１０６と、逆伝播部１０８と、出力部１１０と、記憶部１１２と、を備え、学習を行うことにより推定モデルを生成する。訓練装置１は、抽象レイヤ（抽象層）と、レンダリングレイヤ（レンダリング層）と、を少なくとも備えるニューラルネットワークモデルの訓練を行う。
【０００９】
入力部１００は、訓練データの入力を受け付ける。入力されるデータは、ユーザがファイルにより入力してもよいし、訓練装置１の内部又は外部に存在するデータベース等から取得してもよい。
【００１０】
抽象データ生成部１０２は、入力データ、又は、前の層において出力されたデータを抽象化する。抽象化とは、入力されたデータを、入力データよりも疎である抽象データにすることを言う。例えば、入力データが画像データである場合には、より解像度の低い画像データに変換することを言う。
【００１１】
例えば、抽象データ生成部１２０は、ニューラルネットワークにより生成され、データを入力するとデータを抽象化し、その特徴量マップを出力する隠れ層を備える。
【００１２】
別の例としては、データの抽象化を抽象データ生成部１２０で行い、ニューラルネットワークモデルのうち、抽象データを扱う抽象レイヤに入力される。抽象レイヤ（抽象層）は、抽象化されたデータについての隠れ層であり、例えば、入力層に続く１又は複数の抽象レイヤを経ることにより、抽象データの特徴量マップを取得する。
【００１３】
このように、ネットワーク内の抽象レイヤという隠れ層において、データの抽象化と特徴量マップの取得を実行するようにしてもよいし、抽象レイヤに入力する抽象データの生成は、ルールベースで行い、その後、抽象データを抽象レイヤに入力し、特徴量マップを取得するようにしてもよい。
【００１４】
サンプリング部１０４は、１又は複数の抽象レイヤにより抽象データから得られた特徴量マップから確率的にサンプリングを行い、サンプリングされた抽象データの特徴量を取得する。ここでいうサンプリングとは、画像データである場合には、例えば、所定のサイズとなるようにクロッピングされたデータを取得する処理であり、動画データである場合には、例えば、所定数ごとにフレームを抽出する処理である。
【００１５】
レンダリング部１０６は、サンプリング部１０４がサンプリングしたデータをレンダリングする。レンダリングとは、例えば、画像、映像等を生成する処理のこと言うが、これには限られず、入力データの特徴量マップをデコードした場合に得られるデータから、出力データの形式へと再構成する処理のことを表す。出力データの形式とは、例えば、敵対的生成ネットワーク（ＧＡＮ：Generative Adversarial Network）であれば、データセットと同じ形式であってもよい。識別器であれば、識別された対象を示すデータであってもよい。この他、他のネットワークにおいても、それぞれモデルから出力されるデータの形式のことを示す。
【００１６】
逆伝播部１０８は、レンダリング部１０６が出力したレンダリングデータと、入力データに対応する教師データのうち、同じ条件の下でサンプリングしたサンプリングデータとを比較して、損失を算出する。算出された損失に基づいて勾配を算出して逆伝播させて誤差逆伝播を実行し、ネットワークの各層におけるパラメータを更新する。例えば、抽象レイヤと、レンダリング部１０６内において、レンダリングを行う層であるレンダリング層のパラメータが更新される。なお、これには限られず、他の層が存在し、当該層のパラメータを更新してもよい。
【００１７】
逆伝播部１０８によるパラメータの更新が反復的に実行され、モデルの学習が終了した後、出力部１１０は、更新された抽象レイヤを含むネットワークを出力する。なお、出力するのではなく、記憶部１１２に学習済みモデルに関するパラメータ等を格納してもよい。図１においては抽象レイヤのみが示されているが、これには限られず、学習済みモデルは、他の一般的なレイヤを含むニューラルネットワークであってもよい。
【００１８】
なお、訓練装置１には、逆伝播部１０８とは別個に、損失算出部、勾配算出部及びパラメータ更新部の少なくとも１つが備えられていてもよい。この場合、損失算出部が算出した損失に基づいて勾配算出部が各レイヤにおける勾配を算出し、この勾配に基づいて逆伝播部１０８がネットワークについて誤差逆伝播を実行し、この逆伝播によりパラメータ更新部がパラメータを更新してもよい。
【００１９】
図２は、訓練されるモデルを中心に、データのフローを示す図である。訓練時と推定時のそれぞれのデータの流れが示されている。図２の下方に示される訓練時において、入力データは、入力層に入力されると、何らかの処理をした後のデータ、又は、入力データそのものから、抽象データ生成部１０２により、疎なデータである抽象データへと変換される。
【００２０】
抽象データは、抽象レイヤにおいて、入力データよりも疎な状態の特徴量マップへと変換される。疎な特徴量マップは、サンプリング部１０４により確率的にサンプリングされ、サンプリングデータが生成される。
【００２１】
サンプリングデータは、レンダリング部１０６においてレンダリングされ、出力層から出力される。出力されたデータは、教師データの同じ条件でサンプリングしたデータと比較され、損失、勾配が算出されて逆伝播に用いられる。抽象レイヤは、このように逆伝播部１０８によりパラメータが更新されていく。必要なだけの反復演算が終了すると、出力部１１０から訓練されたモデルのデータ（例えば、学習済みの入力層、抽象層、出力層のパラメータ）が出力される。
【００２２】
図２の上方に示される推定時には、出力部１１０が出力したモデルのデータに基づきモデルを生成する。例えば、抽象レイヤにおける抽象データが入力されると疎な特徴量マップが生成され、この特徴量マップをレンダリングによりデコードするネットワークが学習済みモデルとして生成される。この学習済みモデルに入力データが入力されることにより、出力層からレンダリング後の出力データが出力される。すなわち、推定装置には、訓練装置１からサンプリング部１０４の機能を取り除いたものが備えられる。
【００２３】
図３は、訓練時における処理の流れを示すフローチャートである。この図３を用いて訓練装置１の処理について説明する。
【００２４】
まず、入力部１００は、入力データを受け付ける（Ｓ１００）。入力データは、例えば、画像と、当該画像に対して出力される画像である。上述したように、データの形式は、画像に限られるものではなく、動画、音声、文字、文章等、所謂学習済みモデルに入力されるデータであればよい。このようなデータの種類は、訓練するモデルに基づいて変更される。
【００２５】
次に、抽象データ生成部１０２は、入力データを抽象化する（Ｓ１０２）。抽象化により、入力データは、より疎なデータへと変換される。上述したように、入力データが画像であれば、解像度の低いデータ、動画であれば、フレームを飛ばしたデータ又は解像度の低いデータ等を抽象データとして生成する。
【００２６】
次に、抽象レイヤに抽象データを入力して、抽象データの特徴量マップを取得する（Ｓ１０４）。特徴量マップの取得は、抽象レイヤに抽象データを順伝播させることにより実行される。
【００２７】
次に、サンプリング部１０４は、得られた特徴量マップを確率的にサンプリングする（Ｓ１０６）。このサンプリングは、例えば、サブサンプリング処理であり、画像データであれば、クロッピング、動画データであれば、所定のフレームごとに抜き出す処理等を示す。また、演算を行っているバッチ数を削減してサンプリングをしてもよい。
【００２８】
次に、レンダリング部１０６は、サンプリングされた特徴量マップをレンダリングする（Ｓ１０８）。例えば、レンダリング部１０６にネットワークを備え、入力されたデータをエンコードすることによりレンダリングデータを取得する。このように、サンプリングされたデータ領域についてレンダリングすることにより、演算に用いるメモリ量、リソース量及び演算時間等の演算コストの削減を図ることが可能となる。さらに、このように演算コストを削減し、より多くの演算を並列に処理することにより、予測精度を向上することにも繋がる。
【００２９】
次に、逆伝播部１０８は、逆伝播をしてネットワークを更新する（Ｓ１１０）。まず、レンダリング部１０６がレンダリングしたデータと、入力部１００が受け付けた教師データのうち抽象データと同じ条件でサンプリングしたデータと、を比較して損失が算出される。この損失に基づいて各パラメータについての勾配が算出され、この勾配に基づいて逆伝播してパラメータを更新する。このように、抽象レイヤ、レンダリング部１０６内のレイヤ、及び、その他必要となるレイヤのパラメータが各々更新される。
【００３０】
次に、訓練装置１は、訓練が終了したか否かを判断する（Ｓ１１２）。訓練の終了は、例えば、上記で算出された損失が所定値を下回った、正解率、適合率、再現率が所定値を上回った等の評価値により判断してもよいし、所定数のエポックの訓練が終了した等の終了条件により判断してもよい。
【００３１】
訓練が終了していないと判断された場合（Ｓ１１２：ＮＯ）、Ｓ１０４からの処理が繰り返される。
【００３２】
訓練が終了したと判断された場合（Ｓ１１２：ＹＥＳ）、適切に、学習済みモデル、又は、学習済みモデルの構築に必要なパラメータ等、ネットワークを再構成するのに必要な学習結果のデータが適切な箇所へと出力される（Ｓ１１４）。
【００３３】
上記の訓練処理は、一般的な機械学習の手法に適用される。例えば、用いるネットワークの種類は、ＭＬＰ（Multi-Layer Perceptron）、ＣＮＮ（Convolutional Neural Network）、また、形式として判定器、又は、生成器（例えばＧＡＮ）等、逆伝播により訓練され、抽象データを用いることが可能なものであればどのようなものであってもよいし、同様に、訓練手法についても、ミニバッチ処理を使用する等の一般的な手法を用いてもよい。勾配も、Ａｄａｍ、ＳＧＤ等、任意の手法を用いることができるし、活性化関数についても勾配を適切に求められるものであればどのようなものを用いてもよい。
【００３４】
推定装置は、訓練装置１により学習されたモデルを用いて、推定を行う。この推定は、サンプリングブロックを用いずに、データを抽象データへと変換し、抽象データの特徴量マップを取得した後、この特徴量マップをレンダリングすることにより出力データを取得する。
【００３５】
以上のように、本実施形態によれば、入力データを抽象データへと変換し、この抽象データを入力とする抽象レイヤを備えるネットワークにより特徴量マップを生成し、さらに、サンプリングしてレンダリングを行うことにより、レンダリングを高速、低リソースで実行することが可能となる訓練装置が実現される。
【００３６】
上述では、１組の抽象レイヤを備え、サンプリングを１回行う例について説明したが、これには限られない。図４は、本実施形態の別の例に係るネットワーク構成を示す図である。
【００３７】
図４に示すように、様々なサンプリングレートにおける抽象レイヤが複数存在していてもよい。まず、入力データは、抽象化され、第１抽象層に入力される。第１抽象層において、第１特徴量マップを取得した後、第１特徴量マップをサンプリングする。サンプリングされた第１特徴量マップは、第２抽象層へと入力される。
【００３８】
第２抽象層へと入力される前に、サンプリングされた第１特徴量は、ルールベースにより密なデータへと変換されてもよい。例えば、１０２４×１０２４ピクセルの画像データが入力される場合、当該画像データが３２×３２の疎なデータとして抽象化され、第１抽象層へ入力される。第１抽象層の出力である第１特徴量マップは、３２×３２のマップであるとする。このマップのうち、サンプリングにより１６×１６の領域が取得される。そして、この１６×１６の領域を３２×３２のより密なデータへと変換して、第２抽象層へと入力される。このように、各抽象層へと入力されるデータがサンプリングされた次の抽象層へと入力される段階で少しずつ密なデータへと変換してもよい。
【００３９】
別の例として、動画である場合には、第１特徴量マップは、３２フレームごとに抽出されたフレームの全体的なデータの特徴量マップであり、徐々に、１６フレームごと、８フレームごと、と、密な特徴量マップを取得する。
【００４０】
別の例として、第２抽象層へとサンプリングされた第１特徴量マップがそのまま入力され、第２特徴量マップとして、第１特徴量マップよりも密なデータが出力されるようにネットワークを形成してもよい。この場合、明示的に密なデータへと変換するのではなく、ネットワークを介することにより密なデータへと変換される。
【００４１】
取得された第２特徴量マップは、同様にサンプリングされ、第３抽象層へと入力される。このような処理を第Ｌ抽象層まで繰り返し、各抽象層において特徴量マップを取得する。
【００４２】
本実施形態では、上記のように、前の層よりも密な特徴量マップが取得されるようにネットワークが形成される。第Ｌ抽象層において特徴量マップが取得されると、各抽象層において取得された特徴量マップがレンダリングされる。このレンダリング結果と、教師データを各層において同じ条件でサンプリングした結果と、を比較して、勾配を算出して逆伝播を実行する。逆伝播により、各抽象層を含むネットワーク全体のパラメータが更新される。
【００４３】
訓練は、前述した形態と同様に、終了条件に基づいて終了が判断され、訓練終了のタイミングで学習されたモデルが出力される。図４の場合におけるデータの流れは、原則図１と同様であるが、図１内において破線で示されるように、サンプリング部１０４から抽象データ生成部１０２へのデータの流れが存在する。
【００４４】
図５は、抽象層が複数ある場合の処理を示すフローチャートである。同じ符号がついている処理は、図３に示す処理とほぼ同等の処理を示す。
【００４５】
入力データが抽象化される（Ｓ１０２）、この抽象化されたデータは、第１抽象層へと入力されて、第１特徴量マップが取得され（Ｓ１０４）、この第１特徴量マップがサンプリングされる（Ｓ１０６）。第１抽象層が最終層であるか否かを判断し（Ｓ１１６）、第１抽象層が最終層ではない場合（Ｓ１１６：ＮＯ）、サンプリングされた第１特徴量マップが第２抽象層へと入力され、第２特徴量マップを取得する（Ｓ１０４）。上述した例のように明示的に密なデータへと変換する場合、Ｓ１０４の前に密なデータへと変換する処理を実行する。
【００４６】
図１には、１つの抽象データ生成部１０２と、１つのサンプリング部１０４とが示されているがこれには限られず、各抽象層に対応して第１サンプリング部、第２サンプリング部、・・・、等が備えら得ていてもよい。また、本実施形態においては、抽象データ生成部１０２は、上述したように、第１抽象層に入力するための疎なデータを生成することは前述の実施形態と同様であるが、第２抽象層以降の抽象層に入力するための前層において出力された特徴量マップよりも密な抽象データを生成するものであってもよい。
【００４７】
第２抽象層において同様な処理が行われた後、第３抽象層、第４抽象層、・・・と、最終層になるまでＳ１０４、Ｓ１０６、Ｓ１１６の処理が繰り返される。最終層である第Ｌ層まで特徴量マップが取得されると（Ｓ１１６：ＹＥＳ）、各層において出力された特徴量マップはレンダリング部１０６によりレンダリングされ（Ｓ１０８）、逆伝播部１０８により、パラメータが更新される（Ｓ１１０）。
【００４８】
最終層においては、Ｓ１０６を省略し、サンプリングを実行しなくてもよい。また、Ｓ１０８において全ての層の特徴量マップからレンダリングを行っているが、これには限られず、各層において、Ｓ１０８でレンダリングして、次の層の処理へと遷移してもよい。
【００４９】
なお、上記の説明において抽象層として記載しているが、これは、必ずしも１層を示すものではなく、複数の層を備えるネットワークであってもよい。すなわち、各抽象層が複数の隠れ層を有するネットワークであってもよい。
【００５０】
以上のように、本実施形態によっても、前述した実施形態と同様に、抽象レイヤを用いてより疎なデータから高効率、高精度な結果を取得するネットワークを訓練することが可能である。
【００５１】
さらに、抽象層を多層化した本実施形態によれば、疎なデータから徐々に密なデータへと処理を行い、最終的には、入出力データと同様の密度のデータへと処理が実行される。低次の層においては、全体的な特徴量マップを取得し、高次になるにつれ、サンプリングされた領域におけるより密な、すなわち、前の層よりも精密さの高い特徴量マップを取得する。このように、本実施形態では、疎ではあるが全体の特徴を捉えるサンプルから、蜜ではあるが局所的な特徴を捉えるサンプルまでを複数生成することにより、精度を保ちつつ高速な学習が可能となる。
【００５２】
本実施形態は、例えば、長軸・高解像度な動画を扱うＧＡＮに適用することが可能である。まず、ジェネレータがノイズベクトルから抽象レイヤを生成する。この抽象レイヤは、サンプリング部１０４によりサンプリングされた後に、レンダリング部１０６において、部分的な出力サンプル、例えば、部分的な動画を生成する。一方、ディスクリミネータは、部分的な出力のサンプルと、同じ条件でサンプリングされた部分的な動画から、対象のサンプルが本物であるか偽物であるかを識別するネットワークを生成するように訓練される。
【００５３】
前述した実施形態における訓練装置１において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等によるものであってもよい。
【００５４】
上記の全ての記載において、訓練装置１の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ（Central Processing Unit）等が実施をしてもよい。ソフトウェアで構成される場合には、訓練装置１、予測装置２及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ等の回路に実装され、ハードウェアが実行するものであってもよい。ジョブの実行は、例えば、ＧＰＵ（Graphics Processing Unit）等のアクセラレータを使用して行ってもよい。
【００５５】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【００５６】
図６は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。訓練装置１は、プロセッサ７１と、主記憶装置７２と、補助記憶装置７３と、ネットワークインタフェース７４と、デバイスインタフェース７５と、を備え、これらがバス７６を介して接続されたコンピュータ装置７として実現できる。
【００５７】
なお、図６のコンピュータ装置７は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、１台のコンピュータ装置７が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【００５８】
プロセッサ７１は、コンピュータの制御装置および演算装置を含む電子回路（処理回路、Processing circuit、Processing circuitry）である。プロセッサ７１は、コンピュータ装置７の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ７１は、コンピュータ装置７のＯＳ（Operating System）や、アプリケーションなどを実行することにより、コンピュータ装置７を構成する各構成要素を制御する。プロセッサ７１は、上記の処理を行うことができれば特に限られるものではない。訓練装置１及びそれらの各構成要素は、プロセッサ７１により実現される。ここで、処理回路とは、１チップ上に配置された１又は複数の電気回路を指してもよいし、２つ以上のチップあるいはデバイス上に配置された１又は複数の電気回路を指してもよい。
【００５９】
主記憶装置７２は、プロセッサ７１が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置７２に記憶された情報がプロセッサ７１により直接読み出される。補助記憶装置７３は、主記憶装置７２以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。訓練装置１内において各種データを保存するためのメモリ、例えば、記憶部１１２は、主記憶装置７２または補助記憶装置７３により実現されてもよい。例えば、前述した各記憶部の少なくとも一部は、この主記憶装置７２又は補助記憶装置７３に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、前述した各記憶部の少なくとも一部は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【００６０】
ネットワークインタフェース７４は、無線または有線により、通信ネットワーク８に接続するためのインタフェースである。ネットワークインタフェース７４は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース７４により、通信ネットワーク８を介して通信接続された外部装置９Ａと情報のやり取りが行われてもよい。
【００６１】
外部装置９Ａは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置９Ａは、訓練装置１の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置７は、訓練装置１の処理結果の一部を、クラウドサービスのように通信ネットワーク８を介して受け取ってもよい。
【００６２】
デバイスインタフェース７５は、外部装置９Ｂと直接接続するＵＳＢ（Universal Serial Bus）などのインタフェースである。外部装置９Ｂは、外部記憶媒体でもよいし、ストレージ装置でもよい。各記憶部は、外部装置９Ｂにより実現されてもよい。
【００６３】
外部装置９Ｂは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ（Plasma Display Panel）、スピーカなどがあるが、これらに限られるものではない。
【００６４】
なお、外部装置９Ｂは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置７に与える。入力装置からの信号はプロセッサ７１に出力される。
【００６５】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【００６６】
１：訓練装置、１００：入力部、１０２：抽象データ生成部、１０４：サンプリング部、１０６：レンダリング部、１０８：逆伝播部、１１０：出力部、１１２：記憶部
【図１】
2020080050.tif 000003
【図２】
2020080050.tif 000004
【図３】
2020080050.tif 000005
【図４】
2020080050.tif 000006
【図５】
2020080050.tif 000007
【図６】
2020080050.tif 000008