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

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

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

<>
  • 特許-推定装置、システム及び方法 図1
  • 特許-推定装置、システム及び方法 図2
  • 特許-推定装置、システム及び方法 図3
  • 特許-推定装置、システム及び方法 図4
  • 特許-推定装置、システム及び方法 図5
  • 特許-推定装置、システム及び方法 図6
  • 特許-推定装置、システム及び方法 図7
  • 特許-推定装置、システム及び方法 図8
  • 特許-推定装置、システム及び方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-30
(45)【発行日】2024-11-08
(54)【発明の名称】推定装置、システム及び方法
(51)【国際特許分類】
   G06N 5/04 20230101AFI20241031BHJP
   G06N 20/00 20190101ALI20241031BHJP
【FI】
G06N5/04
G06N20/00 130
【請求項の数】 16
(21)【出願番号】P 2019209036
(22)【出願日】2019-11-19
(65)【公開番号】P2021082014
(43)【公開日】2021-05-27
【審査請求日】2022-11-18
【前置審査】
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100103263
【弁理士】
【氏名又は名称】川崎 康
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】前田 新一
(72)【発明者】
【氏名】ホマンガ バラドワジ
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2019-165602(JP,A)
【文献】特開2019-191821(JP,A)
【文献】特開2019-079227(JP,A)
【文献】特開2007-052589(JP,A)
【文献】菱沼 徹 ほか,ロバスト方策を用いた探索木によるベイジアン強化学習アプローチ,一般社団法人 人工知能学会 第31回全国大会論文集DVD [DVD-ROM],日本,一般社団法人 人工知能学会 ,2017年05月23日,4C2-3,pp.1-4
【文献】久保田 展行,深層学習の活用を加速するIoT向けソフトウエア基盤,日経エレクトロニクス,日本,日経BP社,2017年04月20日,第1179号,pp.59-69,ISSN:0385-1680
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/04
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記メモリは、ダイナミクスパラメータの情報を推定可能な訓練済みモデルを記憶し、
前記1又は複数のプロセッサは、
少なくとも、実環境における制御対象の状態の情報と、前記訓練済みモデルを少なくとも用いて実環境における制御対象の状態の時系列と行動の時系列の情報とに基づいて推定されたダイナミクスパラメータの情報と、に基づいて、行動の情報を推定し、
前記訓練済みモデルは、異なるダイナミクスを持つ環境をシミュレートした複数のシミュレーション環境において訓練され
前記訓練済みモデルによって推定されたダイナミクスパラメータの情報は、ダイナミクスパラメータのエンコード結果であり、
前記制御対象の状態の情報は、前記制御対象の状態のエンコード結果であり、
前記1又は複数のプロセッサは、
前記状態のエンコードと、前記ダイナミクスパラメータのエンコードと、を異なる訓練済みモデルを用いて実行する、
推定装置。
【請求項2】
前記訓練済みモデルは、ダイナミクスパラメータが既知であるシミュレーション環境において前記制御対象をシミュレートして訓練された、
請求項1に記載の推定装置。
【請求項3】
前記訓練済みモデルは、教師あり学習で訓練された、
請求項1又は請求項2に記載の推定装置。
【請求項4】
前記1又は複数のプロセッサは、前記訓練済みモデルによって、少なくとも、前記制御対象の観測された状態の情報、および、前記制御対象の実行した行動の情報、に基づいて、ダイナミクスパラメータの情報を推定する、
請求項1から請求項3のいずれかに記載の推定装置。
【請求項5】
前記1又は複数のプロセッサは、前記訓練済みモデルによって、少なくとも、実環境における前記制御対象の観測された状態の情報、および、実環境における前記制御対象の実行した行動の情報、の時系列に基づいて、ダイナミクスパラメータの情報を推定する、
請求項1から請求項3のいずれかに記載の推定装置。
【請求項6】
前記1又は複数のプロセッサは、
前記訓練済みモデルによって、少なくとも、第1の時刻に対応する前記時系列に基づいて当該第1の時刻に対応するダイナミクスパラメータの情報を推定し、少なくとも、第2の時刻に対応する前記時系列に基づいて当該第2の時刻に対応するダイナミクスパラメータの情報を推定し、
少なくとも、前記第1の時刻に対応する前記状態の情報、および、前記第1の時刻に対応するダイナミクスパラメータの情報と、に基づいて、前記第1の時刻に対応する行動の情報を推定し、前記第2の時刻に対応する前記状態の情報、および、前記第2の時刻に対応するダイナミクスパラメータの情報と、に基づいて、前記第2の時刻に対応する行動の情報を推定する、
請求項5に記載の推定装置。
【請求項7】
前記推定される行動の情報は、実行する行動の情報である、
請求項1から請求項6のいずれかに記載の推定装置。
【請求項8】
前記1又は複数のプロセッサは、強化学習によって学習された方策を用いて、少なくとも、制御対象の状態の情報、および、前記訓練済みモデルによって推定されたダイナミクスパラメータの情報と、に基づいて、行動の情報を推定する、
請求項1から請求項7のいずれかに記載の推定装置。
【請求項9】
前記方策は、ダイナミクスパラメータが既知であるシミュレーション環境において実行された強化学習によって学習された、
請求項8に記載の推定装置。
【請求項10】
前記制御対象は、前記推定された行動の情報に基づいて、制御される、
請求項1から請求項9のいずれかに記載の推定装置。
【請求項11】
ダイナミクスパラメータは、摩擦係数の情報を含む、
請求項1から請求項10のいずれかに記載の推定装置。
【請求項12】
前記1又は複数のプロセッサによる、
前記状態のエンコードの頻度と、前記ダイナミクスパラメータのエンコードの頻度とが異なる、
請求項1から請求項11のいずれかに記載の推定装置。
【請求項13】
前記行動の情報は、前記行動に関する確率分布である、
請求項1から請求項12のいずれかに記載の推定装置。
【請求項14】
前記行動に関する確率分布は、訓練済モデルを用いて出力される、
請求項13に記載の推定装置。
【請求項15】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記メモリは、ダイナミクスパラメータの情報を推定可能な訓練済みモデルを記憶し、
前記1又は複数のプロセッサは、
少なくとも、実環境における制御対象の状態の情報と、前記訓練済みモデルを少なくとも用いて実環境における制御対象の状態の時系列と行動の時系列の情報とに基づいて推定されたダイナミクスパラメータの情報と、に基づいて、行動の情報を推定し、
前記訓練済みモデルは、異なるダイナミクスを持つ環境をシミュレートした複数のシミュレーション環境において訓練され
前記訓練済みモデルによって推定されたダイナミクスパラメータの情報は、ダイナミクスパラメータのエンコード結果であり、
前記制御対象の状態の情報は、前記制御対象の状態のエンコード結果であり、
前記1又は複数のプロセッサは、
前記状態のエンコードと、前記ダイナミクスパラメータのエンコードと、を異なる訓練済みモデルを用いて実行する、
システム。
【請求項16】
1又は複数のプロセッサによって、
少なくとも、実環境における制御対象の状態の情報と、ダイナミクスパラメータの情報を推定可能な訓練済みモデルを少なくとも用いて実環境における制御対象の状態の時系列と行動の時系列の情報とに基づいて推定されたダイナミクスパラメータの情報と、に基づいて、行動の情報を推定する方法であって、
前記訓練済みモデルは、異なるダイナミクスを持つ環境をシミュレートした複数のシミュレーション環境において訓練され
前記訓練済みモデルによって推定されたダイナミクスパラメータの情報は、ダイナミクスパラメータのエンコード結果であり、
前記制御対象の状態の情報は、前記制御対象の状態のエンコード結果であり、
前記1又は複数のプロセッサによって、
前記状態のエンコードと、前記ダイナミクスパラメータのエンコードと、を異なる訓練済みモデルを用いて実行する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推定装置、訓練装置、推定方法、訓練方法、プログラム及び非一時的コンピュータ可読媒体に関する。
【背景技術】
【0002】
従来、制御装置等による特定の作業を自動的に実行する制御を機械学習、特に強化学習により最適化したり、タスクの割り振る仕方を最適化したりする試みは、今日広く行われている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Bernd Waschneck, et. al., "Optimization of global production scheduling with deep reinforcement learning," Procedia CIRP, pp. 1264-1269, Vol. 72, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0004】
そこで、本開示においては、適切に推定可能な推定装置、そのような推定装置を容易に訓練する訓練装置を実現する。
【課題を解決するための手段】
【0005】
一実施形態に係る推定装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。
前記メモリは、ダイナミクスパラメータの情報を推定可能な訓練済みモデルを記憶する。
前記1又は複数のプロセッサは、
少なくとも、実環境における制御対象の状態の情報と、前記訓練済みモデルを少なくとも用いて実環境における制御対象の状態の時系列と行動の時系列の情報とに基づいて推定されたダイナミクスパラメータの情報と、に基づいて、行動の情報を推定し、
前記訓練済みモデルは、異なるダイナミクスを持つ環境をシミュレートした複数のシミュレーション環境において訓練され、
前記訓練済みモデルによって推定されたダイナミクスパラメータの情報は、ダイナミクスパラメータのエンコード結果であり、
前記制御対象の状態の情報は、前記制御対象の状態のエンコード結果であり、
前記1又は複数のプロセッサは、
前記状態のエンコードと、前記ダイナミクスパラメータのエンコードと、を異なる訓練済みモデルを用いて実行する。
【図面の簡単な説明】
【0006】
図1】一実施形態に係る推定装置のブロック図。
図2】一実施形態に係る推定装置の処理を示すフローチャート。
図3】一実施形態に係る訓練装置のブロック図。
図4】一実施形態に係る訓練装置の処理を示すフローチャート。
図5】一実施形態に係る訓練装置の処理を示すフローチャート。
図6】一実施形態に係る結果を示す図。
図7】一実施形態に係る結果を示す図。
図8】一実施形態に係る結果を示す図。
図9】一実施形態に係るハードウェア実装例を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。以下、各構成に備えられるモデル(訓練済みモデル)は、MLP(Multi-Layer Perceptron)、CNN(Convolutional Neural Network)等のニューラルネットワークであってもよいが、これらに限られるものではなく、適切に入力データに対して出力データが取得できるモデルであればよい。また、ニューラルネットワークモデル以外のモデルであってもよい。
【0008】
本実施形態では、シミュレーション環境におけるダイナミクスを推定する推定器と、このダイナミクスにしたがうシミュレーション環境における行動を推定する推定器を用いる。この結果、学習に多数の試行を必要とする強化学習を実環境においてよりよく適用できるようにしようとするものである。例えば、訓練に相当数の試行が必要となる強化学習を実環境で試行することは現実的には、時間が掛かりすぎ、また、ランダムに初期化した方策で行動を選択すると安全性が低くなるという問題がある。本実施形態においては、この問題点を解決すべく、訓練と推定を実行することを図る。
【0009】
(推定装置)
図1は、一実施形態に係る推定装置の機能を示すブロック図である。本開示における推定装置1は、第1推定部10と、第2推定部12と、を備える。第1推定部10は、力学的な条件に基づいた行動を推定する。第2推定部12は、力学的状況を推定する。
【0010】
第1推定部10は、第1エンコーダ100と、第2エンコーダ102と、デコーダ104と、を備える。この他、訓練装置2は、データ等の入出力を行うインタフェース、データ、パラメータ等を格納する記憶部を備えていてもよい。
【0011】
第1推定部10は、例えば、ある物体に対して、状態oと、ダイナミクスパラメータηを入力として、行動aを出力する。これらの量は、例えば、ベクトルとして表されるが、これに限定されるものではなく、任意の次元を有するテンソルで表されてもよい。
【0012】
状態とは、例えば、ある環境における物体及び制御対象の観測された状態を示す。この状態は、例えば、各種センサにより取得された情報であり、制御対象の状態、制御対象が何らかの作用を及ぼす物体の状態等の情報を含んでもよい。
【0013】
ダイナミクスとは、例えば、制御対象及び物体が存在する空間の環境における動力学のことであり、このダイナミクスを特徴付けるパラメータをダイナミクスパラメータと記載する。このダイナミクスパラメータは、例えば、物体と物体が配置されている領域との摩擦係数、物体がどのような慣性系に配置されているか、又は、センサがどのような状況で物体及び制御対象を感知しているか等の情報を含んでもよい。その他に、ダイナミクスパラメータは、制御対象及び物体に対して環境がどのような影響を与えるかを示すパラメータ等が含まれてもよい。
【0014】
行動とは、例えば、入力されたダイナミクスパラメータにより記述される空間において、入力された状態の場合に、制御対象が取る望ましい行動又は制御対象に与える望ましい制御を示す。すなわち、行動は、例えば、ダイナミクスパラメータに条件付けられた行動を示す。
【0015】
また、方策とは、例えば、入力された状態において、制御対象が取る望ましい行動または制御対象に与える望ましい制御を出力する関数である。方策は、一般には状態を条件として条件付けた、行動又は制御に関する条件付き確率分布の形式で表現される。ここでは、例えば、状態だけではなく、ダイナミクスパラメータにより条件付けられた条件付き確率分布として、方策を表現する。
【0016】
第1エンコーダ100は、環境e、時刻tにおける状態ot (e)を入力として、この状態をエンコードして、その特徴量を出力する。
【0017】
第2エンコーダ102は、環境eにおけるダイナミクスパラメータηeを入力として、このダイナミクスパラメータをエンコードして、その特徴量を出力する。
【0018】
第1エンコーダ100の変換をfφ()と、第2エンコーダ102の変換をMζ()と表すと、環境e、時刻tにおける潜在状態Zt=[fφ(ot (e)), Mζe)]として表すことができる。上記のように、第1エンコーダ100及び第2エンコーダ102は、それぞれ、状態とダイナミクスパラメータをエンコードする。
【0019】
状態をダイナミクスパラメータから分離してエンコードすることにより、状態とダイナミクスパラメータを合わせてエンコードする場合に比較して、時々刻々と変化する状態と変化するにしても緩やかにしか変化しないダイナミクスパラメータを区別することができるため、ダイナミクスパラメータの変わらない同じ環境では照明やカメラが変わったとしても同じダイナミクスパラメータのエンコードが再利用できるなど、効率的に扱うことができる。また、状態は、例えば、単位時間ごとに感知されたデータに基づき時々刻々と変化するが、ダイナミクスパラメータは、状態と比べて変化が少なく、例えば単位時間ごとに変化するものではなく、ある程度の時間内においては仮想的に固定されていてもよいため、このように状態とダイナミクスパラメータとを分離してエンコードを行う。
【0020】
すなわち、状態とダイナミクスパラメータの再エンコードは、同じタイミングで行わなくてもよい。例えば、エンコードした値は、しばらく同じ値を使い続けても構わない。再エンコードする頻度は、状態とダイナミクスで異なってよい。エンコードされた値が存在する場合には、例えば、状態のエンコードを、ダイナミクスパラメータのエンコードと異なるスパン、例えば、より短いスパンで行ってもよい。このため、本実施形態においては、第1エンコーダ100と第2エンコーダ102とを用いて、状態とダイナミクスパラメータをエンコードする。
【0021】
デコーダ104は、潜在状態Ztを入力として行動at (e)を出力する。行動は、例えば、予測される行動又は制御の分布として出力される。一例として、デコーダ104は、潜在状態Ztを条件として、条件付けした確率分布から行動at (e)を確率的に出力する。この確率分布は、δ関数のように決定論的に行動のサンプルを生成するような分布でもよいし、正規分布であってもよい。デコーダ104は、例えば正規分布として行動を出力する場合、行動の平均値mtと、行動の分散Σtとを潜在状態Ztに基づいて決定して出力してもよい。これらの値を用いると、行動は、例えば、at (e)~N(mt, Σt)として表すことができる。ここで、N(m, Σ)は、平均m、分散ベクトルΣの正規分布を示す。デコーダ104は、例えば、このmtとΣtとを出力し、例えば、この分布から行動at (e)をサンプルとして生成する。
【0022】
すなわち、デコーダ104からは、例えば、制御対象がどのような行動をとればよいかといった情報が出力される。より詳しくは、デコーダ104は、制御対象における確率的な行動を出力する。デコーダ104の変換をgθ()と表すと、例えば正規分布とした場合の行動の分布は、(mt, Σt)=gθ([fφ(ot (e)), Mζe)])と表される。
【0023】
なお、行動の分布は、正規分布には限られるものではない。適切に行動の確率分布を表すことのできる分布であってもよく、別の分布である場合には、デコーダ104は、当該分布を表現するのに適したパラメータ等に基づいて、行動を確率的に出力する。
【0024】
また、上述において、第1エンコーダ100、第2エンコーダ102、デコーダ104は、別々のモデルを備えるとしたが、これには限られず、全部又は少なくとも2つの構成が同じモデルに備えられてもよい。例えば、状態が更新されると次の行動を推定したいという場合には、第1エンコーダ100と、デコーダ104とは、連続した1つのモデルであってもよい。この場合、第2エンコーダ102の出力を処理の途中で受け付けることできる構成としてもよい。また、さらに別の例として、上記の構成は、全て1つのモデル内に備えられていてもよい。この場合、ダイナミクスパラメータの入力と、状態の入力とを別々のタイミングにおいて実行できるようにしておいてもよい。
【0025】
第1エンコーダ100、第2エンコーダ102、デコーダ104は、例えば、任意の機械学習手法で訓練された、任意の構成を有する訓練済みモデルであってもよい。
【0026】
このように、第1推定部10は、状態とダイナミクスパラメータに基づいて行動を推定する。
【0027】
本実施形態の第2推定部12は、エスティメータ120と、アグリゲータ122と、を備える。第2推定部12は、第2エンコーダ102に入力するための様々な環境のそれぞれに対応するダイナミクスパラメータを推定する。第2推定部12は、状態の時系列と、行動の時系列を入力すると、ダイナミクスパラメータを出力する。出力するダイナミクスパラメータは、確率分布で表されるものであってもよい。
【0028】
ある時刻における状態otと行動atは、状況に対して行動を起こすと次の状況になるという関係が成り立つ。すなわち、時刻tにおけるot及びatから、ダイナミクスパラメータに基づいてot+1が生成されるはずである。このことから、これらの3つの値のセット(ot, at, ot+1)を入力とする関数により第2推定部12の処理は、実行される。
【0029】
ここで、t=1からkTまでの入力{(ot, at, ot+1)n}n=1 kTがある場合、この入力を、例えば、T個ごとのチャンクに分割する。すなわち、この時系列の入力データを、{(ot, at, ot+1)t}t=1 T,{(ot, at, ot+1)t}t=T+1 2T,・・・,{(ot, at, ot+1)t}t=(k-1)T+1 kTと分割する。この分割したデータごとに処理を実行する。なお、Tの倍数の個数の時系列ではない場合には、例えば、最後のチャンクは、最後のデータまでとしてもよいし、これには限られず適切なデータにより補完等してもよい。
【0030】
エスティメータ120は、分割されたチャンクごとの入力に基づいて、分割されたチャンクに対するダイナミクスパラメータの推定量を取得する。推定量は、確率分布の形式での表現、例えば、平均μと分散σ2といった推定値を取得できるものであってもよい。すなわち、T個の(ot, at, ot+1)のデータから、ダイナミクスパラメータの推定量を取得する。これを、k個のチャンクに対して実行し、それぞれの推定量を取得する。エスティメータ120は、例えば、k個のチャンクのデータから、ダイナミクスパラメータの推定量μ(1)(1),μ(2)(2),・・・,μ(k)(k)を取得する。
【0031】
なお、この演算は、並列処理してもよく、例えば、複数のエスティメータ120がチャンクごとに備えられていてもよい。また、本実施形態では推定量の一例として、平均値と分散値を取得しているがこれには限られず、適切な推定量を取得できるものであればよい。
【0032】
アグリゲータ122は、エスティメータ120が出力した推定量を、例えば、訓練済みモデルを用いて合成し、時系列のデータが観測された環境におけるダイナミクスパラメータを推定して出力する。
【0033】
エスティメータ120、アグリゲータ122は、例えば、任意の機械学習手法で訓練された、任意の構成を有する訓練済みモデルであってもよい。
【0034】
このように、第2推定部12は、状態と行動に基づいてダイナミクスパラメータを推定する。
【0035】
推定装置1は、例えば、第2推定部12により、既に取得されている状態と行動のデータに基づいて、ダイナミクスパラメータを推定する。そして、第1推定部10により、現時刻の状態と推定されたダイナミクスパラメータに基づいて、行動を推定する。
【0036】
図2は、本実施形態に係る推定装置1の処理を示すフローチャートである。
【0037】
まず、第2推定部12に、取得されている状態と行動を入力してダイナミクスパラメータを推定する(S100)。
【0038】
次に、推定されたダイナミクスパラメータを第1推定部10の第2エンコーダ102によりエンコードする(S102)。
【0039】
次に、観測された状態を第1推定部10の第1エンコーダ100によりエンコードする(S100)。
【0040】
次に、第1推定部10のデコーダ104により、エンコードされた推定されたダイナミクスパラメータと、エンコードされた状態とに基づいて、行動を推定する(S106)。
【0041】
次に、処理を終了するか否かを判断する(S108)。
【0042】
処理を終了しない場合(S108:NO)、S104からの処理を繰り返す。この場合、例えば、状態は、推定された行動により遷移した新たな状態であってもよい。
【0043】
処理を終了する場合(S108:YES)、必要な終了処理を実行し、処理を終了する。
【0044】
なお、上記は、ダイナミクスパラメータを更新しない場合について説明したが、所定のタイミングにおいてダイナミクスパラメータを更新してもよい。例えば、処理を終了しない場合(S108:NO)、ダイナミクスパラメータを更新するか否かを判断する(S110)。
【0045】
ダイナミクスパラメータを更新しない場合(S110:NO)、S104からの処理を繰り返す。
【0046】
ダイナミクスパラメータを更新する場合(S110:YES)、S100からの処理を繰り返す。この場合、ダイナミクスパラメータの推定に用いる状態と行動は、それまでの時間に観測された状態、及び、それまでの時間に実行した行動を用いてもよい。
【0047】
このように、ダイナミクスパラメータを適切な時刻において更新してもよい。
【0048】
以上のように、既に取得されている状態と行動のデータに基づいてダイナミクスパラメータを推定し、さらに、取得された状態と推定されたダイナミクスパラメータに基づいて行動を推定することにより、実際の環境と相互作用することなく、望ましい行動を取得する方策を素早く獲得することが可能となる。この結果、例えば、生産現場等における処理のオートメーション化の精度を向上させることが可能となる。なお、上記においては、第1推定部10と第2推定部12とは別個の構成としたが、これには限られない。これらの推定部は、1つの推定部として実装されていてもよい。
【0049】
このように実装された推定装置1によれば、ランダムな初期値から始めて実環境で試行、訓練するよりも安全性を確保することが可能となる。さらに、上述の実施形態によれば、シミュレーション環境で訓練しておいた方策において、実環境との間で生じる差異を適応することができる方策を取得することが可能となる。この結果は、例えば、ロボットによるオートメーション化等に利用することができる。
【0050】
例えば、環境が異なることにより、ダイナミクスパラメータが変わることがあり、この、種々のダイナミクスパラメータに対して適切な結果を出力可能な第2エンコーダ102が必要となる場合がある。そこで、第1推定部10は、例えば、シミュレータ環境で訓練された第2エンコーダ102を用いる。シミュレータ環境において訓練された第2エンコーダ102を用いることにより様々な環境に対してオンラインにおける行動の推定を可能とする。
【0051】
(訓練装置)
本実施形態に係る訓練装置は、推定装置1の第1エンコーダ100、第2エンコーダ102、デコーダ104、エスティメータ120、アグリゲータ122を訓練する。訓練は、例えば、機械学習の手法により実行される。本実施形態の訓練は、シミュレータを用いる場合には、ダイナミクスパラメータがあらかじめ取得できることに基づく。すなわち、シミュレータ環境において、既知のダイナミクスパラメータを用いて状態から行動を取得できるように訓練を行う。そして、このシミュレーション環境を現実の空間に適応することにより、実機空間における行動の推定精度を高める訓練を実行する。
【0052】
図3は、本実施形態に係る訓練装置2のブロック図である。訓練装置2は、順伝播部20と、誤差算出部22と、更新部24と、を備える。この他、訓練装置2は、データ等の入出力を行うインタフェース、データ、パラメータ等を格納する記憶部を備えていてもよい。訓練装置2は、上記で説明した推定装置1の各部におけるモデルを訓練する。
【0053】
訓練装置2は、1つの装置において図の右側に示される第1エンコーダ100、第2エンコーダ102、デコーダ104、エスティメータ120、アグリゲータ122の訓練を実行してもよい。別の例としては、第1推定部10、第2推定部12のそれぞれに対して1つの訓練装置2が備えられてもよい。さらに別の例としては、全てのモデルに対してその一部を訓練する訓練装置2が備えられてもよい。1つの訓練装置2が複数のモデルを訓練する場合には、モデルごとにロスの算出方法、更新方法等の各工程、すなわち、訓練の方法を切り替えてもよい。
【0054】
上述したように、第1推定部10の各構成のモデルは、シミュレーション環境で訓練されることが好ましい。ダイナミクスパラメータは、一般的に、制御対象となる装置等が配置されている空間において正確な情報を取得するのが困難である。ダイナミクスパラメータの各要素が与えられるシミュレーション環境を複数用意し、このシミュレーション環境内で訓練を行うことにより、実際の制御対象となる装置等に対する行動を推定可能なモデルを容易に得ることができる。
【0055】
第2推定部12は、状態と行動からダイナミクスパラメータを推定するものであるが、この第2推定部12により推定されたダイナミクスパラメータを第1推定部10の訓練を実行するシミュレーション環境を構築するダイナミクスパラメータとして使用することができる。また、第2推定部12は、第1推定部10の訓練だけではなく、上述したように、実際の環境における行動を推定するためのダイナミクスパラメータの推定にも利用される。このように、第1推定部10の訓練、又は、推定を実行するためのダイナミクスパラメータを推定するモデルを訓練装置2により訓練する。
【0056】
順伝播部20は、訓練の対象となるモデルの順伝播処理を実行する。例えば、各モデルに対して所定のデータを入力し、出力データを取得する。
【0057】
誤差算出部22は、順伝播部20により取得したデータと、教師データ等に基づく誤差、又は、方策の実行によりシステムから取得される累積コストで記述される損失を算出する。この損失等の算出方法は、モデルにより異なるものであってもよい。また、後述するように、必ずしも教師あり学習の誤差算出に用いられるわけではなく、強化学習における報酬(累積報酬)のコストで記述される損失の算出等を、この誤差算出部22が実行してもよい。このように、誤差算出部22は、広義の意味において、ロス、報酬、その他のパラメータ更新に必要となる値を目的関数に基づいて算出する。
【0058】
更新部24は、誤差算出部22が算出した損失に基づいて、ネットワークを更新する。ネットワークの更新は、例えば、誤差を逆伝播することにより実行される。誤差を逆伝播する場合には、図において点線の矢印で示されるように、例えば、ニューラルネットワークの層ごとに、誤差算出部22と更新部24との処理を実行してもよい。
【0059】
以下、各部に備えられるモデルの訓練について詳しく説明する。
【0060】
まず、第1推定部10に備えられるモデルから説明する。第1推定部10の第1エンコーダ100、第2エンコーダ102、デコーダ104に備えられるモデルは、同じタイミングで訓練されてもよい。
【0061】
図4は、本実施形態に係る第1推定部10の訓練の処理を示すフローチャートである。図4に基づいて、訓練装置2の第1推定部10に係る訓練の処理について説明する。
【0062】
まず、訓練装置2は、パラメータを初期化する(S200)。パラメータとは、第1エンコーダ100、第2エンコーダ102、デコーダ104に備えられるモデルfφ、Mη、gθ、及び、第1エンコーダ100、デコーダ104を訓練するためのモデルfrec、ginvに関するパラメータである。
【0063】
次に、ランダムにn個の環境を生成する(S202)。この環境は、例えば、シミュレータ上に形成される。このシミュレータから取得された状態と行動に基づいて、第2推定部12において後述するそれぞれの環境に対応するn個のダイナミクスパラメータを推定し取得することができる。
【0064】
次に、ループ処理によりパラメータの更新を実行する。まず、生成したn個の環境からランダムに1の環境を選択する(S204)。この環境の選択からの処理をエピソードとし、所定の条件を満たすようにエピソード内においてパラメータの更新を繰り返してもよい。また、それぞれのモデルに関する訓練のアルゴリズムは、任意のアルゴリズムを利用できるものとする。
【0065】
次に、選択された環境に対応するダイナミクスパラメータを取得する(S206)。ダイナミクスパラメータは、例えば、S202において、第2推定部12により推定されたものであってもよい。
【0066】
次に、ランダムに初期状態を標本抽出する(S208)。例えば、テストデータとして与えられている種々のデータから、ランダムに初期状態となる状態を取得する。
【0067】
次に、パラメータを更新する(S210)。より詳しくは、S208において取得した初期状態を第1エンコーダ100に、S206において取得したダイナミクスパラメータを第2エンコーダ102に、それぞれ入力し、潜在状態Ztを取得する。そして、このZtをデコーダ104に入力することにより、行動at (e)を取得する。これは、例えば、順伝播部20が各モデルに対して入力データを順伝播させることにより実行されてもよい。そして、取得された結果に基づいて、誤差算出部22がそれぞれのモデルに適切な誤差等を算出し、逆伝播させ、更新部24がパラメータの更新を実行する。各構成の訓練については、後述する。
【0068】
次に、処理を終了するか否かを判断する(S212)。処理の終了は、例えば、所定数のエピソードを、所定数のエポック数だけ繰り返し計算した、アキュラシーが所定値以上となった、バリデーションで所定条件を満たした、等により判断されてもよい。ここで、エピソードとエポックに対する所定数は、同じものではなく、それぞれに設定されるものであってもよい。
【0069】
処理を終了しないと判断した場合(S212:NO)、S204からの処理を繰り返す。この場合、エピソードの繰り返しが所定数以内である場合には、エピソードを繰り返してもよい。また、エピソードの繰り返しが終了した場合には、エポック数が所定数に到達しているかで判断し、エポック数が所定数に到達していない場合には、次のエポックの処理を実行してもよい。
【0070】
一方で、処理を終了すると判断した場合(S212:YES)、訓練装置2は、必要な処理、例えば、最適化されたパラメータの出力、記憶等の処理を実行した後、処理を終了する。
【0071】
第1推定部10は、このようにシミュレーション環境において訓練してもよい。このシミュレーション環境には、ランダム性を付与し、これに適応できる方策を学習することにより最適化されてもよい。シミュレーション環境を用いるので、訓練装置2は、例えば、種々の環境に対するダイナミクスパラメータを取得することができる。訓練装置2は、このダイナミクスパラメータを用いて、第1推定部10を訓練する。
【0072】
上記の第1推定部10の訓練は、強化学習により行うことができる。強化学習は一般的に試行の回数が非常に多く必要とされるため、異なる環境下で適切に推定を行うことが可能なよう、異なる複数の環境下での強化学習を行うことは実用上困難である。また、実環境においての訓練では、危険が伴う場合も考えられる。しかし、本実施形態においては、シミュレーション環境において第1推定部の訓練を行うことで、容易に強化学習を行うことができるため、異なる環境においても適切に推定が可能な第1推定部を得ることができる。
【0073】
強化学習を行う場合、例えば、行動aを生成する確率分布をπ(a|o, η)とし、報酬rkを設定し、以下のような目的関数を用いて強化学習をすることもできる。
【数1】
ここで、γは、γ∈[0, 1]を満たす定数とし、Eπは、方策の確率分布πと初期状態o0、システムの状態遷移確率と報酬確率に関する期待値を意味する。このような目的関数の確率分布πのパラメータに関する最大化として、強化学習を行ってもよい。また、Tは、エピソードの長さを表す定数であり、正の整数である。
【0074】
強化学習を行う場合にも、上記のようにシミュレーション環境において、事前にシミュレーション環境内におけるパラメータをあらかじめ取得しておいてもよい。本実施形態のように、強化学習を行うと、シミュレーション環境において訓練された結果を実環境においても精度の低下を抑えて適用することが可能となる。
【0075】
第1エンコーダ100の訓練は、例えば、さらに以下の損失Lrec (t)を付加的に用いて実行されてもよい。
【数2】
ここで、frec()は、第1エンコーダ100により変換された状態otを元に戻すモデルである。例えば、第1エンコーダ100における状態otの圧縮率が高すぎると、圧縮された状態fφ(ot)から元の状態otへと逆変換できない場合がある。このような場合には、デコーダ104において、状態ot又はその一部が行動へと反映されない場合がある。そこで、このような問題を回避するために、圧縮された状態がある程度状態へと逆変換できるように、第1エンコーダ100を、[数2]の損失を用いて更新する。
【0076】
なお、目的関数は、これに限られるわけではなく、適切にエンコードされた状態と、元の状態とを比較できる目的関数であればよい。
【0077】
また、第2エンコーダ102と、デコーダ104の訓練は、例えば、さらに以下の損失Linv (t)を付加的に用いて実行されてもよい。
【数3】
ここで、ginv()は、第1潜在状態Ztと、第2潜在状態Zt+1の間にどのような行動が実行されたかを推定するモデルである。Ztは、上述したように、状態ot (e)とダイナミクスパラメータηeを用いて、Zt=[fφ(ot (e)), Mζe)]と表される。これに対して、Zt+1は、デコーダ104により推定された時刻tにおける行動at(第1行動と呼ぶ)が与えられた場合の時刻t+1の状態ot+1 (e)とダイナミクスパラメータηeを用いて、Zt+1=[fφ(ot+1 (e)), Mζe)]と表される。ginv(Zt+1, Zt)は、Zt+1とZtが与えられた場合に、対象となる環境においてどのような行動at'(第2行動と呼ぶ)がZtに対して実行されたかを推定するモデルである。
【0078】
このようにLrec(t)、Linv(t)を定義し、モデルを訓練することにより、例えば、光の強度の変化、照明の方向、影の位置等、行動の推定には不要である情報の影響を、状態や環境から減らして推定するように訓練を実行することが可能となる。
【0079】
Linv (t)は、実際に与えた第1行動atと、当該第1行動により発生した状態と、その状態が発生した場合にどのような第2行動at'が与えられたかの差を算出する。このロス関数を用いて第2エンコーダ102のモデルMζ、デコーダ104のモデルgθ及び潜在状態から行動を取得するモデルginvのパラメータを更新する。
【0080】
次に、第1推定部10に入力するダイナミクスパラメータを推定する第2推定部12の訓練について説明する。
【0081】
第1推定部10の訓練においては、n個のランダムな環境におけるダイナミクスパラメータを取得する必要がある。そこで、まず、許可された行動の範囲内において行動をランダムにサンプリングし、それぞれの環境において数回のエピソード等が実行できるような方策を設定してもよい。ここで、許可された行動とは、例えば、環境内において許される行動、又は、事前に訓練した安全な方策における任意の行動のことを示す。
【0082】
そこで、状態遷移データを、上述したように、{(ot (e), at (e), ot+1 (e))}という形式で収集し、第2推定部12の訓練を実行する。ここで、F()をシミュレータの順伝播するダイナミクスパラメータモデルとして定義する。真の次の状態と、シミュレータによる次の状態は、ダイナミクスパラメータηeの真の値が取得できる場合には、以下のようにそれぞれ表される。
【数4】
【数5】
ここで、Rtは、ノイズ項であり、簡単のため、平均0、分散v2とする正規分布と仮定してもよい。これは、状態遷移がQ(ot+1 (e)|ot (e), at (e), ηe)の尤度モデルを定義することと同義である。このため、De={(ot (e), at (e), ot+1 (e))t}t=1 Neとした場合に、事後分布p(ηe|De)を介してηeを推定することに、問題は帰着される。そこで、ダイナミクスパラメータを正しく推定するために、エピソード内の相関状態遷移データを仮定してもよい。
【0083】
上述したように、DeをT個のタプル(ot (e), at (e), ot+1 (e))ごとにk個のチャンクへと分割し、それぞれのチャンクi∈{1, ... , k}においてμ(i)とσ(i)とが推定できるように、エスティメータ120のモデルを訓練する。環境eにおけるチャンクi内の行動の時系列をxi (e)、状態の時系列をyi (e)とおくと、以下の事後分布pを推定することにより実行してもよい。
【数6】
ここで、チャンクの長さは、適切に選択されていてもよい。例えば、Tは、大きすぎない範囲で十分に大きく取ってもよい。例えば、Tが十分大きい場合には、中心極限定理が成り立つような場合において、事後分布が正規分布に近づくため近似が正確になる。一方で、Tが大きすぎる場合、データ数がTと比較して少なくなるとそのままの状態で適用することが困難となる。また、時系列のデータをTで割った場合のあまりが生じる場合に、残りのデータを有効に利用することができない等の無駄が生じる可能性があるためである。
【0084】
それぞれのチャンクiから算出されたk個のηeの推定を集約するために、単一のデータポイントのペアに条件付けられたダイナミクスパラメータηeの事後分布p(ηe|xi (e), yi (e))と、全体のデータセットに条件付けられたダイナミクスパラメータηeの事後分布との間に成り立つべき関係を利用してもよい。全体のデータセットに条件付けられたηeの事後分布は、以下のように表される。
【数7】
これは、以下のように書き換えられる。
【数8】
ここで、事後分布p(ηe|xi (e), yi (e))と事後分布p(ηe)とが独立した正規分布であると仮定すると、事後分布p(ηe|De)は、以下のように書き換えることもできる。
【数9】
【数10】
【数11】
ここで、添え字のjは、ベクタのj番目の要素を表す。ニューラルネットワーク(ディープニューラルネットワークを含む)において実現されたμj (i)()、σj (i)()を用いると、p(ηe|De)は、パラメータθにより、事後分布pθe|De)としてパラメタライズすることができる。パラメータθは、スカラー、例えば、f0,j、g0,j(j=1, ... ,d)(dは、ηの次元)を含んでいてもよい。パラメータθは、真の事後分布を近似するように最適化されてもよい。
【0085】
事後分布の近似の手法として、KL(Kullback-Leibler)ダイバージェンスを用いてもよい。例えば、真の事後分布ptruee|De)とパラメータにより表現される事後分布pθe|De)との間のKLダイバージェンスKL[pθe|De)|ptruee|De)]がパラメータθに対して最小値を取るようにして近似することができる。下限最適化(lower bound optimization)にしたがい、真の事後分布ptruee|De)を明示的に評価することなく、それぞれの環境eに対して事後分布の近似をすることできる。例えば、以下の式を用いて最適化を行ってもよい。
【数12】
【0086】
また、真の事後分布ptruee|De)とKLダイバージェンスが近い正規分布を求めるため、VAE(Variational Auto Encoder)においてしばしば用いられるリパラメトライズトリックを用いてもよい。すなわち、εj~N(εj|0, 1)として、取得されたεjを用いてηeを以下の式にしたがって表すことで、パラメータで表した事後分布pθe|De)の期待値を標準正規分布ε~N(ε|0, 1)の期待値として置き換えてもよい。
【数13】
【0087】
上記のように、スタンドアロンのタプル(ot (e), at (e), ot+1 (e))の代わりに、時系列のチャンクを考慮することにより、摩擦、重力等の複雑なダイナミクスパラメータの事後分布を効果的に近似することが可能となる。一般に、ダイナミクスパラメータの事後分布は、複雑なマルチモーダル分布とすることができるが、中心極限定理にしたがう等の場合、時系列のチャンク内のサンプル数が増加すると、そのサンプルに条件付けられたηの事後分布は、正規分布に近似することができる。
【0088】
図5は、訓練装置2による上記の第2推定部12の訓練処理を示すフローチャートである。詳細は上述したため、簡単に説明する。まず、エスティメータ120とアグリゲータ122のパラメータを初期化する(S300)。次に、環境eのダイナミクスパラメータをランダムに設定し、状態及び行動の標本を抽出し、全体の時系列を生成する(S302)。次に、時系列を分割し、パラメータ生成に用いるチャンクを複数生成する(S304)。上記の[数4]~[数13]にしたがい、エスティメータ120及びアグリゲータ122のパラメータを更新する(S308)。処理が終了である場合(S308:YES)、訓練装置2は、第2推定部12の訓練処理を終了する。訓練の終了は、上記した第1推定部10の訓練において説明した条件に準ずるものであってもよいし、別のものであってもよい。処理が終了でない場合(S308:NO)、異なる環境での状態及び行動の標本の抽出処理(S302)から処理を繰り返してもよい。また、例えば、訓練する環境を変更する場合等、必要に応じて、状態、行動の標本の抽出処理(S302)から処理を繰り返してもよい。
【0089】
このように、状態遷移データが与えられることにより、訓練されたモデルを使用して所定の環境、例えば、テスト環境等の実環境を含む環境のダイナミクスパラメータを推定することができる。上記によれば、方策外のデータのみを用いてダイナミクスパラメータの推定を実行してもよい。この方策外のデータは、ランダムな方策又は安全に実行できることがわかっているルールベース等で作られた既存の方策を実行するだけで収集することが可能である。このため、種々の環境におけるダイナミクスパラメータを取得するモデルの訓練するためのデータは、低いコストで収集することができる。
【0090】
以上のように、本実施形態によれば、ダイナミクスパラメータを取得する第2推定部12のモデルを訓練し、このモデルにより得られたダイナミクスパラメータを用いてシミュレータを生成することが可能となる。そして、観測された状態に対して、シミュレータを用いて種々の環境における訓練を実行することにより、シミュレータ環境において訓練したモデルを用いて精度の高い実環境におけるモデルの適用、及び、モデルの訓練を実行することが可能となる。
【0091】
第2推定部12の訓練は、シミュレーション環境においてダイナミクスパラメータが既知であることを利用することにより、上述のように教師あり学習により訓練することができる。さらに、ダイナミクスパラメータが未知であっても、適切に未来の状態が予測できるように、ダイナミクスパラメータ、及び、ダイナミクスを表す状態遷移のパラメータを学習することも可能である。
【0092】
このようなシミュレーション環境において事前に訓練した第2推定部12により、実環境では、実際に行動を選択して、環境に働きかけるような環境との相互作用を実現することなく、既存の手法で遷移する状態、行動の系列を観測するだけで、その環境のダイナミクスパラメータを推定することができる。第2推定部12により推定されたダイナミクスパラメータを用いて第1推定部10を方策とすることにより、実環境における良好な方策を取得することが可能となる。
【0093】
このように訓練された第2推定部12により推定されたn個の環境におけるダイナミクスパラメータの推定値を用いて訓練された第1推定部10を用いて、未知のダイナミクスパラメータηn+1を有するn+1番目の環境、例えば、実機の環境における行動を、図2に示すフローチャートにしたがって推定してもよい。
【0094】
例えば、まず、訓練されたパラメータからfφ、Mη、gθ、のそれぞれのモデル(及びfrec、ginvを含んでもよい)を生成する。環境をn+1個目の環境、例えば、テスト環境であると仮定する。ここで、方策外の状態と行動の時系列(Dn+1)を取得する。この取得は、例えば、実環境において第1推定部10により取得された行動により動作させて行ってもよい。このDn+1を用いて、第2推定部12により、ダイナミクスパラメータηn+1を推定する(S100)。そして、モデルfφ、Mη、gθからダイナミクスパラメータに基づいた方策を実行することにより、行動を推定する(S106)。このように、本実施形態によれば、環境に対する試行を行うことなく、シミュレータ環境で訓練された方策に基づいて状態から適切な行動を推定することが可能となる。
【0095】
また、本実施形態においては、さらにファインチューニングを行ってもよい。例えば、実環境内において生成されたダイナミクスパラメータを用いて、実機を推定された行動により動作させる。そして、ミスが起こった場合に、例えば、人間がより望ましい行動をすることにより、状態と行動の時系列を取得する。この時系列を用いて第1推定部10のファインチューニングを実行してもよい。このように第1推定部10をより精度の高いものへとチューニングすることもできる。
【0096】
例えば、実環境において、取得された方策を実際に適用する前に、当該方策でよい性能が取得できるか否かを評価するステップを含んでもよい。この評価には、推定されたシミュレーション環境が実環境をよく模倣しているか、その模倣したシミュレーション環境において方策がよい性能を出しているかを含めてもよい。すなわち、既存の手法を上回るよい方策が得られていると判断した場合に、実環境へ適用してもよい。
【0097】
その上で、実際に推定された方策を使用した結果Aと、既存のルールベース等の方策を使用した結果Bを用いて、A/Bテストを実行してもよい。A/Bテストを実行した結果、良好な推定をされた方策にスイッチしてもよい。さらに、結果Aの方が結果Bよりも劣っている場合には、その結果を直接フィードバックして方策を改善てもよい。またさらに、必要であればシミュレーションした環境を改善し、改善したシミュレーション環境で方策をさらに改善してもよい。このように、ファインチューニングすることで、実環境における方策の性能を高めることが可能となる。
【0098】
推定装置1における推定の方が劣る場合の原因は、大きく分けて2つ考えられる。1つは、シミュレーション環境が実環境と乖離している場合であり、もう1つは、シミュレーション環境は、実環境を高い精度で再現できているが、シミュレーション環境における方策そのものの性能が高くない場合である。
【0099】
シミュレーション環境が実環境と乖離しているか否かは、状態遷移の再現がうまくできているか否かで判断することができる。この場合、この乖離を削減するように方策を訓練してもよい。シミュレーション環境における方策の性能については、シミュレーション環境で実際に方策を試験することができる。この場合、シミュレーション環境における方策の訓練をさらに実行してもよい。そして、性能が改善できた後に、再度A/Bテストを実行することにより、推定装置1のチューニングを行ってもよい。
【0100】
なお、例えば、実環境における訓練の際(ファインチューニングの際)、推定装置の推定が適切でなく問題が起こる場合、例えばオートメーション化された工場のライン等において方策が適切でなく、装置の制御にミスが起こる場合が考えられるが、その際のバックアップを人間やその他の装置が行ってもよい。つまり、装置のミスを人間の作業者やその他の装置が修正または対応してもよい。例えば、人と訓練中のロボット(制御装置)が共同で作業する場合、ロボットの作業(例えばピッキング)がうまくいかない場合には人間がカバーし、作業ピッキングの成功率が上がるように訓練を行うことができる。
【0101】
なお、工場のライン等で学習をする場合、訓練の初期においては人間がロボットのミスをカバーできる程度の速度でロボットに作業を行わせるよう、ラインの速度を設定してもよい。
【0102】
また、訓練が進むにつれて、ラインの速度を上げてよい。
【0103】
上記の場合、速度の調整は、成功率に基づいて行ってもよく、人間が行ってもよく、環境に備えられた撮像装置等のセンサにより取得された情報に基づいて成功率を算出しそれに基づいても行ってもよい。
【0104】
これにより、ラインの生産性を維持しつつモデルの訓練を行うことができる。
【0105】
また、このようなモデルの訓練とラインの生産性とを両立する方法としては、ラインの速度の変更のほか、適切であることが分かっている現在の方策と新たにテストする方策の割合の変更もあげられる。ここで、新たにテストする方策は、シミュレーション環境において適切であった方策など現在のところ最も良いと思われる方策を使ってもよく、例えばより良い方策が存在しないかをテストするためにランダムな方策としてもよい。
【0106】
この割合の変更には、例えば、ε-グリーディ法を用いてもよい。強化学習におけるε-グリーディ探索とは、ランダムな方策と現在最も良いと思われる方策の両方を確率εと1-εの割合で確率的に試行するものである。
【0107】
(変形例)
上記のように訓練装置2により訓練された推定装置1をさらにロバストなものへとすることもできる。訓練装置2は、異なるダイナミクスを有する環境においてその訓練を実行する。このダイナミクスは、現在の状態と、選択した行動からどのような状態に遷移するかという状態遷移確率を定める。この場合、あらかじめ定めた状態遷移確率に含まれるパラメータを変化させて異なるダイナミクスを生成するだけではなく、この状態遷移確率において、行動にばらつきを持たせることにより、さらに多様なダイナミクスを表現してもよい。
【0108】
訓練装置2は、環境や状態に付加される他の情報、例えば、モータノイズの変化を適用してもよい。例えば、行動をドメインランダマイゼーションとして解釈して、特定の状態に依存する偏差が行動に加えられるとしてもよい。この場合、行動に加えられる偏差は、方策モデルの行動の出力に擾乱を加えることにより実装してもよい。
【0109】
擾乱εtをモデル用いて推定するために、例えば、擾乱εtを、環境に依存するパラメータベクトルωeで重み付けされた現在の状態ot (e)のベクトル関数との内積で表されると仮定する。例えば、Φを非線形のマッピング、具体的には、パラメータτが既知、又は、ランダムに割り当てられたフィードフォワードニューラルネットワークとして、擾乱εteΦτ(ot (e))として表してもよい。なお、例えば、ωeを横ベクトルで表し、Φτ(ot (e))を縦ベクトルで表し、ωeΦτ(ot (e))は、ベクトルの内積を表す。この場合、ωeの推定を通して、環境eにおいてモータノイズに起因する摂動を特定することにより実行される。
【0110】
タイムステップtにおける、オリジナルの予測行動をa^t (e)とする。行動のばらつきによりシミュレータの入力となる行動は、例えば以下のように表される。
【数14】
ここで、Kは、ノイズに対するスカラーの係数である。ωeは、ダイナミクスパラメータηeと同様に環境に依存するパラメータであるので、拡張されたダイナミクスパラメータηe'=(ηe, ωe)として上述のダイナミクスパラメータηeの推定モデルと同様に処理することでωeの推定に関しても訓練することが可能である。
【0111】
以上のように、環境eに対するダイナミクスパラメータηeを拡張することにより、環境や状態に付加される情報、例えば、モータノイズの影響についても推定装置1において推定することが可能となる。この推定装置1は、もちろん訓練装置2により、上記の式に基づいてダイナミクスパラメータηeを変形することにより実現することができる。
【0112】
以下、本開示における手法を用いたいくつかの結果について説明する。
【0113】
図6は、上述した手法により訓練された推定装置1の報酬を示すグラフである。図中、(1)は、frec、ginvのモデルを用いずに訓練された結果、(2)は、ginvのモデルを用いて訓練された結果、(3)は、frecのモデルを用いて訓練された結果、(4)は、frec、ginvの双方のモデルを用いて訓練された結果である。(5)は、比較例として、環境における正しいダイナミクスパラメータを用いて訓練された結果であり、これよりもよい報酬を得ることは理論的にはないと考えてよい。(6)は、比較例として、メタラーニングの一手法であるMAML(Model Agnostic Meta-Learning)を用いて訓練された結果である。
【0114】
このグラフから、frec、ginvの双方を用いて訓練したものは、いずれか一方、又は、双方を用いずに訓練した結果よりもよい報酬を得ていることが分かる。また、MAMLと比較してもよい結果を得ていることが分かる。
【0115】
図7は、上述した手法の訓練中の報酬の遷移を示すグラフである。横軸は、訓練におけるエピソード数に比例し、縦軸は、報酬を示す。(4)と(5)については、図6の説明と同様である。比較例として、ドメインランダマイゼーションのみを用いた結果を示す。このグラフに示されるように、本実施形態によれば、訓練の早い段階から他の訓練よりもよい結果を得ることができることが分かる。
【0116】
図8は、上記に示した擾乱による影響を示すグラフである。横軸は、擾乱に係る係数Kを示し、縦軸は、報酬を示す。τは、ランダムに選択されたものである。実線で示す擾乱ありの結果は、訓練時に擾乱を設定し、上述の手法によりωeを推定して行動を推定した結果である。破線で示す擾乱なしの結果は、訓練においては擾乱を考慮したが、潜在状態Zに擾乱ωeをエンコードせず、ωeを推定せずに行動を推定した結果である。このグラフに示されるように、本実施形態によれば、擾乱を考慮し、さらに、潜在状態Zに反映することにより、よりよい結果が得られることが分かる。
【0117】
前述した実施形態における各装置(推定装置1又は訓練装置2)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0118】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0119】
図9は、前述した実施形態における各装置(推定装置1又は訓練装置2)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0120】
図9のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図9では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(推定装置1又は訓練装置2)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0121】
前述した実施形態における各装置(推定装置1又は訓練装置2)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0122】
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0123】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0124】
前述した実施形態における各装置(推定装置1及び/又は訓練装置2)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0125】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)において各種データを保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部は、主記憶装置72又は補助記憶装置73により実現されてもよい。
【0126】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0127】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやりとりが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標やNFC(Near Field Communication)等がある。
【0128】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
【0129】
外部装置9Aは、コンピュータ7とネットワークを介して接続されている装置である。外部装置9Bは、コンピュータ7と直接接続されている装置である。
【0130】
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ等、キーボード、マウス、又は、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0131】
また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0132】
また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aは、ネットワークストレージ等であってもよく、外部装置9Bは、HDD等のストレージであってもよい。
【0133】
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(推定装置1又は訓練装置2)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bの処理結果の一部又は全部を送信又は受信してもよい。
【0134】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又は、a-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0135】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0136】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0137】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
【0138】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0139】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0140】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0141】
本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
【0142】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでもよい。
【0143】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【0144】
1:推定装置、
10:第1推定部、
100:第1エンコーダ、
102:第2エンコーダ、
104:デコーダ、
12:第2推定部、
120:エスティメータ、
122:アグリゲータ、
2:訓練装置、
20:順伝播部、
22:誤差算出部、
24:更新部
図1
図2
図3
図4
図5
図6
図7
図8
図9