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

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

▶ ディープマインド テクノロジーズ リミテッドの特許一覧

<>
  • 特許-非同期深層強化学習 図1
  • 特許-非同期深層強化学習 図2
  • 特許-非同期深層強化学習 図3
  • 特許-非同期深層強化学習 図4
  • 特許-非同期深層強化学習 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-05
(45)【発行日】2024-07-16
(54)【発明の名称】非同期深層強化学習
(51)【国際特許分類】
   G06N 3/092 20230101AFI20240708BHJP
   G06N 3/045 20230101ALI20240708BHJP
【FI】
G06N3/092
G06N3/045
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2023039773
(22)【出願日】2023-03-14
(62)【分割の表示】P 2021112034の分割
【原出願日】2016-11-11
(65)【公開番号】P2023063445
(43)【公開日】2023-05-09
【審査請求日】2023-03-15
(31)【優先権主張番号】62/254,701
(32)【優先日】2015-11-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ヴォロディミル・ムニヒ
(72)【発明者】
【氏名】アドリア・ピュイグドメネク・バディア
(72)【発明者】
【氏名】アレクサンダー・ベンジャミン・グレイヴス
(72)【発明者】
【氏名】ティモシー・ジェームズ・アレクサンダー・ハーレー
(72)【発明者】
【氏名】デイヴィッド・シルヴァー
(72)【発明者】
【氏名】コーレイ・カヴクチュオグル
【審査官】三坂 敏夫
(56)【参考文献】
【文献】米国特許出願公開第2015/0294219(US,A1)
【文献】米国特許出願公開第2010/0094786(US,A1)
【文献】Hao Yi Ong et al.,Distributed Deep Q-Learning,online,version2,米国,arXiv(コーネル大学図書館),2015年10月15日,pages:1-8,[令和4年6月30日検索],インターネット<URL:https://arxiv.org/pdf/1508.04186.pdf>
【文献】篠塚 敬介 他,「異なる環境に適用可能な知識を考慮した強化学習手法の構築」,第6回データ工学と情報マネジメントに関するフォーラム (第12回日本データベース学会年次大会),電子情報通信学会データ工学研究専門委員会,2014年03月05日,pages:1-8
【文献】電気学会 編,学習とそのアルゴリズム[POD版],森北出版株式会社,2012年01月20日,第155頁-第174頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00ー99/00
(57)【特許請求の範囲】
【請求項1】
行動の予め決められた組から選択された行動を実行することによって環境とインタラクションするエージェントを制御するために使用される深層ニューラルネットワークを訓練するためのシステムであって、
前記深層ニューラルネットワークは、複数の方策パラメータを有する方策ニューラルネットワークと複数の基底パラメータを有する基底ニューラルネットワークとを含み、前記システムは、1つまたは複数のワーカーを実装するように構成された1つまたは複数のコンピュータを備え、
各ワーカーは、前記深層ニューラルネットワークの前記訓練の間に、前記環境のそれぞれのインスタンスとインタラクションするそれぞれのアクターと関連付けられ、各ワーカーは、複数の動作を繰り返し実行するようにさらに構成され、
前記複数の動作が、
前記深層ニューラルネットワークのパラメータの現在の値を決定する動作であって、
前記1つまたは複数のワーカーの各々によってアクセス可能なメモリから、前記基底ニューラルネットワークの前記基底パラメータの現在の値を受け取る動作と、
前記メモリから、前記方策ニューラルネットワークの前記方策パラメータの現在の値を受け取る動作とを含む、決定する動作と、
前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境インスタンスが、特定の基準を満たす状態に遷移するまで、
前記環境インスタンスの状態を特徴付ける観測結果を受け取り、各観測結果に応答して、前記ワーカーのそれぞれの行動選択の方策に従って前記観測結果に応じて、前記ワーカーに関連付けられる前記アクターにより実行される行動を選択する動作であって、前記選択することが、各観測結果について、
前記方策ニューラルネットワークを用いるとともに、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って、前記観測結果を処理し、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って、前記行動の予め決められた組の中の各行動に対するそれぞれのスコアを生成することと、
前記それぞれのスコアを使用して、前記アクターにより実行される現在の行動を選択することと
を含む、選択する動作と、
前記特定の基準が満たされる前に受け取られる各観測結果について、
前記基底ニューラルネットワークの前記パラメータの前記現在の値に基づいて、前記観測結果により特徴付けられる状態から始めて、前記エージェントにより受け取られる推定された報酬を表す基底スコアを生成し、
前記観測結果に応答して、前記アクターが前記選択された行動を実行した結果として生じる実際の報酬を特定し、
少なくとも前記特定の基準を満たす前記状態を特徴付ける前記観測結果に対する前記基底スコアおよび前記実際の報酬から実際の長期的報酬を決定し、
前記基底スコアおよび前記実際の長期的報酬に基づいて、前記基底および方策ネットワークに対するそれぞれの現在の勾配を決定するために強化学習技術を反復して実行する動作と、
それぞれの現在の勾配の最新情報に基づき、前記基底および方策ネットワークに対するそれぞれの累積勾配を更新し、それぞれの更新された累積勾配を決定する動作と、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が、満たされたか否かを決定する動作と、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたときに、
前記深層ニューラルネットワークの前記パラメータを更新する動作であって、前記更新することが、
前記更新された累積勾配を使用して前記パラメータの更新された値を決定することと、
前記1つまたは複数のワーカーの各々がアクセス可能な前記メモリに前記更新された値を記録することとを含む、
更新する動作と
を含む、システム。
【請求項2】
前記1つまたは複数のワーカーが、同じコンピュータ上で実行される、請求項1に記載のシステム。
【請求項3】
前記複数の動作が、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたときに、前記更新された累積勾配を消去する動作
をさらに含む、請求項1に記載のシステム。
【請求項4】
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたか否かを決定する動作が、前記深層ニューラルネットワークの前記パラメータの前記値の先行する更新後に、特定の回数の前記強化学習技術の反復が行われたと決定する動作を含む、請求項1に記載のシステム。
【請求項5】
前記実際の長期的報酬を決定する動作が、
前記基準が満たされる前に受け取られた最後の観測結果について、前記観測結果に対する前記実際の報酬と前記特定の基準を満たす前記状態を特徴付ける前記観測結果に対する前記基底スコアとに基づいて、前記実際の長期的報酬を設定する動作と、
前記基準が満たされる前に受け取られた他の観測結果の各々について、前記観測結果に対する前記実際の長期的報酬を、前記実際の報酬と、前記観測結果後に受け取られた観測結果に対する前記実際の長期的報酬の割り引かれた合計とを足したものとして設定する動作と
を含む、請求項1に記載のシステム。
【請求項6】
前記方策ニューラルネットワークの前記勾配の最新情報が、
【数1】
により決定され、
【数2】
が、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って決定される前記観測結果s t に応答して実行される前記行動に対する前記スコアを示し、
R t が前記実際の報酬であり、b t が前記基底スコアである、請求項1に記載のシステム。
【請求項7】
前記基底ニューラルネットワークについての前記勾配の最新情報が、
【数3】
により決定され、
【数4】
が前記観測結果s t の前記基底スコアである、請求項6に記載のシステム。
【請求項8】
命令を記録する1つまたは複数の非一時的コンピュータ記録媒体であって、
前記命令は、1つまたは複数のコンピュータにより実行されたときに、前記1つまたは複数のコンピュータに、
行動の予め決められた組から選択された行動を実行することによって環境とインタラクションするエージェントを制御するために使用される深層ニューラルネットワークを訓練するためのシステム
を実装させ、前記深層ニューラルネットワークは、複数の方策パラメータを有する方策ニューラルネットワークと複数の基底パラメータを有する基底ニューラルネットワークとを含み、前記システムは、1つまたは複数のワーカーを含み、
各ワーカーは、前記深層ニューラルネットワークの前記訓練の間に、前記環境のそれぞれのインスタンスとインタラクションするそれぞれのアクターと関連付けられ、各ワーカーは、複数の動作を繰り返し実行するようにさらに構成され、
前記複数の動作が、
前記深層ニューラルネットワークのパラメータの現在の値を決定する動作であって、
前記1つまたは複数のワーカーの各々によってアクセス可能なメモリから、前記基底ニューラルネットワークの前記基底パラメータの現在の値を受け取る動作と、
前記メモリから、前記方策ニューラルネットワークの前記方策パラメータの現在の値を受け取る動作とを含む、決定する動作と、
前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境インスタンスが、特定の基準を満たす状態に遷移するまで、
前記環境インスタンスの状態を特徴付ける観測結果を受け取り、各観測結果に応答して、前記ワーカーのそれぞれの行動選択の方策に従って前記観測結果に応じて、前記ワーカーに関連付けられる前記アクターにより実行される行動を選択する動作であって、前記選択することが、各観測結果について、
前記方策ニューラルネットワークを用いるとともに、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って、前記観測結果を処理し、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って、前記行動の予め決められた組の中の各行動に対するそれぞれのスコアを生成することと、
前記それぞれのスコアを使用して、前記アクターにより実行される現在の行動を選択することと
を含む、選択する動作と、
前記特定の基準が満たされる前に受け取られる各観測結果について、
前記基底ニューラルネットワークの前記パラメータの前記現在の値に基づいて、前記観測結果により特徴付けられる状態から始めて、前記エージェントにより受け取られる推定された報酬を表す基底スコアを生成し、
前記観測結果に応答して、前記アクターが前記選択された行動を実行した結果として生じる実際の報酬を特定し、
少なくとも前記特定の基準を満たす前記状態を特徴付ける前記観測結果に対する前記基底スコアおよび前記実際の報酬から実際の長期的報酬を決定し、
前記基底スコアおよび前記実際の長期的報酬に基づいて、前記基底および方策ネットワークに対するそれぞれの現在の勾配を決定するために強化学習技術を反復して実行する動作と、
それぞれの現在の勾配の最新情報に基づき、前記基底および方策ネットワークに対するそれぞれの累積勾配を更新し、それぞれの更新された累積勾配を決定する動作と、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が、満たされたか否かを決定する動作と、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたときに、
前記深層ニューラルネットワークの前記パラメータを更新する動作であって、前記更新することが、
前記更新された累積勾配を使用して前記パラメータの更新された値を決定することと、
前記1つまたは複数のワーカーの各々がアクセス可能な前記メモリに前記更新された値を記録することとを含む、
更新する動作と
を含む、非一時的コンピュータ記録媒体。
【請求項9】
前記1つまたは複数のワーカーが、同じコンピュータ上で実行される、請求項8に記載の非一時的コンピュータ記録媒体。
【請求項10】
前記複数の動作が、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたときに、前記更新された累積勾配を消去する動作
をさらに含む、請求項8に記載の非一時的コンピュータ記録媒体。
【請求項11】
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたか否かを決定する動作が、前記深層ニューラルネットワークの前記パラメータの前記値の先行する更新後に、特定の回数の前記強化学習技術の反復が行われたと決定する動作を含む、請求項8に記載の非一時的コンピュータ記録媒体。
【請求項12】
前記実際の長期的報酬を決定する動作が、
前記基準が満たされる前に受け取られた最後の観測結果について、前記観測結果に対する前記実際の報酬と前記特定の基準を満たす前記状態を特徴付ける前記観測結果に対する前記基底スコアとに基づいて、前記実際の長期的報酬を設定する動作と、
前記基準が満たされる前に受け取られた他の観測結果の各々について、前記観測結果に対する前記実際の長期的報酬を、前記実際の報酬と、前記観測結果後に受け取られた観測結果に対する前記実際の長期的報酬の割り引かれた合計とを足したものとして設定する動作と
を含む、請求項8に記載の非一時的コンピュータ記録媒体。
【請求項13】
前記方策ニューラルネットワークの前記勾配の最新情報が、
【数5】
により決定され、
【数6】
が、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って決定される前記観測結果s t に応答して実行される前記行動に対する前記スコアを示し、
R t が前記実際の報酬であり、b t が前記基底スコアである、請求項8に記載の非一時的コンピュータ記録媒体。
【請求項14】
前記基底ニューラルネットワークについての前記勾配の最新情報が、
【数7】
により決定され、
【数8】
が前記観測結果s t の前記基底スコアである、請求項13に記載の非一時的コンピュータ記録媒体。
【請求項15】
行動の予め決められた組から選択された行動を実行することによって環境とインタラクションするエージェントを制御するために使用される深層ニューラルネットワークを訓練するための1つまたは複数のコンピュータによって実行される方法であって、
前記深層ニューラルネットワークは、複数の方策パラメータを有する方策ニューラルネットワークと複数の基底パラメータを有する基底ニューラルネットワークとを含み、
前記方法は、
1つまたは複数のワーカーの第1のワーカーによって、前記深層ニューラルネットワークのパラメータの現在の値を決定するステップであって、各ワーカーは、前記深層ニューラルネットワークの前記訓練の間に、前記環境のそれぞれのインスタンスとインタラクションするそれぞれのアクターと関連付けられ、前記決定するステップが、
前記1つまたは複数のワーカーの各々によってアクセス可能なメモリから、前記基底ニューラルネットワークの前記基底パラメータの現在の値を受け取るステップと、
前記メモリから、前記方策ニューラルネットワークの前記方策パラメータの現在の値を受け取るステップとを含む、決定するステップと、
前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境インスタンスが、特定の基準を満たす状態に遷移するまで、
前記第1のワーカーによって、前記環境インスタンスの状態を特徴付ける観測結果を受け取り、各観測結果に応答して、前記第1のワーカーのそれぞれの行動選択の方策に従って前記観測結果に応じて、前記第1のワーカーに関連付けられる前記アクターにより実行される行動を選択するステップであって、前記選択することが、各観測結果について、
前記方策ニューラルネットワークを用いるとともに、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って、前記観測結果を処理し、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って、前記行動の予め決められた組の中の各行動に対するそれぞれのスコアを生成することと、
前記それぞれのスコアを使用して、前記アクターにより実行される現在の行動を選択することと
を含む、選択するステップと、
前記特定の基準が満たされる前に受け取られる各観測結果について、
前記第1のワーカーによって、前記基底ニューラルネットワークの前記パラメータの前記現在の値に基づいて、前記観測結果により特徴付けられる状態から始めて、前記エージェントにより受け取られる推定された報酬を表す基底スコアを生成し、
前記第1のワーカーによって、前記観測結果に応答して、前記アクターが前記選択された行動を実行した結果として生じる実際の報酬を特定し、
前記第1のワーカーによって、少なくとも前記特定の基準を満たす前記状態を特徴付ける前記観測結果に対する前記基底スコアおよび前記実際の報酬から実際の長期的報酬を決定し、
前記第1のワーカーによって、前記基底スコアおよび前記実際の長期的報酬に基づいて、前記基底および方策ネットワークに対するそれぞれの現在の勾配を決定するために強化学習技術を反復して実行するステップと、
前記第1のワーカーによって、それぞれの現在の勾配の最新情報に基づき、前記基底および方策ネットワークに対するそれぞれの累積勾配を更新し、それぞれの更新された累積勾配を決定するステップと、
前記第1のワーカーによって、前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が、満たされたか否かを決定するステップと、
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたときに、
前記第1のワーカーによって、前記深層ニューラルネットワークの前記パラメータを更新するステップであって、前記更新することが、
前記更新された累積勾配を使用して前記パラメータの更新された値を決定することと、
前記1つまたは複数のワーカーの各々がアクセス可能な前記メモリに前記更新された値を記録することとを含む、
更新するステップと
を含む、方法。
【請求項16】
前記1つまたは複数のワーカーが、同じコンピュータ上で実行される、請求項15に記載の方法。
【請求項17】
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたときに、前記更新された累積勾配を消去するステップ
をさらに含む、請求項15に記載の方法。
【請求項18】
前記深層ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたか否かを決定するステップが、前記深層ニューラルネットワークの前記パラメータの前記値の先行する更新後に、特定の回数の前記強化学習技術の反復が行われたと決定するステップを含む、請求項15に記載の方法。
【請求項19】
前記実際の長期的報酬を決定するステップが、
前記基準が満たされる前に受け取られた最後の観測結果について、前記観測結果に対する前記実際の報酬と前記特定の基準を満たす前記状態を特徴付ける前記観測結果に対する前記基底スコアとに基づいて、前記実際の長期的報酬を設定するステップと、
前記基準が満たされる前に受け取られた他の観測結果の各々について、前記観測結果に対する前記実際の長期的報酬を、前記実際の報酬と、前記観測結果後に受け取られた観測結果に対する前記実際の長期的報酬の割り引かれた合計とを足したものとして設定するステップと
を含む、請求項1に記載のシステム。請求項15に記載の方法。
【請求項20】
前記方策ニューラルネットワークの前記勾配の最新情報が、
【数9】
により決定され、
【数10】
が、前記方策ニューラルネットワークの前記パラメータの前記現在の値に従って決定される前記観測結果s t に応答して実行される前記行動に対する前記スコアを示し、
R t が前記実際の報酬であり、b t が前記基底スコアである、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、強化学習(Reinforcement Learning)に関する。
【背景技術】
【0002】
強化学習システムにおいては、エージェントが、環境の現在の状態を特徴付ける観測結果(Observation)を受け取ることに応じて強化学習システムによって選択される行動(Action)を実行することによって環境とインタラクションする。
【0003】
一部の強化学習システムは、ニューラルネットワークの出力に応じて所与の観測結果を受け取ることに応じてエージェントによって実行される行動を選択する。
【0004】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む深層ニューラルネットワーク(Deep Neural Networks)である。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、強化学習に関するテクノロジーを説明する。特に、本明細書は、環境とインタラクションするときにエージェントによって実行される行動を選択するために強化学習システムによって使用される深層ニューラルネットワークを非同期に訓練するための技術を説明する。本明細書の態様は、ニューラルネットワークのより速い訓練および/または訓練のためのメモリの要件の低減という技術的効果を有する。
【0006】
1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【0007】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。訓練を並列化することによって、強化学習システムによって使用されるニューラルネットワークが、より速く訓練され得る。より具体的には、単一のマシン上で独立して動作する複数のワーカー(Worker)を使用して訓練を並列化することによって、並列化の結果としてかかる通信コストが削減され得る。加えて、複数のマシン上の複数のワーカーを含む並列化技術において通常必要とされる、ワーカーが再生メモリ(Replay Memory)またはその他のストレージに経験タプル(Experience Tuple)を記憶する必要をなくすことによって、訓練のためのメモリの要件が低減される可能性があり、方策オン型(On-Policy)強化学習方法が使用される可能性がある。
【0008】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。たとえば、本明細書は、本明細書において開示される技術のいずれかを実行するための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置を提供する。一部の実施形態において、コンピュータプログラムは、コンピューティング装置によって実行されるときにそのコンピューティング装置に本明細書において開示される技術のいずれかを実行させる命令を含む。
【図面の簡単な説明】
【0009】
図1】例示的なニューラルネットワーク訓練システムの図である。
図2】深層ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
図3】Q学習技術の反復を実行するための例示的なプロセスの流れ図である。
図4】SARSA技術の反復を実行するための例示的なプロセスの流れ図である。
図5】方策(Policy)ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0010】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0011】
本明細書は、概して、非同期深層強化学習(Asynchronous Deep Reinforcement Learning)に関する技術を説明する。特に、本明細書は、環境とインタラクションするエージェントによって実行される行動(Action)を選択するために強化学習システムによって使用される深層ニューラルネットワークを複数のワーカーがどのようにして非同期に訓練し得るのかを説明する。
【0012】
一部の実装において、環境は、シミュレーションされた環境であり、エージェントは、シミュレーションされた環境とインタラクションする1つまたは複数のコンピュータプログラムとして実装される。たとえば、シミュレーションされた環境は、ビデオゲームである可能性があり、エージェントはビデオゲームをプレイするシミュレーションされたユーザである可能性がある。別の例として、シミュレーションされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションである可能性があり、エージェントは、運動シミュレーションによって移動するシミュレーションされた乗り物である。これらの実装において、行動は、シミュレーションされたユーザまたはシミュレーションされた乗り物を制御するための制御入力である可能性がある。
【0013】
一部のその他の実装において、環境は、実世界の環境(Real-World Environment)であり、エージェントは、実世界とインタラクションする機械的なエージェントである。たとえば、エージェントは、特別なタスクを遂行するために環境とインタラクションするロボットである可能性がある。別の例として、エージェントは、環境の中を移動する自律的なまたは半自律的な乗り物である可能性がある。これらの実装において、行動は、ロボットまたは自律的な乗り物を制御するための制御入力である可能性がある。
【0014】
概して、強化学習システムは、環境の現在の状態を特徴付ける観測結果を受け取り、観測結果を使用してエージェントによって実行される行動を選択する。エージェントが選択された行動を実行することに応じて、環境は、新しい状態に遷移し、強化学習システムは、報酬(Reward)を受け取る。報酬は、環境の状態の関数である数値である。環境とインタラクションする間に、強化学習システムは、エージェントによって実行された行動に応じてエージェントによって受け取られる長期的報酬(Long-Term Reward)を最大化しようと試みる。
【0015】
特に、所与の観測結果に応答して、強化学習システムは、深層ニューラルネットワークによって生成された出力に従ってエージェントによって実行される行動を選択する。
【0016】
強化学習システムがエージェントによって実行される行動を効果的に選択することを可能にするために、ニューラルネットワーク訓練システムは、パラメータの初期値から深層ニューラルネットワークのパラメータの値を調整するように深層ニューラルネットワークを訓練する。
【0017】
特に、ニューラルネットワーク訓練システムは、環境の複製とインタラクションするアクター(Actor)によって実行される行動を選択することによって深層ニューラルネットワークを非同期に訓練する複数のワーカーを含む。
【0018】
各アクターは、互いのインスタンスと独立して動作するエージェントのインスタンスである。たとえば、エージェントが機械的なエージェントであるとき、各アクターは、やはり、エージェントと同じであるかまたはほぼ同じである、たとえば、同じまたはほぼ同じ特性を有し、エージェントと同じ行動を実行することができ、互いのアクターと独立して動作する別個の機械的なエージェントである。
【0019】
図1は、例示的なニューラルネットワーク訓練システム100を示す。ニューラルネットワーク訓練システム100は、以下で説明されるシステム、構成要素、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【0020】
ニューラルネットワーク訓練システム100は、複数のワーカー102A~Nおよび共有メモリ110を含む。ワーカー102A~102Nの各々は、対応する環境の複製106A~106Nとインタラクションするそれぞれのアクター104A~Nに関連付けられる。たとえば、ワーカー102Aは、環境の複製106Aとインタラクションするアクター104Aに関連付けられる。
【0021】
一部の実装において、ワーカー110A~Nの各々は、同じコンピュータ上に実装されるが、ワーカーに関する計算を独立して実行することができるコンピュータ内の別々のスレッド、プロセス、またはその他のハードウェアもしくはソフトウェア内で実行される。これらの実装において、共有メモリ110は、ワーカー102A~102Nの各々がアクセス可能なコンピュータのメモリである。環境が仮想化された環境である実装において、所与のワーカーに関連するアクターおよび環境の複製も、所与のワーカーと同じスレッドまたはその他のハードウェアもしくはソフトウェア内で実行される。
【0022】
ワーカー102A~102Nの各々は、訓練されている深層ニューラルネットワークのインスタンスを保有し、共有メモリ110に記憶される深層ニューラルネットワークのパラメータの現在の値を取得するために共有メモリ110にアクセスする。そして、各ワーカーは、共有メモリ110から得られたニューラルネットワークのパラメータの現在の値に応じてワーカーに関連するアクターによって実行される行動を選択するためにワーカーの深層ニューラルネットワークのインスタンスを使用する。
【0023】
特に、訓練中に、各ワーカーは、ワーカーに関連する環境の複製の状態を特徴付ける観測結果を受け取り、各観測結果に応答して、深層ニューラルネットワークを使用して環境の複製に関連するアクターによって実行される行動を選択する。そして、ワーカーは、環境の複製の次の状態、すなわち、アクターが選択された行動を実行した結果として環境の複製が遷移する状態を特徴付ける次の観測結果と、アクターが選択された行動を実行した結果として生じる報酬とを受け取る。ワーカーは、報酬と次の観測結果を使用して勾配を決定し、ワーカーによって決定された勾配を周期的に使用して、共有メモリ110に記憶されるパラメータ値を更新する。勾配を決定し、共有メモリに記憶されたパラメータ値を更新することが、図2を参照して以下でより詳細に説明される。
【0024】
ワーカー102A~102Nの各々が共有メモリ110に記憶されるパラメータ値を繰り返し、非同期に更新することによって、ワーカー102A~102Nは、深層ニューラルネットワークのパラメータの訓練された値を決定するように深層ニューラルネットワークを集団で訓練する。
【0025】
図2は、深層ニューラルネットワークを訓練するための例示的なプロセス200の流れ図である。便宜的に、プロセス200は、ワーカー、たとえば、図1のワーカー102A~Nのうちの1つによって実行されるものとして説明される。
【0026】
ワーカーは、深層ニューラルネットワークのパラメータの現在の値を決定する(ステップ202)。
【0027】
一部の実装において、ワーカーは、ワーカーのすべての間で共有されるメモリ、たとえば、図1の共有メモリ110から現在の値を取得する。
【0028】
いくつかのその他の実装において、ワーカーは、下で説明されるように共有メモリを更新した後にのみメモリから現在の値を取得し、それらの現在の値をローカルメモリに書き込む。これらの実装において、ワーカーは、現在の値がローカルメモリに記憶される値であることを決定する。
【0029】
ワーカーは、ワーカーに関連するアクターによってインタラクションされている環境の複製の現在の状態を特徴付ける現在の観測結果を受け取る(ステップ204)。
【0030】
ワーカーは、深層ニューラルネットワークを使用して環境が現在の状態であるときにアクターによって実行される現在の行動を選択する(ステップ206)。
【0031】
特に、一部の実装において、深層ニューラルネットワークは、観測結果および行動を入力として受け取り、Qネットワークのパラメータの現在の値に従って入力を処理してニューラルネットワークの出力を生成するように構成されるQネットワークである。本明細書においてQ値(Q Value)と呼ばれることになるニューラルネットワークの出力は、環境が入力された観測結果によって特徴付けられる状態であるときにエージェントまたはアクターが入力された行動を実行した結果生じる長期的報酬の推定値である。
【0032】
これらの実装においては、行動の予め決められた組の中の各行動に関して、ワーカーが、Qネットワークを使用して行動および現在の観測結果を処理して、各行動に関するそれぞれの現在のQ値を生成する。
【0033】
それから、ワーカーは、現在のQ値を使用して、ワーカーに関する行動選択の方策(Policy)に従って、アクターによって実行される現在の行動として行動の予め決められた組から行動を選択する。
【0034】
概して、所与のワーカーに関する行動選択の方策は、それぞれのその他のワーカーに関する行動選択の方策と異なる。たとえば、一部の実装において、各ワーカーに関する行動選択の方策は、ワーカーが確率εで行動の予め決められた組から無作為に行動を選択し、確率1-εで最も高いQ値を有する行動を選択するが、ただし、εの値は、各ワーカーに関して異なるεグリーディ方策(ε-greedy policy)である。たとえば、各ワーカーは、εが行動選択の方策において使用されると決定するために、ワーカーに関するεの可能な値の分布からワーカーに関するεのための値を周期的にサンプリングし得る。別の例として、ワーカーは、Q値にSoftmaxの非線形性を適用し、結果として得られる分布から行動をサンプリングすることによって行動を選択する可能性がある。そして、各ワーカーは、Softmaxにおいて異なる温度(Temperature)パラメータを使用して、各ワーカーが異なる行動選択の方策を有していたことを保証する可能性がある。
【0035】
ワーカーは、次の観測結果および実際の報酬を受け取る(ステップ208)。次の観測結果は、環境の複製の次の状態、すなわち、ワーカーが現在の行動をすることに関連するアクターの結果として環境の複製が遷移した状態を特徴付ける。実際の報酬は、現在の状態から次の状態への遷移の結果として環境の複製から受け取られる数値である。
【0036】
ワーカーは、実際の報酬および次の観測結果を使用して現在の勾配を決定するために強化学習手順の反復を実行する(ステップ210)。勾配は、深層ニューラルネットワークを訓練するために最適化されている損失関数の勾配である。
【0037】
損失関数と、ワーカーが勾配を決定する方法とは、深層ニューラルネットワークを訓練するために使用されている強化学習手順に依存し、そしてまた、その強化学習手順は、深層ニューラルネットワークがどのようにして構成されるかに依存する。
【0038】
たとえば、深層ニューラルネットワークがQネットワークであるとき、ワーカーは、Q学習技術またはSARSA技術を使用する可能性がある。Q学習技術の反復を実行することは、図3を参照して下で説明される。SARSA技術の反復を実行することは、図4を参照して下で説明される。
【0039】
ワーカーは、累積された勾配を現在の勾配によって更新して、更新された累積された勾配を決定する(ステップ212)。つまり、ワーカーは、ローカルメモリに勾配を保有し、新しい勾配が計算される度に、たとえば、累積された勾配に新しい勾配を足すことによって、保有される勾配を新しい勾配によって更新する。
【0040】
ワーカーは、ニューラルネットワークのパラメータの現在の値を更新するための基準が満たされるかどうかを判定する(ステップ214)。たとえば、現在の値を更新するための基準は、ワーカーが最も最近パラメータ値を更新して以降にワーカーが指定された回数の強化学習の反復を実行した後でワーカーが現在の値を更新すると指定する可能性がある。別の例として、基準は、ワーカーが最も最近パラメータ値を更新して以降に複数のワーカーのすべてによって実行された強化学習の反復の合計回数が指定された閾値を超えるときにワーカーが現在の値を更新すると指定する可能性がある。
【0041】
基準が満たされる場合、ワーカーは、累積された勾配を使用して更新されたパラメータ値を決定し(ステップ216)、更新されたパラメータ値を共有メモリに書き込む(ステップ218)。特に、ワーカーは、累積された勾配からパラメータ値の最新情報を決定し、共有メモリ内の現在の値にアクセスし、それから、パラメータ値の最新情報を使用してそれらの値を更新する。一部の例において、ワーカーは、累積された勾配に学習率パラメータを掛け、それから、現在のパラメータ値とパラメータ値の最新情報とを合計して更新されたパラメータ値を決定する。いくつかのその他の例において、ワーカーは、RMSProp最適化手順の非同期の変化型を使用してパラメータ値を更新する。
【0042】
ワーカーが更新されたパラメータ値を共有メモリに書き込んだ後、ワーカーは、累積された勾配を消去し、つまり、その結果、プロセス200の次の反復が開始されるとき、ワーカーによって勾配が保有されていない。
【0043】
基準が満たされない場合、ワーカーは、共有メモリにいかなるものも書き込むことを控え(ステップ220)、つまり、ワーカーは、現在のパラメータ値を更新することなくプロセス200の別の反復を実行し始める。
【0044】
複数のワーカーの各々は、プロセス200を非同期に繰り返し実行して、深層ニューラルネットワークのパラメータの訓練された値を集団で決定し得る。訓練された値が決定されると、強化学習システムは、エージェントが環境とインタラクションすることによって、つまり、ニューラルネットワークのパラメータの訓練された値に従って深層ニューラルネットワークを使用してニューラルネットワークの入力を処理することによって、深層ニューラルネットワークを使用して実行される値を選択し得る。いくつかのその他の場合、強化学習システムは、ワーカーがプロセス200を実行し続ける間に、つまり、共有メモリに記憶された値を周期的に取得し、それらの値を使用してエージェントによって実行される行動を選択することによって、深層ニューラルネットワークを使用してエージェントによって実行される値を選択する。
【0045】
場合によっては、訓練された値が決定されると、それらの訓練された値が記憶され、それから、深層ニューラルネットワークの訓練されたバージョンをインスタンス化する際に使用するために、つまり、エージェントが環境とインタラクションする際に行動を効果的に選択することを可能にするためにネットワークを介して別のシステムに送信される。
【0046】
図3は、Q学習技術の反復を実行するための例示的なプロセス300の流れ図である。便宜的に、プロセス300は、ワーカー、たとえば、図1のワーカー102A~Nのうちの1つによって実行されるものとして説明される。
【0047】
ワーカーは、現在の観測結果、現在の行動、実際の報酬、および次の観測結果を(ステップ302)、つまり、図2を参照して上で説明されたように取得する。
【0048】
ワーカーは、環境の複製が次の観測結果によって特徴付けられる状態であるときに目標ネットワーク(Target Network)の最大の出力を決定する(ステップ304)。目標ネットワークは、Qネットワークと同じニューラルネットワークであり、つまり、同じニューラルネットワークアーキテクチャ/ニューラルネットワークの形態を有するが、おそらく異なるパラメータ値を有する。特に、各ワーカーは、目標ネットワークのパラメータの値を共有メモリに記憶されたQネットワークのパラメータの現在の値と周期的に同期させる。しかし、概して、ワーカーは、ワーカーが共有メモリに記憶されたパラメータ値を更新するよりも少ない頻度で目標ネットワークのパラメータの値を同期させ、その結果、目標ネットワークおよびQネットワークは、異なるパラメータ値を有することが多くなる。
【0049】
ワーカーは、行動の予め決められた組の内の各行動に関して、目標ネットワークを使用して次の観測結果と組み合わせて行動を処理して行動に関する目標ネットワークの出力を決定することによって目標ネットワークの最大の出力を決定する。それから、システムは、行動の予め決められた組の内の行動に関する目標ネットワークの出力の最大値を目標ネットワークの最大の出力として選択する。
【0050】
ワーカーは、目標ネットワークの最大の出力、実際の報酬、および環境が現在の状態であったときに現在の行動に関して前に決定された現在のQ値、すなわち、環境が現在の状態であったときに実行される行動として現在の行動を選択するために使用された現在のQ値から誤差を決定する(ステップ306)。一部の実装において、誤差Eは、
E = r +γmax(Qtarget) - Qcurrent
を満たし、ここで、rは、実際の報酬であり、γは、予め決められた割引率(Discount Factor)、max(Qtarget)は、目標ネットワークの最大の出力であり、Qcurrentは、環境が現在の状態であったときに現在の行動に関して前に決定された現在のQ値である。
【0051】
ワーカーは、決定された誤差を使用して現在の勾配を決定する(ステップ308)。つまり、ワーカーは、誤差逆伝播を使用して値を更新し、誤差逆伝播される誤差は、選択された行動に関しては決定された誤差であり、すべてのその他の行動に関してはゼロである。
【0052】
図4は、SARSA技術の反復を実行するための例示的なプロセス400の流れ図である。便宜的に、プロセス400は、ニューラルネットワーク訓練システム内のワーカー、たとえば、図1のニューラルネットワーク訓練システム100内のワーカー102A~Nのうちの1つによって実行されるものとして説明される。
【0053】
ワーカーは、現在の観測結果、現在の行動、実際の報酬、および次の観測結果を受け取る(ステップ402)。
【0054】
ワーカーは、環境の複製が次の状態であるときにアクターによって実行される次の行動を選択する(ステップ404)。ワーカーは、ステップ206を参照して上で説明されたように次の行動を選択する。つまり、行動の予め決められた組の内の各行動に関して、ワーカーは、Qネットワークを使用して行動および次の観測結果を処理して、各行動に関するそれぞれの次のQ値を生成する。それから、ワーカーは、次のQ値を使用して、ワーカーに関する行動選択の方策に従って、アクターによって実行される次の行動として行動の予め決められた組から行動を選択する。
【0055】
ワーカーは、次の行動に関する目標ネットワークの出力を決定する(ステップ406)。つまり、ワーカーは、目標ネットワークを使用して次の行動および次の観測結果を処理して、次の行動に関する目標ネットワークの結果を決定する。
【0056】
ワーカーは、次の行動に関する目標ネットワークの出力、実際の報酬、および現在の行動に関して前に決定された現在のQ値から誤差を決定する(ステップ408)。一部の実装において、誤差Eは、
E = r +γQtarget - Qcurrent
を満たし、ここで、rは、実際の報酬であり、γは、予め決められた割引率、Qtargetは、次の行動に関する目標ネットワークの出力であり、Qcurrentは、環境が現在の状態であったときに現在の行動に関して前に決定された現在のQ値である。
【0057】
ワーカーは、決定された誤差を使用して現在の勾配を決定する(ステップ410)。
【0058】
プロセス300かまたはプロセス400かのどちらかを実行するとき、ワーカーは、目標ネットワークのパラメータを共有メモリ内のパラメータと同期させるための基準が満たされるか否かをさらに判定する。たとえば、基準は、ステップ216に関連して上で説明された基準と同じである可能性があるが、ただし、指定された閾値または指定された回数は、共有メモリに記憶されたパラメータを更新すべきかどうかの判定のために使用される値または回数よりも大きい。したがって、ワーカーは、ワーカーが共有メモリに記憶されたパラメータ値を更新するよりも少ない頻度で目標ネットワークのパラメータの値を同期させ、その結果、目標ネットワークおよびQネットワークは、異なるパラメータ値を有することが多くなる。
【0059】
上の説明は、深層ニューラルネットワークがQネットワークである実装を説明した。しかし、いくつかのその他の実装において、深層ニューラルネットワークは、入力された観測結果を受け取り、行動の予め決められた組の内の各行動に関するそれぞれのスコアを出力する方策ニューラルネットワークであり、スコアは、それぞれ、対応する行動が、環境が入力された観測結果によって特徴付けられる状態であることの結果として生じる長期的報酬を最大化するために実行されるべきである行動である見込みを表す。
【0060】
これらの実装においては、所与の観測結果に応答して行動を選択するために、強化学習システムが、方策ニューラルネットワークを使用して所与の観測結果を処理し、行動のスコアに応じて行動からサンプリングすることによってエージェントにより実行される行動を選択する。
【0061】
各ワーカーが異なる行動選択の方策を有することを保証するために、各ワーカーは、行動からサンプリングするときに異なる無作為のシード(Seed)を使用する可能性があり、または代替的に、各ワーカーは、行動に関するスコアを生成する方策ニューラルネットワークの出力層に関して異なる温度を有する可能性がある。
【0062】
図5は、方策ニューラルネットワークを訓練するための例示的なプロセス500の流れ図である。便宜的に、プロセス500は、ニューラルネットワーク訓練システム内のワーカー、たとえば、図1のニューラルネットワーク訓練システム100内のワーカー102A~Nのうちの1つによって実行されるものとして説明される。
【0063】
ワーカーは、方策ニューラルネットワークのパラメータの現在の値を決定する(ステップ502)。特に、ワーカーは、ワーカーのすべての間で共有されるメモリ、たとえば、図1の共有メモリ110から現在の値を取得する。
【0064】
ワーカーは、共有メモリから基底(Baseline)ニューラルネットワークのパラメータの現在の値も取得する。基底ニューラルネットワークは、入力された観測結果を受け取り、入力された観測結果によって特徴付けられる状態から始まる、エージェントによって受け取られる推定された長期的報酬を表す基底スコアを生成するように構成されるニューラルネットワークである。一部の実装において、基底および方策ネットワークは、それらのパラメータの一部を共有する。
【0065】
ワーカーは、環境の複製が特定の基準を満たす状態に遷移するまで、環境の複製の状態を特徴付ける観測結果を受け取り、方策ニューラルネットワークのパラメータの現在の値に従ってアクターによって実行される行動を選択する(ステップ504)。つまり、各観測結果に関して、ワーカーは、現在の値に従って方策ニューラルネットワークを使用して観測結果を処理し、行動に関するスコアに従って行動からサンプリングすることによってエージェントにより実行される行動を選択する。たとえば、特定の基準は、所定の数tmaxの観測結果が受け取られた後、または予め決められた終末状態が達せられるまで、満たされる可能性がある。
【0066】
特に、環境の複製の状態を特徴付けるそれぞれの受け取られた観測結果に関して、ワーカーは、方策ニューラルネットワークのパラメータの現在の値に従って方策ニューラルネットワークを使用して観測結果を処理して行動の予め決められた組の内の各行動に関するそれぞれのスコアを生成し、分布からサンプリングすることによってアクターにより実行される行動を選択する。
【0067】
それぞれの受け取られた観測結果に関して、ワーカーは、基底ニューラルネットワークのパラメータの現在の値に従って基底ニューラルネットワークを使用して行動および観測結果も処理して観測結果に関する基底スコアを生成する。
【0068】
一部の実装においては、基底ニューラルネットワークおよび方策ニューラルネットワークのうちの一方または両方がリカレントニューラルネットワークである可能性がある。
【0069】
ワーカーは、それぞれの受け取られた観測結果に関する実際の長期的報酬を決定する(ステップ506)。
【0070】
つまり、受け取られた最後の観測結果に関して、システムは、実際の長期的報酬を、たとえば、基底ニューラルネットワークによって予測された基底スコアに設定する。
【0071】
最後の観測結果以外の所与の観測結果に関して、システムは、所与の観測結果に関する実際の長期的報酬を、環境の複製が最後の観測結果によって特徴付けられる状態に遷移したときに受け取られた報酬に、所与の観測結果を受け取ることに応じて選択された行動をアクターが実行した後に受け取られた観測結果に関する実際の長期的報酬の割り引かれた合計を足したものとして設定する。
【0072】
ワーカーは、各観測結果に関して、方策ニューラルネットワークに関するそれぞれの勾配の最新情報と、基底ニューラルネットワークに関するそれぞれの勾配の最新情報とを決定する(ステップ510)。
【0073】
特に、観測結果stに関する方策ニューラルネットワークの勾配の最新情報は、
【数1】
を満たし、ここで、
【数2】
は、観測結果stに応答して実行された行動に関して生成されたスコアであり、Rtは、観測結果stに関して決定された実際の長期的報酬であり、btは、観測結果stに関する基底スコアである。
【0074】
観測結果stに関する基底ニューラルネットワークの勾配の最新情報は、
【数3】
を満たし、ここで、
【数4】
は、観測結果stに関する基底スコアである。
【0075】
ワーカーは、たとえば、ニューラルネットワークに関する累積された勾配に各ニューラルネットワークに関する新しい勾配を足すことによって、方策ニューラルネットワークに関する勾配の最新情報によって方策ニューラルネットワークに関する累積された勾配を更新して方策ニューラルネットワークに関する更新された累積された勾配を決定し、基底ニューラルネットワークに関する勾配の最新情報によって基底ニューラルネットワークに関する累積された勾配を更新して基底ニューラルネットワークに関する更新された累積された勾配を決定する(ステップ512)。
【0076】
ワーカーは、基底ニューラルネットワークおよび方策ニューラルネットワークのパラメータの現在の値を更新するための基準が満たされるかどうかを判定する(ステップ514)。
【0077】
たとえば、現在の値を更新するための基準は、ワーカーが最も最近パラメータ値を更新して以降にワーカーがステップ504の指定された回数の反復を実行した後でワーカーが現在の値を更新すると指定する可能性がある。
【0078】
別の例として、基準は、ワーカーが最も最近パラメータ値を更新して以降に複数のワーカーのすべてによって実行されたステップ504の反復の合計回数が指定された閾値を超えるときにワーカーが現在の値を更新すると指定する可能性がある。
【0079】
基準が満たされる場合、ワーカーは、たとえば、ステップ216および218に関連して上で説明されたように、対応する累積された勾配を使用して基底ニューラルネットワークおよび方策ニューラルネットワークに関する更新されたパラメータ値を決定し(ステップ516)、更新されたパラメータ値を共有メモリに書き込む(ステップ518)。
【0080】
ワーカーが更新されたパラメータ値を共有メモリに書き込んだ後、ワーカーは、累積された勾配を消去し、つまり、その結果、プロセス500の次の反復が開始されるとき、ワーカーによって勾配が保有されていない。
【0081】
基準が満たされない場合、ワーカーは、共有メモリにいかなるものも書き込むことを控え(ステップ520)、つまり、ワーカーは、現在のパラメータ値を更新することなくプロセス500の別の反復を実行し始める。
【0082】
本明細書に記載の対象の実施形態および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、または有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せである可能性がある。
【0083】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)である可能性もあり、またはそのような専用論理回路をさらに含む可能性がある。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0084】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される可能性もある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置され得る。
【0085】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行する1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
【0086】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはこれら両方、または任意のその他の種類の中央演算処理装置を含み、例として、それらに基づく可能性がある。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれる可能性がある。
【0087】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれる可能性がある。
【0088】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用される可能性があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックである可能性があり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られる可能性がある。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0089】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができる関係グラフィカルユーザインターフェース(Relationship Graphical User Interface)もしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【0090】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【0091】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装される可能性もある。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装される可能性もある。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除される可能性があり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【0092】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされる可能性があると理解されるべきである。
【0093】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行動は、異なる順序で実行される可能性があり、それでも所望の結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序、または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0094】
100 ニューラルネットワーク訓練システム
102A~N ワーカー
104A~N アクター
106A~106N 環境の複製
110 共有メモリ
200 プロセス
300 プロセス
400 プロセス
500 プロセス
図1
図2
図3
図4
図5