(57)【要約】      （修正有）【課題】優先順位付けされた経験メモリを使用したニューラルネットワークの訓練を提供する。【解決手段】環境とのインタラクションを行う強化学習エージェントによって行われる行動を選択するために使用されるニューラルネットワークを訓練するための方法であって、強化学習エージェントが環境とのインタラクションを行った結果として生成される経験データの要素を記憶するリプレイメモリを保持する。各々の経験データの要素は、ニューラルネットワークが経験データの要素について訓練される場合に、ニューラルネットワークの訓練においてなされる、それぞれの期待学習進展度に関連付け、比較的より高い期待学習進展度を有する経験データの要素を選択のために優先順位付けをすることによって、リプレイメモリから経験データの要素を選択し、選択された経験データの要素についてニューラルネットワークを訓練する。【選択図】図１
2020047285.tif 000002
【特許請求の範囲】
【請求項１】
環境に状態を遷移させる行動を行うことによって前記環境とのインタラクションを行う強化学習エージェントによって行われる行動を選択するために使用されるニューラルネットワークを訓練するための方法であって、前記方法は、
リプレイメモリを保持するステップであって、前記リプレイメモリは、前記強化学習エージェントが前記環境とのインタラクションを行った結果として生成される複数の経験データの要素を記憶し、各々の経験データの要素は、それぞれの期待学習進展度を有する、ステップと、
比較的より高い期待学習進展度を有する経験データの要素を選択のために優先順位付けをすることによって前記リプレイメモリから経験データの要素を選択するステップであって、
前記経験データの要素についての前記それぞれの期待学習進展度に基づいて前記リプレイメモリ内の複数の前記経験データの要素の各々についてのそれぞれの確率を決定するステップと、
前記決定した確率に従って前記リプレイメモリから経験データの要素をサンプリングするステップと
を含む、ステップと、
強化学習技法を使用して、選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップであって、選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップは、選択された前記経験データの要素についての時間差分学習誤差を決定するステップを含む、ステップと、
選択された前記経験データの要素についての更新後の期待学習進展度を前記時間差分学習誤差の絶対値に基づいて決定するステップと、
前記リプレイメモリにおいて、前記更新後の期待学習進展度と選択された前記経験データの要素を関連付けるステップと
を含む、方法。
【請求項２】
前記経験データの要素についての前記それぞれの期待学習進展度に基づいて前記リプレイメモリ内の複数の前記経験データの要素の各々についてのそれぞれの確率を決定するステップは、
より高い期待学習進展度を有する経験データの要素が比較的より低い期待学習進展度を有する経験データの要素より高い確率を有するように各々の経験データの要素についてのそれぞれの確率を決定するステップを含む、請求項1に記載の方法。
【請求項３】
経験データの要素iについての確率P(i)は、
【数１】
2020047285.tif 000006
を満足し、αは、所定の定数であり、kは、前記リプレイメモリ内の前記経験データの要素全体の範囲を表し、piは、前記経験データの要素iについての前記期待学習進展度から導出された前記経験データの要素iについての優先度である、請求項2に記載の方法。
【請求項４】
前記優先度は、前記期待学習進展度に一定値を加えたものである、請求項3に記載の方法。
【請求項５】
前記優先度は、分子として所定の正の値と、分母としてそれらの期待学習進展度に従った前記リプレイメモリ内の前記経験データの要素のランキングにおける前記経験データの要素iのランクとを有する、分数である、請求項3に記載の方法。
【請求項６】
前記優先度は、訓練の際にまだ使用されたことのない経験データの要素については最大値に設定される、請求項3に記載の方法。
【請求項７】
各々の経験データの要素は、前記環境のそれぞれの現在の状態を特徴付けるそれぞれの現在の観測、前記現在の観測に応じて前記エージェントによって行われるそれぞれの現在の行動、前記環境のそれぞれの次の状態を特徴づけるそれぞれの次の状態、および前記エージェントが前記現在の行動を行ったことに応じて受ける報酬を含む、経験タプルである、請求項1に記載の方法。
【請求項８】
選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップは、
前記ニューラルネットワークのパラメータの値を調整する際に前記時間差分学習誤差を使用するステップをさらに含む、請求項7に記載の方法。
【請求項９】
前記パラメータの前記値を調整する際に前記時間差分学習誤差を使用するステップは、
選択された前記経験タプルについての前記期待学習進展度を使用して前記時間差分学習誤差についての重みを決定するステップと、
前記重みを使用して前記時間差分学習誤差を調整するステップと、
前記ニューラルネットワークの前記パラメータの前記値を調整するために目標誤差として前記調整された時間差分学習誤差を使用するステップとを含む、請求項8に記載の方法。
【請求項１０】
前記ニューラルネットワークの前記訓練の間に重みを算出する際に使用される指数をアニーリングするステップをさらに含む、請求項8に記載の方法。
【請求項１１】
前記リプレイメモリ内の各々の経験タプルについての前記期待学習進展度は、前記経験タプルが前記ニューラルネットワークを訓練する際に使用された以前の時点の前記経験タプルについて決定された時間差分学習誤差の絶対値についての導出値である、請求項7に記載の方法。
【請求項１２】
前記リプレイメモリ内の各々の経験タプルについての前記期待学習進展度は、前記経験タプルを使用して前記ニューラルネットワークを訓練することによって生じた重み変化のノルムである、請求項7に記載の方法。
【請求項１３】
前記期待学習進展度を使用して前記リプレイメモリから経験データの要素をいつ削除するかを決定するステップをさらに含む、請求項1に記載の方法。
【請求項１４】
1つまたは複数のコンピュータと1つまたは複数のストレージデバイスとを含むシステムであって、前記1つまたは複数のストレージデバイスは、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、環境に状態を遷移させる行動を行うことによって前記環境とのインタラクションを行う強化学習エージェントによって行われる行動を選択するために使用されるニューラルネットワークを訓練するための方法についての動作を行わせるように動作可能な命令を記憶し、前記方法は、
リプレイメモリを保持するステップであって、前記リプレイメモリは、前記強化学習エージェントが前記環境とのインタラクションを行った結果として生成される複数の経験データの要素を記憶し、各々の経験データの要素は、それぞれの期待学習進展度を有する、ステップと、
比較的より高い期待学習進展度を有する経験データの要素を選択のために優先順位付けをすることによって前記リプレイメモリから経験データの要素を選択するステップであって、
前記経験データの要素についての前記それぞれの期待学習進展度に基づいて前記リプレイメモリ内の複数の前記経験データの要素の各々についてのそれぞれの確率を決定するステップと、
前記決定した確率に従って前記リプレイメモリから経験データの要素をサンプリングするステップと
を含む、ステップと、
強化学習技法を使用して、選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップであって、選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップは、選択された前記経験データの要素についての時間差分学習誤差を決定するステップを含む、ステップと、
選択された前記経験データの要素についての更新後の期待学習進展度を前記時間差分学習誤差の絶対値に基づいて決定するステップと、
前記リプレイメモリにおいて、前記更新後の期待学習進展度と選択された前記経験データの要素を関連付けるステップと
を含む、システム。
【請求項１５】
前記経験データの要素についての前記それぞれの期待学習進展度に基づいて前記リプレイメモリ内の複数の前記経験データの要素の各々についてのそれぞれの確率を決定するステップは、
より高い期待学習進展度を有する経験データの要素が比較的より低い期待学習進展度を有する経験データの要素より高い確率を有するように各々の経験データの要素についてのそれぞれの確率を決定するステップを含む、請求項14に記載のシステム。
【請求項１６】
経験データの要素iについての確率P(i)は、
【数２】
2020047285.tif 000007
を満足し、αは、所定の定数であり、kは、前記リプレイメモリ内の前記経験データの要素全体の範囲を表し、piは、前記経験データの要素iについての前記期待学習進展度から導出された前記経験データの要素iについての優先度である、請求項15に記載のシステム。
【請求項１７】
各々の経験データの要素は、前記環境のそれぞれの現在の状態を特徴付けるそれぞれの現在の観測、前記現在の観測に応じて前記エージェントによって行われるそれぞれの現在の行動、前記環境のそれぞれの次の状態を特徴づけるそれぞれの次の状態、および前記エージェントが前記現在の行動を行ったことに応じて受ける報酬を含む、経験タプルである、請求項14に記載のシステム。
【請求項１８】
選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップは、
前記ニューラルネットワークのパラメータの値を調整する際に前記時間差分学習誤差を使用するステップをさらに含む、請求項17に記載のシステム。
【請求項１９】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、環境に状態を遷移させる行動を行うことによって前記環境とのインタラクションを行う強化学習エージェントによって行われる行動を選択するために使用されるニューラルネットワークを訓練するための方法についての動作を行わせる命令で符号化されたコンピュータ可読記憶媒体であって、前記方法は、
リプレイメモリを保持するステップであって、前記リプレイメモリは、前記強化学習エージェントが前記環境とのインタラクションを行った結果として生成される複数の経験データの要素を記憶し、各々の経験データの要素は、それぞれの期待学習進展度を有する、ステップと、
比較的より高い期待学習進展度を有する経験データの要素を選択のために優先順位付けをすることによって前記リプレイメモリから経験データの要素を選択するステップであって、
前記経験データの要素についての前記それぞれの期待学習進展度に基づいて前記リプレイメモリ内の複数の前記経験データの要素の各々についてのそれぞれの確率を決定するステップと、
前記決定した確率に従って前記リプレイメモリから経験データの要素をサンプリングするステップと
を含む、ステップと、
強化学習技法を使用して、選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップであって、選択された前記経験データの要素について前記ニューラルネットワークを訓練するステップは、選択された前記経験データの要素についての時間差分学習誤差を決定するステップを含む、ステップと、
選択された前記経験データの要素についての更新後の期待学習進展度を前記時間差分学習誤差の絶対値に基づいて決定するステップと、
前記リプレイメモリにおいて、前記更新後の期待学習進展度と選択された前記経験データの要素を関連付けるステップと
を含む、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、強化学習に関する。
【背景技術】
【０００２】
強化学習システムでは、エージェントは、環境の現在の状態を特徴付ける観測を受信したことに応じて強化学習システムによって選択される行動を行うことによって環境とのインタラクションを行う。
【０００３】
いくつかの強化学習システムは、ニューラルネットワークの出力に従って所与の観測を受信したことに応じてエージェントによって行われることになる行動を選択する。
【０００４】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を使用して、受信した入力に対する出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含むディープニューラルネットワークである。各隠れ層の出力は、ネットワークにおける次の層、すなわち、次の隠れ層または出力層に対する入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って受信した入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【０００５】
一般に、本明細書において説明した発明特定事項の1つの革新的な態様は、環境に状態を遷移させる行動を行うことによって環境とのインタラクションを行う強化学習エージェントによって行われる行動を選択するために使用されるニューラルネットワークを訓練するための方法であって、方法は、強化学習エージェントが環境とのインタラクションを行った結果として生成される経験データの要素を記憶するリプレイメモリを保持するステップであって、経験データの要素の各々は、ニューラルネットワークが経験データの要素について訓練される場合にニューラルネットワークの訓練においてなされる進展の期待量の度合いであるそれぞれの期待学習進展度を有する、ステップと、比較的より高い期待学習進展度を有する経験データの要素を選択のために優先順位付けをすることによってリプレイメモリから経験データの要素を選択するステップと、選択された経験データの要素についてニューラルネットワークを訓練するステップとのアクションを含む、方法に符号化され得る。
【０００６】
本態様の他の実施形態は、対応するコンピュータシステム、装置、1つまたは複数のコンピュータストレージデバイス上に記録されるコンピュータプログラムを含み、各々が方法のアクションを行うように構成される。1つまたは複数のコンピュータのシステムは、動作時にシステムにアクションを行わせるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、または任意のその組合せにより、特定の動作またはアクションを行うように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると装置にアクションを行わせる命令を含むことにより、特定の動作またはアクションを行うように構成され得る。
【０００７】
実施形態は、以下の特徴の1つまたは複数を含み得る。いくつかの実施形態においては、経験データの要素を選択するステップは、(i)より高い期待学習進展度を有する経験データの要素が比較的より低い期待学習進展度を有する経験データの要素より高い確率を有するように各々の経験データの要素についてのそれぞれの確率を決定するステップと、(ii)決定した確率に従って経験データの要素をサンプリングするステップとを含む。
【０００８】
いくつかの実施形態においては、経験データの要素iについての確率P(i)は、
【数１】
2020047285.tif 000003
を満足し、αは、所定の定数であり、kは、リプレイメモリ内の経験データの要素全体の範囲を表し、piは、経験データの要素iについての期待学習進展度から導出された経験データの要素iについての優先度である。
【０００９】
いくつかの実施形態においては、優先度は、期待学習度に一定値を加えたものである。いくつかの実施形態においては、優先度は、分子として所定の正の値と、分母としてそれらの期待学習進展度に従ったリプレイメモリ内の経験データの要素のランキングにおける経験データの要素iのランクとを有する、分数である。いくつかの実施形態においては、優先度は、訓練の際にまだ使用されたことのない経験データの要素については最大値に設定される。
【００１０】
いくつかの実施形態においては、各々の経験データの要素は、環境のそれぞれの現在の状態を特徴付けるそれぞれの現在の観測、現在の観測に応じてエージェントによって行われるそれぞれの現在の行動、環境のそれぞれの次の状態を特徴づけるそれぞれの次の状態、エージェントが現在の行動を行ったことに応じて受ける報酬を含み、経験タプルである。
【００１１】
いくつかの実施形態においては、選択された経験データの要素についてニューラルネットワークを訓練するステップは、選択された経験タプルについての時間差分学習誤差を決定するステップと、ニューラルネットワークのパラメータの値を調整する際に時間差分学習誤差を使用するステップとを含む。
【００１２】
いくつかの実施形態においては、パラメータの値を調整する際に時間差分学習誤差を使用するステップは、選択された経験タプルについての期待学習進展度を使用して時間差分学習誤差についての重みを決定するステップと、重みを使用して時間差分学習誤差を調整するステップと、ニューラルネットワークのパラメータの値を調整するために目標誤差として調整された時間差分学習誤差を使用するステップとを含む。
【００１３】
いくつかの実施形態においては、方法は、ニューラルネットワークの訓練の間に重みを算出する際に使用される指数をアニーリングするステップをさらに含む。
【００１４】
いくつかの実施形態においては、リプレイメモリ内の各経験タプルについての期待学習進展度は、経験タプルがニューラルネットワークを訓練する際に使用された以前の時点の経験タプルについて決定された時間差分学習誤差の絶対値である。
【００１５】
いくつかの実施形態においては、リプレイメモリ内の各経験タプルについての期待学習進展度は、経験タプルがニューラルネットワークを訓練する際に使用された以前の時点の経験タプルについて決定された時間差分学習誤差の絶対値についての導出値である。
【００１６】
いくつかの実施形態においては、リプレイメモリ内の各経験タプルについての期待学習進展度は、経験タプルを使用してニューラルネットワークを訓練することによって生じた重み変化のノルムである。
【００１７】
いくつかの実施形態においては、方法は、期待学習進展度を使用してリプレイメモリから経験データの要素をいつ削除するかを決定するステップをさらに含む。
【００１８】
本明細書において説明した発明特定事項は、具体的には、以下の利点のうちの1つまたは複数を実現するために実施形態を実施され得る。リプレイメモリからのデータを訓練することは、ニューラルネットワークを訓練するために選択されたデータの値を増大させる方法で選択され得る。このことは、回りまわって、エージェントによって行われることになる行動を選択する際に使用されるニューラルネットワークの訓練の速度を増大させ、これらのニューラルネットワークを効率的に訓練するのに必要となる訓練データの量を低減することができる。そのため、ニューラルネットワークの訓練に必要なコンピューティングリソースの量を低減することができる。例えば、訓練データを記憶するのに必要となるメモリの量を低減し得るし、訓練プロセスによって使用される処理リソースの量を低減し得るし、またはその両方を低減し得る。ニューラルネットワークの訓練の増大された速度は、訓練することがより困難である複雑なニューラルネットワークにとって、または、複雑な強化学習タスクを行うエージェントによって行われることになる行動を選択するためにニューラルネットワークを訓練することにとって、特に意義深いことであり得る。
【００１９】
本明細書の発明特定事項の1つまたは複数の実施形態の詳細を以下の添付の図面および説明に記載している。他の特徴、態様、および発明特定事項の利点は、説明、図面、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００２０】
【図１】例示的な強化学習システムを示す図である。
【図２】リプレイメモリを使用してニューラルネットワークを訓練するための例示的なプロセスのフローチャートである。
【図３】経験データの決定した確率に基づいて経験データをサンプリングするための例示的なプロセスのフローチャートである。
【図４】経験タプルについてニューラルネットワークを訓練するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【００２１】
類似の参照番号および様々な図面内の記号は、類似の要素を示す。
【００２２】
本明細書は、環境とのインタラクションを行う強化学習エージェントによって行われることになる行動を選択する強化学習システムを一般的に説明している。エージェントが環境とのインタラクションを行うために、システムは、環境の現在の状態を特徴付けるデータを受信し、受信データに応じてエージェントによって行われることになる行動の所定のセットから行動を選択する。環境の状態を特徴付けるデータを、本明細書では観測(observation)と称することにする。
【００２３】
いくつかの実施形態においては、環境は、シミュレート環境であり、エージェントは、シミュレート環境とのインタラクションを行う1つまたは複数のコンピュータプログラムとして実装される。例えば、シミュレート環境は、ビデオゲームであり得るし、エージェントは、ビデオゲームをプレイするシミュレートされたユーザであり得る。別の例としては、シミュレート環境は、例えば、運転シミュレーションまたはフライトシミュレーションといった、モーションシミュレーション環境であり得るし、エージェントは、モーションシミュレーションを介して操作するシミュレートされた車両である。これらの実施形態においては、行動は、入力を制御してシミュレートされたユーザまたはシミュレートされた車両を制御し得る。
【００２４】
いくつかの他の実施形態においては、環境は、現実世界の環境であり、エージェントは、現実世界の環境とのインタラクションを行うメカニカルエージェントである。例えば、エージェントは、特定のタスクを達成するために環境とのインタラクションを行うロボットであり得る。別の例としては、エージェントは、環境における自律または半自律走行車両のナビゲーション処理であり得る。これらの実施形態においては、行動は、入力を制御してロボットまたは自律走行車両を制御し得る。
【００２５】
図1は、例示的な強化学習システム100を示している。強化学習システム100は、以下で説明したシステム、コンポーネント、および技法を実施する、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【００２６】
強化学習システム100は、環境104とのインタラクションを行う強化学習エージェント102によって行われることになる行動を選択する。すなわち、強化学習システム100は、観測を受信し、環境104のそれぞれの状態を特徴付ける各観測を用い、各観測に応じて、行動を観測に応じて強化学習エージェント102によって行われることになる行動の所定のセットから選択する。エージェント102によって行われる行動の一部またはすべてに応じて、強化学習システム100は報酬を受ける。各報酬は、エージェントが行動を行った結果として環境104から受信する数値である、すなわち、報酬は、エージェント102が行動を行った結果として環境104が遷移する状態によって異なることになる。具体的には、強化学習システム100は、行動選択ニューラルネットワーク110と訓練エンジン120とを使用してエージェント102によって行われることになる行動を選択する。
【００２７】
行動選択ニューラルネットワーク110は、入力として環境104の状態に関する観測を受信して、出力として各行動についてのそれぞれのQ値、すなわち、観測に応じて行動を行うエージェント102からもたらされる期待収益の予測を生成する、ニューラルネットワークである。
【００２８】
エージェント102が環境104とのインタラクションを効率的に行うことを可能とするために、強化学習システム100は、行動選択ニューラルネットワーク110を訓練する訓練エンジン120を含み、行動選択ニューラルネットワーク110のパラメータの訓練済みの値を決定する。
【００２９】
行動選択ニューラルネットワークの訓練の際の支援のために、訓練エンジン120は、リプレイメモリ130を保持する。
【００３０】
リプレイメモリ130は、行動選択ネットワーク110を訓練する際の使用のために、環境104とのまたは環境の別のインスタンスとのエージェント102または別のエージェントのインタラクションの結果として生成された経験データの要素を記憶する。
【００３１】
訓練エンジン120は、リプレイメモリから経験データの要素130を選択することと、選択された経験データの要素について行動選択ニューラルネットワーク110を訓練することとを繰り返すことによって、行動選択ニューラルネットワーク110を訓練する。リプレイメモリ130内の経験データを使用して行動選択ニューラルネットワーク110を訓練することについては図2および3を参照して以下でより詳細に説明している。
【００３２】
図2は、リプレイメモリを使用してニューラルネットワークを訓練するための例示的なプロセス200のフローチャートである。便宜上、プロセス200は、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとして説明している。例えば、本明細書に従って適切にプログラムされた、強化学習システム、例えば、図1の強化学習システム100が、プロセス200を実施し得る。
【００３３】
システムが、リプレイメモリを保持する(202)。リプレイメモリは、エージェントが環境とのインタラクションを行った結果として生成される経験データの要素を記憶する。各々の経験データの要素は、環境とのエージェントのインタラクションに関する情報を表す。
【００３４】
いくつかの実施形態においては、各々の経験データの要素は、(1)ある時点における環境の現在の状態を特徴付ける現在の観測と、(2)現在の観測に応じてエージェントによって行われる現在の行動と、(3)エージェントが現在の行動を行った後の環境の次の状態、すなわち、エージェントが現在の行動を行った結果として環境が遷移した状態を特徴付ける次の観測と、(4)エージェントが現在の行動を行ったことに応じて受けられる報酬とを含む経験タプルである。
【００３５】
システムはまた、(リプレイメモリにまたは別個のストレージコンポーネントに)経験データの要素の一部またはすべてについての期待学習進展度を保持する。経験データの要素に関連付けられた期待学習進展度は、ニューラルネットワークが経験データの要素を使用して訓練される場合にニューラルネットワークの訓練においてなされる進展の期待量の度合いである。換言すれば、期待学習進展度は、どれくらいニューラルネットワークが経験データの要素から学習することが期待できるかのインディケーションである。
【００３６】
いくつかの実施形態においては、システムは、経験タプルについての以前計算された時間差分誤差、すなわち、経験タプルがニューラルネットワークを訓練する際に使用された以前の時点からの時間差分誤差に基づいて経験タプルに関連付けられた期待学習進展度を決定する。経験タプルについての時間差分誤差を決定することについては図3を参照して以下でより詳細に説明している。
【００３７】
いくつかの実施形態においては、期待学習進展度は、経験タプルがニューラルネットワークを訓練する際に使用された以前の時点の経験タプルについて決定された時間差分学習誤差の絶対値である。いくつかの実施形態においては、期待学習進展度は、経験タプルがニューラルネットワークを訓練する際に使用された以前の時点の経験タプルについて決定された時間差分学習誤差の絶対値についての導出値である。
【００３８】
いくつかの実施形態においては、経験タプルに関連付けられた期待学習進展度は、経験タプルについての以前計算された時間差分学習誤差の絶対値の調整された度合いである。時間差分誤差の調整は、以前計算された時間差分学習誤差のその絶対値が等しい2つの経験タプルについて、その時間差分学習誤差が正の値を有するタプルがより高い期待学習進展度を有することになるように構成される。
【００３９】
いくつかの実施形態においては、リプレイメモリ内の各経験タプルについての期待学習進展度は、経験タプルを使用してニューラルネットワークを訓練することからもたらされて生じた重み変化のノルムである。
【００４０】
システムが、経験データの要素をリプレイメモリから選択する(204)。経験データの要素を選択する際に、システムは、リプレイメモリ内の経験データの他の要素に対する比較的より高い期待学習進展度を有する経験データの要素の選択を優先順位付けする。
【００４１】
いくつかの実施形態においては、システムは、期待学習進展度を使用して各々の経験データの要素についてのそれぞれの確率を決定し、決定した確率に従って経験データの要素をサンプリングする。決定した確率に従って経験データをサンプリングすることについては図3を参照して以下でより詳細に説明している。
【００４２】
システムが、選択された経験データの要素についてニューラルネットワークを訓練する(206)。いくつかの実施形態においては、システムは、ニューラルネットワークのパラメータの値を調整するために選択された経験データの要素を使用する。経験データについてニューラルネットワークを訓練することについては図4を参照して以下でさらに詳細に説明している。
【００４３】
いくつかの実施形態においては、ニューラルネットワークの訓練の間に、システムは、期待学習進展度を使用してリプレイメモリから経験データの要素をいつ削除するかを決定する。
【００４４】
これらの実施形態の一部においては、システムは、経験データの要素に関連付けられたそれぞれの期待学習度が閾値を下回ると、経験データの要素を削除すると決定する。閾値は、所定の一定値であり得る、または、リプレイメモリ内の経験データの要素の期待学習度の例えば平均値または中央値といった中心傾向の度合いの関数であり得る。
【００４５】
これらの実施形態のその他のものにおいては、システムは、経験データの期待学習進展度から少なくとも部分的に導出された値(例えば、経験データの要素についての確率または優先度)が閾値を下回ると経験データの要素を削除すると決定する。
【００４６】
図3は、経験データの決定した確率に基づいて経験データをサンプリングするための例示的なプロセス300のフローチャートである。便宜上、プロセス300は、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとして説明している。例えば、本明細書に従って適切にプログラムされた、強化学習システム、例えば、図1の強化学習システム100が、プロセス300を実施し得る。
【００４７】
システムが、各々の経験データの要素についてのそれぞれの優先度を決定する(302)。具体的には、システムは、経験データの要素の期待学習度に基づいて各々の経験データの要素についての優先度を決定する。
【００４８】
いくつかの実施形態においては、経験データの要素についての優先度は、経験データの要素の期待学習度に一定値を加えたものである。
【００４９】
いくつかの他の実施形態においては、経験データの要素についての優先度は、分子として所定の正の値と、分母としてそれらの期待学習進展度に従ったリプレイメモリ内の経験データの要素のランキングにおける経験データの要素のランクとを有する、分数である。
【００５０】
いくつかの実施形態においては、時間差分学習誤差の以前の度合いを有していない新規経験タプルがリプレイメモリに追加されると、システムは、タプルに最大優先度の度合いを割り当てる、すなわち、システムが優先度を決定する方法に従って任意の経験タプルについて決定することができる考えられる最大の優先度である経験タプル優先度を割り当てる。このことは、システムが少なくとも一度は訓練においてすべての経験タプルを使用する可能性を増大する。
【００５１】
システムが、各々の経験データの要素についての確率を決定する(304)。システムは、より高い期待学習進展度を有する経験データの要素が比較的より低い期待学習進展度を有する経験データの要素より高い確率を有するように経験データの要素についての確率を設定する。具体的には、システムは、経験データの要素についての優先度に基づいて各々の経験データの要素についての確率を決定する。
【００５２】
いくつかの実施形態においては、経験データの要素iについての確率P(i)は、
【数２】
2020047285.tif 000004
を満足し、αは、所定の定数であり、kは、リプレイメモリ内の経験データの要素全体の範囲を表し、piは、経験データの要素iについての優先度である。
【００５３】
いくつかの実施形態においては、定数αは、どれくらい経験データの要素の優先順位付けが経験データの要素をサンプリングする際に使用されるべきか度合いである。そのため、α=0である場合には、優先順位付けは実施されない。αが増大すると、経験データの要素iについての優先度piは、経験データの要素についての確率P(i)を決定する際のより重要な因子となる。
【００５４】
システムが、リプレイメモリから経験データの要素をサンプリングする(306)。システムは、経験データの要素の決定した確率に従ってサンプリングを行う。いくつかの実施形態においては、システムは、最高決定した確率を有する経験の1つまたは複数の要素をサンプリングする。いくつかの他の実施形態においては、システムは、経験データの要素についての決定した確率に等しい確率を有する各々の経験データの要素をサンプリングする。
【００５５】
図4は、経験タプルについてニューラルネットワークを訓練するための例示的なプロセス400のためのフローチャートである。便宜上、プロセス400は、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるものとして説明している。例えば、本明細書に従って適切にプログラムされた、強化学習システム、例えば、図1の強化学習システム100が、プロセス400を実施し得る。
【００５６】
システムが、経験タプルについての時間差分学習誤差を決定する(402)。現在の経験タプルに関連付けられた時間差分誤差は、(i)タプル内の現在の行動がタプル内の現在の観測に応じて行われる場合にニューラルネットワークによって決定されるような現在の期待収益と、(ii)(a)次の行動がタプル内の次の観測に応じて行われる場合に時間割引された次の期待収益および(b)タプル内の報酬の合計との間の差分であり得る。
【００５７】
システムが次の行動を選択して次の期待収益を決定する方式は、ニューラルネットワークを訓練するために使用される強化学習アルゴリズムによって決まる。例えば、深層Q学習技法では、システムは、入力として次の観測と組み合わせてターゲットニューラルネットワークに提供されると最高のQ値を出力するターゲットニューラルネットワークをもたらす行動を次の行動として選択して、ターゲットニューラルネットワークによって生成される次の行動についてのQ値を次の収益として使用する。別の例としては、ダブル深層Q学習技法では、システムは、入力として次の観測と組み合わせてニューラルネットワークに提供されると最高のQ値を出力するターゲットニューラルネットワークをもたらす行動を次の行動として選択して、入力として次の行動および次の観測をターゲットニューラルネットワークに提供することによって生成されるQ値を次の収益として使用する。さらに別の例としては、Sarsa学習技法では、次の行動は、次の観測に応じてエージェントによって実際に行われた行動であり、次の収益は、入力として次の行動および次の観測をターゲットニューラルネットワークに提供することによって生成されるQ値である。ターゲットニューラルネットワークは、行動選択ニューラルネットワークとして同一の機構を有するが異なるパラメータを有し得るニューラルネットワークである。
【００５８】
システムが、時間差分学習誤差についての重みを決定する(404)。いくつかの実施形態においては、経験タプルiについての時間差分学習誤差についての重みwiは、
【数３】
2020047285.tif 000005
を満足し、Nは、リプレイメモリ内の経験タプルの数であり、P(i)は、経験タプルiについての確率であり、βは、バイアス因子である。
【００５９】
いくつかの実施形態においては、バイアス因子は、所定の一定値である。いくつかの他の実施形態においては、システムは、ニューラルネットワークの訓練の間に重みを算出する際に使用される指数(例えば、バイアス因子β)をアニーリングする。いくつかの実施形態においては、システムは、ニューラルネットワークの訓練の間に指数をその所定の初期値から1に線形的にアニーリングする。
【００６０】
システムが、重みを使用して時間差分学習誤差を調整する(406)。いくつかの実施形態においては、システムは、誤差を重みと乗算することによって時間差分学習誤差を調整する。
【００６１】
システムが、ニューラルネットワークのパラメータ値を調整するために調整された時間差分学習誤差を使用する(408)。いくつかの実施形態においては、システムは、従来の強化学習技法、例えば、Sarsa、深層Q学習(deep Q-learning)、またはダブル深層Q学習の一部として、ニューラルネットワークのパラメータの値を調整するために目標誤差として調整された時間差分学習誤差を使用する。
【００６２】
いくつかの実施形態においては、システムは、リプレイメモリから経験データを選択する際にのみ、訓練中は時間差分学習誤差を重み付けしない、時間差分学習誤差を使用する。すなわち、いくつかの実施形態においては、図4を用いて上述したような調整された時間差分学習誤差を使用するのではなく、その代わりに、システムは、時間差分学習誤差を直接使用してパラメータ値を調整する。
【００６３】
本明細書において説明した発明特定事項の実施形態および機能的な動作は、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、本明細書において開示した構造およびそれらの構造的均等物を含むコンピュータハードウェアで、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって、または、データ処理装置の動作を制御するために、実行のための有形非一時的プログラムキャリアに符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。あるいはまたは加えて、プログラム命令は、人工的に生成された伝搬信号、例えば、データ処理装置による実行に適した受信機装置への伝送のための情報を符号化するために生成される、機械生成された電気、光学、または電磁気信号上に符号化され得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの組合せのうちの1つまたは複数であり得る。しかしながら、コンピュータ記憶媒体は、伝搬信号ではない。
【００６４】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、またはマルチプルプロセッサまたはコンピュータを含む、処理データのためのすべての種類の装置、デバイス、および機械を含む。装置は、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの組合せのうちの1つまたは複数を構成するコードを含み得る。
【００６５】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとしても称されまたは開示され得る)は、コンパイル型もしくはインタプリタ型言語、または、宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットとしてを含む、任意の形式でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよい必ずしも対応する必要はない。プログラムは、他のプログラムもしくはデータ、例えば、マークアップ言語のドキュメントに記憶されている1つまたは複数のスクリプトを保持するファイルの一部に、当該のプログラム専用の単一のファイルに、または、複数の協調ファイル、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに、記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに位置するもしくは複数のサイトにわたって分散され通信ネットワークによって相互通信する複数のコンピュータ上で、実行されるようにデプロイされ得る。
【００６６】
本明細書において使用しているように、「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供する入力/出力システムを実装するソフトウェアを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなどといった、機能性の符号化ブロックであり得る。各エンジンは、1つまたは複数のプロセッサとコンピュータ可読媒体とを含む、任意の適切なタイプのコンピュータデバイス、例えば、サーバ、モバイル電話、タブレットコンピュータ、ノードブックコンピュータ、音楽プレーヤ、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の固定もしくはポータブルデバイスに実装され得る。加えて、2つ以上のエンジンが、同一のコンピュータデバイス上にまたは異なるコンピュータデバイス上に実装され得る。
【００６７】
本明細書において説明したプロセスおよびロジックフローは、入力データを処理して出力を生成することによって機能を実施するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実施され得る。プロセスおよびロジックフローはまた、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実装され得るし、装置はまた、そのような特殊用途ロジック回路として実装され得る。
【００６８】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用もしくは特殊用途マイクロプロセッサまたはその両方、または任意の他の種類の中央処理装置を含むまたは基づき得る。一般的に、中央処理装置は、リードオンリーメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般的に、コンピュータはまた、例えば、磁気、光磁気ディスク、または光ディスクといった、データを記憶するための1つまたは複数のマスストレージデバイスを含むことになる、または、そのような1つまたは複数のマスストレージデバイスからデータを受信もしくはそのような1つまたは複数のマスストレージデバイスにデータを送信またはその両方を行うことが動作可能に接続されることになる。しかしながら、コンピュータは、必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、数例挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、グローバルポジショニングシステム(GPS)受信機、または、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブといったポータブルストレージデバイスに組み込まれ得る。
【００６９】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイス、例えば、内部ハードディスクまたはリムーバブルディスクといった磁気ディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリ、メディアおよびメモリデバイスを含む。プロセッサおよびメモリは、特殊用途ロジック回路によって補完され得る、または、特殊用途ロジック回路に組み込まれ得る。
【００７０】
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタといった、ユーザに情報を表示するための表示デバイスと、ユーザがそれによってコンピュータに入力を提供することを可能にする、キーボードおよび例えばマウスまたはトラックボールといったポインティングデバイスとを有する、コンピュータに実装され得る。他の種類のデバイスも同様に、ユーザとのインタラクションを提供するために使用され得るし、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった、任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信するとともにユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信した要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザとのインタラクションを行い得る。
【００７１】
本明細書において説明した発明特定事項の実施形態は、例えば、データサーバとして、バックエンドコンポーネントを含む、または、例えば、アプリケーションサーバといった、ミドルウェアコンポーネントを含む、または、例えば、ユーザがそれを介して本明細書において説明した発明特定事項の実施形態とのインタラクションを行い得る、グラフィックユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータといった、フロントエンドコンポーネントを含む、コンピューティングシステムにおいて実装され得る、または、1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信によって相互接続され得る、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)を含む、例えば、インターネットを含む。
【００７２】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的に互いにリモートに存在しており、通信ネットワークを介して通常はインタラクションを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにクライアント-サーバの関係を有するコンピュータプログラムによって生じる。
【００７３】
本明細書は、多くの特定の実施形態詳細を含んでいるが、これらは、任意の発明の範囲または主張される可能性がある範囲を制限するものとして解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別個の実施形態に関連して本明細書に説明したある特徴はまた、単一の実施形態における組合せで実施され得る。反対に、単一の実施形態に関連して説明した様々な特徴はまた、複数の実施形態で別々にまたは任意の適切なサブコンビネーションで実施され得る。さらに、特徴を、ある組合せで動作するように上述しているとしても、たとえそのようにはじめは主張していたとしても、いくつかのケースでは、主張した組合せのうちの1つまたは複数の特徴を、組合せから削除し得るし、主張した組合せは、サブコンビネーションまたはサブコンビネーションの変形を対象とし得る。
【００７４】
同様に、動作を特定の順序で図面に図示しているが、このことを、望ましい結果を達成するためには、図示した特定の順序でもしくはシーケンシャルな順序でそのような動作を行う必要がある、または、図示した動作をすべて行う必要がある、と理解すべきではない。ある環境においては、マルチタスク処理およびパラレル処理が有利となる場合もある。さらに、上述した実施形態における様々なシステムモジュールおよびコンポーネントの分離はすべての実施形態においてそのような分離が必要であると理解すべきではないし、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品内に一緒に統合され得るまたは複数のソフトウェア製品にパッケージされ得ると理解すべきである。
【００７５】
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ、望ましい結果をそれでも達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために、図示した特定の順序またはシーケンシャルな順序を必ずしも必要としているわけでない。ある実施形態においては、マルチタスク処理およびパラレル処理が有利となる場合もある。
【符号の説明】
【００７６】
100  強化学習システム
102  エージェント
104  環境
110  行動選択ニューラルネットワーク
120  訓練エンジン
130  リプレイメモリ
【図１】
2020047285.tif 000008
【図２】
2020047285.tif 000009
【図３】
2020047285.tif 000010
【図４】
2020047285.tif 000011
【外国語明細書】
2020047285000001.pdf