(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-17
(45)【発行日】2022-10-25
(54)【発明の名称】モデルフリー強化学習のためのスタック型畳み込み長/短期メモリ
(51)【国際特許分類】
G06N 3/04 20060101AFI20221018BHJP
G06N 3/08 20060101ALI20221018BHJP
G06N 20/00 20190101ALI20221018BHJP
【FI】
G06N3/04 190
G06N3/04 154
G06N3/08
G06N20/00
(21)【出願番号】P 2020570774
(86)(22)【出願日】2019-09-27
(86)【国際出願番号】 EP2019076213
(87)【国際公開番号】W WO2020065024
(87)【国際公開日】2020-04-02
【審査請求日】2021-01-06
(32)【優先日】2018-09-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】メフディ・ミルザ・モハンマディ
(72)【発明者】
【氏名】アーサー・クレメント・ゲーズ
(72)【発明者】
【氏名】カロル・グレゴール
(72)【発明者】
【氏名】リシャブ・カブラ
【審査官】久保 光宏
(56)【参考文献】
【文献】国際公開第2018/071392(WO,A1)
【文献】特表2019-530105(JP,A)
【文献】特表2019-534517(JP,A)
【文献】国際公開第2018/083671(WO,A1)
【文献】「グーグルDeepMindが移動ロボの技術に進出 ディープラーニングでSLAM機能獲得、Street View利用」,NIKKEI Robotics(日経Robotics),日本,日経BP社,2017年10月10日,No.28(2017年11月号),第5~12頁,ISSN: 2189-5783.
【文献】グェン アン トゥアン(外2名),「人とロボットの協働に向けた意図の生成と共有のモデル化」,人工知能学会第31回全国大会論文集,セッションID:2G1-2,日本,一般社団法人 人工知能学会,2017年,全4頁,[令和4年3月15日検索],インターネット,<URL: https://doi.org/10.11517/pjsai.JSAI2017.0_2G12>.
【文献】JX Wang, et al.,"LEARNING TO REINFORCEMENT LEARN",arXiv:1611.05763v3,version v3,[online], arXiv (Cornell University),2017年01月23日,Pages 1-17,[令和4年3月13日検索], インターネット, <URL: https://arxiv.org/abs/1611.05763v3>.
【文献】Piotr Mirowski, et al.,"LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS",arXiv:1611.03673v3,version v3,[online], arXiv (Cornell University),2017年01月13日,本文11頁及び"Supplementary Material"5頁,[令和4年3月15日検索], インターネット, <URL: https://arxiv.org/abs/1611.03673v3>.
【文献】新妻 純(外1名),「畳み込みニューラルネットワークを用いた過去の履歴を考慮した強化学習」,情報処理学会第79回全国大会講演論文集,第2分冊,日本,一般社団法人 情報処理学会,2017年03月16日,第2-211~2-212頁.
【文献】Rouhollah Rahmatizadeh, et al.,"From Virtual Demonstration to Real-World Manipulation Using LSTM and MDN",arXiv:1603.03833v4,version v4,[online], arXiv (Cornell University),2017年11月22日,全9頁,[令和4年3月13日検索], インターネット, <URL: https://arxiv.org/abs/1603.03833v4>.
(58)【調査した分野】(Int.Cl.,DB名)
G06N3/00-99/00
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
環境とインタラクションを行うエージェントを制御するためのシステムであって、1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに制御ニューラルネットワークシステムを実施させる命令を記憶する1つまたは複数の記憶デバイスとを備え、前記制御ニューラルネットワークシステムは、
スタック中に順次配置された複数の畳み込みLSTMニューラルネットワーク層を備える畳み込み長/短期メモリ(LSTM)ニューラルネットワークであって、
前記畳み込みLSTMニューラルネットワークは、複数の時間ステップの各々において、前記時間ステップにおける前記環境の状態を特徴づける観測データの表現を受信することと、(i)前記表現および(ii)前記時間ステップの時点での前記畳み込みLSTMニューラルネットワークの状態を処理して、(iii)前記時間ステップに対する最終LSTM隠れ状態出力を生成することと、(iv)前記時間ステップについて前記畳み込みLSTMニューラルネットワークの前記状態を更新することと
をするように構成される、畳み込み長/短期メモリ(LSTM)ニューラルネットワークと、
前記複数の時間ステップの各々において、前記時間ステップに対する前記最終LSTM隠れ状態出力を含むアクション選択入力を受信することと、前記アクション選択入力を処理して
、前記時間ステップにおいて前記エージェントによって実施されるべきアクションを
選択するのに使用されるアクション選択出力を生成することとを
行うように構成されるアクション選択ニューラルネットワークと
を備える、システム。
【請求項2】
前記時間ステップの時点での前記状態は、前記スタック中の各畳み込みLSTM層についてのそれぞれのセル状態およびそれぞれの隠れ状態を含み、前記時間ステップに対する前記最終LSTM隠れ状態出力は、前記時間ステップに対する前記更新された状態での、前記スタック中の最後の畳み込みLSTM層の前記隠れ状態である、請求項1に記載のシステム。
【請求項3】
前記畳み込みLSTMニューラルネットワークは、各時間ステップに対するN個のティックに対して処理を行うように構成され、Nは1よりも大きく、前記処理は、前記N個のティックの各々に対して、
(i)前記表現および(ii)前記ティックの時点での前記畳み込みLSTMニューラルネットワークの状態を処理して、前記ティックについて前記畳み込みLSTMニューラルネットワークの前記状態を更新することを含む、請求項2に記載のシステム。
【請求項4】
前記時間ステップに対する前記最終LSTM隠れ状態出力は、前記時間ステップに対するN個目のティックの後の、前記スタック中の最後の畳み込みLSTM層の前記隠れ状態であり、前記時間ステップに対する、前記畳み込みLSTMニューラルネットワークの前記更新された状態は、前記時間ステップに対するN個目のティックの後の、前記畳み込みLSTMニューラルネットワークの前記更新された状態である、請求項3に記載のシステム。
【請求項5】
前記時間ステップに対する前記N個のティックのうちの最初のティックの時点での、前記畳み込みLSTMニューラルネットワークの前記状態は、先行する時間ステップに対する、前記畳み込みLSTMニューラルネットワークの前記更新された状態である、請求項3または4のいずれか一項に記載のシステム。
【請求項6】
前記スタック中の各畳み込みLSTMニューラルネットワーク層は、前記N個のティックの各々において、
前記ティックに対する層入力を処理して、前記ティックの時点での前記畳み込みLSTMニューラルネットワーク層の前記セル状態および前記隠れ状態を更新するように構成される、請求項5に記載のシステム。
【請求項7】
前記スタック中の最初の層以外の特定の畳み込みLSTMニューラルネットワーク層の各々に対する前記ティックに対する前記層入力は、前記スタック中の前記特定の層の直前の層の前記ティックについての前記更新された隠れ状態を含む、請求項6に記載のシステム。
【請求項8】
前記スタック中の各層に対する前記ティックに対する前記層入力は、前記時間ステップについての前記表現を含む、請求項6または7のいずれか一項に記載のシステム。
【請求項9】
前記N個のティックのうちの最初のティック以外の各ティックに対して、前記スタック中の最初の層に対する前記ティックに対する前記層入力は、先行するティックに対する、前記スタック中の最後の層の前記更新された隠れ状態を含む、請求項6から8のいずれか一項に記載のシステム。
【請求項10】
前記N個のティックのうちの最初のティックに対して、前記スタック中の最初の層に対する前記ティックに対する前記層入力は、前記先行する時間ステップに対する、前記スタック中の最後の層の前記更新された隠れ状態を含む、請求項9に記載のシステム。
【請求項11】
前記畳み込みLSTMニューラルネットワークは、各ティックに対して、および各畳み込みLSTM層に対して、
前記時間ステップに対する前記畳み込みLSTM層の前記更新された隠れ状態の各チャネル次元に対して、
1つまたは複数のプーリング動作を空間的に適用して、前記チャネル次元に対する1つまたは複数のプールされた出力を生成することと、
前記畳み込みLSTM層に対応する線形層を使って、前記プールされた出力を投影して、投影された出力を生成することと、
前記投影された出力を空間にタイリングして、サマリテンソルを生成することと
をするようにさらに構成され、
前記ティックに対する前記スタック中の各畳み込みLSTM層に対する前記層入力は、前記先行するティックに対する前記畳み込みLSTM層についての前記サマリテンソル、または、前記ティックが、前記時間ステップに対する最初のティックである場合、前記先行する時間ステップに対するN個目のティックに対する、前記畳み込みLSTM層についての前記サマリテンソルを含む、請求項6から10のいずれか一項に記載のシステム。
【請求項12】
前記1つまたは複数のプーリング動作は、最大プーリング動作、平均プーリング動作、または両方を含む、請求項11に記載のシステム。
【請求項13】
前記畳み込みLSTMニューラルネットワークは、畳み込み演算子への入力テンソルの境界を指定する特徴マップを、前記スタック中の前記畳み込みLSTM層に対する畳み込み演算子の入力に付加するように構成される、請求項1から12のいずれか一項に記載のシステム。
【請求項14】
前記アクション選択入力は、前記時間ステップについての前記表現をさらに含む、請求項1から13のいずれか一項に記載のシステム。
【請求項15】
前記制御ニューラルネットワークシステムは、
前記複数の時間ステップの各々において、前記時間ステップにおける前記環境の前記状態を特徴づける前記観測データを処理して、前記時間ステップに対する前記観測データの前記表現を生成するように構成されたエンコーダニューラルネットワークをさらに備える、請求項1から14のいずれか一項に記載のシステム。
【請求項16】
前記観測データは前記環境の画像を含み、前記エンコーダニューラルネットワークは1つまたは複数の畳み込み層を備える、請求項15に記載のシステム。
【請求項17】
前記アクション選択ニューラルネットワークは1つまたは複数の全結合層を備える、請求項1から16のいずれか一項に記載のシステム。
【請求項18】
前記表現はH×W×Cテンソルであり、前記畳み込みLSTMニューラルネットワークの前記状態および前記最終LSTM隠れ状態出力は前記表現の空間次元を保つ、請求項1から17のいずれか一項に記載のシステム。
【請求項19】
1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項1から18のいずれか一項に記載の制御ニューラルネットワークシステムを実施させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【請求項20】
環境とインタラクションを行うエージェントを制御するための方法であって、複数の時間ステップの各々において、
前記時間ステップにおける前記環境の状態を特徴づける観測データの表現を取得するステップと、
スタック中に順次配置された複数の畳み込みLSTMニューラルネットワーク層を備える畳み込み長/短期メモリ(LSTM)ニューラルネットワークを使って、前記表現を処理するステップであって、
前記畳み込みLSTMニューラルネットワークは、前記時間ステップにおける前記環境の前記状態を特徴づける前記観測データの前記表現を受信することと、(i)前記表現および(ii)前記時間ステップの時点での前記畳み込みLSTMニューラルネットワークの状態を処理して、(iii)前記時間ステップに対する最終LSTM隠れ状態出力を生成することと、(iv)前記時間ステップについて前記畳み込みLSTMニューラルネットワークの前記状態を更新することと
をするように構成される、ステップと、
アクション選択入力を受信することと、前記アクション選択入力を処理して
、前記時間ステップにおいて前記エージェントによって実施されるべきアクションを
選択するのに使用されるアクション選択出力を生成することとを
行うように構成されるアクション選択ニューラルネットワークを使って、前記時間ステップに対する前記最終LSTM隠れ状態出力を含む前記アクション選択入力を処理するステップと、
前
記アクション選択出力から、前記時間ステップにおいて前記エージェントによって実施されるべき前記アクションを選択するステップと、
前記エージェントに、前記選択されたアクションを実施させるステップと
を含む、方法。
【請求項21】
前記時間ステップの時点での前記状態は、前記スタック中の各畳み込みLSTM層についてのそれぞれのセル状態およびそれぞれの隠れ状態を含み、前記時間ステップに対する前記最終LSTM隠れ状態出力は、前記時間ステップに対する前記更新された状態での、前記スタック中の最後の畳み込みLSTM層の前記隠れ状態である、請求項20に記載の方法。
【請求項22】
前記畳み込みLSTMニューラルネットワークは、各時間ステップに対するN個のティックに対して処理を行うように構成され、Nは1よりも大きく、前記処理は、前記N個のティックの各々に対して、
(i)前記表現および(ii)前記ティックの時点での前記畳み込みLSTMニューラルネットワークの状態を処理して、前記ティックについて前記畳み込みLSTMニューラルネットワークの前記状態を更新することを含む、請求項21に記載の方法。
【請求項23】
前記時間ステップに対する前記最終LSTM隠れ状態出力は、前記時間ステップに対するN個目のティックの後の、前記スタック中の最後の畳み込みLSTM層の前記隠れ状態であり、前記時間ステップに対する、前記畳み込みLSTMニューラルネットワークの前記更新された状態は、前記時間ステップに対するN個目のティックの後の、前記畳み込みLSTMニューラルネットワークの前記更新された状態である、請求項22に記載の方法。
【請求項24】
前記時間ステップに対する前記N個のティックのうちの最初のティックの時点での、前記畳み込みLSTMニューラルネットワークの前記状態は、先行する時間ステップに対する、前記畳み込みLSTMニューラルネットワークの前記更新された状態である、請求項22または23のいずれか一項に記載の方法。
【請求項25】
前記スタック中の各畳み込みLSTMニューラルネットワーク層は、前記N個のティックの各々において、
前記ティックに対する層入力を処理して、前記ティックの時点での前記畳み込みLSTMニューラルネットワーク層の前記セル状態および前記隠れ状態を更新するように構成される、請求項22から24のいずれか一項に記載の方法。
【請求項26】
前記スタック中の最初の層以外の特定の畳み込みLSTMニューラルネットワーク層の各々に対する前記ティックに対する前記層入力は、前記スタック中の前記特定の層の直前の層の前記ティックについての前記更新された隠れ状態を含む、請求項25に記載の方法。
【請求項27】
前記スタック中の各層に対する前記ティックに対する前記層入力は、前記時間ステップについての前記表現を含む、請求項25または26のいずれか一項に記載の方法。
【請求項28】
前記N個のティックのうちの最初のティック以外の各ティックに対して、前記スタック中の最初の層に対する前記ティックに対する前記層入力は、先行するティックに対する、前記スタック中の最後の層の前記更新された隠れ状態を含む、請求項25から27のいずれか一項に記載の方法。
【請求項29】
前記N個のティックのうちの最初のティックに対して、前記スタック中の最初の層に対する前記ティックに対する前記層入力は、前記先行する時間ステップに対する、前記スタック中の最後の層の前記更新された隠れ状態を含む、請求項28に記載の方法。
【請求項30】
前記畳み込みLSTMニューラルネットワークは、各ティックに対して、および各畳み込みLSTM層に対して、
前記時間ステップに対する前記畳み込みLSTM層の前記更新された隠れ状態の各チャネル次元に対して、
1つまたは複数のプーリング動作を空間的に適用して、前記チャネル次元に対する1つまたは複数のプールされた出力を生成することと、
前記畳み込みLSTM層に対応する線形層を使って、前記プールされた出力を投影して、投影された出力を生成することと、
前記投影された出力を空間にタイリングして、サマリテンソルを生成することと
をするようにさらに構成され、
前記ティックに対する前記スタック中の各畳み込みLSTM層に対する前記層入力は、先行するティックに対する前記畳み込みLSTM層についての前記サマリテンソル、または、前記ティックが、前記時間ステップに対する最初のティックである場合、前記先行する時間ステップに対するN個目のティックに対する、前記畳み込みLSTM層についての前記サマリテンソルを含む、請求項25から29のいずれか一項に記載の方法。
【請求項31】
前記1つまたは複数のプーリング動作は、最大プーリング動作、平均プーリング動作、または両方を含む、請求項30に記載の方法。
【請求項32】
前記畳み込みLSTMニューラルネットワークは、畳み込み演算子への入力テンソルの境界を指定する特徴マップを、前記スタック中の前記畳み込みLSTM層に対する畳み込み演算子の入力に付加するように構成される、請求項20から31のいずれか一項に記載の方法。
【請求項33】
前記アクション選択入力は、前記時間ステップについての前記表現をさらに含む、請求項20から32のいずれか一項に記載の方法。
【請求項34】
前記表現を取得するステップは、
前記時間ステップにおける前記環境の前記状態を特徴づける前記観測データを処理して、前記時間ステップに対する前記観測データの前記表現を生成するように構成されたエンコーダニューラルネットワークを使って、前記観測データを処理するステップを含む、請求項20から33のいずれか一項に記載の方法。
【請求項35】
前記観測データは前記環境の画像を含み、前記エンコーダニューラルネットワークは1つまたは複数の畳み込み層を備える、請求項34に記載の方法。
【請求項36】
前記アクション選択ニューラルネットワークは1つまたは複数の全結合層を備える、請求項20から35のいずれか一項に記載の方法。
【請求項37】
前記表現はH×W×Cテンソルであり、前記畳み込みLSTMニューラルネットワークの前記状態および前記最終LSTM隠れ状態出力は前記表現の空間次元を保つ、請求項20から36のいずれか一項に記載の方法。
【請求項38】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項20から37のいずれか一項に記載の方法を実施させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【請求項39】
1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項20から37のいずれか一項に記載の方法を実施させる命令を記憶する1つまたは複数の記憶デバイスとを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、強化学習に関する。
【背景技術】
【0002】
強化学習システムでは、エージェントが、環境の現在の状態を特徴づける観測データ(observation)を受信したことに応答して、強化学習システムによって選択されるアクションを実施することによって、環境とインタラクションを行う。
【0003】
いくつかの強化学習システムが、ニューラルネットワークの出力に従って、所与の観測データを受信したことに応答して、エージェントによって実施されるべきアクションを選択する。
【0004】
ニューラルネットワークは、受信された入力に対する出力を予測するために、非線形ユニットの1つまたは複数の層を利用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加え、1つまたは複数の隠れ層を含むディープニューラルネットワークである。各隠れ層の出力は、ネットワーク中の次の層、すなわち、次の隠れ層または出力層への入力として使われる。ネットワークの各層が、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0005】
【文献】Mnih, V.、Badia, A. P.、Mirza, M.、Graves, A.、Lillicrap, T.、Harley, T.、Silver, D.、およびKavukcuoglu, K. Asynchronous methods for deep reinforcement learning.、International conference on machine learning、1928~1937ページ、2016年
【文献】Espeholt, L.、Soyer, H.、Munos, R.、Simonyan, K.、Mnih, V.、Ward, T.、Doron, Y.、Firoiu, V.、Harley, T.、Dunning, I.ら、Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures. arXiv preprint arXiv:1802.01561、2018年
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は概して、環境とインタラクションを行うエージェントを制御する強化学習システムについて記載する。
【0007】
具体的には、強化学習システムは制御ニューラルネットワークシステムを含み、このシステムは、少なくとも畳み込み長/短期メモリ(convLSTM)ニューラルネットワークおよびアクション選択ニューラルネットワークを含む。convLSTMニューラルネットワークは、スタック中に順次配置された複数のconvLSTMニューラルネットワーク層を含む。
【0008】
1つの発明的態様では、環境とインタラクションを行うエージェントを制御するためのシステムが記載され、システムは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると1つまたは複数のコンピュータに制御ニューラルネットワークシステムを実施させる命令を記憶する1つまたは複数の記憶デバイスとを備える。
【0009】
制御ニューラルネットワークシステムは、スタック中に順次配置された複数の畳み込みLSTMニューラルネットワーク層を備える畳み込み長/短期メモリ(LSTM)ニューラルネットワークを含み得る。畳み込みLSTMニューラルネットワークは、複数の時間ステップの各々において、時間ステップにおける環境の状態を特徴づける観測データの表現を受信し、(i)表現および(ii)時間ステップの時点での畳み込みLSTMニューラルネットワークの状態を処理して、(iii)時間ステップに対する最終LSTM隠れ状態出力を生成し、(iv)時間ステップについて畳み込みLSTMニューラルネットワークの状態を更新するように構成され得る。制御ニューラルネットワークシステムは、複数の時間ステップの各々において、時間ステップに対する最終LSTM隠れ状態出力を含むアクション選択入力を受信し、アクション選択入力を処理して、アクション選択ポリシーに従って、時間ステップにおいてエージェントによって実施されるべきアクションを定義するアクション選択出力を生成するように構成されるアクション選択ニューラルネットワークをさらに含み得る。
【0010】
いくつかの実施形態では、時間ステップの時点での状態は、スタック中の各畳み込みLSTM層についてのそれぞれのセル状態およびそれぞれの隠れ状態を含む。時間ステップに対する最終LSTM隠れ状態出力は、時間ステップに対する更新された状態での、スタック中の最後の畳み込みLSTM層の隠れ状態を含み得る。
【0011】
convLSTM層構造は、ネットワーク内で空間情報を保つのを助けることができ、繰り返しconvLSTM層は、システム内の複数の異なるレベルでのシーケンス処理を容易にすることができ、したがって、たとえば、組合せおよび/または手続き側面を有するので、通常は計画を要求するタスクを容易にする。したがって、拡張時間期間にわたる空間情報の記憶を可能にし得るconvLSTMベースの処理と、システム内のレベルの階層におけるそのような情報のシーケンスの処理の組合せは、システム内の環境の明示的モデルを含む必要なく、計画を要求することが期待されるタイプの難しい強化学習問題を解決することを学習することが特に得意な相乗的組合せをもたらし得る。
【0012】
いくつかの実施形態では、畳み込みLSTMニューラルネットワークは、各時間ステップに対するN個のティックに対して処理を行うように構成されてよく、Nは1よりも大きい。処理は、N個のティックの各々に対して、(i)表現および(ii)ティックの時点での畳み込みLSTMニューラルネットワークの状態を処理して、ティックについて畳み込みLSTMニューラルネットワークの状態を更新することを含み得る。時間ステップに対する最終LSTM隠れ状態出力は、時間ステップに対するN個目のティックの後の、スタック中の最後の畳み込みLSTM層の隠れ状態を含み得る。時間ステップに対する、畳み込みLSTMニューラルネットワークの更新された状態は、時間ステップに対するN個目のティックの後の、畳み込みLSTMニューラルネットワークの更新された状態を含み得る。時間ステップに対するN個のティックのうちの最初のティックの時点での、畳み込みLSTMニューラルネットワークの状態は、先行する時間ステップに対する、畳み込みLSTMニューラルネットワークの更新された状態を含み得る。
【0013】
この手法は、複数の時間ステップにわたる計画を通常要求するが、追加時間ステップ間隔、すなわち、システムがアクションをとる前に計画することが可能であり得るティックを提供する、タスクの実施を容易にし得る。
【0014】
いくつかの実施形態では、スタック中の各畳み込みLSTMニューラルネットワーク層は、N個のティックの各々において、ティックに対する層入力を処理して、ティックの時点での畳み込みLSTMニューラルネットワーク層のセル状態および隠れ状態を更新するように構成され得る。スタック中の最初の層以外の特定の畳み込みLSTMニューラルネットワーク層の各々に対するティックに対する層入力は、スタック中の特定の層の直前の層のティックについての更新された隠れ状態を含み得る。スタック中の各層に対するティックに対する層入力は、時間ステップについての表現を含み得る。N個のティックのうちの最初のティック以外の各ティックに対して、スタック中の最初の層に対するティックに対する層入力は、先行するティックに対する、スタック中の最後の層の更新された隠れ状態を含み得る。N個のティックのうちの最初のティックに対して、スタック中の最初の層に対するティックに対する層入力は、先行する時間ステップに対する、スタック中の最後の層の更新された隠れ状態を含み得る。これにより、アクションをとる前に、複数のティックにわたる計画から利益を得ることができるであろうタスクを実施することがさらに容易になり得る。
【0015】
いくつかの実施形態では、畳み込みLSTMニューラルネットワークは、各ティックに対して、および各畳み込みLSTM層に対して、時間ステップに対する層の更新された隠れ状態の各チャネル次元に対して、1つまたは複数のプーリング動作を空間的に適用して、チャネル次元に対する1つまたは複数のプールされた出力を生成するための動作と、畳み込みLSTM層に対応する線形層を使って、プールされた出力を投影して、投影された出力を生成するための動作と、投影された出力を空間にタイリングして、サマリテンソルを生成するための動作とを実施するようにさらに構成される。ティックに対するスタック中の各層に対する層入力は、先行するティックに対する層についてのサマリテンソル、または、ティックが、時間ステップに対する最初のティックである場合、先行する時間ステップに対するN個目のティックに対する、層についてのサマリテンソルを含み得る。1つまたは複数のプーリング動作は、最大プーリング動作、平均プーリング動作、または両方を含む。これは、情報がシステムの中をより速く伝搬するのを助けることができ、したがって、より速い応答が望ましいタスクの実施を改善することができ、かつ/またはタスクのより速い学習を容易にすることができる。
【0016】
いくつかの実施形態では、畳み込みLSTMニューラルネットワークは、畳み込み演算子への入力テンソルの境界を指定する特徴マップを、スタック中の畳み込みLSTM層に対する畳み込み演算子の入力に付加するように構成され得る。これは、観測データが画像を含み、境界が画像のエッジを画定するとき、タスクを実施するためのシステム学習を容易にし得る。
【0017】
いくつかの実施形態では、アクション選択入力は、時間ステップについての表現をさらに含み得る。
【0018】
ニューラルネットワークシステムは、複数の時間ステップの各々において、時間ステップにおける環境の状態を特徴づける観測データを処理して、時間ステップに対する観測データの表現を生成するように構成されたエンコーダニューラルネットワークをさらに備え得る。観測データは環境の画像を含むことができ、エンコーダニューラルネットワークは、1つまたは複数の畳み込み層を備えることができる。アクション選択ニューラルネットワークは、1つまたは複数の全結合層を備える。
【0019】
いくつかの実施形態では、表現は、H×W×Cテンソルを含む。畳み込みLSTMニューラルネットワークの状態および最終LSTM隠れ状態出力は、表現の空間次元を保つことができる。
【0020】
環境とインタラクションを行うエージェントを制御するための方法についても記載する。この方法は、複数の時間ステップの各々において、時間ステップにおける環境の状態を特徴づける観測データの表現を取得するステップを含み得る。方法は、各時間ステップにおいて、スタック中に順次配置された複数の畳み込みLSTMニューラルネットワーク層を備える畳み込み長/短期メモリ(LSTM)ニューラルネットワークを使って、表現を処理するステップをさらに含み得る。畳み込みLSTMニューラルネットワークは、時間ステップにおける環境の状態を特徴づける観測データの表現を受信し、(i)表現および(ii)時間ステップの時点での畳み込みLSTMニューラルネットワークの状態を処理して、(iii)時間ステップに対する最終LSTM隠れ状態出力を生成し、(iv)時間ステップについて畳み込みLSTMニューラルネットワークの状態を更新するように構成され得る。方法は、各時間ステップにおいて、アクション選択入力を受信し、アクション選択入力を処理して、アクション選択ポリシーに従って、時間ステップにおいてエージェントによって実施されるべきアクションを定義するアクション選択出力を生成するように構成されるアクション選択ニューラルネットワークを使って、時間ステップに対する最終LSTM隠れ状態出力を含むアクション選択入力を処理するステップをさらに含み得る。方法は、各時間ステップにおいて、アクション選択ポリシーに従って、アクション選択出力から、時間ステップにおいてエージェントによって実施されるべきアクションを選択するステップをさらに含み得る。方法は、エージェントに、各時間ステップにおいて、選択されたアクションを実施させるステップをさらに含み得る。
【0021】
方法のさらなる特徴は、制御ニューラルネットワークシステムについて前に記載したものに対応し得る。
【0022】
本明細書に記載する本主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施され得る。
【0023】
記載するニューラルネットワークシステムは、大容量であるとともに、反復計算を奨励するアーキテクチャを有する。そのようなアーキテクチャによって提供される容量増大は、以前は、強化学習タスクにおいて高性能を達成するのに有害であると思われていたが、それは、そのようなニューラルネットワークは、トレーニングするのが難しく、トレーニングデータへの過剰適合、および経験の単なる記憶である傾向が比較的あると思われていて、トレーニング後の汎化が不十分だからである。したがって、そのようなアーキテクチャは、エージェントの制御を伴う強化学習タスク用にはこれまで軽視されていた。
【0024】
ただし、記載するニューラルネットワークシステムが、convLSTMニューラルネットワーク層のスタックを通して2D空間における循環と、(時間ステップ内の複数のティックのための処理によって)所与の時間ステップ内でその循環の反復とを利用する方式により、記載するシステムは、計画を要求するタスク、限られた量のトレーニングデータを有するタスク、または両方に対して特に、高性能を呈する。さらに、記載するシステムは、「学習された思案(learned pondering)」を呈し、各々が固定計算コストをもつ複数のステップにわたって、難しい決定、すなわち、難しいアクション選択を償却(amortize)する。より全般的には、当業者の従来の期待とは反対に、記載するニューラルネットワークシステムの「過剰柔軟性」(または高計算性)は、不十分な性能(たとえば、過剰適合または比較的最適化しにくいこと)を生じず、代わりに、いくつかの異なるエージェント制御タスクに対する最新の性能を生じる。
【0025】
本明細書において説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0026】
【
図2】2つの時間ステップに対する、制御ニューラルネットワークの処理の例を示す図である。
【
図3】アクションを選択するための例示的プロセスの流れ図である。
【
図4】計画を要求するタスクに対する、他の、従来のシステムの性能と比較した、記載するシステムの性能を示す図である。
【発明を実施するための形態】
【0027】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0028】
本明細書は、複数の時間ステップの各々において、時間ステップにおける環境の現在の状態(すなわち、「観測データ」)を特徴づけるデータを処理することによって、環境とインタラクションを行うエージェントを、エージェントによって実施されるべきアクションを選択するように制御する強化学習システムについて記載する。
【0029】
各時間ステップにおいて、時間ステップにおける環境の状態は、前の時間ステップにおける環境の状態と、前の時間ステップにおいてエージェントによって実施されるアクションとに依存する。
【0030】
いくつかの実施形態では、環境は現実世界環境であり、エージェントは、現実世界環境とインタラクションを行う機械エージェント、たとえば、ロボットまたは環境の中をナビゲートする自律もしくは半自律的陸上、空中、もしくは海洋ビークルである。
【0031】
これらの実施形態では、観測データは、たとえば、エージェントが環境とインタラクションを行うと観測データを取り込むための、画像、オブジェクト位置データ、およびセンサーデータ、たとえば画像、距離、もしくは位置センサーから、またはアクチュエータからのセンサーデータのうちの1つまたは複数を含み得る。
【0032】
たとえば、ロボットのケースでは、観測データは、ロボットの現在の状態を特徴づけるデータ、たとえば、関節位置、関節速度、関節力、トルクまたは加速度、たとえば、重力補償トルクフィードバック、およびロボットによってとられる、部材の大域または相対姿勢のうちの1つまたは複数を含み得る。
【0033】
ロボットまたは他の機械エージェントまたはビークルのケースでは、観測データは、同様に、位置、線形または角速度、力、トルクまたは加速度、およびエージェントの1つまたは複数の部分の大域または相対姿勢のうちの1つまたは複数を含み得る。観測データは、1、2または3次元で定義されてよく、絶対的および/または相対的観測データであってよい。
【0034】
観測データは、たとえば、モータ電流もしくは温度信号など、検知された電子信号、および/または、たとえばカメラもしくはLIDARセンサーからの画像もしくはビデオデータ、たとえば、エージェントのセンサーからのデータもしくは環境中でエージェントとは別個に置かれたセンサーからのデータも含み得る。
【0035】
これらの実施形態では、アクションは、ロボットを、たとえば、ロボットの関節についてのトルクを制御するための制御入力もしくは高度制御コマンド、または自律もしくは半自律的陸上、空中、海洋ビークル、たとえば、ビークルの制御面または他の制御要素へのトルクもしくは高度制御コマンドであってよい。
【0036】
言い換えると、アクションは、たとえば、ロボットの1つもしくは複数の関節または別の機械エージェントの部品についての位置、速度、または力/トルク/加速度データを含み得る。アクションデータは、追加または代替として、モータ制御データなどの電子制御データ、またはより全般的には、環境の観察される状態に対してその制御が影響を有する環境内の1つもしくは複数の電子デバイスを制御するためのデータを含み得る。たとえば、自律または半自律的陸上または空中または海洋ビークルのケースでは、アクションは、ナビゲート、たとえばステアリング、ならびに動き、たとえば、ビークルの制動および/または加速度を制御するためのアクションを含み得る。
【0037】
電子エージェントのケースでは、観測データは、電流、電圧、電力、温度および他のセンサーなど、施設もしくはサービス設備の部分を監視する1つもしくは複数のセンサーからのデータならびに/または機器の電子および/もしくは機械的部材が機能していることを表す電子信号を含み得る。たとえば、現実世界環境は製造施設またはサービス設備であってよく、観測データは、施設または設備の動作に、たとえば、電力消費などのリソース使用に関してよく、エージェントは、施設/設備におけるアクションまたは動作を、たとえば、リソース使用を削減するように制御してよい。いくつかの他の実施形態では、現実世界環境は再生可能エネルギー施設であってよく、観測データは、たとえば、現在または将来の計画される電力生成を最大限にするための、施設の動作に関してよく、エージェントは、これを遂行するように、施設におけるアクションまたは動作を制御すればよい。
【0038】
いくつかの他のアプリケーションでは、エージェントは、機器の部材を含む現実世界環境における、たとえば、データセンタにおける、電力/水分配システムにおける、または製造施設もしくはサービス設備におけるアクションを制御することができる。その場合、観測データは、施設または設備の動作に関し得る。たとえば観測データは、機器による電力もしくは水使用の観測データ、または電力生成もしくは分配制御の観測データ、またはリソースの使用の、もしくは廃棄物産出の観測データを含み得る。アクションは、施設/設備の機器の部材に対する動作条件を制御するか、もしくは動作条件を課すアクション、および/または、たとえば、施設/設備の構成要素を調節もしくはオン/オフにするための、施設/設備の動作の設定への変更をもたらすアクションを含み得る。
【0039】
別の例として、環境は、化学合成またはタンパク質折り畳み環境であってよく、そうであることによって、各状態は、タンパク鎖の、または1つもしくは複数の中間物もしくは化学的前駆体のそれぞれの状態であり、エージェントは、どのようにタンパク鎖を折り畳み、または化学物質を合成するかを判断するためのコンピュータシステムである。この例では、アクションは、タンパク鎖を折り畳むための、可能な折り畳みアクションまたは化学的前駆体/中間物を集めるためのアクションであり、達成されるべき結果は、たとえば、タンパク質が安定するように、および特定の生物学的機能を遂行するようにタンパク質を折り畳むこと、または化学物質のための有効な合成経路を提供することを含み得る。別の例として、エージェントは、人間とのインタラクションなしで自動的にシステムによって選択されたタンパク質折り畳みアクションまたは化学合成ステップを実施または制御する機械エージェントであってよい。観測データは、タンパク質もしくは化学物質/中間物/前駆体の状態の直接もしくは間接的観測データを含んでよく、かつ/またはシミュレーションから導出されてよい。
【0040】
いくつかの実施形態では、環境は、シミュレートされた環境であってよく、エージェントは、シミュレートされた環境とインタラクションを行う1つまたは複数のコンピュータとして実施されてよい。
【0041】
シミュレートされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションであってよく、エージェントは、運動シミュレーションを通してナビゲートする、シミュレートされたビークルであってよい。これらの実施形態では、アクションは、シミュレートされたユーザまたはシミュレートされたビークルを制御するための制御入力であってよい。
【0042】
いくつかの実施形態では、シミュレートされた環境は、特定の現実世界環境のシミュレーションであってよい。たとえば、システムは、制御ニューラルネットワークのトレーニングまたは評価中に、シミュレートされた環境におけるアクションを選択するのに使われてよく、トレーニングもしくは評価または両方が完了した後、シミュレートされた環境によってシミュレートされる現実世界環境において現実世界エージェントを制御するために展開されてよい。こうすることによって、現実世界環境または現実世界エージェントの不必要な摩滅および損傷を回避することができ、制御ニューラルネットワークを、現実世界環境においてめったに起こらないか、または作成し直しにくい状況においてトレーニングおよび評価させることができる。
【0043】
概して、シミュレートされた環境のケースでは、観測データは、前に記述された観測データまたは観測データタイプのうちの1つまたは複数の、シミュレートされたバージョンを含んでよく、アクションは、前に記述されたアクションまたはアクションタイプのうちの1つまたは複数の、シミュレートされたバージョンを含み得る。
【0044】
図1は、例示的強化学習システム100を示す。強化学習システム100は、以下で説明するシステム、構成要素、および技法が実施される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実施されるシステムの例である。
【0045】
システム100は、エージェント102によって実施されるべきアクション106を選択し、次いで、エージェント102に、選択されたアクション106を実施させることによって、環境104とインタラクションを行うエージェント102を制御する。
【0046】
エージェント102による、選択されたアクション106の実施は概して、環境104を、新たな状態に遷移させる。繰り返し、エージェント102を環境104において作用させることによって、システム100は、エージェント102を、指定されたタスクを完了するように制御することができる。
【0047】
システム100は、制御ニューラルネットワークシステム110と、トレーニングエンジン150と、制御ニューラルネットワーク110のモデルパラメータ118のセットを記憶する1つまたは複数のメモリとを含む。
【0048】
複数の時間ステップの各々において、制御ニューラルネットワーク110は、環境104の現在の状態を特徴づける現在の観測データ120を含む入力を、モデルパラメータ118に従って処理して、アクション選択出力122を生成するように構成される。
【0049】
システム100は、エージェントを制御するのに、すなわち、アクション選択ポリシーに従って、現在の時間ステップにおいてエージェントによって実施されるべきアクション106を選択するのに、アクション選択出力122を使う。
【0050】
エージェントによって実施されるべきアクション106を選択するのにアクション選択出力122を使ういくつかの例について、次に記述する。
【0051】
一例では、アクション選択出力122は、エージェントによって実施されるべき可能アクションにわたる確率分布を定義する。たとえば、アクション選択出力は、環境とインタラクションを行うためにエージェントによって実施することができる可能アクションのセットの中の各アクションについてのそれぞれのアクション確率を含み得る。別の例では、アクション選択出力122は、可能アクションのセットにわたる分布のパラメータを含み得る。システム100は、様々なアクション選択ポリシーのうちのどれを使っても、たとえば、アクションについての確率値に従ってアクションをサンプリングすることによって、または最高確率値をもつアクションを選択することによって、アクション選択出力122に基づいて、エージェントによって実施されるべきアクションを選択することができる。
【0052】
別の例では、アクション選択出力122は、観測データに応答して、エージェントによって実施されるべき可能アクションのセットから最適アクションを識別する。たとえば、機械エージェントを制御するケースでは、アクション選択出力は、機械エージェントの1つまたは複数の関節に適用されるべきトルクを識別することができる。システム100は、様々なアクション選択ポリシーのうちのどれを使っても、たとえば、識別された最適アクションを選択することによって、または探索を奨励するために最適アクションにノイズを加え、ノイズ追加アクションを選択することによって、アクション選択出力122に基づいて、エージェントによって実施されるべきアクションを選択することができる。
【0053】
別の例では、アクション選択出力122は、エージェントによって実施することができる可能アクションのセットの中の各アクションについてのそれぞれのQ値を含み得る。
【0054】
アクションについてのQ値は、現在の観測データ120に応答してエージェントがアクションを実施し、その後、制御ニューラルネットワークパラメータの現在の値に従ってエージェント102によって実施される将来のアクションを選択することから生じるであろう「戻り」の推定値である。
【0055】
戻りとは、エージェントによって受信された「報酬」124の累積測度、たとえば、報酬の時間割引(time-discounted)合計を指す。エージェントは、各時間ステップにおいてそれぞれの報酬124を受信することができ、報酬124は、スカラー数値によって指定され、たとえば、割り当てられたタスクの完了までのエージェントの進行を特徴づける。
【0056】
システム100は、様々なアクション選択ポリシーのうちのどれを使っても、たとえば、最も高いQ値をもつアクションを選択することによって、またはQ値を確率にマップし、確率に従ってアクションをサンプリングすることによって、アクション選択出力122に基づいて、エージェントによって実施されるべきアクションを選択することができる。
【0057】
いくつかのケースでは、システム100は、探索ポリシーに従って、エージェントによって実施されるべきアクションを選択することができる。たとえば、探索ポリシーは、∈貪欲探索ポリシーであってよく、システム100は、確率1-∈をもつアクション選択出力122に従って、エージェントによって実施されるべきアクションを選択し、確率∈をもつアクションをランダムに選択する。この例では、∈は、0と1との間のスカラー値である。
【0058】
いくつかのケースでは、上記のいずれにも加え、アクション選択出力122は、タスクの遂行に成功するために、観測データによって特徴づけられる、現在の状態にあることの値の推定である、すなわち、予測される戻りによる値関数出力も含み得る。
【0059】
制御ニューラルネットワーク110は、少なくとも、畳み込み長/短期メモリ(convLSTM)ニューラルネットワーク114およびアクション選択ニューラルネットワーク116を含む。
【0060】
convLSTMニューラルネットワーク114は、スタック中に順次配置された複数のconvLSTMニューラルネットワーク層を含む。convLSTMニューラルネットワーク層とは、LSTMセル中の各ゲートにおいて、行列乗算を畳み込み演算で置き換えるLSTM層である。したがって、convLSTM層への入力、セル状態、およびconvLSTM層の隠れ状態は各々、3次元テンソルとして表すことができる。
【0061】
LSTM層は、1つまたは複数のゲートおよびメモリセルを各々が有するLSTMユニットを含み得る。多くのLSTM変形体があるが、広義には、1つまたは複数のゲートが、情報を入れること、LSTMユニット中で保持されること、および次の時間ステップのためにLSTMユニットを出るか、または同じ時間ステップにおいて、LSTMユニットから別のニューラルネットワーク構成要素へ出ることのうちの1つまたは複数を制御する。LSTM層は、ゲートの動作を制御する重み行列、たとえば、ゲートへの入力を、出力を生成するように修正するための入力重み行列を学習し得る。convLSTMでは、重み行列は、畳み込み演算のためのカーネルによって置き換えられる。したがって、convLSTM層は、1つまたは複数のゲートと、出力を生成するように層入力を処理するためのメモリセルとを各々が有するconvLSTMユニットを含むニューラルネットワーク層であってよく、1つまたは複数のゲートは各々、ゲートへの入力に対して畳み込み演算を実施して、出力を生成するためのゲートからの出力を判断するように構成される。
【0062】
エージェント102の制御中の各時間ステップにおいて、convLSTMニューラルネットワーク114は、時間ステップにおける環境104の状態を特徴づける観測データ120の表現を受信し、(i)表現および(ii)時間ステップの時点でのconvLSTMニューラルネットワークの状態を処理して、(iii)時間ステップに対する最終LSTM隠れ状態出力を生成し、(iv)時間ステップに対するconvLSTMニューラルネットワークの状態を更新するように構成される。
【0063】
以下でより詳しく説明するように、いくつかの実施形態では、convLSTMニューラルネットワーク114は、時間ステップに対する最終LSTM隠れ状態出力を生成し、(iv)時間ステップに対するconvLSTMニューラルネットワークの状態を更新するために、各時間ステップのための複数の「ティック」に対して処理を行う。ティックとは、本明細書において使う限り、所与の時間ステップにおいて起こる処理の反復である。convLSTMニューラルネットワーク114が、各時間ステップにおける複数のティックに対して処理を行うと、時間ステップにおける観測データに応答して、エージェントによって実施されるべきアクションをシステム100が選択する前に、処理の複数の反復が起こる。これにより、convLSTMニューラルネットワーク114は、各々が固定計算コストをもつ複数の反復にわたって計画決定を償却することができるようになり得る。言い換えると、内部状態を維持し、その内部状態を、エージェントを制御することの一部として、各時間ステップにおいて一回更新するいくつかの従来のシステムとは異なり、convLSTMニューラルネットワーク114は、時間ステップに対してアクション選択出力が生成される前に、どの所与の時間ステップにおいても、状態を複数回(すなわち、複数のティックの各々において一度)更新する。
【0064】
convLSTMニューラルネットワーク114の動作については、
図2および
図3を参照して、以下でより詳しく説明する。
【0065】
アクション選択ニューラルネットワーク116は、時間ステップの各々において、時間ステップに対する最終LSTM隠れ状態出力を含むアクション選択入力を受信し、アクション選択入力を処理して、時間ステップにおいてエージェント102によって実施されるべきアクション106を定義するアクション選択出力122を生成するように構成される。具体的な例として、アクション選択ニューラルネットワーク116は、生成されているアクション選択出力のタイプ用に要求されるいくつかの次元を有する出力を生成するように適合される全結合ニューラルネットワーク、すなわち、1つまたは複数の全結合ニューラルネットワーク層をもつものであってよい。
【0066】
いくつかの実施形態では、convLSTMニューラルネットワーク114への入力から、アクション選択ニューラルネットワーク116への入力までの残差接続がある。言い換えると、これらの実施形態では、アクション選択入力は、convLSTMニューラルネットワーク114によって処理される観測データ120の表現も含む。
【0067】
いくつかの実施形態では、convLSTMニューラルネットワーク114によって受信される観測データ120の表現は、観測データ120である。
【0068】
他の実施形態では、制御ニューラルネットワーク110は、観測データ120を処理して、convLSTMニューラルネットワーク114に入力として与えられる表現を生成するエンコーダニューラルネットワーク112を含む。たとえば、エンコーダニューラルネットワーク112は、観測データを処理して、convLSTMニューラルネットワーク114に入力として与えられる表現である、固定サイズH×W×Cのテンソルを生成する畳み込みニューラルネットワークであってよい。
【0069】
トレーニングエンジン150は、制御ニューラルネットワーク110のモデルパラメータ118、すなわち、エンコーダニューラルネットワーク112、convLSTMニューラルネットワーク114、およびアクション選択ニューラルネットワーク116のパラメータを、エージェントと環境のインタラクションに基づいて繰り返し更新することによって、制御ニューラルネットワーク110をトレーニングするように構成される。
【0070】
具体的には、トレーニングエンジン150は、トレーニング中にエージェントが環境とインタラクションを行った結果として生成された観測データ120および報酬124を使う強化学習を使って、制御ニューラルネットワーク110をトレーニングする。
【0071】
概して、トレーニングエンジン150は、任意の適切な強化学習技法を使ってエージェントによって受信される戻り(すなわち、報酬の累積測度)を増大するように、制御ニューラルネットワーク110をトレーニングすることができる。トレーニングエンジン150によって、制御ニューラルネットワーク110をトレーニングするのに使うことができる技法の一例は、Mnih, V.、Badia, A. P.、Mirza, M.、Graves, A.、Lillicrap, T.、Harley, T.、Silver, D.、およびKavukcuoglu, K. Asynchronous methods for deep reinforcement learning.、International conference on machine learning、1928~1937ページ、2016年に記載されているA3C技法である。トレーニングエンジン150によって、制御ニューラルネットワーク110をトレーニングするのに使うことができる技法の別の例は、Espeholt, L.、Soyer, H.、Munos, R.、Simonyan, K.、Mnih, V.、Ward, T.、Doron, Y.、Firoiu, V.、Harley, T.、Dunning, I.ら、Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures. arXiv preprint arXiv:1802.01561、2018年に記載されているIMPALA Vトレース技法である。いくつかのケースでは、システム100は、複数のエージェントが、同じ環境の異なるレプリカとインタラクションを行う分散フレームワークをトレーニング中に使う。
【0072】
図2は、2つの時間ステップにおける、制御ニューラルネットワーク110の処理の例を示す。具体的には、
図2は、制御ニューラルネットワーク110が、時間ステップt-1および時間ステップtについてのアクション選択出力をどのように生成するかを示す。
【0073】
図2の例では、制御ニューラルネットワーク110は、エンコーダニューラルネットワーク112(eとも記される)、convLSTMニューラルネットワーク114、およびアクション選択ニューラルネットワーク116を含む。
【0074】
さらに、
図2の例では、convLSTMニューラルネットワーク114は、2つのconvLSTM層202および204(それぞれ、θ
1およびθ
2とも記される)を含む。つまり、convLSTM層のスタックは、2という深さDを有する。
【0075】
convLSTMニューラルネットワーク114は、各時間ステップにおいて、N=3つのティックについて処理を行う。つまり、convLSTMニューラルネットワーク114は、アクション選択ネットワーク116に最終出力を与える前に、各時間ステップにおいて3回の反復を実施する。
【0076】
したがって、convLSTMニューラルネットワーク114はパラメータDおよびNによって特徴づけられてよく、これらは、学習されるべきタスクに従って選択されてよい。たとえば、DおよびNは各々、範囲1~10にあってよく、たとえば、DおよびNは各々、3に等しくてよく、またはDは2に等しくてよく、Nは3に等しくてよく、またはDは4に等しくてよく、Nは2に等しくてよい。
【0077】
時間ステップt-1において、制御ニューラルネットワーク110は、入力として観測データxt-1を受信し、観測データxt-1を処理して、観測データxt-1の表現を生成する。
【0078】
制御ニューラルネットワーク110は次いで、convLSTM層202および204を使って表現を処理して、時間ステップに対する最終LSTM隠れ状態出力を生成する。
図2に示すように、最終LSTM隠れ状態出力は、時間ステップt-1に対するN個目のティックの後の、スタック中の最後の層、すなわち、convLSTM層204の更新された隠れ状態である。
【0079】
アクション選択ニューラルネットワーク116は、最終LSTM隠れ状態出力を含む入力を受信し、入力を処理して、時間ステップt-1に対するアクション選択出力を生成する。
図2の例では、アクション選択出力は、値出力V
t-1と、エージェントによって実施することができるアクションのセットにわたる確率分布を定義するポリシー出力π
t-1とを含む。システムは次いで、アクション選択ポリシーに従ってポリシー出力を使ってアクションを選択し、次いで、エージェントに、選択されたアクションを実施させることができる。
【0080】
時間ステップtにおいて、制御ニューラルネットワーク110は、入力として観測データxtを受信し、観測データxtを処理して、観測データxtの表現を生成する。
【0081】
制御ニューラルネットワーク110は次いで、convLSTM層202および204を使って表現を処理して、時間ステップに対する最終LSTM隠れ状態出力を生成する。
図2に示すように、最終LSTM隠れ状態出力は、時間ステップtに対するN個目のティックの後の、スタック中の最後の層、すなわち、convLSTM層204の更新された隠れ状態である。
【0082】
アクション選択ニューラルネットワーク116は、最終LSTM隠れ状態出力を含む入力を受信し、入力を処理して、時間ステップtについてのアクション選択出力を生成する、すなわち、値出力Vtと、エージェントによって実施することができるアクションのセットにわたる確率分布を定義するポリシー出力πtとを生成する。システムは次いで、アクション選択ポリシーに従ってポリシー出力を使ってアクションを選択し、次いで、エージェントに、選択されたアクションを実施させることができる。
【0083】
convLSTMニューラルネットワーク中のconvLSTM層の動作について、ここで、時間ステップtにおいて起こる処理に関して記載する。ただし、制御ニューラルネットワーク110を使ってエージェントが制御されている各時間ステップにおいて、同様の処理が起こることを理解されたい。
【0084】
時間ステップtにおいて、convLSTMニューラルネットワーク114は、観測データxtの表現を受信し、(i)表現および(ii)時間ステップtの時点でのconvLSTMニューラルネットワーク114の状態を処理して、(iii)時間ステップtに対する最終LSTM隠れ状態出力を生成し、(iv)時間ステップtについてのconvLSTMニューラルネットワーク114の状態を更新するように構成される。エージェントを制御する第1の時間ステップ、すなわち、タスクエピソードにおける第1の時間ステップに対して、時間ステップの時点でのconvLSTMニューラルネットワーク114の状態は、所定または学習された初期状態であってよい。エージェントを制御する他の時間ステップすべてに対して、時間ステップの時点でのconvLSTMニューラルネットワーク114の状態は、先行する時間ステップに対するconvLSTMニューラルネットワーク114の更新された状態、すなわち、時間ステップt-1の後のconvLSTMニューラルネットワーク114の最終状態である。
【0085】
convLSTMニューラルネットワーク114の状態は概して、スタック中の各convLSTM層についてのそれぞれのセル状態およびそれぞれの隠れ状態を含む。つまり、convLSTM層202および204は各々、それぞれのセル状態およびそれぞれの隠れ状態を維持する。層202および204はconvLSTM層なので、セル状態および隠れ状態は、ベクトルとは反対に、3次元テンソルである。
【0086】
時間ステップに対する最終LSTM隠れ状態出力は、時間ステップについての更新された状態にある、スタック中の最後のconvLSTM層の隠れ状態、すなわち、convLSTM層204の更新された隠れ状態である。
【0087】
上述したように、いくつかの実施形態では、convLSTMニューラルネットワークは、各時間ステップにおいてN個のティックに対して処理を行うように構成され、Nは1よりも大きい整数である。具体的には、
図2に示す例では、Nは3に等しい。
【0088】
これらの実施形態では、N個のティックの各々において、convLSTMニューラルネットワークは、(i)観測データxtの表現および(ii)ティックの時点でのconvLSTMニューラルネットワークの状態を処理して、ティックに対してconvLSTMニューラルネットワークの状態を更新する。
【0089】
convLSTMニューラルネットワークは次いで、最後のティックの後のconvLSTMニューラルネットワークの更新された状態を、時間ステップに対する更新された状態として使い、したがって、最後のティックの後のスタック中の最後のconvLSTM層の隠れ状態を、時間ステップに対する最終LSTM隠れ状態出力として使う。
【0090】
概して、時間ステップtについてのティックnにおいて所与の入力を処理するとき、スタック中の第d番目のconvLSTM層は、以下の演算を実施して、N個目のティックに対する層の更新されたセル状態
【数1】
と、N個目のティックに対する層の更新された隠れ状態
【数2】
とを生成する。
【数3】
上式で、i
tは時間ステップtにおける表現であり、
【数4】
は、先行するティックの後の層のセル状態であり、
【数5】
は、先行するティックの後の層の隠れ状態であり、
【数6】
は、N個目のティックに対する、層d-1、すなわち、スタック中の層dの下の層の隠れ状態である。これらの量は合わせて、N個目のティックにおけるconvLSTM層への層入力と呼ばれ得る。
【0091】
時間ステップtにおけるn個のティックのうちの最初のティックに対して、システムは、先行する時間ステップ、すなわち、時間ステップt-1からの隠れ状態およびセル状態を使う。
【0092】
いくつかの実施形態では、スタック中の最初の層に対して、システムは、スタック中の層dの下の層の隠れ状態の代わりに、所定の固定隠れ状態を使うが、それはすなわち、スタック中の最初の層の下には層がないからである。
【0093】
ただし、いくつかの他の実施形態では、スタック中の最初の層に対するティックについての層入力は、スタック中の層dの下の層についての隠れ状態の代わりに、先行するティックについての、スタック中の最後の層の更新された隠れ状態を含む。これにより、より一般的な計算が可能になり得るが、それはすなわち、情報は今では、スタックの中を、上にだけではなく下に流れることができ、いかなる計算オーバーヘッドも加えることなく、いくつかのタスクにおけるネットワーク性能を向上することができるからである。
【0094】
いくつかのケースでは、convLSTM層に対する層入力は、各ティックにおける追加情報も含むことができ、すなわち、itは、表現だけでなく、表現と層への追加入力の組合せ、たとえば、深さ連結も示すことができる。
【0095】
たとえば、スタック中の各層に対する層入力は、先行するティックに対して、層についてのサマリテンソルを、または、ティックが、時間ステップに対する最初のティックである場合は、先行する時間ステップに対するN個目のティックに対して、層についてのサマリテンソルを含み得る。
【0096】
概して、所与のティックに対する層についてのサマリテンソルは、先行するティックの後の層の隠れ状態のプールされたバージョンである。具体的には、ティックに対するサマリテンソルを生成するために、convLSTMニューラルネットワークは、時間ステップに対する層の更新された隠れ状態の各チャネル次元に対して、1つまたは複数のプーリング動作をチャネル次元に空間的に適用して、チャネル次元に対する1つまたは複数のプールされた出力を生成する、すなわち、空間次元に沿って隠れ状態を集約することができる。つまり、システムは、適用されている各種類のプーリング動作、すなわち、最大プーリング、平均プーリング、または最大および平均プーリングの両方の出力の連結である、各チャネルについてのそれぞれのプールされたベクトルを生成することができる。システムは次いで、プールされた出力、すなわち、それぞれのプールされたベクトルを、convLSTM層に対応する線形層を使って投影して、投影された出力を生成し、次いで、投影された出力を空間にわたってタイリングして、層入力中の他のテンソルと同じ空間次元を有するサマリテンソルを生成することができる。
【0097】
このサマリテンソルを、所与のティックについての層入力に含めることによって、情報を、convLSTM層に対する畳み込みカーネルのサイズよりも速く空間次元中で伝搬させることができる。これにより、たとえば、制御ニューラルネットワークのトレーニングを、より速く収束させ、トレーニングプロセスによって消費される計算リソースの量を削減することができる。
【0098】
より具体的には、スタック中の第d番目のconvLSTM層は、
【数7】
および
【数8】
を生成するために、N個目のティックにおいて以下を実施し、
【数9】
上式で、*は畳み込みを示し、
【数10】
は点ごとの乗算を示し、
【数11】
は、convLSTM層用の忘却ゲートであり、
【数12】
は、convLSTM層用の入力ゲートであり、
【数13】
は、convLSTM層用の出力ゲートであり、各Wは、convLSTM層のそれぞれの畳み込みカーネルであり、各bは、それぞれのバイアスベクトルである。
【0099】
いくつかのケースでは、convLSTMニューラルネットワークは、畳み込み演算子への入力テンソルの境界を指定する、スタック中のconvLSTM層のための畳み込み演算子の入力に特徴マップを付加するように構成されてよい。つまり、畳み込み演算子は並進不変なので、ネットワークは、境界上で1を、および内部ではゼロを有する、畳み込み演算子の入力に特徴マップを付加して、境界を明示的に識別する情報を畳み込み演算子に与えることができる。
【0100】
いくつかの実施形態では、convLSTMニューラルネットワークの状態および最終LSTM隠れ状態出力は、観測データの表現の空間次元を保つ。つまり、表現が、H×W×Cテンソルである場合、convLSTMニューラルネットワークの状態および最終LSTM隠れ状態出力は、表現と同じ空間次元性(H×W)も有する。
【0101】
図3は、時間ステップでアクションを選択するための例示的プロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、強化学習システム、たとえば、適切にプログラムされた
図1の強化学習システム100が、プロセス300を実施することができる。
【0102】
システムは、エージェントを制御するために、すなわち、エージェントに環境とのインタラクションを行わせてタスクを実施するために、プロセス300を複数の時間ステップにわたって繰り返し実施することができる。
【0103】
システムは、観測データを受信する(ステップ302)。
【0104】
システムは、convLSTMニューラルネットワークを使って、観測データの表現を処理する(ステップ304)。
【0105】
上述したように、いくつかの実施形態では、観測データの表現は観測データであり、他の実施形態では、システムは、エンコーダニューラルネットワークを使って観測データを処理して、convLSTMニューラルネットワークに入力として与えられる表現を生成する。
【0106】
convLSTMニューラルネットワークは、表現を受信し、(i)表現および(ii)時間ステップの時点でのconvLSTMニューラルネットワークの状態を処理して、(iii)時間ステップに対する最終LSTM隠れ状態出力を生成し、(iv)時間ステップに対するconvLSTMニューラルネットワークの状態を更新するように構成される。エージェントを制御する第1の時間ステップ、すなわち、タスクエピソードにおける第1の時間ステップに対して、時間ステップの時点でのconvLSTMの状態は、所定または学習された初期状態であってよい。エージェントを制御する他の時間ステップすべてに対して、時間ステップの時点でのconvLSTMの状態は、先行する時間ステップに対するconvLSTMニューラルネットワークの更新された状態である。
【0107】
convLSTMニューラルネットワークの状態は概して、スタック中の各convLSTM層についてのそれぞれのセル状態およびそれぞれの隠れ状態を含み、時間ステップに対する最終LSTM隠れ状態出力は、時間ステップに対する更新された状態でのスタック中の最後のconvLSTM層の隠れ状態である。つまり、convLSTMは、各convLSTM層のセル状態および隠れ状態を更新することによって、convLSTMニューラルネットワークの状態を更新し、スタック中の最後のconvLSTM層の更新された隠れ状態を、最終LSTM隠れ状態出力として使う。
【0108】
上述したように、いくつかの実施形態では、convLSTMニューラルネットワークは、各時間ステップにおいてN個のティックに対して処理を行うように構成され、Nは1よりも大きい整数である。これらの実施形態では、N個のティックの各々において、convLSTMニューラルネットワークは、(i)表現および(ii)ティックの時点でのconvLSTMニューラルネットワークの状態を処理して、ティックについてconvLSTMニューラルネットワークの状態を更新する。convLSTMニューラルネットワークは次いで、最後のティックの後のconvLSTMニューラルネットワークの更新された状態を、時間ステップに対する更新された状態として使い、したがって、最後のティックの後のスタック中の最後のconvLSTM層の隠れ状態を、時間ステップに対する最終LSTM隠れ状態出力として使う。
【0109】
システムは、アクション選択出力を生成するために、アクション選択ニューラルネットワークを使って、時間ステップに対する最終LSTM隠れ状態出力を含むアクション選択入力を処理する(ステップ306)。上述したように、アクション選択ニューラルネットワークは、アクション選択ポリシーに従ってエージェントを制御するのに使うことができる様々なアクション選択出力のうちのいずれをも生成するように構成されてよい。
【0110】
システムは、アクション選択出力から、時間ステップにおいてエージェントによって実施されるべきアクションをアクション選択ポリシーに従って選択する(ステップ308)。
【0111】
システムは、たとえば、制御システムにエージェントを制御させる命令を、エージェントの制御システムに送信することによって、またはエージェントを直接制御する、たとえば、エージェントの関節にトルクを直接適用することによって、エージェントに、選択されたアクションを実施させる(ステップ310)。
【0112】
図4は、計画を要求するタスクに対する、他の、従来のシステムの性能と比較した、記載するシステムの性能を示す。具体的には、
図4は、複数のシステムの各々について、トレーニングステップの数(x軸上)に応じた、解決済みレベルの割合(y軸上)をプロットする。具体的には、
図4に示すタスクは、オブジェクト、たとえば、ボックスを、指定されたロケーションに動かすよう、エージェントに要求するタスクであり、オブジェクトを正しくないロケーションに動かすと、タスクが完了することが不可能になるというプロパティも含む。図中で参照される「レベル」は、異なる環境構成、すなわち、異なる数のボックス、障害、目標ロケーション、および異なる正しくないロケーションであり、レベルの解決とは、環境が対応する構成であるとき、タスクの完了に成功することを指す。したがって、オブジェクトを正しくないロケーションに動かすと、エージェントはタスクに失敗するので、オブジェクトが正しくないロケーションに移動されることになるアクションを回避しながら、正しいロケーションに向かって進むためのアクション計画が要求される。曲線402は、記載するシステムの(3,3)バージョン、すなわち、3つのティックに対して処理を行う3つのconvLSTM層の性能を示し、曲線404は、システムのスケールダウンされた(1,1)バージョンを示す。曲線の残りは、従来のシステム、たとえば、アクション選択ニューラルネットワークによって消費される出力を生成するために、非畳み込みLSTMまたはResNet(すなわち、残差ブロックをもつ畳み込みニューラルネットワーク)を使うシステムを示す。
図4からわかり得るように、記載するシステムは、従来のシステムと比較して、非常に少数のトレーニングステップで高性能を達成する。これは、システムが、環境の明示的モデルを要求することなく計画することを可能にする、本明細書に記載するconvLSTMニューラルネットワークの様々な態様に起因し得る。
【0113】
本明細書は、「構成される」という用語を、システムおよびコンピュータプログラム構成要素との関連で使っている。1つまたは複数のコンピュータからなるシステムが特定の動作またはアクションを実施するように構成されることは、システムが、動作の際にシステムに動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしたことを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実施させる命令を含むことを意味する。
【0114】
本明細書に記載する主題および機能的動作の実施形態は、デジタル電子回路機構で、有形に実施されるコンピュータソフトウェアもしくはファームウェアで、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアで、またはそれらのうちの1つもしくは複数の、組合せで実装することができる。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行するか、またはデータ処理装置の動作を制御するための、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の、組合せであってよい。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信用の情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気、光学、または電磁信号上で符号化されてよい。
【0115】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラム可能プロセッサ、1つのコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、特殊目的論理回路機構、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)またはASIC(特定用途向け集積回路)であるか、またはそれらをさらに含んでもよい。装置は、任意選択で、ハードウェアに加え、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の、組合せを構成するコードを含むことができる。
【0116】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか、またはそれらとして述べられている場合もあり、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、どの形のプログラミング言語でも書かれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境における使用に適した他の単位としてを含めて、どの形でも展開することができる。プログラムが、ファイルシステム内のファイルに対応してよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプトを保持するファイル部分に、問題になっているプログラムに専用の単一のファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1つの場所に位置する1つのコンピュータ上または複数のコンピュータ上で実行されるように展開されても、複数の場所に分散され、データ通信ネットワークによって相互接続されてもよい。
【0117】
本明細書では、「データベース」という用語は、データのどの集合体も指すように広く使われるが、データは、どの特定のやり方で構造化される必要も、またはまったく構造化される必要もなく、1つまたは複数のロケーションにある記憶デバイス上に記憶することができる。したがって、たとえば、インデックスデータベースは、異なるやり方で各々が編成されアクセスされ得る、データの複数の集合体を含み得る。
【0118】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされる、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使われる。概して、エンジンは、1つまたは複数のソフトウェアモジュールまたは構成要素として実装され、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上にインストールされることになる。いくつかのケースでは、1つまたは複数のコンピュータは、特定のエンジンに専用となり、他のケースでは、複数のエンジンが、同じコンピュータまたは複数のコンピュータ上でインストールされ、稼動中であってよい。
【0119】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施され得る。プロセスおよび論理フローは、特殊目的論理回路機構、たとえば、FPGA、もしくはASICによって、または特殊目的論理回路機構と1つもしくは複数のプログラムされたコンピュータの組合せによって実施されてもよい。
【0120】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊目的マイクロプロセッサもしくは両方、またはどの他の種類の中央処理ユニットに基づいてもよい。概して、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの要素は、命令を実施または実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。中央処理ユニットおよびメモリは、特殊目的論理回路機構によって補完することも、その中に組み込むこともできる。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはそこへデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【0121】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD ROMおよびDVD-ROMディスクとを含む、あらゆる形の不揮発性メモリ、媒体およびメモリデバイスを含む。
【0122】
ユーザとのインタラクションを可能にするために、本明細書に記載する主題の実施形態は、ユーザに情報を表示するための表示デバイス、たとえば、CRT(陰極線管)やLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与え得るためのキーボードおよびポインティングデバイス、たとえば、マウスやトラックボールとを有するコンピュータ上で実装することができる。他の種類のデバイスも、ユーザとのインタラクションを可能にするのに使われることが可能であり、たとえば、ユーザに与えられるフィードバックは、どの形の感覚フィードバックでも、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、発話、または触覚入力を含む、どの形でも受信されることが可能である。さらに、コンピュータは、ユーザによって使われるデバイスへドキュメントを送信し、デバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザへウェブページを送信することによってユーザとインタラクションを行うことができる。また、コンピュータは、パーソナルデバイス、たとえば、メッセージングアプリケーションを稼動しているスマートフォンにテキストメッセージまたは他の形のメッセージを送り、ユーザから引き換えに応答メッセージを受信することによって、ユーザとインタラクションを行うことができる。
【0123】
機械学習モデルを実施するためのデータ処理装置は、たとえば、機械学習トレーニングまたは生産、すなわち、推論、作業負荷の共通および数値計算部分を処理するための特殊目的ハードウェアアクセラレータユニットも含むことができる。
【0124】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使って実装し、展開することができる。
【0125】
本明細書に記載する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含む、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、もしくはフロントエンド構成要素、たとえば、本明細書に記載する主題の実施形態とユーザがインタラクションを行い得るためのグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータ、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素のどの組合せも含むコンピューティングシステムで実施することができる。システムの構成要素は、どの形または媒体のデジタルデータ通信、たとえば、通信ネットワークによっても相互接続されることが可能である。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえば、インターネットがある。
【0126】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは概して、互いから離れており、通常、通信ネットワークを通してインタラクションを行う。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに互いとのクライアント-サーバ関係を有するコンピュータプログラムにより発生する。いくつかの実施形態では、サーバが、データ、たとえば、HTMLページを、ユーザデバイスへ、たとえば、クライアントとして作用するデバイスとインタラクションを行うユーザにデータを表示し、ユーザからユーザ入力を受信する目的のために送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザインタラクションの結果が、デバイスからサーバにおいて受信され得る。
【0127】
本明細書は、多くの具体的な実施形態の詳細を含むが、これらは、任意の発明の範囲において、または特許請求され得るものの範囲において、限定と解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴の記述として解釈されるべきである。また、別個の実施形態の文脈において本明細書で説明したいくつかの特徴は、単一の実施形態において組み合わせて実施することができる。逆に、単一の実施形態の文脈において記載される様々な特徴はまた、複数の実施形態において別々に、またはどの適切な部分組合せでも実施することができる。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求される場合さえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除することができ、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とすることができる。
【0128】
同様に、動作は、特定の順序において図面に示され、請求項に具陳されているが、これは、そのような動作が図示された特定の順序において、もしくは順次に実施されることを必要とするか、または、所望の結果を達成するためにすべての示された動作が実施されることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載したプログラム構成要素およびシステムは概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
【0129】
本主題の特定の実施形態について記載した。他の実施形態は、以下の特許請求の範囲内である。たとえば、請求項において具陳されるアクションは、異なる順序で実施され、望ましい結果を依然として達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するのに、図示される特定の順序、または順番を必ずしも要求しない。いくつかのケースでは、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0130】
100 強化学習システム、システム
102 エージェント
110 制御ニューラルネットワークシステム、制御ニューラルネットワーク
112 エンコーダニューラルネットワーク
114 畳み込み長/短期メモリ(convLSTM)ニューラルネットワーク
116 アクション選択ニューラルネットワーク
150 トレーニングエンジン
【図 】