(57)【特許請求の範囲】
【請求項１】
制御装置及び前記制御装置により制御される機器を含む環境に係る状態値の入力を受け付けて、前記状態値に対応する特徴ベクトルであって前記状態値に比して高次元の前記特徴ベクトルを出力する特徴量抽出器と、
前記特徴ベクトルの入力を受け付けて、前記特徴ベクトルに対応する制御量を出力するコントローラと、
を備え、
前記特徴量抽出器は、１個の層又は複数個の層を有し、
前記１個の層又は前記複数個の層のうちの少なくとも１個の層は、第１ベクトルの入力を受け付けて、前記第１ベクトルを変換することにより第２ベクトルを生成して、前記第１ベクトルに基づく第３ベクトルを生成して、前記第２ベクトル及び前記第３ベクトルを結合することにより前記第１ベクトルに比して高次元の第４ベクトルを生成して、前記第４ベクトルを出力する構造を有する
ことを特徴とする推論装置。
【請求項２】
前記構造は、前記第１ベクトルを複製することにより前記第３ベクトルを生成するものであり、かつ、前記第１ベクトルを前記第２ベクトルに変換する学習型の第１変換器を含むことを特徴とする請求項１記載の推論装置。
【請求項３】
前記構造は、前記第１ベクトルを変換することにより前記第３ベクトルを生成するものであり、かつ、前記第１ベクトルを前記第２ベクトルに変換する学習型の第１変換器及び前記第１ベクトルを前記第３ベクトルに変換する非学習型の第２変換器を含むことを特徴とする請求項１記載の推論装置。
【請求項４】
前記特徴量抽出器が前記複数個の層を有し、かつ、前記複数個の層の各々が前記構造を有することを特徴とする請求項１から請求項３のうちのいずれか１項記載の推論装置。
【請求項５】
請求項１から請求項４のうちのいずれか１項記載の推論装置を備え、
前記機器がロボットであり、
前記特徴量抽出器は、前記ロボットを含む前記環境に係る前記状態値の入力を受け付けて、
前記コントローラは、前記ロボットの制御に用いられる前記制御量を出力する
ことを特徴とする機器制御システム。
【請求項６】
制御装置及び前記制御装置により制御される機器を含む環境に係る第１状態値の入力を受け付けて、前記第１状態値に対応する第１特徴ベクトルであって前記第１状態値に比して高次元の前記第１特徴ベクトルを出力する第１特徴量抽出器を有する推論装置用の学習装置において、
前記第１特徴ベクトル及び前記環境に係る行動値の入力を受け付けて、前記第１特徴ベクトル及び前記行動値に対応する第２特徴ベクトルであって前記第１特徴ベクトル及び前記行動値に比して高次元の前記第２特徴ベクトルを出力する第２特徴量抽出器と、
前記第２特徴ベクトル及び前記環境に係る第２状態値の入力を受け付けて、前記第２特徴ベクトル及び前記第２状態値を用いて前記第１特徴量抽出器のパラメータを更新する学習器と、
を備えることを特徴とする学習装置。
【請求項７】
前記第１特徴量抽出器及び前記第２特徴量抽出器の各々は、１個の層又は複数個の層を有し、
前記１個の層又は前記複数個の層のうちの少なくとも１個の層は、第１ベクトルの入力を受け付けて、前記第１ベクトルを変換することにより第２ベクトルを生成して、前記第１ベクトルに基づく第３ベクトルを生成して、前記第２ベクトル及び前記第３ベクトルを結合することにより前記第１ベクトルに比して高次元の第４ベクトルを生成して、前記第４ベクトルを出力する構造を有する
ことを特徴とする請求項６記載の学習装置。
【請求項８】
前記学習器は、前記第２特徴ベクトルを用いて前記第２状態値の予測値を算出して、前記第２状態値に対する前記予測値の差に基づく損失値が小さくなるように前記パラメータを更新することを特徴とする請求項６又は請求項７記載の学習装置。
【請求項９】
前記推論装置は、前記第１特徴ベクトルの入力を受け付けて、前記第１特徴ベクトルに対応する前記行動値を出力する第１コントローラを有し、
前記第１特徴量抽出器に入力される前記第１状態値、前記第２特徴量抽出器に入力される前記行動値、及び前記学習器に入力される前記第２状態値は、前記第１コントローラと異なる第２コントローラを用いて収集されたものである
ことを特徴とする請求項６から請求項８のうちのいずれか１項記載の学習装置。
【請求項１０】
前記第２コントローラは、前記環境に対してランダムに振る舞うものであることを特徴とする請求項９記載の学習装置。
【請求項１１】
前記パラメータは、前記第１特徴量抽出器における層数及び前記第１特徴量抽出器における個々の活性化関数を含むことを特徴とする請求項６から請求項１０のうちのいずれか１項記載の学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推論装置、機器制御システム及び学習装置に関する。
【背景技術】
【０００２】
従来、いわゆる「強化学習」を画像処理等に応用する技術が開発されている（例えば、特許文献１参照。）。通常、画像処理等に係る強化学習においては、画像等から得られる状態値の個数が大きい。すなわち、画像等から得られる特徴ベクトルの次元数が大きい。そこで、画像等から得られる特徴ベクトルの次元数に対して、エージェントに入力される特徴ベクトルの次元数を低減する観点から、特徴量抽出器が用いられている。これは、エージェントに入力される特徴ベクトルの次元数が大きすぎることにより、学習の効率及び推論の効率が低下するのを回避するためである。換言すれば、これは、学習の効率及び推論の効率を向上するためである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／０１９５５５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、強化学習を機器（例えばロボット又は自動運転車）の動作制御に応用する技術が開発されている。通常、機器を含む環境から得られる状態値の個数は、画像等から得られる状態値の個数に比して小さい。すなわち、機器を含む環境から得られる特徴ベクトルの次元数は、画像等から得られる特徴ベクトルの次元数に比して小さい。このため、機器の動作制御に係る強化学習においては、従来の特徴量抽出器と同様の特徴量抽出器を用いることにより、学習の効率及び推論の効率を向上することができない問題があった。【０００５】
以下、強化学習により機器の動作を制御するにあたり、学習の効率、推論の効率又は機器の動作の効率を総称して単に「効率」ということがある。【０００６】
本発明は、上記のような課題を解決するためになされたものであり、強化学習により機器の動作を制御するにあたり、効率の向上を図ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の推論装置は、制御装置及び制御装置により制御される機器を含む環境に係る状態値の入力を受け付けて、状態値に対応する特徴ベクトルであって状態値に比して高次元の特徴ベクトルを出力する特徴量抽出器と、特徴ベクトルの入力を受け付けて、特徴ベクトルに対応する制御量を出力するコントローラと、を備えるものである。特徴量抽出器は、１個の層又は複数個の層を有し、１個の層又は複数個の層のうちの少なくとも１個の層は、第１ベクトルの入力を受け付けて、第１ベクトルを変換することにより第２ベクトルを生成して、第１ベクトルに基づく第３ベクトルを生成して、第２ベクトル及び第３ベクトルを結合することにより第１ベクトルに比して高次元の第４ベクトルを生成して、第４ベクトルを出力する構造を有する。
【０００８】
本発明の学習装置は、制御装置及び制御装置により制御される機器を含む環境に係る第１状態値の入力を受け付けて、第１状態値に対応する第１特徴ベクトルであって第１状態値に比して高次元の第１特徴ベクトルを出力する第１特徴量抽出器を有する推論装置用の学習装置において、第１特徴ベクトル及び環境に係る行動値の入力を受け付けて、第１特徴ベクトル及び行動値に対応する第２特徴ベクトルであって第１特徴ベクトル及び行動値に比して高次元の第２特徴ベクトルを出力する第２特徴量抽出器と、第２特徴ベクトル及び環境に係る第２状態値の入力を受け付けて、第２特徴ベクトル及び第２状態値を用いて第１特徴量抽出器のパラメータを更新する学習器と、を備えるものである。
【発明の効果】
【０００９】
本発明によれば、上記のように構成したので、強化学習により機器の動作を制御するにあたり、効率の向上を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る機器制御システムの要部を示すブロック図である。
【図２】実施の形態１に係る機器制御システムにより制御されるロボットの例を示す説明図である。
【図３】実施の形態１に係る機器制御システムにおける特徴量抽出器及びコントローラの要部を示す説明図である。
【図４Ａ】実施の形態１に係る機器制御システムにおける特徴量抽出器内の個々の層が有する構造を示す説明図である。
【図４Ｂ】実施の形態１に係る機器制御システムにおける特徴量抽出器内の個々の層が有する他の構造を示す説明図である。
【図５Ａ】実施の形態１に係る機器制御システムにおける推論装置のハードウェア構成を示す説明図である。
【図５Ｂ】実施の形態１に係る機器制御システムにおける推論装置の他のハードウェア構成を示す説明図である。
【図６Ａ】実施の形態１に係る機器制御システムにおける制御装置のハードウェア構成を示す説明図である。
【図６Ｂ】実施の形態１に係る機器制御システムにおける制御装置の他のハードウェア構成を示す説明図である。
【図７】実施の形態１に係る機器制御システムの動作を示すフローチャートである。
【図８】実施の形態１に係る機器制御システムにおける特徴量抽出器内の個々の層の動作を示すフローチャートである。
【図９】実施の形態２に係る強化学習システムの要部を示すブロック図である。
【図１０】実施の形態２に係る強化学習システムにおける第１特徴量抽出器、第２特徴量抽出器、第１コントローラ及び学習器の要部を示す説明図である。
【図１１Ａ】実施の形態２に係る強化学習システムにおける学習装置のハードウェア構成を示す説明図である。
【図１１Ｂ】実施の形態２に係る強化学習システムにおける学習装置の他のハードウェア構成を示す説明図である。
【図１２】実施の形態２に係る強化学習システムの動作を示すフローチャートである。
【図１３】特徴量抽出器を有する強化学習システムにおける学習特性の例、及び特徴量抽出器を有しない強化学習システムにおける学習特性の例を示す特性図である。
【図１４】実施の形態３に係る強化学習システムの要部を示すブロック図である。
【図１５】実施の形態３に係る強化学習システムにおける記憶装置のハードウェア構成を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
【００１２】
実施の形態１．
図１は、実施の形態１に係る機器制御システムの要部を示すブロック図である。図２は、実施の形態１に係る機器制御システムにより制御されるロボットの例を示す説明図である。図３は、実施の形態１に係る機器制御システムにおける特徴量抽出器及びコントローラの要部を示す説明図である。図４Ａは、実施の形態１に係る機器制御システムにおける特徴量抽出器内の個々の層が有する構造を示す説明図である。図４Ｂは、実施の形態１に係る機器制御システムにおける特徴量抽出器内の個々の層が有する他の構造を示す説明図である。図１〜図４を参照して、実施の形態１に係る機器制御システムについて説明する。
【００１３】
図１に示す如く、環境Ｅは、制御装置１及びロボット２を含むものである。制御装置１は、ロボット２の動作を制御するものである。図２に示す如く、ロボット２は、例えば、ロボットアームにより構成されている。
【００１４】
図１に示す如く、制御装置１、特徴量抽出器３及びコントローラ４によるループが形成されている。制御装置１は、ロボット２の状態を示す状態値ｓｔを出力する。特徴量抽出器３は、当該出力された状態値ｓｔの入力を受け付ける。特徴量抽出器３は、当該入力された状態値ｓｔに対応する特徴ベクトルｖｔを出力する。コントローラ４は、当該出力された特徴ベクトルｖｔの入力を受け付ける。コントローラ４は、当該入力された特徴ベクトルｖｔに対応する制御量Ａｔを出力する。制御装置１は、当該出力された制御量Ａｔの入力を受け付ける。制御装置１は、当該入力された制御量Ａｔを用いてロボット２の動作を制御する。これにより、ロボット２の状態が更新される。制御装置１は、当該更新された状態を示す状態値ｓｔを出力する。
【００１５】
状態値ｓｔは、例えば、上記ロボットアームの手の位置を示す値、及び上記ロボットアームの手の速度を示す値を含むものである。制御量Ａｔは、例えば、上記ロボットアームの動作制御に用いられるトルクを示す値を含むものである。
【００１６】
図３に示す如く、特徴量抽出器３は、ニューラルネットワークＮＮ１により構成されている。ニューラルネットワークＮＮ１は、複数個の層Ｌ１を有している。個々の層Ｌ１は、例えば、いわゆる「全結合層」（以下「ＦＣ層」と記載する。）により構成されている。ここで、個々の層Ｌ１は、以下のような構造Ｓを有している。
【００１７】
第一に、構造Ｓは、前の層Ｌ１により出力されたベクトル（以下「第１ベクトル」という。）ｘ１の入力を受け付けるものである。ただし、複数個の層Ｌ１のうちの最初の層Ｌ１における構造Ｓに入力される第１ベクトルｘ１は、前の層Ｌ１により出力されたベクトルではなく、制御装置１により出力された状態値ｓｔを示すベクトルである。
【００１８】
第二に、構造Ｓは、当該入力された第１ベクトルｘ１を変換してなるベクトル（以下「第２ベクトル」という。）ｘ２を生成するものである。これにより、例えば、第１ベクトルｘ１の次元数よりも小さい次元数を有する第２ベクトルｘ２が生成される。換言すれば、例えば、第１ベクトルｘ１に比して低次元の第２ベクトルｘ２が生成される。
【００１９】
第三に、構造Ｓは、当該入力された第１ベクトルｘ１に基づくベクトル（以下「第３ベクトル」という。）ｘ３を生成するものである。これにより、例えば、第１ベクトルｘ１の次元数と同等の次元数を有する第３ベクトルｘ３が生成される。
【００２０】
第四に、構造Ｓは、当該生成された第２ベクトルｘ２及び当該生成された第３ベクトルｘ３を結合してなるベクトル（以下「第４ベクトル」という。）ｘ４を生成するものである。これにより、第１ベクトルｘ１の次元数よりも大きい次元数を有する第４ベクトルｘ４が生成される。換言すれば、第１ベクトルｘ１に比して高次元の第４ベクトルｘ４が生成される。
【００２１】
第五に、構造Ｓは、当該生成された第４ベクトルｘ４を次の層Ｌ１に出力するものである。ただし、複数個の層Ｌ１のうちの最後の層Ｌ１における構造Ｓは、当該生成された第４ベクトルｘ４をコントローラ４に出力する。最後の層Ｌ１における構造Ｓにより出力された第４ベクトルｘ４は、コントローラ４に入力される特徴ベクトルｖｔとなる。
【００２２】
図４Ａ及び図４Ｂの各々は、構造Ｓの例を示している。図４Ａに示す例において、第３ベクトルｘ３は、第１ベクトルｘ１を複製してなるものである。換言すれば、第３ベクトルｘ３は、第１ベクトルｘ１と同一のベクトルである。この場合、構造Ｓは、第１ベクトルｘ１を複製する処理（以下「複製処理」という。）を実行するものである。また、構造Ｓは、第１ベクトルｘ１を第２ベクトルｘ２に変換する処理（以下「第１変換処理」という。）を実行する学習型の変換器（以下「第１変換器」という。）１１を含むものである。第１変換器１１は、例えば、ＦＣ層により構成されている。
【００２３】
他方、図４Ｂに示す例において、第３ベクトルｘ３は、第１ベクトルｘ１を変換してなるものである。この場合、構造Ｓは、第１変換器１１に加えて、第１ベクトルｘ１を第３ベクトルｘ３に変換する処理（以下「第２変換処理」という。）を実行する非学習型の変換器（以下「第２変換器」という。）１２を含むものである。第２変換器１２は、所定の変換規則に基づき第１ベクトルｘ１を第３ベクトルｘ３に変換するものである。
【００２４】
個々の層Ｌ１が構造Ｓを有していることにより、特徴量抽出器３に入力される状態値ｓｔの個数に対して、コントローラ４に入力される特徴ベクトルｖｔの次元数を大きくすることができる。これにより、環境Ｅから得られる状態値ｓｔの個数が小さい場合であっても、推論装置１００における推論に高次元の特徴ベクトルｖｔを用いることができる。換言すれば、推論装置１００における推論に用いられる情報量を大きくすることができる。この結果、ロボット２の動作を効率的に制御することができる。
【００２５】
すなわち、機器の動作制御に係る強化学習において、仮に従来の特徴量抽出器と同様の特徴量抽出器を用いた場合、エージェントに入力される特徴ベクトルの次元数が更に小さくなる。エージェントに入力される特徴ベクトルの次元数が小さいということは、推論に用いられる情報量が小さいことを意味している。したがって、この場合、推論に用いられる情報量が小さいことにより、高い報酬値に対応する推論を実現することが困難であるという問題があった。この結果、機器の動作を効率的に制御することが困難であるという問題があった。
【００２６】
これに対して、特徴量抽出器３を用いることにより、上記のとおり、推論装置１００における推論に用いられる情報量を大きくすることができる。この結果、ロボット２の動作を効率的に制御することができる。すなわち、効率の向上を図ることができる。
【００２７】
また、複製処理は、学習型の第１変換処理に比して簡単である。また、非学習型の第２変換処理は、学習型の第１変換処理に比して簡単である。このため、特徴ベクトルｖｔの次元数を大きくするにあたり、複製処理又は第２変換処理を用いることにより、推論装置１００における演算量を低減することができる。この結果、推論装置１００における推論の効率を向上することができる。
【００２８】
図３に示す如く、コントローラ４は、ニューラルネットワークＮＮ２により構成されている。ニューラルネットワークＮＮ２は、複数個の層Ｌ２を有している。個々の層Ｌ２は、例えば、ＦＣ層により構成されている。コントローラ４は、例えば、いわゆる「Ａｃｔｏｒ−Ｃｒｉｔｉｃ」アルゴリズムにおける「Ａｃｔｏｒ」要素に対応するものである。すなわち、推論装置１００における推論は、強化学習によるものである。
【００２９】
図１に示す如く、特徴量抽出器３及びコントローラ４により、推論装置１００の要部が構成されている。また、推論装置１００及び制御装置１により、機器制御システム２００の要部が構成されている。また、機器制御システム２００及びロボット２により、ロボットシステム３００の要部が構成されている。
【００３０】
次に、図５を参照して、推論装置１００の要部のハードウェア構成について説明する。
【００３１】
図５Ａに示す如く、推論装置１００は、プロセッサ２１及びメモリ２２を有している。メモリ２２には、特徴量抽出器３及びコントローラ４の機能を実現するためのプログラムが記憶されている。かかるプログラムをプロセッサ２１が読み出して実行することにより、特徴量抽出器３及びコントローラ４の機能が実現される。
【００３２】
または、図５Ｂに示す如く、推論装置１００は、処理回路２３を有している。この場合、特徴量抽出器３及びコントローラ４の機能は、専用の処理回路２３により実現される。
【００３３】
または、推論装置１００は、プロセッサ２１、メモリ２２及び処理回路２３を有している（不図示）。この場合、特徴量抽出器３及びコントローラ４の機能のうちの一部の機能がプロセッサ２１及びメモリ２２により実現されるとともに、残余の機能が専用の処理回路２３により実現される。
【００３４】
プロセッサ２１は、１個又は複数個のプロセッサにより構成されている。個々のプロセッサは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ、マイクロコントローラ又はＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を用いたものである。
【００３５】
メモリ２２は、１個又は複数個の不揮発性メモリにより構成されている。または、メモリ２２は、１個又は複数個の不揮発性メモリ及び１個又は複数個の揮発性メモリにより構成されている。すなわち、メモリ２２は、１個又は複数個のメモリにより構成されている。個々のメモリは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク又は磁気テープを用いたものである。より具体的には、個々の揮発性メモリは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いたものである。また、個々の不揮発性メモリは、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ソリッドステートドライブ、ハードディスクドライブ、フレキシブルディスク、コンパクトディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスク又はミニディスクを用いたものである。
【００３６】
処理回路２３は、１個又は複数個のデジタル回路により構成されている。または、処理回路２３は、１個又は複数個のデジタル回路及び１個又は複数個のアナログ回路により構成されている。すなわち、処理回路２３は、１個又は複数個の処理回路により構成されている。個々の処理回路は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）又はシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）を用いたものである。
【００３７】
次に、図６を参照して、制御装置１の要部のハードウェア構成について説明する。
【００３８】
図６Ａに示す如く、制御装置１は、プロセッサ３１及びメモリ３２を有している。メモリ３２には、制御装置１の機能を実現するためのプログラムが記憶されている。かかるプログラムをプロセッサ３１が読み出して実行することにより、制御装置１の機能が実現される。
【００３９】
または、図６Ｂに示す如く、制御装置１は、処理回路３３を有している。この場合、制御装置１の機能は、専用の処理回路３３により実現される。
【００４０】
または、制御装置１は、プロセッサ３１、メモリ３２及び処理回路３３を有している（不図示）。この場合、制御装置１の機能のうちの一部の機能がプロセッサ３１及びメモリ３２により実現されるとともに、残余の機能が専用の処理回路３３により実現される。
【００４１】
プロセッサ３１は、１個又は複数個のプロセッサにより構成されている。個々のプロセッサは、例えば、ＣＰＵ、ＧＰＵ、マイクロプロセッサ、マイクロコントローラ又はＤＳＰを用いたものである。
【００４２】
メモリ３２は、１個又は複数個の不揮発性メモリにより構成されている。または、メモリ３２は、１個又は複数個の不揮発性メモリ及び１個又は複数個の揮発性メモリにより構成されている。すなわち、メモリ３２は、１個又は複数個のメモリにより構成されている。個々のメモリは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク又は磁気テープを用いたものである。より具体的には、個々の揮発性メモリは、例えば、ＲＡＭを用いたものである。また、個々の不揮発性メモリは、例えば、ＲＯＭ、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ソリッドステートドライブ、ハードディスクドライブ、フレキシブルディスク、コンパクトディスク、ＤＶＤ、ブルーレイディスク又はミニディスクを用いたものである。
【００４３】
処理回路３３は、１個又は複数個のデジタル回路により構成されている。または、処理回路３３は、１個又は複数個のデジタル回路及び１個又は複数個のアナログ回路により構成されている。すなわち、処理回路３３は、１個又は複数個の処理回路により構成されている。個々の処理回路は、例えば、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡ、ＳｏＣ又はシステムＬＳＩを用いたものである。
【００４４】
次に、図７のフローチャートを参照して、機器制御システム２００の動作について説明する。制御装置１が状態値ｓｔを出力したとき、ステップＳＴ１の処理が実行される。
【００４５】
まず、特徴量抽出器３は、状態値ｓｔの入力を受け付けて、当該入力された状態値ｓｔに対応する特徴ベクトルｖｔを出力する（ステップＳＴ１）。次いで、コントローラ４は、特徴ベクトルｖｔの入力を受け付けて、当該入力された特徴ベクトルｖｔに対応する制御量Ａｔを出力する（ステップＳＴ２）。次いで、制御装置１は、制御量Ａｔの入力を受け付けて、当該入力された制御量Ａｔを用いてロボット２の動作を制御する（ステップＳＴ３）。
【００４６】
制御装置１がロボット２の動作を制御することにより、ロボット２の状態が更新される。制御装置１は、当該更新された状態を示す状態値ｓｔを出力する。これにより、機器制御システム２００の処理は、ステップＳＴ１に戻る。以下、ステップＳＴ１〜ＳＴ３の処理が繰り返し実行される。
【００４７】
次に、図８のフローチャートを参照して、特徴量抽出器３における個々の層Ｌ１の動作について説明する。すなわち、構造Ｓの動作について説明する。
【００４８】
まず、構造Ｓは、第１ベクトルｘ１の入力を受け付ける（ステップＳＴ１１）。次いで、構造Ｓは、第１ベクトルｘ１に対する第１変換処理を実行することにより、第２ベクトルｘ２を生成する（ステップＳＴ１２）。次いで、構造Ｓは、第１ベクトルｘ１に対する複製処理又は第２変換処理を実行することにより、第３ベクトルｘ３を生成する（ステップＳＴ１３）。次いで、構造Ｓは、第２ベクトルｘ２及び第３ベクトルｘ３を結合することにより、第４ベクトルｘ４を生成する（ステップＳＴ１４）。次いで、構造Ｓは、第４ベクトルｘ４を出力する（ステップＳＴ１５）。
【００４９】
次に、機器制御システム２００の変形例について説明する。
【００５０】
ニューラルネットワークＮＮ１における層Ｌ１の個数、及び構造Ｓを有する層Ｌ１の個数は、上記の具体例に限定されるものではない。これらの個数は、特徴量抽出器３に入力される状態値ｓｔの個数に対して、コントローラ４に入力される特徴ベクトルｖｔの次元数が大きくなるように設定されたものであれば良い。
【００５１】
例えば、上記のとおり、ニューラルネットワークＮＮ１が複数個の層Ｌ１を有しており、かつ、当該複数個の層Ｌ１の各々が構造Ｓを有しているものであっても良い。または、例えば、ニューラルネットワークＮＮ１が複数個の層Ｌ１に代えて１個の層Ｌ１を有しており、かつ、当該１個の層Ｌ１が構造Ｓを有しているものであっても良い。
【００５２】
または、例えば、ニューラルネットワークＮＮ１が複数個の層Ｌ１を有しており、かつ、当該複数個の層Ｌ１のうちの選択された２個以上の層Ｌ１の各々が構造Ｓを有しているものであっても良い。この場合、当該複数個の層Ｌ１のうちの残余の１個以上の層Ｌ１の各々は、構造Ｓを有しないものであっても良い。
【００５３】
または、例えば、ニューラルネットワークＮＮ１が複数個の層Ｌ１を有しており、かつ、当該複数個の層Ｌ１のうちの選択された１個の層Ｌ１が構造Ｓを有しているものであっても良い。この場合、当該複数個の層Ｌ１のうちの残余の１個以上の層Ｌ１の各々は、構造Ｓを有しないものであっても良い。
【００５４】
ただし、推論装置１００における推論に用いられる情報量を更に大きくする観点から、構造Ｓを有する層Ｌ１の個数を大きくするのが好適である。したがって、ニューラルネットワークＮＮ１に複数個の層Ｌ１が設けられており、かつ、当該複数個の層Ｌ１の各々に構造Ｓが設けられているのが好適である。
【００５５】
また、ニューラルネットワークＮＮ２における層Ｌ２の個数は、上記の具体例に限定されるものではない。ニューラルネットワークＮＮ２は、複数個の層Ｌ２に代えて１個の層Ｌ２を有するものであっても良い。すなわち、推論装置１００における推論は、いわゆる「深層型」の強化学習によるものであっても良い。または、推論装置１００における推論は、非深層型の強化学習によるものであっても良い。
【００５６】
また、制御装置１のハードウェアは、推論装置１００のハードウェアと一体に構成されたものであっても良い。すなわち、図６Ａに示すプロセッサ３１は、図５Ａに示すプロセッサ２１と一体に構成されたものであっても良い。図６Ａに示すメモリ３２は、図５Ａに示すメモリ２２と一体に構成されたものであっても良い。図６Ｂに示す処理回路３３は、図５Ｂに示す処理回路２３と一体に構成されたものであっても良い。
【００５７】
また、制御装置１による制御対象は、ロボット２に限定されるものではない。制御装置１は、如何なる機器の動作を制御するものであっても良い。例えば、制御装置１は、自動運転車の動作を制御するものであっても良い。
【００５８】
以上のように、推論装置１００は、制御装置１及び制御装置１により制御される機器（例えばロボット２）を含む環境Ｅに係る状態値ｓｔの入力を受け付けて、状態値ｓｔに対応する特徴ベクトルｖｔであって状態値ｓｔに比して高次元の特徴ベクトルｖｔを出力する特徴量抽出器３と、特徴ベクトルｖｔの入力を受け付けて、特徴ベクトルｖｔに対応する制御量Ａｔを出力するコントローラ４と、を備える。特徴量抽出器３を用いることにより、環境Ｅから得られる状態値ｓｔの個数に対して、コントローラ４に入力される特徴ベクトルｖｔの次元数を大きくすることができる。これにより、推論装置１００における推論に用いられる情報量を大きくすることができる。この結果、機器（例えばロボット２）の動作を効率的に制御することができる。
【００５９】
また、特徴量抽出器３は、１個の層Ｌ１又は複数個の層Ｌ１を有し、１個の層Ｌ１又は複数個の層Ｌ１のうちの少なくとも１個の層Ｌ１は、第１ベクトルｘ１の入力を受け付けて、第１ベクトルｘ１を変換することにより第２ベクトルｘ２を生成して、第１ベクトルｘ１に基づく第３ベクトルｘ３を生成して、第２ベクトルｘ２及び第３ベクトルｘ３を結合することにより第１ベクトルｘ１に比して高次元の第４ベクトルｘ４を生成して、第４ベクトルｘ４を出力する構造Ｓを有する。構造Ｓを用いることにより、特徴量抽出器３を実現することができる。
【００６０】
また、構造Ｓは、第１ベクトルｘ１を複製することにより第３ベクトルｘ３を生成するものであり、かつ、第１ベクトルｘ１を第２ベクトルｘ２に変換する学習型の第１変換器１１を含む。特徴ベクトルｖｔの次元数を大きくするにあたり、複製処理を用いることにより、推論装置１００における演算量を低減することができる。この結果、推論装置１００における推論の効率を向上することができる。
【００６１】
また、構造Ｓは、第１ベクトルｘ１を変換することにより第３ベクトルｘ３を生成するものであり、かつ、第１ベクトルｘ１を第２ベクトルｘ２に変換する学習型の第１変換器１１及び第１ベクトルｘ１を第３ベクトルｘ３に変換する非学習型の第２変換器１２を含む。特徴ベクトルｖｔの次元数を大きくするにあたり、非学習型の第２変換処理を用いることにより、推論装置１００における演算量を低減することができる。この結果、推論装置１００における推論の効率を向上することができる。
【００６２】
また、特徴量抽出器３が複数個の層Ｌ１を有し、かつ、複数個の層Ｌ１の各々が構造Ｓを有する。構造Ｓを有する層Ｌ１の個数を大きくすることにより、推論装置１００における推論に用いられる情報量を更に大きくすることができる。
【００６３】
また、機器制御システム２００は、推論装置１００を備え、機器がロボット２であり、特徴量抽出器３は、ロボット２を含む環境Ｅに係る状態値ｓｔの入力を受け付けて、コントローラ４は、ロボット２の制御に用いられる制御量Ａｔを出力する。推論装置１００を用いることにより、上記のとおり、ロボット２（例えばロボットアーム）の動作を効率的に制御することができる。
【００６４】
実施の形態２．
図９は、実施の形態２に係る強化学習システムの要部を示すブロック図である。図１０は、実施の形態２に係る強化学習システムにおける第１特徴量抽出器、第２特徴量抽出器、第１コントローラ及び学習器の要部を示す説明図である。図９及び図１０を参照して、実施の形態２に係る強化学習システムについて説明する。
【００６５】
図９に示す如く、環境Ｅ、第１特徴量抽出器４１及び第１コントローラ５１によるループが形成されている。環境Ｅは、環境Ｅにおける状態を示す状態値（以下「第１状態値」という。）ｓｔを出力する。第１特徴量抽出器４１は、当該出力された第１状態値ｓｔの入力を受け付ける。第１特徴量抽出器４１は、当該入力された第１状態値ｓｔに対応する特徴ベクトル（以下「第１特徴ベクトル」という。）ｖｔを出力する。第１コントローラ５１は、当該出力された第１特徴ベクトルｖｔの入力を受け付ける。第１コントローラ５１は、当該入力された第１特徴ベクトルｖｔに対応する行動値ａｔを出力する。環境Ｅは、当該出力された行動値ａｔの入力を受け付ける。環境Ｅにて、当該入力された行動値ａｔに応じた行動が実行される。これにより、環境Ｅにおける状態が更新される。環境Ｅは、当該更新された状態を示す状態値（以下「第２状態値」という。）ｓｔを出力する。以下、第２状態値に「ｓｔ＋１」の符号を用いることがある。
【００６６】
すなわち、図９に示す環境Ｅは、図１に示す環境Ｅに相当するものである。したがって、図９に示す環境Ｅは、制御装置１及びロボット２を含むものである（不図示）。また、図９に示す第１特徴量抽出器４１は、図１に示す特徴量抽出器３に相当するものである。また、図９に示す第１コントローラ５１は、図１に示すコントローラ４に相当するものである。また、図９に示す行動値ａｔは、図１に示す制御量Ａｔに相当するものである。
【００６７】
図１０に示す如く、第１特徴量抽出器４１は、ニューラルネットワークＮＮ１＿１により構成されている。ニューラルネットワークＮＮ１＿１は、複数個の層Ｌ１＿１を有している。個々の層Ｌ１＿１は、例えば、ＦＣ層により構成されている。ここで、個々の層Ｌ１＿１は、構造Ｓと同様の構造Ｓ＿１を有している。構造Ｓ＿１については、実施の形態１にて図４を参照して説明したものと同様であるため、図示及び説明を省略する。個々の層Ｌ１＿１が構造Ｓ＿１を有していることにより、第１特徴量抽出器４１に入力される第１状態値ｓｔの個数に対して、第１コントローラ５１に入力される第１特徴ベクトルｖｔの次元数が大きくなる。
【００６８】
図１０に示す如く、第１コントローラ５１は、ニューラルネットワークＮＮ２により構成されている。ニューラルネットワークＮＮ２は、複数個の層Ｌ２を有している。個々の層Ｌ２は、例えば、ＦＣ層により構成されている。第１コントローラ５１は、いわゆる「Ａｃｔｏｒ−Ｃｒｉｔｉｃ」アルゴリズムにおける「Ａｃｔｏｒ」要素に対応するものである。
【００６９】
図９に示す如く、第１特徴量抽出器４１が設けられているのに加えて、第２特徴量抽出器４２が設けられている。第１特徴量抽出器４１及び第２特徴量抽出器４２により、特徴量抽出器４０の要部が構成されている。
【００７０】
第２特徴量抽出器４２は、第１特徴量抽出器４１により出力された第１特徴ベクトルｖｔの入力を受け付けるものである。また、第２特徴量抽出器４２は、行動値ａｔの入力を受け付けるものである。第２特徴量抽出器４２に入力される行動値ａｔは、例えば、環境Ｅ内の制御装置１により出力されたものである。第２特徴量抽出器４２は、当該入力された第１特徴ベクトルｖｔ及び当該入力された行動値ａｔに対応する特徴ベクトル（以下「第２特徴ベクトル」という。）ｖｔ’を出力するものである。ここで、上記のとおり、第１特徴ベクトルｖｔは、第１状態値ｓｔに対応する特徴ベクトルである。したがって、第２特徴ベクトルｖｔ’は、第１状態値ｓｔ及び行動値ａｔによる組に対応する特徴ベクトルである。
【００７１】
図１０に示す如く、第２特徴量抽出器４２は、ニューラルネットワークＮＮ１＿２により構成されている。ニューラルネットワークＮＮ１＿２は、複数個の層Ｌ１＿２を有している。個々の層Ｌ１＿２は、例えば、ＦＣ層により構成されている。ここで、個々の層Ｌ１＿２は、構造Ｓと同様の構造Ｓ＿２を有している。構造Ｓ＿２については、実施の形態１にて図４を参照して説明したものと同様であるため、図示及び説明を省略する。個々の層Ｌ１＿２が構造Ｓ＿２を有していることにより、第２特徴量抽出器４２に入力される第１特徴ベクトルｖｔの次元数及び行動値ａｔの個数による合計数に対して、学習器５２に入力される第２特徴ベクトルｖｔ’の次元数が大きくなる。
【００７２】
図９に示す如く、第１コントローラ５１が設けられているのに加えて、学習器５２が設けられている。第１コントローラ５１及び学習器５２により、エージェント５０の要部が構成されている。学習器５２は、いわゆる「Ａｃｔｏｒ−Ｃｒｉｔｉｃ」アルゴリズムにおける「Ｃｒｉｔｉｃ」要素に対応するものである。
【００７３】
すなわち、図１０に示す如く、学習器５２は、ニューラルネットワークＮＮ３を有している。ニューラルネットワークＮＮ３は、１個の層Ｌ３を有している。１個の層Ｌ３は、例えば、ＦＣ層により構成されている。ニューラルネットワークＮＮ３は、第２特徴量抽出器４２により出力された第２特徴ベクトルｖｔ’の入力を受け付けるものである。これに対して、ニューラルネットワークＮＮ３は、第２状態値ｓｔ＋１の予測値ｓｔ＋１’を出力するものである。換言すれば、ニューラルネットワークＮＮ３は、当該入力された第２特徴ベクトルｖｔ’を用いて予測値ｓｔ＋１’を算出するものである。
【００７４】
また、図１０に示す如く、学習器５２は、パラメータ設定器６１を有している。パラメータ設定器６１は、ニューラルネットワークＮＮ３により出力された予測値ｓｔ＋１’の入力を受け付けるものである。これに加えて、パラメータ設定器６１は、環境Ｅ内の制御装置１により出力された第２状態値ｓｔ＋１の入力を受け付けるものである。パラメータ設定器６１は、当該入力された予測値ｓｔ＋１’及び当該入力された第２状態値ｓｔ＋１を用いて、強化学習により、第１特徴量抽出器４１のパラメータＰ１を更新するとともに第１コントローラ５１のパラメータＰ２を更新するものである。
【００７５】
より具体的には、パラメータ設定器６１は、第２状態値ｓｔ＋１に対する予測値ｓｔ＋１’の差に基づく損失値Ｌを算出する。パラメータ設定器６１は、損失値Ｌが小さくなるようにパラメータＰ１，Ｐ２を更新する。
【００７６】
パラメータ設定器６１により更新されるパラメータＰ１は、例えば、ニューラルネットワークＮＮ１＿１における層Ｌ１＿１の個数（以下「層数」という。）、及びニューラルネットワークＮＮ１＿１における個々の活性化関数を含むものである。また、パラメータ設定器６１により更新されるパラメータＰ１は、例えば、ニューラルネットワークＮＮ１＿１における個々の第１変換器（不図示）の構造を含むものである。すなわち、パラメータ設定器６１により更新されるパラメータＰ１は、複数個のパラメータを含むものである。これと同様に、パラメータ設定器６１により更新されるパラメータＰ２は、複数個のパラメータを含むものである。
【００７７】
図９に示す如く、第１特徴量抽出器４１及び第１コントローラ５１により、推論装置１００の要部が構成されている。また、第２特徴量抽出器４２及び学習器５２により、学習装置４００の要部が構成されている。また、推論装置１００及び学習装置４００により、強化学習システム５００の要部が構成されている。
【００７８】
推論装置１００の要部のハードウェア構成については、実施の形態１にて図５を参照して説明したものと同様であるため、図示及び説明を省略する。すなわち、第１特徴量抽出器４１及び第１コントローラ５１の機能は、プロセッサ２１及びメモリ２２により実現されるものであっても良く、又は専用の処理回路２３により実現されるものであっても良い。
【００７９】
次に、図１１を参照して、学習装置４００の要部のハードウェア構成について説明する。
【００８０】
図１１Ａに示す如く、学習装置４００は、プロセッサ７１及びメモリ７２を有している。メモリ７２には、第２特徴量抽出器４２及び学習器５２の機能を実現するためのプログラムが記憶されている。かかるプログラムをプロセッサ７１が読み出して実行することにより、第２特徴量抽出器４２及び学習器５２の機能が実現される。
【００８１】
または、図１１Ｂに示す如く、学習装置４００は、処理回路７３を有している。この場合、第２特徴量抽出器４２及び学習器５２の機能は、専用の処理回路７３により実現される。
【００８２】
または、学習装置４００は、プロセッサ７１、メモリ７２及び処理回路７３を有している（不図示）。この場合、第２特徴量抽出器４２及び学習器５２の機能のうちの一部の機能がプロセッサ７１及びメモリ７２により実現されるとともに、残余の機能が専用の処理回路７３により実現される。
【００８３】
プロセッサ７１は、１個又は複数個のプロセッサにより構成されている。個々のプロセッサは、例えば、ＣＰＵ、ＧＰＵ、マイクロプロセッサ、マイクロコントローラ又はＤＳＰを用いたものである。
【００８４】
メモリ７２は、１個又は複数個の不揮発性メモリにより構成されている。または、メモリ７２は、１個又は複数個の不揮発性メモリ及び１個又は複数個の揮発性メモリにより構成されている。すなわち、メモリ７２は、１個又は複数個のメモリにより構成されている。個々のメモリは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク又は磁気テープを用いたものである。より具体的には、個々の揮発性メモリは、例えば、ＲＡＭを用いたものである。また、個々の不揮発性メモリは、例えば、ＲＯＭ、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ソリッドステートドライブ、ハードディスクドライブ、フレキシブルディスク、コンパクトディスク、ＤＶＤ、ブルーレイディスク又はミニディスクを用いたものである。
【００８５】
処理回路７３は、１個又は複数個のデジタル回路により構成されている。または、処理回路７３は、１個又は複数個のデジタル回路及び１個又は複数個のアナログ回路により構成されている。すなわち、処理回路７３は、１個又は複数個の処理回路により構成されている。個々の処理回路は、例えば、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡ、ＳｏＣ又はシステムＬＳＩを用いたものである。
【００８６】
次に、図１２のフローチャートを参照して、強化学習システム５００の動作について、第１特徴量抽出器４１、第２特徴量抽出器４２及び学習器５２の動作を中心に説明する。すなわち、学習装置４００による学習に係る動作を中心に説明する。
【００８７】
図１２に示す処理は、例えば、図７に示す処理と並行して繰り返し実行される。すなわち、学習装置４００による学習は、例えば、推論装置１００による推論及び制御装置１による制御と並行して繰り返し実行される。図１２に示すステップＳＴ２１の処理は、図７に示すステップＳＴ１の処理に相当するものである。
【００８８】
まず、第１特徴量抽出器４１は、第１状態値ｓｔの入力を受け付けて、当該入力された第１状態値ｓｔに対応する第１特徴ベクトルｖｔを出力する（ステップＳＴ２１）。
【００８９】
次いで、第２特徴量抽出器４２は、第１特徴ベクトルｖｔ及び行動値ａｔの入力を受け付けて、当該入力された第１特徴ベクトルｖｔ及び行動値ａｔに対応する第２特徴ベクトルｖｔ’を出力する（ステップＳＴ２２）。
【００９０】
次いで、学習器５２内のニューラルネットワークＮＮ３は、第２特徴ベクトルｖｔ’の入力を受け付けて、予測値ｓｔ＋１’を出力する（ステップＳＴ２３）。
【００９１】
次いで、学習器５２内のパラメータ設定器６１は、予測値ｓｔ＋１’及び第２状態値ｓｔ＋１の入力を受け付けて、損失値Ｌが小さくなるようにパラメータＰ１，Ｐ２を更新する（ステップＳＴ２４）。
【００９２】
次に、図１３を参照して、特徴量抽出器４０を用いたことによる効果について説明する。より具体的には、学習の効率が向上する効果を中心に説明する。
【００９３】
以下の参考文献１には、いわゆる「Ｓｏｆｔ  Ａｃｔｏｒ−Ｃｒｉｔｉｃ」アルゴリズムが開示されている。
【００９４】
［参考文献１］
Tuomas Haarnoja, Aurick Zhou, Pieter Abbeel, and Sergey Levine, "Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor," version 2, 8 August 2018, URL: https://arxiv.org/pdf/1801.01290v2.pdf
【００９５】
以下、参考文献１に記載された「Ｓｏｆｔ  Ａｃｔｏｒ−Ｃｒｉｔｉｃ」アルゴリズムに基づくエージェントを用いた強化学習システムＳ１であって、特徴量抽出器４０に相当する特徴量抽出器を有する強化学習システムＳ１を「第１強化学習システム」という。また、参考文献１に記載された「Ｓｏｆｔ  Ａｃｔｏｒ−Ｃｒｉｔｉｃ」アルゴリズムに基づくエージェントを用いた強化学習システムＳ２であって、特徴量抽出器４０に相当する特徴量抽出器を有しない強化学習システムＳ２を「第２強化学習システム」という。
【００９６】
すなわち、第１強化学習システムＳ１は、実施の形態２に係る強化学習システム５００に対応するものである。他方、第２強化学習システムＳ２は、従来の強化学習システムに対応するものである。
【００９７】
第１強化学習システムＳ１において、第１特徴量抽出器４１に相当する特徴量抽出器は、８個の層を有している。当該８個の層の各々は、構造Ｓと同様の構造を有している。これにより、かかる特徴量抽出器に入力されるベクトルの次元数（すなわち状態値ｓｔに対応する特徴ベクトルの次元数）に対して、かかる特徴量抽出器により出力されるベクトルの次元数（すなわち「Ａｃｔｏｒ」要素に入力される特徴ベクトルの次元数）が２４０増加するものである。
【００９８】
また、第１強化学習システムＳ１において、第２特徴量抽出器４２に相当する特徴量抽出器は、１６個の層を有している。当該１６個の層の各々は、構造Ｓと同様の構造を有している。これにより、かかる特徴量抽出器に入力されるベクトルの次元数（すなわち状態値ｓｔ及び行動値ａｔによる組に対応する特徴ベクトルの次元数）に対して、かかる特徴量抽出器により出力されるベクトルの次元数（すなわち「Ｃｒｉｔｉｃ」要素に入力される特徴ベクトルの次元数）が４８０増加するものである。
【００９９】
図１３における特性線Ｉは、第１強化学習システムＳ１を用いた実験結果の例を示している。また、図１３における特性線ＩＩは、第２強化学習システムＳ２を用いた実験結果の例を示している。これらの実験結果は、いわゆる「Ａｎｔ−ｖ２」ベンチマークに基づくものである。
【０１００】
図１３における横軸は、データ数に対応している。データ数は、強化学習システムＳ１，Ｓ２の各々による学習及び推論が繰り返し実行されるときの、推論の実行回数に対応している。すなわち、データ数は、環境Ｅから得られる値（状態値ｓｔを含む。）の個数の累積値に対応している。また、図１３における縦軸は、スコアに対応している。スコアは、強化学習システムＳ１，Ｓ２の各々による学習及び推論が繰り返し実行されるときの、各回の推論の結果に基づく行動により得られる報酬値ｒｔに対応している。
【０１０１】
すなわち、特性線Ｉは、第１強化学習システムＳ１における学習特性を示している。また、特性線ＩＩは、第２強化学習システムＳ２における学習特性を示している。
【０１０２】
図１３に示す如く、第１強化学習システムＳ１を用いることにより、第２強化学習システムＳ２を用いた場合に比して、データ数に対するスコアを向上することができる。これは、所定の報酬値ｒｔに対応する推論を実現するにあたり、特徴量抽出器４０を用いることにより、エージェント５０と環境Ｅ間の対話回数を低減することができるということを示している。
【０１０３】
また、図１３に示す如く、第１強化学習システムＳ１を用いることにより、第２強化学習システムＳ２を用いた場合に比して、スコアの最大値を向上することができる。これは、特徴量抽出器４０を用いることにより、より高い報酬値ｒｔに対応する推論を実現することができるということを示している。
【０１０４】
このように、特徴量抽出器４０を用いることにより、学習の効率を向上することができる。また、推論の効率を向上することができる。
【０１０５】
次に、強化学習システム５００の変形例について説明する。
【０１０６】
ニューラルネットワークＮＮ１＿１における層Ｌ１＿１の個数、及び構造Ｓ＿１を有する層Ｌ１＿１の個数は、上記の具体例に限定されるものではない。これらの個数は、第１特徴量抽出器４１に入力される状態値ｓｔの個数に対して、第１コントローラ５１に入力される特徴ベクトルｖｔの次元数が大きくなるように設定されたものであれば良い。
【０１０７】
例えば、上記のとおり、ニューラルネットワークＮＮ１＿１が複数個の層Ｌ１＿１を有しており、かつ、当該複数個の層Ｌ１＿１の各々が構造Ｓ＿１を有しているものであっても良い。または、例えば、ニューラルネットワークＮＮ１＿１が複数個の層Ｌ１＿１に代えて１個の層Ｌ１＿１を有しており、かつ、当該１個の層Ｌ１＿１が構造Ｓ＿１を有しているものであっても良い。
【０１０８】
または、例えば、ニューラルネットワークＮＮ１＿１が複数個の層Ｌ１＿１を有しており、かつ、当該複数個の層Ｌ１＿１のうちの選択された２個以上の層Ｌ１＿１の各々が構造Ｓ＿１を有しているものであっても良い。この場合、当該複数個の層Ｌ１＿１のうちの残余の１個以上の層Ｌ１＿１の各々は、構造Ｓ＿１を有しないものであっても良い。
【０１０９】
または、例えば、ニューラルネットワークＮＮ１＿１が複数個の層Ｌ１＿１を有しており、かつ、当該複数個の層Ｌ１＿１のうちの選択された１個の層Ｌ１＿１が構造Ｓ＿１を有しているものであっても良い。この場合、当該複数個の層Ｌ１＿１のうちの残余の１個以上の層Ｌ１＿１の各々は、構造Ｓ＿１を有しないものであっても良い。
【０１１０】
また、ニューラルネットワークＮＮ１＿２における層Ｌ１＿２の個数、及び構造Ｓ＿２を有する層Ｌ１＿２の個数は、上記の具体例に限定されるものではない。これらの個数は、第２特徴量抽出器４２に入力される第１特徴ベクトルｖｔの次元数及び行動値ａｔの個数による合計数に対して、学習器５２に入力される第２特徴ベクトルｖｔ’の次元数が大きくなるように設定されたものであれば良い。
【０１１１】
例えば、上記のとおり、ニューラルネットワークＮＮ１＿２が複数個の層Ｌ１＿２を有しており、かつ、当該複数個の層Ｌ１＿２の各々が構造Ｓ＿２を有しているものであっても良い。または、例えば、ニューラルネットワークＮＮ１＿２が複数個の層Ｌ１＿２に代えて１個の層Ｌ１＿２を有しており、かつ、当該１個の層Ｌ１＿２が構造Ｓ＿２を有しているものであっても良い。
【０１１２】
または、例えば、ニューラルネットワークＮＮ１＿２が複数個の層Ｌ１＿２を有しており、かつ、当該複数個の層Ｌ１＿２のうちの選択された２個以上の層Ｌ１＿２の各々が構造Ｓ＿２を有しているものであっても良い。この場合、当該複数個の層Ｌ１＿２のうちの残余の１個以上の層Ｌ１＿２の各々は、構造Ｓ＿２を有しないものであっても良い。
【０１１３】
または、例えば、ニューラルネットワークＮＮ１＿２が複数個の層Ｌ１＿２を有しており、かつ、当該複数個の層Ｌ１＿２のうちの選択された１個の層Ｌ１＿２が構造Ｓ＿２を有しているものであっても良い。この場合、当該複数個の層Ｌ１＿２のうちの残余の１個以上の層Ｌ１＿２の各々は、構造Ｓ＿２を有しないものであっても良い。
【０１１４】
また、学習装置４００のハードウェアは、推論装置１００のハードウェアと一体に構成されたものであっても良い。すなわち、図１１Ａに示すプロセッサ７１は、図５Ａに示すプロセッサ２１と一体に構成されたものであっても良い。図１１Ａに示すメモリ７２は、図５Ａに示すメモリ２２と一体に構成されたものであっても良い。図１１Ｂに示す処理回路７３は、図５Ｂに示す処理回路２３と一体に構成されたものであっても良い。
【０１１５】
以上のように、学習装置４００は、制御装置１及び制御装置１により制御される機器（例えばロボット２）を含む環境Ｅに係る第１状態値ｓｔの入力を受け付けて、第１状態値ｓｔに対応する第１特徴ベクトルｖｔであって第１状態値ｓｔに比して高次元の第１特徴ベクトルｖｔを出力する第１特徴量抽出器４１を有する推論装置１００用の学習装置４００において、第１特徴ベクトルｖｔ及び環境Ｅに係る行動値ａｔの入力を受け付けて、第１特徴ベクトルｖｔ及び行動値ａｔに対応する第２特徴ベクトルｖｔ’であって第１特徴ベクトルｖｔ及び行動値ａｔに比して高次元の第２特徴ベクトルｖｔ’を出力する第２特徴量抽出器４２と、第２特徴ベクトルｖｔ’及び環境Ｅに係る第２状態値ｓｔ＋１の入力を受け付けて、第２特徴ベクトルｖｔ’及び第２状態値ｓｔ＋１を用いて第１特徴量抽出器４１のパラメータＰ１を更新する学習器５２と、を備える。特徴量抽出器４０を用いることにより、図１３に示す如く、学習の効率を向上することができる。また、推論の効率を向上することができる。
【０１１６】
また、第１特徴量抽出器４１及び第２特徴量抽出器４２の各々は、１個の層Ｌ１又は複数個の層Ｌ１を有し、１個の層Ｌ１又は複数個の層Ｌ１のうちの少なくとも１個の層Ｌ１は、第１ベクトルｘ１の入力を受け付けて、第１ベクトルｘ１を変換することにより第２ベクトルｘ２を生成して、第１ベクトルｘ１に基づく第３ベクトルｘ３を生成して、第２ベクトルｘ２及び第３ベクトルｘ３を結合することにより第１ベクトルｘ１に比して高次元の第４ベクトルｘ４を生成して、第４ベクトルｘ４を出力する構造Ｓを有する。構造Ｓを用いることにより、特徴量抽出器４０を実現することができる。
【０１１７】
また、学習器５２は、第２特徴ベクトルｖｔ’を用いて第２状態値ｓｔ＋１の予測値ｓｔ＋１’を算出して、第２状態値ｓｔ＋１に対する予測値ｓｔ＋１’の差に基づく損失値Ｌが小さくなるようにパラメータＰ１を更新する。これにより、第１特徴量抽出器４１の学習に対応した学習器５２を実現することができる。
【０１１８】
また、パラメータＰ１は、第１特徴量抽出器４１における層数及び第１特徴量抽出器４１における個々の活性化関数を含む。これにより、第１特徴量抽出器４１の学習に対応した学習器５２を実現することができる。
【０１１９】
実施の形態３．
図１４は、実施の形態３に係る強化学習システムの要部を示すブロック図である。図１４を参照して、実施の形態３に係る強化学習システムについて説明する。なお、図１４において、図９に示すブロックと同様のブロックには同一符号を付して説明を省略する。
【０１２０】
図１４に示す如く、実施の形態３に係る強化学習システム５００は、推論装置１００及び学習装置４００に加えて、記憶装置８１を含むものである。記憶装置８１には、第１状態値ｓｔ、対応する行動値ａｔ、及び対応する第２状態値ｓｔ＋１による組が記憶されている。より具体的には、複数組の値（ｓｔ，ａｔ，ｓｔ＋１）が記憶されている。これらの値（ｓｔ，ａｔ，ｓｔ＋１）は、第１コントローラ５１と異なる他のコントローラ（以下「第２コントローラ」という。）を用いて収集されたものである。第２コントローラは、例えば、環境Ｅに対してランダムに振る舞う仮想的なコントローラである。
【０１２１】
記憶装置８１は、当該記憶された値（ｓｔ，ａｔ，ｓｔ＋１）を出力するものである。学習装置４００による学習が実行されるとき、環境Ｅ内の制御装置１により出力された値（ｓｔ，ａｔ，ｓｔ＋１）に代えて、記憶装置８１により出力された値（ｓｔ，ａｔ，ｓｔ＋１）が用いられるものであっても良い。
【０１２２】
すなわち、図１２に示すステップＳＴ２１にて、第１特徴量抽出器４１は、環境Ｅ内の制御装置１により出力された第１状態値ｓｔの入力を受け付けるのに代えて、記憶装置８１により出力された第１状態値ｓｔの入力を受け付けるものであっても良い。また、図１２に示すステップＳＴ２２にて、第２特徴量抽出器４２は、環境Ｅ内の制御装置１により出力された行動値ａｔの入力を受け付けるのに代えて、記憶装置８１により出力された行動値ａｔの入力を受け付けるものであっても良い。また、図１２に示すステップＳＴ２４にて、学習器５２内のパラメータ設定器６１は、環境Ｅ内の制御装置１により出力された第２状態値ｓｔ＋１の入力を受け付けるのに代えて、記憶装置８１により出力された第２状態値ｓｔ＋１の入力を受け付けるものであっても良い。
【０１２３】
この場合、図７に示す処理が実行されるよりも先に、図１２に示す処理が予め実行されるものであっても良い。すなわち、推論装置１００による推論及び制御装置１による制御が実行されるよりも先に、学習装置４００による学習が予め実行されるものであっても良い。
【０１２４】
次に、図１５を参照して、記憶装置８１の要部のハードウェア構成について説明する。
【０１２５】
図１５に示す如く、記憶装置８１は、メモリ９１を有している。記憶装置８１の機能は、メモリ９１により実現される。メモリ９１は、１個又は複数個の不揮発性メモリにより構成されている。個々の不揮発性メモリは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク又は磁気テープを用いたものである。より具体的には、個々の不揮発性メモリは、例えば、ＲＯＭ、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ソリッドステートドライブ、ハードディスクドライブ、フレキシブルディスク、コンパクトディスク、ＤＶＤ、ブルーレイディスク又はミニディスクを用いたものである。
【０１２６】
なお、記憶装置８１のハードウェアは、学習装置４００のハードウェアと一体に構成されたものであっても良い。すなわち、図１５に示すメモリ９１は、図１１Ａに示すメモリ７２と一体に構成されたものであっても良い。
【０１２７】
また、記憶装置８１のハードウェアは、推論装置１００のハードウェアと一体に構成されたものであっても良い。すなわち、図１５に示すメモリ９１は、図５Ａに示すメモリ２２と一体に構成されたものであっても良い。
【０１２８】
このほか、実施の形態３に係る強化学習システム５００は、実施の形態２にて説明したものと同様の種々の変形例を採用することができる。
【０１２９】
以上のように、推論装置１００は、第１特徴ベクトルｖｔの入力を受け付けて、第１特徴ベクトルｖｔに対応する行動値ａｔを出力する第１コントローラ５１を有し、第１特徴量抽出器４１に入力される第１状態値ｓｔ、第２特徴量抽出器４２に入力される行動値ａｔ、及び学習器５２に入力される第２状態値ｓｔ＋１は、第１コントローラ５１と異なる第２コントローラを用いて収集されたものである。第２コントローラを用いることにより、推論装置１００による推論及び制御装置１による制御が実行されるよりも先に、学習装置４００による学習を予め実行することができる。
【０１３０】
また、第２コントローラは、環境Ｅに対してランダムに振る舞うものである。これにより、互いに異なる多数組の値（ｓｔ，ａｔ，ｓｔ＋１）を収集することができる。
【０１３１】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【０１３２】
本発明の推論装置、機器制御システム及び学習装置は、例えば、ロボットの動作制御に用いることができる。
【符号の説明】
【０１３３】
１  制御装置、２  ロボット、３  特徴量抽出器、４  コントローラ、１１  第１変換器、１２  第２変換器、２１  プロセッサ、２２  メモリ、２３  処理回路、３１  プロセッサ、３２  メモリ、３３  処理回路、４０  特徴量抽出器、４１  第１特徴量抽出器、４２  第２特徴量抽出器、５０  エージェント、５１  第１コントローラ、５２  学習器、６１  パラメータ設定器、７１  プロセッサ、７２  メモリ、７３  処理回路、８１  記憶装置、９１  メモリ、１００  推論装置、２００  機器制御システム、３００  ロボットシステム、４００  学習装置、５００  強化学習システム。
【要約】
推論装置（１００）は、制御装置（１）及び制御装置（１）により制御される機器（２）を含む環境（Ｅ）に係る状態値（ｓｔ）の入力を受け付けて、状態値（ｓｔ）に対応する特徴ベクトル（ｖｔ）であって状態値（ｓｔ）に比して高次元の特徴ベクトル（ｖｔ）を出力する特徴量抽出器（３）と、特徴ベクトルｖｔの入力を受け付けて、特徴ベクトルｖｔに対応する制御量Ａｔを出力するコントローラ４と、を備える。【図１】
0006956931.tif 000002
【図２】
0006956931.tif 000003
【図３】
0006956931.tif 000004
【図４Ａ】
0006956931.tif 000005
【図４Ｂ】
0006956931.tif 000006
【図５Ａ】
0006956931.tif 000007
【図５Ｂ】
0006956931.tif 000008
【図６Ａ】
0006956931.tif 000009
【図６Ｂ】
0006956931.tif 000010
【図７】
0006956931.tif 000011
【図８】
0006956931.tif 000012
【図９】
0006956931.tif 000013
【図１０】
0006956931.tif 000014
【図１１Ａ】
0006956931.tif 000015
【図１１Ｂ】
0006956931.tif 000016
【図１２】
0006956931.tif 000017
【図１３】
0006956931.tif 000018
【図１４】
0006956931.tif 000019
【図１５】
0006956931.tif 000020