(57)【要約】  本技術は、エージェントによって新たな経験を収集することと、この新たな経験をエージェントのメモリに記憶された経験と比較することと、この比較に基づいて、新たな経験を廃棄するか又は新たな経験を用いてメモリ内の経験を上書きすることとを伴う。例えば、エージェント又は関連したプロセッサは、新たな経験が、記憶された経験とどの程度類似しているのかを判断することができる。新たな経験が過度に類似している場合、エージェントは、この新たな経験を廃棄し、そうでない場合、エージェントは、この新たな経験をメモリに記憶し、以前に記憶された経験を代わりに廃棄する。経験を収集し、これらの経験を、以前に記憶された経験に対するこれらの経験の類似性に基づいて選択的に記憶することは、技術的問題に対処し、複数の技術的改善をもたらす。例えば、メモリサイズ制約が軽減され、ニューラルネットワークによる破滅的忘却の機会が低減又は除去され、ニューラルネットワークの性能が改善される。【選択図】図７
2019518273.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの行動を生成するコンピュータ実施方法であって、
前記ロボットの第１の経験であって、
第１の時刻における前記ロボットの第１の状態と、
前記第１の時刻において前記ロボットによって取られる第１の行動と、
前記第１の行動に応じて前記ロボットによって受け取られる第１の報酬と、
前記第１の時刻の後の第２の時刻における前記第１の行動に応じた前記ロボットの第２の状態と、
を表す第１の経験を収集することと、
前記第１の経験と、前記ロボットのメモリに記憶された複数の経験との間の類似度を求めることと、
前記第１の経験と前記複数の経験との間の前記類似度に基づいて、前記メモリ内の前記複数の経験をプルーニングして、前記メモリに記憶されるプルーニングされた複数の経験を形成することと、
前記プルーニングされた複数の経験を用いて、前記ロボットに関連したニューラルネットワークをトレーニングすることと、
前記ニューラルネットワークを用いて、前記ロボットの第２の行動を生成することと、
を含む、方法。
【請求項２】
前記プルーニングすることは、
前記複数の経験における各経験について、
前記第１の経験からの距離を計算することと、
前記距離と、その経験の、前記複数の経験における他の各経験からの別の距離とを比較することと、
前記第１の経験と前記複数の経験からの１つの経験とのうちの少なくとも一方である第２の経験を、前記比較に基づいて前記メモリから削除することと、
を更に含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記第１の経験と前記複数の経験における各経験とからの前記第２の経験の前記距離がユーザ定義の閾値よりも小さい確率に基づいて、前記第２の経験を前記メモリから削除することを更に含む、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記プルーニングすることは、前記第１の経験と前記複数の経験における各経験とをランク付けすることを更に含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記ランク付けすることは、シナプス重みに少なくとも部分的に基づいて複数のクラスタを作成することと、前記第１の経験が前記複数のクラスタのうちの１つに適合すると判断すると、前記第１の経験を自動的に廃棄することとを含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記ランク付けすることは、前記複数の経験における各経験を符号化することと、前記第１の経験を符号化することと、前記符号化された経験を前記複数のクラスタと比較することとを含む、請求項５に記載のコンピュータ実施方法。
【請求項７】
第１の入力状態において、前記ニューラルネットワークは、前記プルーニングされた複数の経験に少なくとも部分的に基づいて出力を生成する、請求項１に記載のコンピュータ実施方法。
【請求項８】
前記プルーニングされた複数の経験は、前記ロボットの多様な状態の集合を含む、請求項１に記載のコンピュータ実施方法。
【請求項９】
前記ロボットの前記第２の行動を前記生成することは、前記ロボットが前記第１の状態にあると判断することと、前記第１の行動と異なるように前記第２の行動を選択することとを含む、請求項１に記載のコンピュータ実施方法。
【請求項１０】
前記第２の行動に応じて前記ロボットによって第２の報酬を受け取ること、
を更に含む、請求項９に記載のコンピュータ実施方法。
【請求項１１】
前記ロボットの第２の経験であって、
前記ロボットの第２の状態と、
前記第２の状態に応じて前記ロボットによって取られる前記第２の行動と、
前記第２の行動に応じて前記ロボットによって受け取られる第２の報酬と、
前記第２の行動に応じた前記ロボットの第３の状態と、
を表す第２の経験を収集することと、
前記第２の経験と前記プルーニングされた複数の経験との間の類似度を求めることと、
前記第２の経験と前記プルーニングされた複数の経験との間の前記類似度に基づいて、前記メモリ内の前記プルーニングされた複数の経験をプルーニングすることと、
を更に含む、請求項１に記載のコンピュータ実施方法。
【請求項１２】
ロボットの第２の行動を生成するシステムであって、
前記ロボットの第１の経験を収集するインタフェースであって、該第１の経験は、
第１の時刻における前記ロボットの第１の状態と、
前記第１の時刻において前記ロボットによって取られる第１の行動と、
前記第１の行動に応じて前記ロボットによって受け取られる第１の報酬と、
前記第１の時刻の後の第２の時刻における前記第１の行動に応じた前記ロボットの第２の状態と、
を表す、インタフェースと、
前記ロボットの複数の経験とプルーニングされた複数の経験とのうちの少なくとも一方を記憶するメモリと、
前記インタフェース及び前記メモリとデジタル通信するプロセッサであって、
前記第１の経験と前記メモリに記憶された前記複数の経験との間の類似度を求めることと、
前記第１の経験と前記複数の経験との間の前記類似度に基づいて、前記メモリ内の前記複数の経験をプルーニングして、前記プルーニングされた複数の経験を形成することと、
前記プルーニングされた複数の経験を記憶するように前記メモリを更新することと、
前記プルーニングされた複数の経験を用いて、前記ロボットに関連したニューラルネットワークをトレーニングすることと、
前記ニューラルネットワークを用いて前記ロボットの前記第２の行動を生成することと、
を行う、プロセッサと、
を備える、システム。
【請求項１３】
前記第２の行動を前記ロボットに送信する、前記プロセッサ及び前記ロボットとデジタル通信するクラウドブレイン、
を更に備える、請求項１２に記載のシステム。
【請求項１４】
前記プロセッサは、
前記複数の経験における各経験について、
前記第１の経験からの距離を計算することと、
前記距離と、その経験の、前記複数の経験における他の各経験からの別の距離とを比較することと、
前記第１の経験と前記複数の経験からの１つの経験とのうちの少なくとも一方である第２の経験を、前記比較に基づいて前記メモリから削除することと、
を行うように更に構成されている、請求項１２に記載のシステム。
【請求項１５】
前記プロセッサは、前記第１の経験と前記複数の経験における各経験とからの前記第２の経験の前記距離がユーザ定義の閾値よりも小さい確率決定に基づいて、前記第２の経験を前記メモリから削除するように構成されている、請求項１４に記載のシステム。
【請求項１６】
前記プロセッサは、前記第１の経験と前記複数の経験における各経験とをランク付けすることに基づいて、前記メモリをプルーニングするように構成されている、請求項１２に記載のシステム。
【請求項１７】
前記プロセッサは、
シナプス重みに少なくとも部分的に基づいて複数のクラスタを作成することと、
前記複数のクラスタに基づいて、前記第１の経験及び前記複数の経験をランク付けすることと、
前記第１の経験が前記複数のクラスタのうちの１つに適合すると判断すると、前記第１の経験を自動的に廃棄することと、
を行うように更に構成されている、請求項１６に記載のシステム。
【請求項１８】
前記プロセッサは、前記複数の経験における各経験を符号化することと、前記第１の経験を符号化することと、前記符号化された経験を前記複数のクラスタと比較することとを行うように更に構成されている、請求項１７に記載のシステム。
【請求項１９】
第１の入力状態において、前記ニューラルネットワークは、前記プルーニングされた複数の経験に少なくとも部分的に基づいて出力を生成する、請求項１３に記載のシステム。
【請求項２０】
メモリを更新するコンピュータ実施方法であって、前記メモリは、コンピュータベースのアプリケーションから受信される複数の経験を記憶し、該方法は、
前記コンピュータベースのアプリケーションから新たな経験を受信することと、
前記新たな経験と前記複数の経験との間の類似度を求めることと、
前記類似度に基づいて前記新たな経験を追加することと、
前記類似度に基づいて、前記新たな経験と前記複数の経験からの１つの経験とのうちの少なくとも一方を削除することと、
前記複数の経験の更新されたものを前記コンピュータベースのアプリケーションに送信することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、米国特許法第１１９条（ｅ）に基づき、２０１６年４月２７日に出願され、「Methods and Apparatus for Pruning Experience Memories for Deep Neural Network-Based Q-Learning」と題する米国特許出願第６２／３２８，３４４号の優先権の利益を主張する。本出願は、引用することによりその全体が本明細書の一部をなすものとする。
【背景技術】
【０００２】
強化学習では、エージェントが環境とインタラクトする。その環境とのインタラクトの過程において、エージェントは経験を収集する。エージェントに関連したニューラルネットワークは、これらの経験を用いて、行動ポリシを学習することができる。すなわち、エージェントに関連したニューラルネットワーク又はエージェントを制御するニューラルネットワークは、エージェントが収集した経験を用いて、エージェントが環境においてどのように行動すべきであるのかを学習する。
【０００３】
過去の経験からの学習を可能にするために、エージェントは、収集された経験をローカルなメモリ又はネットワークを介して接続されたメモリに記憶する。全ての経験を記憶して、エージェントに関連したニューラルネットワークをトレーニングすることは、理論上有用であると示すことができる。しかしながら、ハードウェア制約によって、経験の全てを記憶することは、経験の数が増大するにつれて、実用的でなくなるか又は不可能にもなる。
【０００４】
エージェントのメモリに記憶された経験をプルーニング（pruning）することによって、経験の収集及び記憶に対する制約を軽減することができる。しかし、古い経験を先入れ先出し方式で除去する等の単純プルーニング（naive pruning）は、「破滅的忘却（catastrophic forgetting）」をもたらす可能性がある。破滅的忘却は、新たな学習がこれまでの学習を元に戻す可能性があることを意味し、バックプロパゲーションベースの学習の分散性によって引き起こされる。破滅的忘却に起因して、ニューラルネットワークがそれらの経験によって表された状況にどのように反応するのかを「忘却」しないようにするには、経験を絶え間なく再トレーニングすることが必要である。言い換えると、経験を先入れ先出し方式で除去することによって、直近の経験がニューラルネットワークにおいてより良好に表され、より古い経験ほど忘却されることになり、これによって、ニューラルネットワークは、より古い経験によって表された状況に反応することが困難になる。破滅的忘却は、新たな経験を含めた経験の完全な集合（set）を単純に再学習することによって回避することができるが、エージェントの経験の履歴全体を再学習することは、特に、急速に増大する経験の大きな集合を用いると、過度に長い時間を要し、実用的でない可能性がある。
【発明の概要】
【０００５】
本技術の実施の形態は、ロボットの行動を生成する方法を含む。一例示のコンピュータ実施方法は、前記ロボットの第１の経験を収集することを含む。該第１の経験は、第１の時刻における前記ロボットの第１の状態と、前記第１の時刻において前記ロボットによって取られる第１の行動と、前記第１の行動に応じて前記ロボットによって受け取られる第１の報酬と、前記第１の時刻の後の第２の時刻における前記第１の行動に応じた前記ロボットの第２の状態とを表す。前記第１の経験と複数の経験との間の類似度を求めることができる。前記複数の経験は、前記ロボットのメモリに記憶することができる。該方法は、前記第１の経験と前記複数の経験との間の前記類似度に基づいて、前記メモリ内の前記複数の経験をプルーニングして、前記メモリに記憶されるプルーニングされた複数の経験を形成することも含む。前記プルーニングされた複数の経験を用いて、前記ロボットに関連したニューラルネットワークをトレーニングすることができ、前記ニューラルネットワークを用いて、前記ロボットの第２の行動を生成することができる。
【０００６】
幾つかの場合には、前記プルーニングすることは、前記複数の経験における各経験について、前記第１の経験からの距離を計算することを更に含む。前記複数の経験における各経験について、前記距離と、その経験の、前記複数の経験における他の各経験からの別の距離とを比較することができる。第２の経験を前記比較に基づいて前記メモリから削除することができる。前記第２の経験は、前記第１の経験と前記複数の経験からの１つの経験とのうちの少なくとも一方とすることができる。前記第１の経験と前記複数の経験における各経験とからの前記第２の経験の前記距離がユーザ定義の閾値よりも小さい確率に基づいて、前記第２の経験を前記メモリから削除することができる。
【０００７】
幾つかの場合には、前記プルーニングすることは、前記第１の経験と前記複数の経験における各経験とをランク付けすることを更に含むことができる。前記第１の経験と前記複数の経験における各経験とをランク付けすることは、シナプス重みに少なくとも部分的に基づいて複数のクラスタを作成することと、前記第１の経験が前記複数のクラスタのうちの１つに適合すると判断すると、前記第１の経験を自動的に廃棄することとを含むことができる。前記第１の経験と、前記複数の経験における各経験とを符号化することができる。前記符号化された経験を前記複数のクラスタと比較することができる。
【０００８】
幾つかの場合には、第１の入力状態において、前記ニューラルネットワークは、前記プルーニングされた複数の経験に少なくとも部分的に基づいて出力を生成する。前記プルーニングされた複数の経験は、前記ロボットの多様な状態の集合を含むことができる。幾つかの場合には、前記ロボットの前記第２の行動を前記生成することは、前記ロボットが前記第１の状態にあると判断することと、前記第１の行動と異なるように前記第２の行動を選択することとを含むことができる。
【０００９】
前記方法は、前記ロボットの第２の経験を収集することも含むことができる。前記第２の経験は、前記ロボットの第２の状態と、前記第２の状態に応じて前記ロボットによって取られる前記第２の行動と、前記第２の行動に応じて前記ロボットによって受け取られる第２の報酬と、前記第２の行動に応じた前記ロボットの第３の状態とを表す。前記第２の経験と前記プルーニングされた複数の経験との間の類似度を求めることができる。前記方法は、前記第２の経験と前記プルーニングされた複数の経験との間の前記類似度に基づいて、前記メモリ内の前記プルーニングされた複数の経験をプルーニングすることも含むことができる。
【００１０】
ロボットの第２の行動を生成する一例示のシステムは、前記ロボットの第１の経験を収集するインタフェースを備える。該第１の経験は、第１の時刻における前記ロボットの第１の状態と、前記第１の時刻において前記ロボットによって取られる第１の行動と、前記第１の行動に応じて前記ロボットによって受け取られる第１の報酬と、前記第１の時刻の後の第２の時刻における前記第１の行動に応じた前記ロボットの第２の状態とを表す。該システムは、前記ロボットの複数の経験とプルーニングされた複数の経験とのうちの少なくとも一方を記憶するメモリも備える。該システムは、前記インタフェース及び前記メモリとデジタル通信するプロセッサも備える。前記プロセッサは、前記第１の経験と前記メモリに記憶された前記複数の経験との間の類似度を求めことができる。前記プロセッサは、前記第１の経験と前記複数の経験との間の前記類似度に基づいて、前記メモリ内の前記複数の経験をプルーニングして、前記プルーニングされた複数の経験を形成することができる。前記メモリは、前記プルーニングされた複数の経験を記憶するように前記プロセッサによって更新することができる。前記プロセッサは、前記プルーニングされた複数の経験を用いて、前記ロボットに関連したニューラルネットワークをトレーニングすることができる。前記プロセッサは、前記ニューラルネットワークを用いて前記ロボットの前記第２の行動を生成することができる。
【００１１】
幾つかの場合には、前記システムは、前記第２の行動を前記ロボットに送信する、前記プロセッサ及び前記ロボットとデジタル通信するクラウドブレインを更に備えることができる。
【００１２】
幾つかの場合には、前記プロセッサは、前記複数の経験における各経験について、前記第１の経験からの距離を計算するように構成されている。前記プロセッサは、前記複数の経験における各経験について、前記距離と、その経験の、前記複数の経験における他の各経験からの別の距離とを比較することができる。第２の経験を、前記比較に基づいて前記プロセッサを介して前記メモリから削除することができる。前記第２の経験は、前記第１の経験と前記複数の経験からの１つの経験とのうちの少なくとも一方とすることができる。前記プロセッサは、前記第１の経験と前記複数の経験における各経験とからの前記第２の経験の前記距離がユーザ定義の閾値よりも小さい確率決定に基づいて、前記第２の経験を前記メモリから削除するように構成することができる。
【００１３】
前記プロセッサは、前記第１の経験と前記複数の経験における各経験とをランク付けすることに基づいて、前記メモリをプルーニングするように構成することもできる。前記プロセッサは、シナプス重みに少なくとも部分的に基づいて複数のクラスタを作成し、前記複数のクラスタに基づいて、前記第１の経験及び前記複数の経験をランク付けし、前記第１の経験が前記複数のクラスタのうちの１つに適合すると判断すると、前記第１の経験を自動的に廃棄することができる。前記プロセッサは、前記複数の経験における各経験を符号化し、前記第１の経験を符号化し、前記符号化された経験を前記複数のクラスタと比較することができる。幾つかの場合には、第１の入力状態において、前記ニューラルネットワークは、前記プルーニングされた複数の経験に少なくとも部分的に基づいて出力を生成することができる。
【００１４】
メモリを更新する一例示のコンピュータ実施方法は、コンピュータベースのアプリケーションから新たな経験を受信することを含む。前記メモリは、コンピュータベースのアプリケーションから受信される複数の経験を記憶する。該方法は、前記新たな経験と前記複数の経験との間の類似度を求めることも含む。前記新たな経験は、前記類似度に基づいて追加することができる。前記類似度に基づいて、前記新たな経験と前記複数の経験からの１つの経験とのうちの少なくとも一方を削除することができる。該方法は、前記複数の経験の更新されたものを前記コンピュータベースのアプリケーションに送信することを含む。
【００１５】
本技術の実施の形態は、経験再生を用いる深層強化学習システムにおけるサンプルキュー管理を改善して、それらの学習を増強する方法を含む。より詳細には、本技術は、ニューラルネットワーク、深層ネットワークを効率的かつ効果的にトレーニングすることと、一般に、自律走行車、ドローン、又は他のロボットをリアルタイムに制御する分散連立方程式を並列に学習することを最適化することとを伴う。
【発明の効果】
【００１６】
他の技術と比較すると、本技術は、そのようなシステムにおいて強化学習における収束を高速化及び改善することができる。すなわち、経験キューのサイズが減少するので、収束をより高速化及び改善することができる。より詳細には、本技術は、いわゆる「経験再生」中にシステムに対して再生するデータサンプルをより良好に選択するニューラルネットワーク及び深層ネットワークシステムにおける経験再生のためのキューのサンプリングを伴う。本技術は、これらに限定されるものではないが、自動運転車、ドローン、地上ロボット、及び水中ロボット、又はオンラインリアルタイム強化学習を制御する任意のリソース制限デバイスにおけるムーブメント、モータ、及びステアリングコマンドを制御するニューラルネットワークシステムに有用である。
【００１７】
上述した概念とより詳細に後述する更なる概念との全ての組み合わせ（こうした概念が相互に矛盾しない場合）は、本明細書に開示する発明の主題の一部であるものとして企図されることが理解されるべきである。特に、本開示の最後に現れる請求項に係る主題の全ての組み合わせが、本明細書に開示する発明の主題の一部であるものとして企図される。また、引用することにより本明細書の一部をなすものとする任意の開示にも表れる可能性がある、本明細書において明示的に採用する用語は、本明細書に開示する特定の概念と最も一貫する意味が与えられるべきであることも理解されるべきである。
【００１８】
当業者であれば、図面が主として例示を目的としたものであり、本明細書に記載された本発明の主題の範囲を限定することを意図するものではないことを理解するであろう。図面は、必ずしも一律の縮尺ではない。幾つかの場合には、本明細書に開示された本発明の主題の様々な態様は、種々の特徴の理解を容易にするために、図面において誇張又は拡大されて示される場合がある。図面において、同様の参照符号は、一般に、同様の特徴部（例えば、機能的及び／又は構造的に類似した要素）を参照する。
【図面の簡単な説明】
【００１９】
【図１】エージェントの経験を形成する行動、状態、反応、及び報酬を示すフロー図である。
【図２】例えば、エージェントの貪欲行動ポリシに用いられるフィードフォワードモードで動作するニューラルネットワークを示すフロー図である。
【図３】新たな経験が追加されるとともに、ニューラルネットワークをトレーニングするのに用いられる経験のサンプルが取り出される経験再生メモリを示すフロー図である。
【図４】経験をメモリに記憶する３つの非類似性ベースのプルーニング（dissimilarity-based pruning）プロセスを示すフロー図である。
【図５】経験をエージェントのメモリに記憶する一例示の一致ベースのプルーニング（match-based pruning）プロセスを示す図である。
【図６】図５におけるプルーニングプロセスの代替の表現を示すフロー図である。
【図７】プルーニングされた経験キューを記憶するメモリからの深層強化学習及び経験再生を用いるシステムのシステム図である。
【図８】カメラ、ＬＩＤＡＲ及び／又は他のデータソースを用いて経験を取得し、プルーニングを用いて、メモリに記憶された経験を選択組織化し、プルーニングされた経験の深層強化学習及び経験再生を用いて自動運転性能を改善する自動運転車を示す図である。
【発明を実施するための形態】
【００２０】
深層強化学習（ＲＬ：Reinforcement Learning）では、エージェントが予想される今後の報酬を増加又は最大化するように行動することができるようニューラルネットワークをトレーニングして、行動又は可能性のある行動の価値を生成するために、エージェントによって収集された経験が、当該エージェントに関連したニューラルネットワークに提供される。エージェントによって収集された全ての経験をメモリに記憶することは、メモリのサイズに制限があることから、非実用的又は不可能であり得るので、強化学習システムは、記憶量削減のための技法を実施する。記憶量削減を実施する１つの手法は、経験を選択的にメモリから削除することである。しかしながら、古い経験を先入れ先出し方式で単に除去することによってトレーニングされるニューラルネットワークは、忘却問題に直面する。すなわち、学習に寄与することができる古い経験は、メモリから削除されるので忘却される。古い経験を単に削除することの別の不利点は、高度に相関しかつ冗長である経験を検討しないということである。高度に相関しかつ類似した経験の集合を用いてニューラルネットワークをトレーニングすることは、非効率的である場合があり、学習プロセスを遅くする可能性がある。
【００２１】
本技術は、入来する経験とメモリに既に記憶された経験との間の類似度を求めることによってメモリ内の経験を選択的に置換する方法を提供する。その結果、学習に寄与することができる古い経験は忘却されず、高度に相関した経験は削除されて、非類似の経験／より多様な経験のための空間をメモリ内に作成することができる。
【００２２】
本技術は、これらに限定されるものではないが、自動運転車、ドローン、地上ロボット、及び水中ロボットにおけるムーブメント、モータ、及びステアリングコマンドを制御するニューラルネットワークシステムに有用である。例えば、自動運転車の場合、経路に沿って遭遇する障害物の速度及びステアリング角を特徴付ける経験を動的に収集することができる。これらの経験は、メモリに記憶することができる。新たな経験が収集されると、プロセッサは、これらの新たな経験と以前に記憶された経験との間の類似度を求める。例えば、メモリに記憶された経験が、障害物Ａの速度及びステアリング角を含み、かつ、新たな経験が、障害物Ａと大幅に異なる障害物Ｂの速度及びステアリング角を特徴付ける場合、プロセッサは、類似した経験（例えば、障害物Ａに関係する経験のうちの１つ）をメモリからプルーニング（削除）し、障害物Ｂに関係する新たな経験を挿入する。自動運転車のニューラルネットワークは、障害物Ｂについての新たな経験を含むプルーニングされたメモリ内の経験に基づいてトレーニングされる。
【００２３】
記憶（memory）は、経験の類似性に基づいてプルーニングされるので、「エッジ（edge）上」、例えば、自動運転車、ドローン、又はロボットとすることができるエージェント上に位置することができるように十分小さなものとすることができるものであり、遠隔に配置されてネットワーク接続を介してエージェントに接続されるものではない。また、メモリは、エッジ上にあるので、エッジ上でエージェントをトレーニングするのに用いることができる。これによって、ネットワーク接続の必要性が低減又は排除され、経験の収集及びニューラルネットワークのトレーニングの双方の信頼性及びロバスト性が高まる。これらのメモリは、所望に応じて（例えば、周期的、上流帯域幅が利用可能であるとき等）獲得することができ、サーバにおいて集約することができる。集約されたデータは、サンプリングすることができ、エッジにおいてより良好な性能を得るために既存のエージェント及び／又は新たなエージェントに分配することができる。
【００２４】
本技術は、ビデオゲーム及び他の模擬環境にも有用なものとすることができる。例えば、ビデオゲームにおけるエージェントの行動は、ゲームにおいてエージェントの経験を収集及び記憶するとともに、類似度に基づいてメモリを選択的にプルーニングすることによって構築することができる。そのような環境では、視覚からの学習が、高次元画像を含む経験を伴い、そのため、本技術を用いて大量の記憶量を節約することができる。
【００２５】
経験のサンプルをメモリに最適に記憶することによって、強化学習、特に、「エッジにおける」リソースが制限されたデバイス上での学習の収束を改善し高速化することができる。このように、本技術は、より少ないメモリを用いる技法を実施しながら、より高速な学習のための発明的方法を提供する。したがって、本技術を用いると、より小さなメモリサイズを用いて、所与の学習性能目標を達成することができる。
【００２６】
経験収集及び強化学習
図１は、エージェントの経験１００を形成する行動、状態、反応、及び報酬を示すフロー図である。１０２において、エージェントは、（第１の）時刻ｔ−１における（第１の）状態ｓｔ−１を観測する。エージェントは、画像センサ、マイクロフォン、アンテナ、加速度計、ジャイロスコープ、又は他の任意の適したセンサを用いてこの状態を観測することができる。エージェントは、クロック、エンコーダ、アクチュエータ、又はナビゲーションユニット（例えば、慣性測定ユニット）上の設定値を読み取ることができる。第１の状態を表すデータは、映像、音、又は時刻等のエージェントの環境についての情報を含むことができる。このデータは、エージェントの速度、進行方向、内部状態（例えば、電池寿命）、又は位置を含むエージェントについての情報も含むことができる。
【００２７】
状態ｓｔ−１の間、エージェントは、（例えば、１０４において）行動ａｔ−１を取る。この行動は、ホイール、ロータ、ウィングフラップ、又はエージェントの速度、進行方向、方位、若しくは位置を制御する他の構成要素を作動させることを伴うことができる。この行動は、幾つかの特定の構成要素をスリープモードにして電池寿命を節約する等のエージェントの内部設定を変更することを伴うことができる。この行動は、例えば、エージェントが、環境内の物体のうちの１つと衝突する危険な状態にある場合に、エージェントの環境及び／又はそれらの物体に影響を与える場合がある。或いは、この行動は、データを取得又は送信すること、例えば、映像を撮影してサーバに送信することを伴うことができる。
【００２８】
１０６において、エージェントは、行動ａｔ−１の報酬ｒｔ−１を受け取る。この報酬は、障害物の回避、節電、又はデータの取得等の所望の結果に基づくことができる。行動が所望の結果（例えば、障害物の回避）をもたらす場合、報酬は高い。そうでない場合、報酬は低くすることができる。報酬は、２値とすることもできるし、或る範囲の値又はその範囲内のものであってもよい。
【００２９】
１０８において、行動ａｔ−１に応じて、エージェントは、次の（第２の）状態ｓｔを観測する。この状態ｓｔは、次の（第２の）時刻ｔにおいて観測される。状態ｓｔ−１、行動ａｔ−１、報酬ｒｔ−１、及び次の状態ｓｔは、一括して時刻ｔにおける経験ｅｔ１００を形成する。各時間ステップｔにおいて、エージェントは、状態ｓｔ−１を観測し、行動ａｔ−１を取り、報酬ｒｔ−１を得て、結果状態ｓｔを観測してきている。観測された状態ｓｔ−１、行動ａｔ−１、報酬ｒｔ−１及び観測された結果状態ｓｔは、図１に示すように、一括して経験１００を形成する。
【００３０】
強化学習（ＲＬ）では、エージェントは、その環境とインタラクトするときに経験を収集し、可能な限り多くの報酬を得るにはどのように行動すべきかを学習しようと試みる。エージェントの目標は、その経験の全てを用いて、行動ポリシπ＝Ｐ（ａ｜ｓ）を学習することである。この行動ポリシは、その行動ポリシに従うと、エージェントが、そのような全てのポリシの中で最大累積報酬を収集することが可能になる行動を予想して選択するのに用いられるものである。価値ベースのＲＬでは、最適な（所望の）行動ポリシは、通常はＱで表される以下の行動価値関数等の最適な価値関数に対応する。
【数１】
2019518273.tif 000003
ここで、γは、行動価値関数に対する時間的に遠い結果の影響を制御するディスカウント係数（discount factor）である。Ｑ＊（ｓ，ａ）は、任意の状態行動対に価値を割り当てる。Ｑ＊が分かっている場合、関連した最適な行動ポリシに従うには、エージェントは、各現在の観測結果ｓについて最高の価値を有する行動を取りさえすれば良い。
【００３１】
深層ニューラルネットワーク（ＤＮＮ：Deep Neural Network）は、ビデオの生のピクセル等の高次元状態入力を有する強化学習エージェントの最適な行動価値関数（Ｑ＊関数）を近似するのに用いることができる。この場合、行動価値関数Ｑ（ｓ，ａ；θ）≒Ｑ＊（ｓ，ａ）は、ネットワークパラメータθ（重み等）によってパラメータ化される。
【００３２】
図２は、フィードフォワードモードにおいて行動ポリシπとして動作するニューラルネットワーク２００を示すフロー図である。入力状態２０２が与えられると、ニューラルネットワーク２００は、可能性のある行動に関連付けられたＱ値の集合を介して行動価値２０４（例えば、自動運転車の制動価値及びステアリング価値）のベクトルを出力する。このベクトルは、シミュレーションされた経験又は以前に取得された経験を表すデータを用いてニューラルネットワークをトレーニングすることによって設定又は決定されるニューラルネットワーク重みを用いて計算される。Ｑ値は、標準的な方法（例えば、パラメータ化されたソフトマックス）を通じて確率に変換することができ、その後、行動２０４に変換することができる。フィードフォワードモードは、エージェントが可能性のある行動のＱ値を得る方法、及びエージェントが最も価値ある行動を選ぶ方法である。
【００３３】
ネットワークは、エージェントの経験をトレーニングサンプル（ｘ，ｙ）に変換することによって最適な行動価値関数を学習（近似）するように、バックプロパゲーションを介してトレーニングされる。ここで、ｘはネットワーク入力であり、ｙはネットワークターゲットである。ネットワーク入力ｘ＝φ（ｓ）である。ここで、φは、観測結果を前処理してネットワークにより適したものにする或る関数である。最適な行動価値関数に向けて進むために、ターゲットｙは、一貫性を維持するように設定される。
【数２】
2019518273.tif 000004
【００３４】
これに続いて、基本的な場合に、ターゲットは、以下のように設定することができる。
【数３】
2019518273.tif 000005
【００３５】
式３は、最も価値のある行動（及びそれらの価値）を見つけるのに用いられるパラメータθ−を用いて第２のターゲットネットワークを導入することによって改良することができるが、必ずしもインクリメンタルに更新されない。その代わり、別のネットワーク（「オンライン」ネットワーク）が、そのパラメータの更新を受ける。オンラインネットワークパラメータθは、τ個の時間ステップごとにターゲットネットワークパラメータθ−に取って代わる。式３を以下の式
【数４】
2019518273.tif 000006
に置換することによって、Mnih他、「Human-level control through deep reinforcement learning」、Nature、518(7540):529-533、2015の深層Ｑネットワーク（ＤＱＮ）アルゴリズムにおいて用いられるターゲットが得られる。この文献は、引用することによってその全体が本明細書の一部をなすものとする。
【００３６】
ダブルＤＱＮと呼ばれるＤＱＮの改良バージョンは、選択及び評価を以下のように切り離す。
【数５】
2019518273.tif 000007
選択及び評価を切り離すことによって、ｍａｘ演算子が行動の選択及び評価の双方に同じ価値を用いる機会が削減される。行動の選択及び評価の双方に同じ価値を用いることは、価値の偏りのある過大評価を引き起こす可能性がある。実際には、これによって、標準的なＤＱＮと比較して、収束速度の高速化及びより良好な最終的ポリシが得られる。
【００３７】
経験再生
モデルの偏りを低く維持するために、バックプロパゲーショントレーニングを受けたニューラルネットワークは、ｉ．ｉ．ｄ．形式でトレーニングサンプルを取り出すことになる。従来の手法では、サンプルは、エージェントが環境とインタラクトする際に収集され、そのため、サンプルは、到着した順序でトレーニングされる場合、高度に偏ったものとなる。第２の課題は、バックプロパゲーショントレーニングを受けたネットのよく知られた忘却問題に起因したものであり、近時の経験ほど、モデルにおいてより良好に表される一方、古い経験ほど忘却され、したがって、ニューラルネットワークがこの形式でトレーニングされた場合、真の収束が妨げられるということである。
【００３８】
そのような課題を緩和するために、経験再生と呼ばれる技法が用いられる。図３は、ニューラルネットワークをトレーニングする経験再生プロセス３００を示すフロー図である。ステップ３０２に示すように、各時間ステップにおいて、図１における経験１００等の経験＝（ｘｔ−１，ａｔ−１，ｒｔ−１，ｘｔ）が、Ｄｔ＝｛ｅｔ−Ｎ，ｅｔ−Ｎ＋１，．．．，ｅｔ｝として表される経験メモリ３０４に記憶される。したがって、経験メモリ３０４は、以前に収集された経験の集合体を含む。３０６において、トレーニングサンプルの集合ＳＤｔ（例えば、集合３０８）が経験メモリ３０４から取り出される。すなわち、ニューラルネットワークが更新されるとき、トレーニングサンプルの集合３０８が、経験のミニバッチとして３０４から取り出される。ミニバッチにおける各経験は、トレーニングデータにおいて相関関係が（例えば、一様に）低減されるようにメモリ３０４から取り出すことができる。これは、学習を潜在的に高速化することができるが、経験メモリＤｔ自体のサイズ及び内容（偏り）に対処していない。３１０において、トレーニングサンプルの集合３０８を用いて、ニューラルネットワークがトレーニングされる。メモリからの経験の良好な混合を用いてネットワークをトレーニングすることは、時間的相関関係を低減することができ、これによって、ネットワークがはるかに安定した方法で学習することを可能にし、幾つかの場合には、本当に有用なものを学習するためにネットワークにとって不可欠である。
【００３９】
ネットワークは、サンプルが到着した際にそれらのサンプルに対してトレーニングされる必要はない（ないはずである）ので、式３、式４、及び式５は、現在の時間ステップのサンプル、すなわち、｛ｘｔ−１，ａｔ−１，ｒｔ−１，ｘｔ｝に関係していない。これらの式は、再生メモリから取り出されたサンプルｅｊ（例えば、図３におけるトレーニングサンプルの集合３０８）であれば、どのサンプルにも適用することができる。
【００４０】
経験メモリを用いる場合、システムは、どの経験を再生するのか及びどの経験を経験メモリＤに記憶するのか（及びどの経験を記憶しないのか）の戦略（例えば、優先順位付け；経験メモリＤからサンプリングする方法）を用いる。
【００４１】
再生する経験
モデルベースの強化学習において経験に優先順位付けを行うことによって、最適なポリシへの収束を高速化することができる。この優先順位付けは、経験がメモリから取り出されてネットワークトレーニングのサンプルにされる機会を定める確率をメモリ内の各経験に割り当てることを伴う。モデルベースの場合には、経験は、これらの経験が実行される場合に価値関数の予想される変化、換言すれば、予想される学習進度に基づいて優先順位付けされる。モデルフリーの場合には、予想される学習進度を近似したものは、以下の時間差（ＴＤ）誤差である。
【数６】
2019518273.tif 000008
【００４２】
ダブルＤＱＮの優先順位付けの基準としてＴＤ誤差を用いると、学習効率及び最終的な性能が高まる。
【００４３】
ただし、非類似性による優先順位付け等の他の優先順位付け方法も用いることができる。他のものと非類似である経験を優先的に用いてネットワークをトレーニングすることを確率的に選ぶことによって、データセット内のアンバランスを打破することができる。そのようなアンバランスは、エージェントがその環境を真に一様な（偏りもない）方法で調べることができないときにＲＬに出現する。しかしながら、Ｄのメモリサイズが、リソース制約に起因して制限されているとき、Ｄの全体には、幾つかの特定の経験を、忘却（Ｄから削除）されている場合がある他の経験よりも優先する偏りが生じている場合がある。この場合、それらの記憶が削除されているので、真に偏りをなくすことが可能でない場合がある。
【００４４】
記憶する経験
全てのメモリを記憶することは、理論上、有用である。収集されたときに学習に寄与しなかった可能性がある古い経験が、エージェントが十分な知識を累積して、その知識を用いて行うべきことを知ると、突然有用になる可能性がある。しかし、無制限の経験メモリは、特に、入力が画像等の高次元なものであるとき、現代のハードウェアにとってあまりにも大きなものに急速に増大する可能性がある。あらゆるものを記憶するのではなく、スライディングウィンドウ、換言すれば、先入れ先出しキューと、或る最大経験数Ｎに設定された再生メモリのサイズが通常用いられる。大きなメモリ（例えば、百万個の経験を記憶するメモリ）が、最先端のシステムではかなり標準になってきた。この副産物として、経験メモリの所要記憶量は、ネットワーク自体の所要記憶量よりもはるかに大きくなってきた。記憶量が課題であるときは、学習効率に影響を与えることなく再生メモリのサイズを削減する方法が有用である。
【００４５】
優先順位付け方法も、メモリのプルーニングに適用することができる。経験メモリＤから最上位の優先順位を有する経験を優先的にサンプリングするのではなく、最下位の優先順位を有する経験が、経験メモリＤから優先的に削除される。メモリの消去は、優先順位を割り当てるよりも最後の方であるが、アプリケーションに応じて必要となる可能性がある。
【００４６】
経験メモリのプルーニング
以下のプロセスは、経験メモリのプルーニングに焦点を当てている。しかし、これらのプロセスは、削除する経験（複数の場合もある）を選択するのに用いられる結果確率が反転され、優先順位として用いられる場合に、優先順位付けにも適用することができる。
【００４７】
類似性ベースのプルーニング
図４は、以下で詳細に説明するようなプロセス４００、プロセス４０２、及びプロセス４０４の３つの非類似性ベースのプルーニングプロセスを示すフロー図である。一般的なアイデアは、各経験の近傍（neighbors）のリストを保持することである。ここで、近傍とは、或る閾値よりも小さな距離を有する別の経験である。或る経験が有する近傍の数は、その経験の削除の確率を決定する。プルーニングメカニズムが、プロセス４００において、２次コストを伴うワンタイム初期化を用いる。これは、例えば、経験メモリが初めて容量に達したときに行うことができる。他のコストは複雑度において線形である。さらに、必要とされる唯一の追加の記憶量は、各経験の近傍の数及び近傍のリストである（全対距離行列よりもはるかに小さい）。経験が追加されると（プロセス４０２）、この経験から他の経験までの距離が計算され、近傍カウント／リストが更新される。経験がプルーニングされるとき（プロセス４０４）、確率が、記憶された近傍カウントから生成され、プルーニングされた経験が、確率的な取り出しを介して選ばれる。次に、削除された経験を自身の近傍として有する経験は、この削除された経験を自身の近傍リストから削除し、自身の近傍カウントをデクリメントする。プロセス４００及び４０２において、或る経験から別の経験までの距離が計算される。用いることができる１つの距離メトリックは、例えば、状態等の経験要素のうちの１つのみ、又は状態、次の状態、行動、及び報酬の任意の重み付き組み合わせに関するユークリッド距離である。他の任意の妥当な距離メトリックも用いることができる。プロセス４００には、ワンタイム２次全対距離計算がある（ライン５〜１１、図４における４０６）。
【００４８】
【表１】
2019518273.tif 000009
【００４９】
或る経験の別の経験までの距離が、ユーザ設定パラメータβよりも小さい場合、それらの経験は近傍とみなされる。各経験は、現在メモリ内にある経験に対するその近傍の数を含むカウンタｍと結合される。このカウンタは、プロセス４００のライン８において最初に設定される。各経験は、その近傍にある経験の識別情報の集合を記憶する。これらの識別情報は、プロセス４００のライン９において最初に設定される。経験は、常にそれ自体の近傍であることに留意されたい（例えば、プロセス４００におけるライン３）。ライン８及び９は、図４におけるボックス４０８を構成する。
【００５０】
プロセス４０２において、新たな経験がメモリに追加される。この経験の、現在メモリ内にある他の任意の経験までの距離（ボックス４１０）が、ユーザ設定パラメータβよりも小さい場合、各経験のカウンタがインクリメントされ（ライン８及び９）、近傍集合は、互いを含むように更新される（ライン１０及び１１）。これは、ボックス４１２及び４１４に示されている。
【００５１】
プロセス４０４は、経験が削除される方法を示している。削除の確率は、近傍の数を全ての経験の近傍の総数によって除算したものである（ライン４及びボックス４１６）。SelectExperienceToRemoveは、削除する経験ｏを決定する確率的な取り出しである。実際の削除は、メモリからの抹消（ライン７、ボックス４１８）と、全ての近傍リストからその経験ｏの削除及びそれに応じた近傍カウントのデクリメント（ライン８〜１３、ボックス４１８）とを伴う。実施態様に応じて、最終的な経理ステップ（ライン１４）が、インデックスを調整するために必要となる場合がある（すなわち、全てのインデックス＞ｏが１だけ減じられる）。
【００５２】
【表２】
2019518273.tif 000010
【００５３】
【表３】
2019518273.tif 000011
【００５４】
プロセス４０２及び４０４は、エージェントが新たな経験を収集した際に、反復的に及び場合によっては間欠的に（実施態様に応じて）行うことができる。要件は、新たに収集された全ての経験について、プロセス４０４を行うことができるようになる前に、プロセス４０２が行われなければならないということである。
【００５５】
一致ベースのプルーニング
経験を優先順位付け（又はプルーニング）する更なる方法は、一致ベースの学習の概念に基づいている。一般的なアイデアは、各経験をクラスタの集合のうちの１つのクラスタに割り当て、クラスタ中心のみに基づくプルーニングを目的として距離を計算することである。
【００５６】
そのようなオンライン学習システムでは、入力ベクトル（例えば、入力値の１次元アレイ）にシナプス重みの集合が乗算され、その結果、シナプス重みの集合が現在の入力ベクトルと最も密接に一致する単一のニューロン（又はノード）として表すことができる最良の一致が得られる。この単一のニューロンはクラスタも符号化する。すなわち、この単一のニューロンは、単一のパターンだけでなく、入力の平均、クラスタ、又は集合も符号化することができる。新たな入力が同じクラスタに割り当てられるか否かを制御する、入力パターンとシナプス重みとの間の類似度は、ユーザ定義パラメータによって設定することができる。
【００５７】
図５は、一例示の一致ベースのプルーニングプロセス５００を示している。オンライン学習システムでは、入力ベクトル５０４ａにシナプス重みの集合、例えば、５０６ａ、５０６ｂ、５０６ｃ、５０６ｄ、５０６ｅ、及び５０６ｆ（一括してシナプス重み５０６）が乗算される。この結果、最良の一致が得られる。この最良の一致は、その場合、シナプス重み５０６の集合が現在の入力ベクトル５０４ａと密接に一致する単一のニューロン（例えば、ノード５０２）として表される。ノード５０２はクラスタ５０８ａを表す。すなわち、ノード５０２は、単一のパターンを符号化するだけでなく、入力のクラスタ又は集合も表すことができる。他の入力ベクトル、例えば、５０４ｂ及び５０４ｃ（一括して入力ベクトル５０４）について、これらの入力ベクトルには、シナプス重み５０６が乗算され、類似度が求められる。この場合、５０４ｂ及び５０４ｃの最良の一致は、クラスタ５０８ｂを表すノード２である。この単純な場合に、クラスタ２には２つの経験が存在し、クラスタ１には１つの経験が存在し、削除の確率は、それに応じて重み付けされる。例えば、クラスタ２が選択される機会は２／３であり、この２／３の機会で、２つの経験のうちの一方がプルーニングのためにランダムに選択される。
【００５８】
さらに、入来する入力パターンが既存のクラスタ内で符号化される（すなわち、一致がユーザ定義の利得制御パラメータを満たす）か否かを用いて、メモリに記憶される経験を自動的に選択（又は廃棄）することができる。既存のクラスタに適合する入力は、更なる差異のある情報をサンプルメモリに必ずしも追加しないので廃棄することができるのに対して、既存のクラスタと適合しない入力は、システムによって以前に符号化されていない情報を表すので選択される。そのような方法の利点は、クラスタ中心までの距離しか計算する必要がないので、距離計算が効率的な演算であるということである。
【００５９】
【表４】
2019518273.tif 000012
【００６０】
図６は、図５のクラスタベースのプルーニングプロセス５００の代替の表現６００を示すフロー図である。クラスタリングは、距離の計算又は要素の記憶のいずれかの必要性をなくす。プロセス６００において、６０２では、あらゆるクラスタｋのクラスタ中心の、他の各クラスタ中心までの距離がβ以下であるようなクラスタが作成される。経験メモリＤ内の各経験は、Ｋ≪Ｎ個のクラスタの増大する集合に割り当てられる。経験がクラスタに割り当てられた後、６０４において、各クラスタは、メンバの数に従って重み付けされる（擬似コードプロセス６００におけるライン１７〜２１）。より多くのメンバを有するクラスタは、より大きな重みと、経験がそれらから削除されるより多くの機会とを有する。
【００６１】
プロセス６００は、経験｛ｘｊ，ａｊ，ｒｊ，ｘｊ＋１｝をベクトルに変換する「符号化」関数Γを導入する。基本的な符号化関数は、値を単に連結し、適切に重み付けするものである。別の符号化関数については、以下の節で論述する。６０６において、経験メモリＤ内の各経験が符号化される。６０８において、既存の各クラスタ中心までの符号化された経験の距離が計算される。６１０において、計算された距離が、全ての既存のクラスタ中心と比較される。最も類似したクラスタ中心がβ内にない場合、６１４において、新たなクラスタ中心が、経験を用いて作成される。一方、最も類似したクラスタ中心がβ内にある場合、６１２において、経験が、最も類似したクラスタに割り当てられる。すなわち、経験は、他のクラスタ中心と比較して、経験からの距離が最小のクラスタ中心を有するクラスタに割り当てられる。６１６において、クラスタは、メンバの数に従って再重み付けされ、６１８において、１つ以上の経験が、確率的決定に基づいて削除される。経験が削除されると（擬似コードプロセス６００におけるライン２３）、クラスタは、それに応じて再重み付けされる（擬似コードプロセス６００におけるライン２５）。このように、プロセス６００は、最も多くのメンバを有するクラスタからＺ個の経験の集合を優先的に削除する。
【００６２】
プロセス６００は、クラスタ中心を徐々に適応させることはない。それにもかかわらず、例えば、以下の更新関数をライン１５とライン１６との間に追加することによって、クラスタ中心が徐々に適応するようにプロセスを変更することができる。
【数７】
2019518273.tif 000013
【００６３】
エンコーダベースのプルーニング
入力次元が（生のピクセルの場合のように）高いとき、ユークリッド距離は不十分なメトリックになる傾向がある。適したβを見つけることが容易でない場合もあるし、可能でない場合さえある。好都合なことに、次元を削減するとともに、ユークリッド距離がより意味をなす適した低次元の多様体を見つける可能性を有する多数の方法がある。例としては、主成分分析、Ｉｓｏｍａｐ、オートエンコーダ等がある。特に魅力的なエンコーダは、強化学習によく適した低速特徴分析（ＳＦＡ）である。これは、（概して）サンプルが経時的にどのように変化するのかをＳＦＡが考慮し、これによって、ＳＦＡが逐次決定問題によく適したものになるからである。さらに、近年開発された、線形計算量及び空間計算量を有する低速特徴の集合を更新する増分法（ＩｎｃＳＦＡ）がある。
【００６４】
ＩｎｃＳＦＡをエンコーダとして用いることは、エージェントが各サンプルを観測した際に各サンプルを用いて低速特徴（slow features）の集合を更新することと、メモリをプルーニングする時が来ると、低速特徴を符号化関数Γとして用いることとを伴う。ＩｎｃＳＦＡの詳細は、Kompella他、「Incremental slow feature analysis: Adaptive low-complexity slow feature updating from high-dimensional input streams」、Neural Computation、24(11):2994-3024、2012から得られる。この文献は、引用することによって本明細書の一部をなすものとする。
【００６５】
オンラインエンコーダを用いるダブルＤＱＮの一例示のプロセスは、プロセス４（下記）に示されている。このプロセスは、ＩｎｃＳＦＡを考慮に入れて考えられたものであるが、多くの異なるエンコーダに適用される。
【００６６】
【表５】
2019518273.tif 000014
【００６７】
深層強化学習及び経験再生を用いるシステム
図７では、仮想環境若しくは模擬環境のいずれかにおける１つ以上のエージェント、又は物理エージェント（例えば、ロボット、ドローン、自動運転車、又は玩具）が、実環境７０１においてそれらの周囲の状況及び他のエージェントとインタラクトする。これらのエージェントと、当該エージェントが接続されているか又は備えるモジュール（以下で列挙するものを含む）とは、例えば、メモリ、センサ等に動作可能に結合されたグラフィックス処理装置（ＧＰＵ）を含む適したプロセッサ又は処理システムによって実施することができる。
【００６８】
インタフェース（図示せず）が、センサ、例えば、７０９ａ、７０９ｂ、及び７０９ｃ（一括してセンサ７０９）を用いて、環境７０１及びエージェントについての情報を収集する。センサ７０９は、画像センサ、マイクロフォン、及び他のセンサ等の任意のタイプのセンサとすることができる。センサ７０９が遭遇する状態、行動、及び報酬は、プロセッサ７０８に含まれるオンラインエンコーダモジュール７０２に供給される。
【００６９】
プロセッサ７０８は、インタフェースとデジタル通信することができる。幾つかの発明態様では、プロセッサ７０８は、オンラインエンコーダモジュール７０２、ＤＮＮ７０４、及びキューメンテナ７０５を備えることができる。インタフェースにおいて収集された情報は、任意選択のオンラインエンコーダモジュール７０２に送信され、このモジュールにおいて、処理及び圧縮される。換言すれば、オンラインエンコーダモジュール７０２は、インクリメンタル（incremental）低速特徴分析、主成分分析、又は別の適した技法を介してデータの次元を削減する。オンラインエンコーダモジュール７０２からの圧縮された情報、又はオンラインエンコーダが用いられていない場合の符号化されていない未圧縮の入力は、メモリ７０７に含まれるキューモジュール７０３に供給される。
【００７０】
メモリ７０７は、プロセッサ７０８とデジタル通信する。さらに、キューモジュール７０３は、再生される経験をＤＮＮモジュール７０４に供給する。
【００７１】
プロセッサ７０８に含まれるキューメンテナ（プルーニング）モジュール７０５は、キューモジュール７０３に双方向接続されている。このモジュールは、圧縮された経験についての情報を取得し、キューモジュール７０３に保持される経験及び廃棄される経験を管理する。換言すれば、キューメンテナ７０５は、図３におけるプロセス３００、図４におけるプロセス４００及び４０２、図５におけるプロセス５００、並びに図６におけるプロセス６００等のプルーニング方法を用いてメモリ７０７をプルーニングする。その後、キューモジュール７０３からのメモリは、トレーニングプロセス中にＤＮＮ／ニューラルネットワークモジュール７０４に供給される。動作／行動プロセスの間、環境からの状態情報もエージェント（複数の場合もある）７０１から提供され、このＤＮＮ／ニューラルネットワークモジュール７０４は、その後、行動を生成し、知覚／行動ループをクローズして環境７０１におけるエージェントを制御する。
【００７２】
ナビゲーションのためのプルーニング、深層強化学習、及び経験再生
図８は、ナビゲーション及びステアリングに深層ＲＬ及び経験再生を用いる自動運転車８００を示している。自動運転車８００の経験は、自動運転車８００に結合されたカメラ８０９ａ及びＬＩＤＡＲ８０９ｂ等のセンサを用いて収集される。自動運転車８００は、速度計と、エンジン、ブレーキ、及びハンドルを監視するセンサとからのデータも収集することができる。これらのセンサによって収集されたデータは、車の状態及び行動（複数の場合もある）を表す。
【００７３】
自動運転車の経験のデータは、一括すると、自動運転車８００の速度及び／又はステアリング角（行動に相当するもの）と、障害物までの車８００の距離（又は状態に相当する他の或るもの）とを含むことができる。速度及び／又はステアリング角の報酬は、ＬＩＤＡＲを介した車の安全メカニズムに基づくことができる。言い換えると、報酬は、行動の前及び後における障害物からの車の観測された距離に依存することができる。行動の後の車のステアリング角及び／又は速度も、報酬に影響を与えることができ、より長い距離及びより遅い速度は報酬をより高くし、衝突又は衝突コースは報酬をより低くする。初期状態、初期行動、初期報酬、及び最終状態を含む経験は、情報を処理及び圧縮し、さらに、経験をキューモジュール８０３に供給するオンラインエンコーダモジュール８０２に供給される。
【００７４】
キュー メンテナ（プルーニング）モジュール８０５は、キューモジュール８０３に双方向接続されている。キューメンテナ８０５は、図３におけるプロセス３００、図４におけるプロセス４００及び４０２、図５におけるプロセス５００、並びに図６におけるプロセス６００等の方法を用いて、キューモジュール８０３に記憶された経験をプルーニングする。類似した経験は削除され、非類似の経験はキューモジュール８０３に記憶される。例えば、キューモジュール８０３は、異なる障害物に対して取られる行動の前及び後の双方において、それらの障害物についての自動運転車８００の速度及び／又はステアリング角と、それらの障害物からの距離とを含むことができる。キューモジュール８０３からの経験は、その後、ＤＮＮ／ニューラルネットワークモジュール８０４をトレーニングするのに用いられる。自動運転車８００が、特定の障害物からの当該車８００の距離（すなわち、状態）をＤＮＮモジュール８０４に提供すると、ＤＮＮモジュール８０４は、キューモジュール８０３からの経験に基づいて、その状態についての速度及び／又はステアリング角を生成する。
【００７５】
結論
本明細書において様々な本発明の実施形態を説明及び図示してきたが、当業者であれば、本明細書において説明した機能を実行し、及び／又は本明細書において説明した結果及び／又は利点のうちの１つ以上を捕捉する様々な他の手段及び／又は構造を容易に想像するであろう。そのような変形形態及び／又は変更形態のそれぞれは、本明細書において説明した本発明の実施形態の範囲内にあるとみなされる。より一般的には、当業者であれば、本明細書において説明した全てのパラメータ、寸法、材料、及び構成は例示であることが意図され、実際のパラメータ、寸法、材料、及び／又は構成は、本発明の教示が用いられる特定の単数又は複数の用途に依存することを容易に理解するであろう。当業者であれば、本明細書において説明した特定の本発明の実施形態の多くの均等物を認識し、又は日常的な実験にすぎないものを用いて確かめることができるであろう。したがって、上記実施形態は、例として提示されたものにすぎず、添付の特許請求の範囲及びその均等物の範囲内で、具体的に説明したもの及び特許請求の範囲に記載したものとは別の方法で本発明の実施形態を実施することができることが理解されるであろう。本開示の本発明の実施形態は、本明細書において説明した個々の各特徴、システム、物品、材料、キット、及び／又は方法を対象としている。加えて、２つ以上のそのような特徴、システム、物品、材料、キット、及び／又は方法が相互に不整合でない場合には、そのような特徴、システム、物品、材料、キット、及び／又は方法の任意の組み合わせは、本開示の本発明の範囲内に含まれる。
【００７６】
上記で説明した実施形態は、非常に多くの方法のうちの任意のもので実施することができる。例えば、本明細書において開示した技術を設計及び実現する実施形態は、ハードウェア、ソフトウェア又はそれらの組み合わせを用いて実施することができる。ソフトウェアで実施されるとき、そのソフトウェアコードは、単一のコンピュータに設けられているか又は複数のコンピュータ間に分散されているかを問わず、任意の適したプロセッサ又はプロセッサの集合体において実行することができる。
【００７７】
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータ等の任意の複数の形において具現化することができることが理解されるであろう。さらに、コンピュータは、携帯情報端末（ＰＤＡ）、スマートフォン又は任意の他の適切なポータブル若しくは固定電子デバイスを含む、一般にコンピュータとはみなされないが、適切な処理能力を有するデバイスにおいて具現化することができる。
【００７８】
また、コンピュータは、１つ以上の入力デバイス及び出力デバイスを有することができる。これらのデバイスは、とりわけ、ユーザインタフェースを提示するのに用いることができる。ユーザインタフェースを提供するのに用いることができる出力デバイスの例には、出力の視覚的提示のためのプリンタ又はディスプレイスクリーンと、出力の可聴提示のためのスピーカ又は他の音発生デバイスとが含まれる。ユーザインタフェースに用いることができる入力デバイスの例には、キーボードと、マウス、タッチパッド、及び離散化タブレット等のポインティングデバイスとが含まれる。別の例として、コンピュータは、音声認識を通じて又は他の可聴フォーマットで入力情報を受信することができる。
【００７９】
そのようなコンピュータは、エンタープライズネットワーク及びインテリジェントネットワーク（ＩＮ）又はインターネット等のローカルエリアネットワーク又はワイドエリアネットワークを含む任意の適した形態の１つ以上のネットワークによって相互接続することができる。そのようなネットワークは、任意の適した技術に基づくことができ、任意の適したプロトコルに従って動作することができ、無線ネットワーク、有線ネットワーク、又は光ファイバネットワークを含むことができる。
【００８０】
本明細書において略述した（例えば、上記で開示した技術を設計及び実現する）様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットホームのうちの任意の１つを用いる１つ以上のプロセッサ上で実行可能なソフトウェアとしてコード化することができる。加えて、そのようなソフトウェアは、多くの適したプログラミング言語及び／又はプログラミングツール若しくはスクリプティングツールのうちの任意のものを用いて記述することができ、フレームワーク又は仮想機械上で実行される実行可能な機械語コード又は中間コードとしてコンパイルすることもできる。
【００８１】
この点において、種々の発明の概念は、１つ以上のコンピュータ又は他のプロセッサ上で実行されると、上記で論じられた本発明の種々の実施形態を実施する方法を実行する１つ以上のプログラムで符号化されたコンピュータ可読記憶媒体（又は複数のコンピュータ可読記憶媒体）（例えば、コンピュータメモリ、１つ以上のフロッピーディスク、コンパクトディスク、光ディスク、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ若しくは他の半導体デバイス内の回路構成、又は他の非一時的媒体又は有形コンピュータ記憶媒体）として具現化することができる。単数又は複数のコンピュータ可読媒体は、そこに記憶された単数又は複数のプログラムを１つ以上の異なるコンピュータ又は他のプロセッサにロードして、上記で論じられたような本発明の種々の態様を実施することができるように、輸送可能とすることができる。
【００８２】
用語「プログラム」又は「ソフトウェア」は、本明細書では、上記で論述したような実施形態の様々な態様を実施するようにコンピュータ又は他のプロセッサをプログラミングするのに用いることができる任意のタイプのコンピュータコード又は一組のコンピュータ実行可能命令を指す一般的な意味に用いられる。加えて、１つの態様によれば、実行されると、本発明の方法を実行する１つ以上のコンピュータプログラムは、単一のコンピュータ又はプロセッサ上に存在する必要はなく、複数の異なるコンピュータ又はプロセッサ間にモジュール形式で分散されて本発明の様々な態様を実施することができることが理解されるであろう。
【００８３】
コンピュータ実行可能命令は、１つ以上のコンピュータ又は他のデバイスによって実行されるプログラムモジュール等の多くの形態で存在することができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、構成要素、データ構造体等を含む。通常、プログラムモジュールの機能は、様々な実施形態において所望されるとおりに組み合わせることもできるし、分散させることもできる。
【００８４】
また、データ構造体は、任意の適した形態でコンピュータ可読媒体に記憶することができる。説明を簡単にするために、データ構造体は、当該データ構造体におけるロケーションを通じて関係付けられたフィールドを有するように示すことができる。そのような関係は、フィールドの記憶領域に、フィールド間の関係を伝達するコンピュータ可読媒体内のロケーションを割り当てることによって同様に実現することができる。一方、データ要素間の関係を確立するポインタ、タグ又は他のメカニズムの使用を含む任意の適したメカニズムを用いて、データ構造体のフィールド内の情報間の関係を確立することができる。
【００８５】
また、様々な本発明の概念は、１つ以上の方法として具現化することができ、その一例は既に提供されている。この方法の一部として実行される動作は、任意の適した方法で順序付けることができる。したがって、例示したものとは異なる順序で動作が実行される実施形態を構築することができ、この順序は、幾つかの動作が例示の実施形態では順次的な動作として示されていても、それらの動作を同時に実行することを含むことができる。
【００８６】
本明細書において定義されて用いられているような全ての定義は、辞書の定義、引用によって組み込まれた文書内の定義、及び／又は定義された用語の通常の意味を支配するものと解釈される。
【００８７】
本明細書及び特許請求の範囲において用いられている不定冠詞「一（a、an）」は、逆のことが明らかに示されていない限り、「少なくとも１つ」を意味するものと解釈される。
【００８８】
本明細書及び特許請求の範囲において用いられる語句「及び／又は」は、そのように接続された要素の「いずれか又は双方」、すなわち、幾つかの場合には連言的に存在する要素、及びそれ以外の場合には選言的に存在する要素を意味するものと解釈される。「及び／又は」を用いて列挙された複数の要素は、同様に、すなわち、そのように接続された要素の「１つ以上」と解釈される。「及び／又は」節によって具体的に特定された要素以外の他の要素が、具体的に特定された要素との関係の有無を問わず、任意選択で存在してもよい。したがって、非限定的な例として、「Ａ及び／又はＢ」というとき、これは、「〜を備える／含む（comprising）」等の非限定的（open-ended）な文言とともに用いられる場合に、１つの実施形態では、Ａのみ（任意選択でＢ以外の要素を含む）、別の実施形態では、Ｂのみ（任意選択でＡ以外の要素を含む）、更に別の実施形態では、Ａ及びＢ（任意選択で他の要素を含む）の双方等を指すことができる。
【００８９】
本明細書及び特許請求の範囲に用いられる「又は」は、上記で定義したような「及び／又は」と同じ意味を有すると解釈される。例えば、一覧の項目を分離するとき、「又は」又は「及び／又は」は、包含的であると解釈される。すなわち、複数の要素又は要素の一覧のうちの少なくとも１つを含むが、２つ以上も含み、任意選択で、一覧にない追加の項目も含むものと解釈される。「〜のうちの１つ／一方のみ」若しくは「〜のうちの厳密に１つ／一方」、又は特許請求の範囲において用いられるときは「〜からなる（consisting of）」等の明らかに逆のことを示す用語のみが、複数の要素又は要素の一覧のうちの厳密に１つ／一方の要素を含むことを指す。一般に、本明細書において用いられる用語「又は」は、「いずれか」、「〜のうちの１つ／一方」、「〜のうちの１つ／一方のみ」、又は「〜のうちの厳密に１つ／一方」等の排他的な用語が後置されているときにのみ排他的な二者択一（すなわち「一方又は他方であって、双方ではない」）を示すものと解釈される。「本質的に〜からなる（consisting essentially of）」は、特許請求の範囲において用いられるとき、特許法の分野において用いられるその通常の意味を有する。
【００９０】
１つ以上の要素の一覧に関して、本明細書及び特許請求の範囲に用いられる語句「少なくとも１つ／一方」は、要素の一覧内の要素のうちの任意の１つ以上から選択された少なくとも１つ／一方の要素を意味するが、要素の一覧内に具体的に挙げられたありとあらゆる要素のうちの少なくとも１つ／一方を必ずしも含むものではなく、要素の一覧内の要素の任意の組み合わせを除外しないものと解釈される。この定義も、具体的に特定された要素との関係の有無を問わず、語句「少なくとも１つ／一方」が指す要素の一覧内で具体的に特定される要素以外の要素が任意選択で存在してもよいことを可能にする。したがって、非限定的な例として、「Ａ及びＢのうちの少なくとも一方」（又は同様の意味として「Ａ又はＢのうちの少なくとも一方」、又は同様の意味として「Ａ及び／又はＢのうちの少なくとも一方」）は、１つの実施形態では、少なくとも一方であるＡ（任意選択で２つ以上を含む）を指すとともにＢが存在しない（任意選択でＢ以外の要素を含む）ことを指し、別の実施形態では、少なくとも一方であるＢ（任意選択で２つ以上を含む）を指すとともにＡが存在しない（任意選択でＡ以外の要素を含む）ことを指し、更に別の実施形態では、少なくとも一方であるＡ（任意選択で２つ以上を含む）及び少なくとも一方であるＢ（任意選択で２つ以上を含む）（任意選択で他の要素を含む）を指す等とすることができる。
【００９１】
特許請求の範囲及び上記明細書において、「〜を備える／含む（comprising）」、「〜を含む／備える（including）」、「〜を担持する（carrying）」、「〜を有する（having）」、「〜を含む／包含する（containing）」、「〜を伴う（involving）」、「〜を保持する（holding）」、「〜から構成される（composed of）」等の全ての移行句は、非限定的（open-ended）である、すなわち、〜を含むが、それらに限定されるものではない、と解釈される。移行句「〜からなる（consisting of）」及び「本質的に〜からなる（consisting essentially of）」のみが、米国特許商標庁特許審査便覧のセクション２１１１．０３に規定されているように、それぞれ限定的（closed）又は半限定的（semi-closed）な移行句である。
【図１】
2019518273.tif 000015
【図２】
2019518273.tif 000016
【図３】
2019518273.tif 000017
【図４】
2019518273.tif 000018
【図５】
2019518273.tif 000019
【図６】
2019518273.tif 000020
【図７】
2019518273.tif 000021
【図８】
2019518273.tif 000022
【国際調査報告】
2019518273.tif 000023
2019518273.tif 000024