(57)【要約】  視覚入力を使用したナビゲーションのための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置。システムのうちの１つは、複数の時間ステップの各時間ステップにおいて、その時間ステップにおける環境の画像から環境の特徴付けを生成するように構成されたマッピングサブシステムを含み、特徴付けは、特定の特徴を有する環境内の場所を識別する環境マップを含み、特徴付けを生成することは、時間ステップごとに、その時間ステップにおける環境の画像を取得することと、その時間ステップについての第１の初期特徴付けを生成するために画像を処理することと、先行する時間ステップについての第１の特徴付けを取得することと、その時間ステップについての第２の初期特徴付けを生成するために、先行する時間ステップについての特徴付けを処理することと、第１の初期特徴付けと第２の初期特徴付けとを結合して、その時間ステップについての最終的な特徴付けを生成することとを含む。
2020507857.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のコンピュータと、命令を記憶する１つまたは複数の記憶デバイスとを備えるシステムであって、前記命令は、実行されると、前記１つまたは複数のコンピュータに、
複数の時間ステップの各時間ステップにおいて、環境の特徴付けを前記時間ステップにおける前記環境の画像から生成するように構成されたマッピングサブシステムを実装させ、前記特徴付けが、特定の特徴を有する前記環境内の場所を識別する環境マップを含み、前記特徴付けを生成することが、時間ステップごとに、
前記時間ステップにおいて前記環境の前記画像を取得することであり、前記画像が、前記環境内を移動するエージェントによってキャプチャされた画像である、取得することと、
前記時間ステップについての前記環境の第１の初期特徴付けを生成するために、ニューラルネットワークを使用して前記画像を処理することと、
前記時間ステップに先立つ先行する時間ステップについての前記環境の最終的な特徴付けを取得することと、
前記先行する時間ステップと前記時間ステップとの間の前記エージェントの動きの尺度を取得することと、
前記時間ステップについての前記環境の第２の初期特徴付けを生成するために、前記先行する時間ステップについての前記環境の前記特徴付けを処理することであり、前記第２の初期特徴付けを生成するために、前記先行する時間ステップについての前記環境の前記最終的な特徴付けおよび動きの前記尺度に微分可能ワーピング関数を適用することを含む、処理することと、
前記第１の初期特徴付けと前記第２の初期特徴付けとを結合して、前記時間ステップについての前記環境の最終的な特徴付けを生成することと
を含む、システム。
【請求項２】
前記ワーピング関数が、双線形サンプリングを使用して補間を実行する関数である、請求項１に記載のシステム。
【請求項３】
前記画像が、前記エージェントの１人称の自己中心的視点からのものであり、
前記第１の初期特徴付け、前記第２の初期特徴付け、前記先行する時間ステップについての前記最終的な特徴付け、および前記時間ステップについての前記最終的な特徴付けが、トップダウンの視点からのものである、
請求項１または２に記載のシステム。
【請求項４】
前記第１の初期特徴付けと前記第２の初期特徴付けとを結合して、前記時間ステップについての前記最終的な特徴付けを生成することが、
前記第１の初期特徴付けおよび前記第２の初期特徴付けに更新関数を適用して、前記最終的な特徴付けを生成すること
を含む、請求項１から３のいずれか一項に記載のシステム。
【請求項５】
各特徴付けが、（ｉ）前記環境内の前記複数の場所が前記特定の特徴を有するか否かを表すスコアのセット、および（ｉｉ）前記スコアのセットにおける信頼の尺度のセットを含み、
前記更新関数が、以下の式の演算を実行することを含み、
【数１】
2020507857.tif 000005
Ｃｔ＝Ｃｔ−１＋Ｃｔ’
ただし、ｆｔは、前記時間ステップについての前記最終的な特徴付けに対する前記スコアのセットであり、ｃｔは、前記時間ステップについての前記最終的な特徴付けに対する前記スコアのセットにおける前記信頼の尺度のセットであり、ｆｔ’は、前記第１の初期特徴付けに対する前記スコアのセットであり、ｃｔ’は、前記第１の初期特徴付けに対する前記スコアのセットにおける前記信頼の尺度のセットであり、ｆｔ−１は、前記第２の初期特徴付けに対する前記スコアのセットであり、ｃｔ−１は、前記第２の初期特徴付けに対する前記スコアのセットにおける前記信頼の尺度のセットである、請求項４に記載のシステム。
【請求項６】
前記更新関数が、リカレントニューラルネットワークによって実行され、前記リカレントニューラルネットワークが、前記複数の時間ステップの時間ステップごとに、前記時間ステップについての前記第１の初期特徴付けおよび前記第２の初期特徴付けを処理して、前記時間ステップについての前記最終的な特徴付けを生成するように構成される、請求項４に記載のシステム。
【請求項７】
時間ステップについての前記環境マップが、前記環境内の前記複数の場所の各々について、
前記場所が特定の特徴を有するか否かを表すスコアを含み、前記特徴付けが、前記場所ごとに、
前記場所についての前記スコアにおける信頼の尺度
をさらに含む、請求項１から６のいずれか一項に記載のシステム。
【請求項８】
前記複数の時間ステップの各々について、
前記マッピングサブシステムから前記時間ステップについての前記最終的な特徴付けを取得し、
前記時間ステップにおいて前記環境と対話するエージェントによって実行されるべき提案されたアクションを選択するために、前記最終的な特徴付けを処理する
ように構成された計画サブシステム
をさらに含む、請求項１から７のいずれか一項に記載のシステム。
【請求項９】
前記エージェントが、目標を達成するためにアクションを実行しており、前記時間ステップについての前記提案されたアクションを選択するために、前記最終的な特徴付けを処理することが、
前記時間ステップについての前記最終的な特徴付けから空間的にスケーリングされた環境マップのシーケンスを生成することであり、前記シーケンス内の各空間的にスケーリングされた環境マップが、前記シーケンス内の任意の後続の空間的にスケーリングされた環境マップに対してダウンサンプリングされる、生成することと、
最もダウンサンプリングされた空間的にスケーリングされた環境マップから始まる前記シーケンス内の空間的にスケーリングされた環境マップごとに、
前記空間的にスケーリングされた環境マップについての１つまたは複数の値マップを生成するために、前記空間的にスケーリングされた環境マップおよび前記空間的にスケーリングされた環境マップに関連付けられた１つまたは複数の入力を処理することであり、値マップが、前記空間的にスケーリングされた環境マップ内の複数の領域の領域ごとに、前記目標を達成するために前記領域内にいる前記エージェントの値の評価を含む、処理することと、
最後の空間的にスケーリングされた環境マップ以外の前記シーケンス内の空間的にスケーリングされた環境マップごとに、前記シーケンス内の後続の空間的にスケーリングされた環境マップに関連付けられた入力として、前記空間的にスケーリングされた環境マップについての前記１つまたは複数の値マップを提供することと
を含む、請求項８に記載のシステム。
【請求項１０】
前記シーケンス内の各空間的にスケーリングされた環境マップに関連付けられた前記入力が、前記エージェントの前記目標を識別するデータを含む、請求項９に記載のシステム。
【請求項１１】
前記目標が、前記エージェントが到達しようと試みる前記環境内の場所である、請求項１０に記載のシステム。
【請求項１２】
前記目標が、前記エージェントが見つけようと試みる前記環境内のオブジェクトである、請求項１０に記載のシステム。
【請求項１３】
前記最もダウンサンプリングされた空間的にスケーリングされた環境マップへの前記入力が、前記時間ステップについての前記最終的な特徴付けを含む、請求項９から１２のいずれか一項に記載のシステム。
【請求項１４】
前記空間的にスケーリングされた環境マップについての前記１つまたは複数の値マップを生成するために、前記空間的にスケーリングされた環境マップに関連付けられた入力を処理することが、
前記空間的にスケーリングされた環境マップについての１つまたは複数の初期値マップを生成するために、前記空間的にスケーリングされた環境マップに関連付けられた入力を処理することと、
前記空間的にスケーリングされた環境マップについての前記１つまたは複数の値マップを生成するために、前記空間的にスケーリングされた環境マップについての前記１つまたは複数の初期値マップに対して１つまたは複数の値反復を実行することと
を含む、請求項９から１３のいずれか一項に記載のシステム。
【請求項１５】
前記提案されたアクションを選択するために、前記最終的な特徴付けを処理することが、
前記シーケンス内の前記最後の空間的にスケーリングされた環境マップについての前記値マップに基づいて前記提案されたアクションを選択すること
を含む、請求項９から１４のいずれか一項に記載のシステム。
【請求項１６】
前記シーケンス内の前記最後の空間的にスケーリングされた環境マップについての前記値マップに基づいて前記提案されたアクションを選択することが、
前記シーケンス内の前記最後の空間的にスケーリングされた環境マップについての前記値マップから、値の最高の評価を有する更新された値マップの特定の領域を決定することと、
前記時間ステップについての前記提案されたアクションとして、前記特定の領域に前記エージェントを連れて行くアクションを選択することと
を含む、請求項１５に記載のシステム。
【請求項１７】
前記シーケンス内の前記最後の空間的にスケーリングされた環境マップについての前記値マップに基づいて前記提案されたアクションを選択することが、
前記提案されたアクションを選択するために１つまたは複数の修正された線形ユニットを含むニューラルネットワークを介して前記値マップを処理すること
を含む、請求項１５に記載のシステム。
【請求項１８】
請求項８から１７のいずれか一項に記載のマッピングサブシステムおよび計画サブシステムを含むシステムをトレーニングする方法であって、
画像を取得するステップと、
前記画像の時間ステップについてのオブジェクトの環境の最終的な特徴付けを決定するために、前記マッピングサブシステムを使用して前記画像を処理するステップと、
前記画像の前記時間ステップについての提案されたアクションを選択するために、前記計画サブシステムを使用して前記最終的な特徴付けを処理するステップと、
前記画像の前記時間ステップについての最適なアクションを取得するステップと、
前記選択されたアクションと前記最適なアクションとの間の誤差の尺度の勾配を決定するステップと、
前記マッピングサブシステムおよび前記計画サブシステムのパラメータに対する更新を決定するために、前記マッピングサブシステムおよび前記計画サブシステムを介して前記勾配を逆伝搬するステップと
を含む、方法。
【請求項１９】
前記環境内を移動するエージェントに、前記提案されたアクションを確率ｐで実行させ、前記最適なアクションを確率１−ｐで実行させるステップ
をさらに含む、請求項１８に記載の方法。
【請求項２０】
前記エージェントの動作中にｐを増加させて、前記最適なアクションを選択する確率を高めるステップ
をさらに含む、請求項１９に記載の方法。
【請求項２１】
請求項１から１７のいずれか一項に記載のサブシステムのうちのいずれか１つによって実行される動作を含む方法。
【請求項２２】
命令で符号化された１つまたは複数のコンピュータ記憶媒体であって、前記命令は、１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、請求項１から１７のいずれか一項に記載のシステムを実装させる、１つまたは複数のコンピュータ記憶媒体。
【請求項２３】
１つまたは複数のコンピュータと、命令を記憶する１つまたは複数の記憶デバイスとを備えるシステムであって、前記命令は、前記１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、請求項１８から２０のいずれか一項に記載の方法の動作を実行させるように動作可能である、システム。
【請求項２４】
命令で符号化されたコンピュータ記憶媒体であって、前記命令は、１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、請求項１８から２０のいずれか一項に記載の方法の動作を実行させる、コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、環境内のエージェントナビゲーションに関する。
【背景技術】
【０００２】
視覚入力を使用して、環境内で、たとえばロボットなどのエージェントをナビゲートすることは、環境に関する情報を抽出するために視覚入力を処理し、環境に関する抽出された情報が与えられると適切なアクションを選択することを必要とする。いくつかのシステムは、ニューラルネットワークを使用して、エージェントによって実行されるべきアクションを選択する。
【０００３】
ニューラルネットワークは、非線形ユニットの１つまたは複数の層を使用して、受信された入力の出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて、１つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【０００４】
いくつかのニューラルネットワークは、リカレントニューラルネットワークである。リカレントニューラルネットワークは、入力シーケンスを受信し、その入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、リカレントニューラルネットワークは、現在の時間ステップで出力を計算する際に、先行する時間ステップからのネットワークの内部状態の一部または全部を使用することができる。リカレントニューラルネットワークの一例は、１つまたは複数の長短期（ＬＳＴＭ）メモリブロックを含むＬＳＴＭニューラルネットワークである。各ＬＳＴＭメモリブロックは、たとえば、現在のアクティブ化を生成する際に使用するために、またはＬＳＴＭニューラルネットワークの他の構成要素に提供されるように、セルがセルの以前の状態を記憶することを可能にする入力ゲート、忘却ゲート、および出力ゲートを各々含む１つまたは複数のセルを含むことができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ａ．  Ｔａｍａｒ，  Ｓ．  Ｌｅｖｉｎｅ，  ａｎｄ  Ｐ．  Ａｂｂｅｅｌ．  Ｖａｌｕｅ  ｉｔｅｒａｔｉｏｎ  ｎｅｔｗｏｒｋｓ．  Ｉｎ  ＮＩＰＳ，  ２０１６
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書は、一般に、環境内をナビゲートするエージェントを制御する、すなわち、エージェントによって実行されるべきアクションを選択し、次いで、選択されたアクションをエージェントに実行させるナビゲーションシステムを記述する。
【０００７】
記述された主題の発明的一態様では、１つまたは複数のコンピュータと１つまたは複数の記憶デバイスとを備えるシステムは、実行されると、１つまたは複数のコンピュータにマッピングサブシステムを実装させる命令を記憶し、マッピングサブシステムは、複数の時間ステップの各時間ステップにおいて、環境の特徴付けをその時間ステップにおける環境の画像から生成するように構成され、特徴付けは、特定の特徴を有する環境内の場所を識別する環境マップを含み、特徴付けを生成することは、時間ステップごとに、その時間ステップにおける環境の画像を取得することと、その時間ステップについての環境の第１の初期特徴付けを生成するために画像を処理することと、その時間ステップに先立つ先行する時間ステップについての環境の最終的な特徴付けを取得することと、その時間ステップについての環境の第２の初期特徴付けを生成するために、先行する時間ステップについての環境の特徴付けを処理することと、第１の初期特徴付けと第２の初期特徴付けとを結合して、その時間ステップについての環境の最終的な特徴付けを生成することとを含む。
【０００８】
いくつかの実装形態では、第１の初期特徴付けを生成するために画像を処理することは、第１の初期特徴付けを生成するために、ニューラルネットワークを使用して画像を処理することを含む。
【０００９】
いくつかの実装形態では、画像は、環境内を移動するエージェントによってキャプチャされた画像であり、その時間ステップについての環境の第２の初期特徴付けを生成するために、先行する時間ステップについての環境の最終的な特徴付けを処理することは、先行する時間ステップとその時間ステップとの間のエージェントの動きの尺度を取得することと、第２の初期特徴付けを生成するために、先行する時間ステップについての環境の最終的な特徴付けおよび動きの尺度にワーピング関数を適用することとを含む。
【００１０】
いくつかの実装形態では、ワーピング関数は、双線形サンプリングを使用して補間を実行する関数である。
【００１１】
いくつかの実装形態では、画像は、環境内を移動するエージェントによってキャプチャされ、画像は、エージェントの自己中心的視点からのものであり、第１の初期特徴付け、第２の初期特徴付け、先行する時間ステップについての最終的な特徴付け、およびその時間ステップについての最終的な特徴付けは、トップダウンの視点からのものである。
【００１２】
いくつかの実装形態では、第１の初期特徴付けと第２の初期特徴付けとを結合して、その時間ステップについての最終的な特徴付けを生成することは、第１の初期特徴付けおよび第２の初期特徴付けに更新関数を適用して、最終的な特徴付けを生成することを含む。
【００１３】
いくつかの実装形態では、各特徴付けは、（ｉ）環境内の複数の場所が特定の特徴を有するかどうかを表すスコアのセット、および（ｉｉ）スコアのセットにおける信頼の尺度のセットを含み、更新関数は、以下の式の演算を実行することを含む。
【００１４】
【数１】
2020507857.tif 000003
【００１５】
Ｃｔ＝Ｃｔ−１＋Ｃｔ’
ただし、ｆｔは、時間ステップについての最終的な特徴付けに対するスコアのセットであり、ｃｔは、時間ステップについての最終的な特徴付けに対するスコアのセットにおける信頼の尺度のセットであり、ｆｔ’は、第１の初期特徴付けに対するスコアのセットであり、ｃｔ’は、第１の初期特徴付けに対するスコアのセットにおける信頼の尺度のセットであり、ｆｔ−１は、第２の初期特徴付けに対するスコアのセットであり、ｃｔ−１は、第２の初期特徴付けに対するスコアのセットにおける信頼の尺度のセットである。
【００１６】
いくつかの実装形態では、更新関数は、リカレントニューラルネットワークによって実行され、リカレントニューラルネットワークは、複数の時間ステップの時間ステップごとに、その時間ステップについての第１の初期特徴付けおよび第２の初期特徴付けを処理して、その時間ステップについての最終的な特徴付けを生成するように構成される。
【００１７】
いくつかの実装形態では、時間ステップについての環境マップは、環境内の複数の場所の各々について、その場所が特定の特徴を有するかどうかを表すスコアを含み、特徴付けは、場所ごとに、場所についてのスコアにおける信頼の尺度をさらに含む。
【００１８】
いくつかの実装形態では、システムは、複数の時間ステップの各々について、マッピングサブシステムから時間ステップについての最終的な特徴付けを取得することと、時間ステップにおいて環境と対話するエージェントによって実行されるべき提案されたアクションを選択するために、最終的な特徴付けを処理することとをさらに含む。
【００１９】
別の発明的態様では、システムは、計画サブシステムを含み、計画サブシステムは、複数の時間ステップの時間ステップごとに、その時間ステップについての目標を達成するためにアクションを実行するエージェントの環境の最終的な特徴付けを取得し、エージェントの環境の最終的な特徴付けは、特定の特徴を有する環境内の場所を識別する環境マップを含み、最終的な特徴付けから空間的にスケーリングされた環境マップのシーケンスを生成し、シーケンス内の各空間的にスケーリングされた環境マップは、シーケンス内の任意の後続の空間的にスケーリングされた環境マップに対してダウンサンプリングされ、最もダウンサンプリングされた空間的にスケーリングされた環境マップから始まる、シーケンス内の空間的にスケーリングされた環境マップごとに、シーケンス内の空間的にスケーリングされた環境マップについての１つまたは複数の値マップを生成するために、空間的にスケーリングされた環境マップおよび空間的にスケーリングされた環境マップに関連付けられた１つまたは複数の入力を処理し、値マップは、空間的にスケーリングされた環境マップ内の複数の領域の領域ごとに、目標を達成するためにその領域内にいるエージェントの値の評価を含み、最後の空間的にスケーリングされた環境マップ以外のシーケンス内の空間的にスケーリングされた環境マップごとに、シーケンス内の後続の空間的にスケーリングされた環境マップに関連付けられた入力として、空間的にスケーリングされた環境マップについての１つまたは複数の更新された値マップを提供し、シーケンス内の最後の空間的にスケーリングされた環境マップについての更新された値マップに基づいて、提案されたアクションを選択するように構成される。
【００２０】
いくつかの実装形態では、シーケンス内の各空間的にスケーリングされた環境マップに関連付けられた入力は、エージェントの目標を識別するデータを含む。
【００２１】
いくつかの実装形態では、目標は、エージェントが到達しようと試みる環境内の場所である。
【００２２】
いくつかの実装形態では、目標は、エージェントが見つけようと試みる環境内のオブジェクトである。
【００２３】
いくつかの実装形態では、最もダウンサンプリングされた空間的にスケーリングされた環境マップへの入力は、その時間ステップについての最終的な特徴付けを含む。
【００２４】
いくつかの実装形態では、空間的にスケーリングされた環境マップについての１つまたは複数の値マップを生成するために、空間的にスケーリングされた環境マップに関連付けられた入力を処理することは、空間的にスケーリングされた環境マップについての１つまたは複数の初期値マップを生成するために、空間的にスケーリングされた環境マップに関連付けられた入力を処理することと、空間的にスケーリングされた環境マップについての１つまたは複数の値マップを生成するために、空間的にスケーリングされた環境マップについての１つまたは複数の初期値マップに対して１つまたは複数の値反復（ｖａｌｕｅ  ｉｔｅｒａｔｉｏｎ）を実行することとを含む。
【００２５】
いくつかの実装形態では、シーケンス内の最後の空間的にスケーリングされた環境マップについての値マップに基づいて、提案されたアクションを選択することは、シーケンス内の最後の空間的にスケーリングされた環境マップについての更新された値マップから、値の最高の評価を有する更新された値マップの特定の領域を決定することと、その時間ステップについての提案されたアクションとして、特定の領域にエージェントを連れて行くアクションを選択することとを含む。
【００２６】
いくつかの実装形態では、シーケンス内の最後の空間的にスケーリングされた環境マップについての値マップに基づいて、提案されたアクションを選択することは、提案されたアクションを選択するために１つまたは複数の修正された線形ユニットを含むニューラルネットワークを介して値マップを処理することを含む。
【００２７】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの１つまたは複数を実現するように実装することができる。
【００２８】
マッピングサブシステムおよび計画サブシステムを含む環境内でエージェントをナビゲートするためのシステムは、エンドツーエンドでトレーニングすることができ、それによって、トレーニングされた後のそのようなシステムの効率および精度を高めることができる。すなわち、マッパおよびプランナーによって実行される動作は完全に微分可能であるため、マッパは、プランナーからの誤差を逆伝搬することによってトレーニングできる。たとえば、計画サブシステムは、マッピングサブシステムがより良い環境マップを生成する方法を学習している間に、マッピングサブシステムによって生成された環境マップの使用方法を学習することができる。環境マップを空間的にスケーリングして、よりダウンサンプリングされた空間的にスケーリングされた環境マップの値反復精度を最小化しながら、高精度のアクション計画を依然として生成することによって、エージェントのアクションの計画は、より計算効率的にすることができる。
【００２９】
本明細書に記載の主題の１つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００３０】
【図１】例示的なナビゲーションシステムを示す図である。
【図２】微分可能マッパの例示的なアーキテクチャを示す図である。
【図３】微分可能階層プランナーの例示的なアーキテクチャを示す図である。
【図４】所与の時間ステップにおいて画像を処理するための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【００３１】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【００３２】
図１は、例示的なナビゲーションシステム１００を示す。ナビゲーションシステム１００は、以下に説明するシステム、構成要素、および技法を実装することができる１つまたは複数の場所にある１つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【００３３】
ナビゲーションシステム１００は、環境の画像を受信し、受信された画像に応答してエージェントによって実行されるべきアクションを選択することによって、エージェントが環境内を移動するときにエージェントを制御する。
【００３４】
一般に、環境は、現実世界環境であり、エージェントは、目標を達成するために現実世界環境と対話する機械エージェントである。たとえば、エージェントは、特定の目標を達成するために、たとえば環境内の特定の場所に移動するために、または環境内の特定のオブジェクトを見つけるために、環境と対話するロボットとすることができる。別の例として、エージェントは、目標を達成するために環境内をナビゲートする、すなわち特定の場所にナビゲートする自律型または半自律型車両でもよい。
【００３５】
特に、ナビゲーションシステム１００は、環境の画像を繰り返し受信し、各画像に応答して、可能なアクションのセットからエージェントによって実行されるべきアクションを選択し、エージェントに、選択されたアクションを実行させる。画像を受信し、次いで、画像に応答してアクションを実行することの各反復は、本明細書では時間ステップと呼ばれる。このようにしてアクションを繰り返し選択することによって、システム１００は、エージェントに目標を達成させる。
【００３６】
一般に、受信された画像は、エージェントが環境内を移動するにつれてエージェントによってキャプチャされた画像、すなわち、カメラまたはエージェントの他のセンサーによってキャプチャされた画像である。したがって、画像は、エージェントに対する環境の１人称画像である。
【００３７】
たとえば、所与の時間ステップにおいて、システム１００は、環境の画像１０２と、先行する時間ステップに対するエージェントのエゴモーション１０４を識別するデータとを受信する。エゴモーション１０４は、先行する時間ステップとその時間ステップとの間のエージェントの動きの尺度、すなわち、エージェントの場所が先行する時間ステップに対してどの程度変化したかを示す尺度である。
【００３８】
次いで、システム１００は、画像１０２、エゴモーション１０４、およびエージェントが到達しようとしている目標１２２を識別するデータを使用して、その時間ステップについてのアクション１３２を選択し、すなわち、アクション１３２に対応する特定の制御入力を提出するようエージェントの制御システムに命令することによって、エージェントにアクション１３２を実行させる。すなわち、アクションは、エージェントに環境内を移動させるエージェントへの制御入力である。
【００３９】
特に、システム１００は、微分可能マッパ１１０と微分可能階層プランナー１２０とを含む。
【００４０】
以下の説明からわかるように、マッパ１１０およびプランナー１２０は、所与の画像に応答してアクションを選択する間にこれらのサブシステムの各々によって実行される動作が完全に微分可能であるので、「微分可能」と呼ばれる。これによって、システム１００は、マッパ１１０とプランナー１２０とをエンドツーエンドでトレーニングすることができ、トレーニングされたシステムの性能が向上する。マッパ１１０およびプランナー１２０のトレーニングについては、図４を参照しながら以下でより詳細に説明する。
【００４１】
各時間ステップにおいて、マッパ１１０は、その時間ステップについての画像１０２およびエゴモーション１０４を受信し、環境の特徴付け１１２を生成する。
【００４２】
特徴付け１１２は、一般に、確信度データ（ｂｅｌｉｅｆ  ｄａｔａ）および信頼度データ（ｃｏｎｆｉｄｅｎｃｅ  ｄａｔａ）を含む。
【００４３】
確信度データは、プランナー１２０にとって有用となるであろう何らかの特徴を有する環境内の場所を識別する環境のマップである。特に、マッパ１１０がトレーニングされる方法のために、特定の特徴は所定のものではなく学習される。すなわち、マッパはプランナー１２０からの誤差を逆伝搬することによってトレーニングされるので、マップは、環境の潜在的表現になる。以下で説明するように、マップは、学習されたプランナー１２０に直接供給されるので、マップは、環境の所定の特徴を符号化する必要はなく、代わりに、プランナー１２０によって使用される一般的な空間メモリとし、すなわち、環境内の様々な場所のいくつかの特徴を符号化するメモリとして機能することができる。
【００４４】
より具体的には、マップは、環境のトップダウンビューからのものであり、トップダウンビュー内の複数の場所の各々について、その場所が特定の特徴を有する可能性がどの程度高いかを示すそれぞれのスコアを含む。
【００４５】
信頼度データは、確信度データが正確であることにマッパ１１０がどの程度自信を持っているかを識別するデータである。たとえば、信頼度データは、マップ内の場所の各々について、マッパ１１０がその場所についてどの程度自信を持っているかを表す信頼度スコアを含むことができる。
【００４６】
マッパ１１０および特徴付けを生成することについては、図２を参照しながら以下でより詳細に説明する。
【００４７】
プランナー１２０は、特徴付け１１２を受信し、エージェントが特徴付け１１２に基づいて目標１２２を達成するために、エージェントによって実行されるべきアクション１３２を選択する。一般に、プランナー１２０は、エージェントによって実行されるべきアクションを選択するために、特徴付け１１２を使用して複数のスケールで値反復を実行する。プランナー１２０、および特徴付けに基づいてアクションを選択することについては、図３を参照しながら以下でより詳細に説明する。
【００４８】
システム１００は、次いで、エージェントに、選択されたアクション１３２を実行させる。一般に、選択されたアクション１３２は、エージェントについての制御入力であり、システムは、制御入力を直接エージェントに提出することによって、またはそれに応じてエージェントに指示するようにエージェントの制御システムに指示することによって、エージェントに選択されたアクション１３２を実行させる。
【００４９】
図２は、微分可能プランナー１１０の例示的なアーキテクチャを示す。
【００５０】
所与の時間ステップについての最終的な特徴付け１１２を生成するために、プランナー１１０は、時間ステップについての２つの初期特徴付けを生成するために、画像１０２およびエゴモーション１０４を処理する。最終的な特徴付けと同様に、２つの初期特徴付けには各々、確信度データと信頼度データの両方を含むが、最終的な特徴付けとはスコアおよび信頼度が異なる可能性がある。次いで、プランナー１１０は、２つの初期特徴付けを結合して、最終的な特徴付け１１２を生成する。
【００５１】
特に、プランナーは、時間ステップについての環境の第１の初期特徴付け２２２を生成するために、ニューラルネットワーク２２０を使用して画像１０２を処理する。図２からわかるように、ニューラルネットワーク２２０は、残差接続を使用し、２次元（２Ｄ）画像空間内の画像１０２内のシーンの表現を生成する畳み込みエンコーダを含む。この表現は、完全に接続されたレイヤを介して、自己中心的な２Ｄトップダウン図内にあるものに変換される。このトップダウンビュー表現は、第１の初期特徴付けを取得するために、アップコンボリューションレイヤ（および残差接続も）を使用してアップサンプリングされる。
【００５２】
プランナー１１０はまた、時間ステップについての第２の初期特徴付け２１２を生成するために、エゴモーション１０４を使用して、先行する時間ステップからの最終的な特徴付け２０２を処理する。
【００５３】
より具体的には、プランナー１１０は、先行する時間ステップおよびエゴモーション１０４からの最終的な特徴付け２０２に微分可能ワーピング関数２１２を適用して第２の初期特徴付け２１２を生成する。ワーピング関数は、最終的な特徴付け２０２を先行する時間ステップから微分可能な方法でワープする任意の関数とすることができる。
【００５４】
たとえば、ワーピング関数は、双線形サンプリングを使用して実現される関数であり得る。特に、エゴモーションが与えられると、システムは、第２の初期特徴付け２１２内の各ピクセルを、それが由来する最終的な特徴付け２０２内の場所にマッピングする逆方向の流れ場を計算することができる。この逆方向の流れは、エゴモーションから分析的に計算することができる。次いで、関数は、双線形サンプリングを使用してこの流れ場を最終的な特徴付け評価２０２に適用して第２の初期特徴付け２１２を生成することができる。
【００５５】
次いで、プランナー１１０は、第１の初期特徴付け２２２と第２の初期特徴付け２１２とを結合して、その時間ステップについての環境の最終的な特徴付け１１２を生成する。
【００５６】
より具体的には、プランナー１１０は、結合関数２３０を適用して、第１の初期特徴付け２２２と第２の特徴付け２１２とを結合して、時間ステップについての最終的な特徴付け１１２を生成する。
【００５７】
いくつかの実装形態では、結合関数２３０は、解析関数である。特に、更新関数は、次のように表すことができる。
【００５８】
【数２】
2020507857.tif 000004
【００５９】
Ｃｔ＝Ｃｔ−１＋Ｃｔ’
ここで、ｆｔは、時間ステップについての最終的な特徴付けの確信度データにおけるスコアのセット、ｃｔは、時間ステップについての最終的な特徴付けの信頼度データにおける信頼の尺度のセット、ｆｔ’は、第１の初期特徴付けについてのスコアのセット、ｃｔ’は、第１の初期特徴付けにおける信頼の尺度のセット、ｆｔ−１は、第２の初期特徴付けについてのスコアのセット、ｃｔ−１は、第２の初期特徴付けについてのスコアのセットにおける信頼の尺度のセットである。
【００６０】
いくつかの他の実装形態では、結合関数２３０は、ニューラルネットワーク、たとえば、長短期記憶（ＬＳＴＭ）ニューラルネットワークのようなリカレントニューラルネットワークによって実現される。
【００６１】
この説明からわかるように、画像１０２、エゴモーション１０４、および最終的な特徴付け２０２に対してプランナー１１０によって実行される各動作は、微分可能演算、すなわちニューラルネットワーク演算または微分可能解析関数のいずれかである。
【００６２】
プランナー１１０が最終的な特徴付け１１２を生成すると、プランナー１１０は、その時間ステップにおけるアクションを選択する際に使用するために、最終的な特徴付け１１２をマッパ１２０に提供する。
【００６３】
図３は、微分可能階層プランナー１２０の例示的なアーキテクチャを示す。
【００６４】
一般に、階層プランナー１２０は、複数の空間スケールで計画する。特に、階層プランナー１２０は、複数の空間スケールの各々についてそれぞれの値サブシステム３１０Ａ〜Ｎを含む。この例では値サブシステム３１０Ｍおよび３１０Ｎのみが示されているが、プランナー１２０は、一般に、３つ以上の値サブシステムを含む。
【００６５】
サブシステム３１０Ａ〜Ｎの第１の値サブシステム３１０Ａは、ｋ倍の空間的にダウンサンプリングされたマップに対応し、最後の値サブシステム３１０Ｎは、元の解像度、すなわちマッパ１１０から受信されたマップの解像度に対応する。
【００６６】
各値サブシステムは、対応する空間スケールである１つまたは複数の値マップを生成するために、対応する空間スケールでｌ回の値反復を実行する。値マップは、空間スケールに対応する空間的にスケーリングされた環境マップ内の複数の領域の領域ごとに、目標を達成するために領域内にいるエージェントの値の評価、すなわち、エージェントが対応する地域にいることが目標を達成するためにどの程度価値があるかの評価を含む。
【００６７】
次いで、プランナー１２０は、１つまたは複数の値マップをセンタークロップおよびアップサンプリングし、すなわち、センタークロップおよびアップサンプリングされた出力を、次の値サブシステムへの入力として提供することによって、より細かいスケールで値反復を行うために、センタークロップおよびアップサンプリングされた出力を使用する。プランナー１２０は、元の問題の解決に達するために、このプロセスを複数回、すなわち値サブシステムごとに１回反復する。
【００６８】
最後の値サブシステム３１０Ｎがマッパ１１０から受信された環境マップと同じスケールの１つまたは複数の値マップを生成すると、プランナー１２０は、これらの値マップを使用してエージェント１３２によって実行されるべきアクションを選択する。図３の例では、プランナー１２０は、修正された線形ユニットアクティブ化関数を有する完全に接続された層のセットを使用してこれらの値マップを処理して、エージェントによって実行されるべき可能なアクションにわたるスコア分布を生成し、次いで、スコア分布からアクション１３２を選択する。他の例では、プランナー１２０は、最新の値マップから、エージェントの現在位置から到達可能であり、かつ値の最も高い評価を有する更新された値マップの特定の領域を決定し、次いで、時間ステップについての提案されたアクション１３２として、エージェントを特定の領域に連れて行くアクションを選択することができる。
【００６９】
より具体的には、プランナー１２０は、時間ステップについての最終的な特徴付け１１２を受信し、最終的な特徴付けから空間的にスケーリングされた環境マップのシーケンスを生成し、シーケンス内の各空間的にスケーリングされた環境マップは、シーケンス内の任意の後続の空間的にスケーリングされた環境マップに対してダウンサンプリングされ、値サブシステム３１０Ａ〜Ｎのうちの異なる１つに対応する。
【００７０】
所与の空間スケールについて、そのスケールの値サブシステムは、（ｉ）対応するスケールの空間的にスケーリングされた環境マップ、および（ｉｉ）空間的にスケーリングされた環境マップに関連付けられた１つまたは複数の入力を処理して、空間的にスケーリングされた環境マップについての１つまたは複数の値マップを生成する。
【００７１】
空間的にスケーリングされた環境マップに関連付けられた入力は、一般に、シーケンス内の前の空間的なスケールについての１つまたは複数の値マップおよびエージェントの目標を識別するデータを含む。すなわち、シーケンス内の最後の値サブシステム以外の各値サブシステムは、値サブシステムによって生成された１つまたは複数の値マップを、シーケンス内の後続の空間的にスケーリングされた環境マップに関連付けられた入力として、すなわち、シーケンス内の次の値サブシステムへの入力として提供する。シーケンス内の第１の値サブシステム、すなわち、最もダウンサンプリングされた値サブシステムの場合、値マップは、１つまたは複数の所定の初期値マップとすることができる。
【００７２】
目標が場所の場合、所与の値サブシステムに入力される目標を識別するデータは、サブシステムと同じスケールのマップとすることができる。したがって、細かいスケールの場合、エージェントが目標から遠く離れているとき、対応するサブシステムへの入力として提供されるデータに目標が見えないことがある。
【００７３】
各値サブシステムは、フューザー３２０および値反復モジュール３３０を含む。
【００７４】
フューザー３２０は、（ｉ）対応するスケールの空間的にスケーリングされた環境マップと、（ｉｉ）空間的にスケーリングされた環境マップに関連付けられた１つまたは複数の入力とを結合して、空間的にスケーリングされた環境マップと同じスケールの１つまたは複数の値マップを含む値反復入力を生成する。特に、フューザー３２０は、前の値サブシステムからの１つまたは複数の値マップをセンタークロップおよびアップサンプリングし、目標データ、空間的にスケーリングされた環境マップ、およびクロップおよびアップサンプリングされた値マップを深さ連結して、値反復入力を生成する。
【００７５】
次いで、値反復モジュール３３０は、値反復ニューラルネットワークを使用して、値反復入力、すなわち１つまたは複数の初期値マップに対してｌ回の値反復を実行して、空間的にスケーリングされた環境マップについての１つまたは複数の値マップを生成する。値反復は、ダイクストラのアルゴリズムの一般化と考えることができ、ここで、各状態の値は、隣接する値とそれらの隣接する状態への遷移の報酬を超える最大値をとることによって、各反復で繰り返し再計算される。値反復を実行する値反復ニューラルネットワークは、交互の畳み込みとチャネルごとの最大プーリング操作とを含むニューラルネットワークであり、プランナー１２０がその入力について微分されることを可能にする。値反復および値反復ニューラルネットワークは、Ａ．  Ｔａｍａｒ，  Ｓ．  Ｌｅｖｉｎｅ，  ａｎｄ  Ｐ．  Ａｂｂｅｅｌ．  Ｖａｌｕｅ  ｉｔｅｒａｔｉｏｎ  ｎｅｔｗｏｒｋｓ．  Ｉｎ  ＮＩＰＳ，  ２０１６にさらに詳細に記載されている。
【００７６】
図４は、所与の時間ステップにおいて画像を処理するための例示的なプロセス４００のフロー図である。便宜上、プロセス４００は、１つまたは複数の場所に位置する１つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、適切にプログラムされた、たとえば図１のナビゲーションシステム１００などのナビゲーションシステムは、プロセス４００を実行することができる。
【００７７】
システムは、環境の画像、すなわち、エージェントが環境内を移動している間にエージェントのセンサーによってキャプチャされた画像を取得する（ステップ４０２）。システムはまた、先行する時間ステップからのエージェントのエゴモーションを識別するデータを受信する。
【００７８】
システムは、画像およびエゴモーションから環境の特徴付けを生成する（ステップ４０４）。特徴付けは、確信度データおよび信頼度データを含む。すなわち、特徴付けは、マップ内の各場所にスコアを有する環境のトップダウンマップ、およびスコアについての信頼の尺度を含む。
【００７９】
システムは、エージェントによって実行されるべき提案されたアクションを選択する（ステップ４０６）。特に、システムは、エージェントの目標を識別するデータおよび環境の特徴付けを使用して複数の空間スケールで値反復を実行して、１つまたは複数の最終的な値マップを生成する。次いでシステムは、１つまたは複数の最終的な値マップを使用して、エージェントによって実行されるべき提案されたアクションを選択する。
【００８０】
プロセス４００がプランナーおよびマッパのトレーニング中に実行されている場合、システムは、最適なアクション、すなわちエージェントによって実行されるべきであるアクションを取得する（ステップ４０８）。
【００８１】
システムは、選択されたアクションと最適なアクションとの間の誤差の尺度の勾配を決定する（ステップ４１０）。
【００８２】
システムは、マッパおよびプランナーのパラメータに対する更新を決定するために、プランナーおよびマッパを介して勾配を逆伝搬する（ステップ４１２）。したがって、システムは、マッパおよびプランナーをエンドツーエンドでトレーニングする、すなわち、トレーニング中に提案されたアクションの誤差は、プランナーのパラメータだけでなくマッパのパラメータも更新する。特に、いくつかの実装形態では、提案されたアクションの誤差は、マッパのパラメータを調整するために使用される唯一のフィードバックであり、したがって、マッパは、任意の追加の監視を必要とせず、正しいアクションを選択する際にプランナーにとって有用なマップを生成することを学習する。特に、マッパによって生成された確信度データ内の特定の特徴が何であるべきかを指定する外部ラベルはなく、マッパは、プランナーにとって有用な特徴を学習することができる。
【００８３】
プロセス４００がトレーニング後に実行されている場合、システムは、エージェントに、提案されたアクションを実行させることができる。プロセス４００がトレーニング中に実行されている場合、システムは、環境内を移動するエージェントに、提案されたアクションを確率ｐで実行させ、最適なアクションを確率１−ｐで実行させることができる。これによって、エージェントは、環境を探索し、潜在的に、目標を達成する際の性能の向上につながるアクションを発見することができる。いくつかの場合には、システムは、エージェントの動作中にｐを増加させて、最適なアクションを選択する確率を高める。
【００８４】
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成された」という用語を使用する。１つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。１つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、１つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【００８５】
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの１つもしくは複数の組合せにおいて実装することができる。本明細書に記載される主題の実施形態は、１つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の１つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの１つもしくは複数の組合せとすることができる。代替的にまたは追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。
【００８６】
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえば、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。装置は、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路でもよく、またはそれをさらに含むこともできる。装置は、随意に、ハードウェアに加えて、コンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの１つまたは複数の組合せを構成するコードを含むことができる。
【００８７】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは記述されることもあるコンピュータプログラムは、コンパイルもしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてなど、あらゆる形式で展開できる。プログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、問題のプログラム専用の単一のファイル、またはたとえば、１つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに、たとえば、マークアップ言語文書に記憶された１つまたは複数のスクリプなど、他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、１つのコンピュータ上で、または１つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
【００８８】
本明細書では、「データベース」という用語は、任意のデータの集まりを指すために広く使用されており、データは、任意の特定の方法で構造化する必要はなく、またはまったく構造化する必要はなく、１つまたは複数の場所にある記憶デバイスに記憶することができる。したがって、たとえば、インデックスデータベースは、複数のデータの集まりを含むことができ、それらの各々は、異なって編成されアクセスされてもよい。
【００８９】
同様に、本明細書では、「エンジン」という用語は、１つまたは複数の特定の機能を実行するようにプログラムされているソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは、１つまたは複数の場所にある１つまたは複数のコンピュータにインストールされた１つまたは複数のソフトウェアモジュールまたは構成要素として実装される。いくつかの場合には、１つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを、同じ１つまたは複数のコンピュータにインストールし、そこにおいて実行することができる。
【００９０】
本明細書で記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、１つまたは複数のコンピュータプログラムを実行する１つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、たとえばＦＰＧＡまたはＡＳＩＣなどの専用論理回路によって、あるいは専用論理回路と１つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
【００９１】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、もしくはその両方、または他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行または実行するための中央処理装置、ならびに命令およびデータを記憶するための１つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補うまたは組み込むことができる。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための１つまたは複数の大容量記憶デバイスをも含み、あるいは、１つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末（ＰＤＡ）、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信機、またはユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブなどのポータブルストレージデバイス中に埋め込むことができる。
【００９２】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、一例として、たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００９３】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、ＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【００９４】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【００９５】
機械学習モデルは、機械学習フレームワーク、たとえば、ＴｅｎｓｏｒＦｌｏｗフレームワーク、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｇｎｉｔｉｖｅ  Ｔｏｏｌｋｉｔフレームワーク、Ａｐａｃｈｅ  Ｓｉｎｇａフレームワーク、またはＡｐａｃｈｅ  ＭＸＮｅｔフレームワークを使用して実装および展開することができる。
【００９６】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、ユーザが本明細書に記載された主題の実装と対話することができる、グラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータなどのフロントエンド構成要素を含む、または１つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク（ＬＡＮ）およびワイドエリアネットワーク（ＷＡＮ）、たとえばインターネットがある。
【００９７】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ関係を有するコンピュータプログラムのおかげで生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、ＨＴＭＬページをユーザデバイスに送信する。たとえば、ユーザ対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
【００９８】
本明細書は、多くの具体的な実施の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているものであるが、いくつかの場合、請求された組合せからの１つまたは複数の特徴を、組合せから削除することができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
【００９９】
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
【０１００】
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【０１０１】
１０４  エゴモーション
１１０  微分可能マッパ
１１２  特徴付け
１２０  微分可能階層プランナー
１２２  目標
１３２  アクション
２０２  最終的な特徴付け
２１２  第２の初期特徴付け
２１２  微分可能ワーピング関数
２２０  ニューラルネットワーク
２２２  第１の初期特徴付け
２３０  結合関数
３１０  値サブシステム
３２０  フューザー
３３０  値反復モジュール
【図１】
2020507857.tif 000006
【図２】
2020507857.tif 000007
【図３】
2020507857.tif 000008
【図４】
2020507857.tif 000009
【国際調査報告】
2020507857.tif 000010
2020507857.tif 000011
2020507857.tif 000012