(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】ロボット制御方法、装置、機器、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240717BHJP
G06N 3/092 20230101ALI20240717BHJP
B25J 13/00 20060101ALI20240717BHJP
【FI】
G06N20/00
G06N3/092
B25J13/00 Z
(21)【出願番号】P 2023515831
(86)(22)【出願日】2021-10-15
(86)【国際出願番号】 CN2021124168
(87)【国際公開番号】W WO2022100363
(87)【国際公開日】2022-05-19
【審査請求日】2023-03-09
(31)【優先権主張番号】202011271477.5
(32)【優先日】2020-11-13
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲楊▼ 瑞
(72)【発明者】
【氏名】李 ▲藍▼青
(72)【発明者】
【氏名】▲羅▼ 迪君
【審査官】大倉 崚吾
(56)【参考文献】
【文献】米国特許出願公開第2020/0334565(US,A1)
【文献】特開2018-171663(JP,A)
【文献】特開2020-035221(JP,A)
【文献】谷口明日斗 ほか,"拡張Floyd-Warshall法を用いたゴール条件付き強化学習",No.20-2 ロボティクス・メカトロニクス講演会2020予稿集,一般社団法人日本機械学会,2020年05月29日,p. 1-4,2A1-L01
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-99/00
B25J 13/00
G05B 13/02
(57)【特許請求の範囲】
【請求項1】
ロボット制御機器が実行する、ロボット制御方法であって、
環境
インタラクションデータを取得するステップであって、前記環境
インタラクションデータは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む、ステップと、
前記動作データに対応する動作を実行した後の実際に完成した実際目標値を取得するステップと、
前記隣接する2つの時刻のうちの第1時刻の状態データ、前記動作データ及び前記実際目標値に基づいて、前記動作を実行した後の報酬値を決定するステップと、
前記動作を実行した後の報酬値を採用して前記環境
インタラクションデータにおける報酬値を更新し、更新後の環境
インタラクションデータを得るステップと、
各時刻に、前記更新後の環境インタラクションデータにおける前記目標値に基づいて、前記更新後の環境インタラクションデータにおける前記動作データを実行するようにロボット制御ネットワークに対応する知的エージェントを制御することによって、次の時刻の状態データを得、前記次の時刻の報酬値を得るステップと、
前記次の時刻の後のすべての未来時刻の報酬値を取得するステップと、
前記すべての未来時刻の前記報酬値に対応する累積報酬値を決定するステップと、
前記累積報酬値を最大化することを制御目標として前記知的エージェントの訓練過程に対して制御を行うステップと、
前記累積報酬値の期待累積報酬を決定するステップと、
前記期待累積報酬に基づいて初期動作価値関数を計算するステップと、
前記初期動作価値関数の重みを取得するステップであって、前記重みの値は、0より大きく、且つ1より小さい、ステップと、
フォーサイトによる経験再生によって、連続する複数の未来時刻の前記環境インタラクションデータを利用して、前記重みに基づいて前記初期動作価値関数を展開し、前記展開された初期動作価値関数を得、それによって、前記初期動作価値関数の学習を加速させる、ステップと、
前記環境インタラクションデータと前記更新後の環境インタラクションデータとを採用してロボット制御ネットワークに対応する知的エージェントを訓練するステップと、
訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行うステップと、を含む、ロボット制御方法。
【請求項2】
前記フォーサイトによる経験再生によって、連続する複数の
未来時刻の前記環境
インタラクションデータを利用して、
前記重みに基づいて前記初期動作価値関数を展開し、展開された初期動作価値関数を得るステップは、
現在時刻の後の複数の連続する未来時刻のうちの各未来時刻の期待報酬値と所定の割引係数を取得するステップと、
前記割引係数と各未来時刻の前記期待報酬値に基づいて、前記展開された初期動作価値関数を得るステップと、を含む、
請求項
1に記載のロボット制御方法。
【請求項3】
前記重みに基づいて前記初期動作価値関数を展開するステップは、
【数1】
によって実現され、
【数2】
は、重み
【数3】
に基づいてn個ステップで展開した初期動作価値関数を表し、
【数4】
は、初期動作価値関数を表す、
請求項
1に記載のロボット制御方法。
【請求項4】
前記ロボット制御方法はさらに、
前記展開された初期動作価値関数に基づいて、次の時刻の動作データを決定するステップと、
前記次の時刻の動作データを採用して前記環境
インタラクションデータにおける前記動作データを更新し、更新後の環境
インタラクションデータを得るステップと、
前記更新後の環境
インタラクションデータを採用してロボット制御ネットワークに対応する知的エージェントを訓練するステップと、を含む、
請求項
1に記載のロボット制御方法。
【請求項5】
前記ロボット制御方法はさらに、
現在の報酬値を採用して前記環境
インタラクションデータにおける前記報酬値を更新するときに、前記累積報酬値に基づいて前記知的エージェントの実行ポリシーを決定するステップと、
前記実行ポリシーに基づいて次の時刻の動作データを選択するステップと、
前記次の時刻の動作データを前記環境
インタラクションデータ内へ更新し、前記更新後の環境
インタラクションデータを得るステップと、を含む、
請求項
1に記載のロボット制御方法。
【請求項6】
前記知的エージェントが前記動作を実行した後に、前記知的エージェントの現在位置する環境の状態は次の時刻の状態に遷移され、前記次の時刻の状態は前記次の時刻の状態データに対応し、前記ロボット制御方法はさらに、
前記次の時刻の状態データを前記環境
インタラクションデータ内へ更新し、前記更新後の環境
インタラクションデータを得るステップを含む、
請求項1~
5のいずれか1項に記載のロボット制御方法。
【請求項7】
前記目標値は複数であり、前記ロボット制御方法はさらに、
前記更新後の環境
インタラクションデータを採用してロボット制御ネットワークに対応する知的エージェントを訓練するときに、次の時刻の複数の前記目標値を同時に決定するステップと、
決定された次の時刻の複数の目標値を前記環境
インタラクションデータ内へ更新するステップと、を含む、
請求項1~
5のいずれか1項に記載のロボット制御方法。
【請求項8】
ロボット制御装置であって、
環境
インタラクションデータを取得するように構成される第1取得モジュールであって、前記環境
インタラクションデータは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む、第1取得モジュールと、
前記動作データに対応する動作を実行した後の実際に完成した実際目標値を取得するように構成される第2取得モジュールと、
前記隣接する2つの時刻のうちの第1時刻の状態データ、前記動作データ及び前記実際目標値に基づいて、前記動作を実行した後の報酬値を決定するように構成される
第1決定モジュールと、
前記動作を実行した後の報酬値を採用して前記環境
インタラクションデータにおける報酬値を更新し、更新後の環境
インタラクションデータを得るように構成される更新モジュールと、
各時刻に、前記更新後の環境インタラクションデータにおける前記目標値に基づいて、前記更新後の環境インタラクションデータにおける前記動作データを実行するようにロボット制御ネットワークに対応する知的エージェントを制御することによって、次の時刻の状態データを得、前記次の時刻の報酬値を得るように構成される第3取得モジュールと、
前記次の時刻の後のすべての未来時刻の報酬値を取得するように構成される第4取得モジュールと、
前記すべての未来時刻の前記報酬値に対応する累積報酬値を決定するように構成される第2決定モジュールと、
前記累積報酬値を最大化することを制御目標として前記知的エージェントの訓練過程に対して制御を行うように構成される第1制御モジュールと
前記累積報酬値の期待累積報酬を決定するように構成される第3決定モジュールと、
前記期待累積報酬に基づいて初期動作価値関数を計算するように構成される計算モジュールと、
前記初期動作価値関数の重みを取得するように構成され、前記重みの値は、0より大きく、且つ1より小さい、第5取得モジュールと、
フォーサイトによる経験再生によって、連続する複数の未来時刻の前記環境インタラクションデータを利用して、前記重みに基づいて前記初期動作価値関数を展開し、前記展開された初期動作価値関数を得、それによって、前記初期動作価値関数の学習を加速させる、第6取得モジュールと、 前記環境インタラクションデータと前記更新後の環境
インタラクションデータを採用してロボット制御ネットワークに対応する知的エージェントを訓練するように構成される訓練モジュールと、
訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行うように構成される
第2制御モジュールと、を含む、ロボット制御装置。
【請求項9】
実行可能な命令を記憶するためのメモリと、前記メモリに記憶された実行可能な命令を実行するときに、請求項1~
7のいずれか1項に記載のロボット制御方法を実現するためのプロセッサと、を含む、ロボット制御機器。
【請求項10】
プロセッサに請求項1~
7のいずれか1項に記載のロボット制御方法を実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本願は、2020年11月13日に中国特許局に提出された、出願番号が202011271477.5である中国特許出願の優先権を主張し、その内容の全てが引用により本願に組み込まれる。
【0002】
本開示は、人工知能技術の分野とインターネット技術の分野に関し、特に、ロボット制御方法、装置、機器、コンピュータ記憶媒体及びコンピュータプログラム製品に関する。
【背景技術】
【0003】
現在、ロボットに対して制御を行う場合、1つの実現方式は、優先度付き経験再生メカニズムに基づく深層強化学習制御アルゴリズムであり、ロボットが操作する物体の状態情報を利用して優先度を計算し、深層強化学習方法を利用してエンドツーエンドのロボット制御モデルを遂行し、深層強化学習の知的エージェントを環境において自主的に学習させ、指定された任務を完成させる。別の1つの実現方式は、模擬工業ロボットに基づく運動学自動把持学習方法であり、コンピュータ補助製造の分野に属し、模擬環境に基づいて、強化学習理論を利用して、ロボットの把持訓練を行う。模擬ロボットは、カメラで撮影された画像によって、物体の位置情報を自動的に取得し、ロボットの先端把持ツールの把持位置を決定し、同時に、強化学習の画像処理方法に基づいて、観察して得られた画像における把持される物体の形状と置かれる状態に基づいて、把持ツールの姿態を決定し、最終的に、形状が異なる、随意に置かれる物体を問題なく把持する。
【0004】
しかしながら、関連技術における実現方式について、通常、1つの特徴任務を遂行するために、1つのモデルを訓練する必要があり、汎用性が乏しく、且つ、ロボット任務の訓練過程が遅い。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の実施例は、ロボット制御方法、装置、機器、コンピュータ記憶媒体及びコンピュータプログラム製品を提供し、データの利用率を向上させ、知的エージェントの訓練を加速させることができ、且つ、大量の目標を同時に訓練することができ、1つのモデルだけで一定の目標空間におけるすべての任務を遂行することができ、モデルの汎化性を向上させる。
【0006】
本開示の実施例は、ロボット制御方法を提供し、前記ロボット制御方法は、
環境交互データ(「環境インタラクションデータ」とも呼ばれる)を取得するステップであって、前記環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む、ステップと、
前記動作データに対応する動作を実行した後の実際に完成した実際目標値を取得するステップと、
前記隣接する2つの時刻のうちの第1時刻の状態データ、前記動作データ及び前記実際目標値に基づいて、前記動作を実行した後の報酬値を決定するステップと、
前記動作を実行した後の報酬値を採用して前記環境交互データにおける報酬値を更新し、更新後の環境交互データを得るステップと、
前記更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練するステップと、
訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行うステップと、を含む。
【0007】
本開示の実施例は、ロボット制御装置を提供し、前記ロボット制御装置は、
環境交互データを取得するように構成される第1取得モジュールであって、前記環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む、第1取得モジュールと、
前記動作データに対応する動作を実行した後の実際に完成した実際目標値を取得するように構成される第2取得モジュールと、
前記隣接する2つの時刻のうちの第1時刻の状態データ、前記動作データ及び前記実際目標値に基づいて、前記動作を実行した後の報酬値を決定するように構成される決定モジュールと、
前記動作を実行した後の報酬値を採用して前記環境交互データにおける報酬値を更新し、更新後の環境交互データを得るように構成される更新モジュールと、
前記更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練するように構成される訓練モジュールと、
訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行うように構成される制御モジュールと、を含む。
【0008】
本開示の実施例は、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムを提供し、前記コンピュータ命令は、コンピュータ可読記憶媒体に記憶され、コンピュータ機器のプロセッサは、前記コンピュータ可読記憶媒体から前記コンピュータ命令を読み取り、前記プロセッサは、前記コンピュータ命令を実行し、本開示の実施例に提供されるロボット制御方法を実行するために用いられる。
【0009】
本開示の実施例は、ロボット制御機器を提供し、前記ロボット制御機器は、
実行可能な命令を記憶するためのメモリと、前記メモリに記憶された実行可能な命令を実行するときに、本開示の実施例に提供されるロボット制御方法を実現するためのプロセッサと、を含む。
【0010】
本開示の実施例は、実行可能な命令を記憶したコンピュータ可読記憶媒体を提供し、前記実行可能な命令を実行するときに、プロセッサに本開示の実施例に提供されるロボット制御方法を実現させるために用いられる。
【発明の効果】
【0011】
本開示の実施例は下記の有益な効果を奏する。環境交互データを取得し、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含み、隣接する2つの時刻のうちの第1時刻の状態データ、動作データと動作実行後の動作実際目標値に基づいて、動作を実行した後の報酬値を決定し、且つ、環境交互データにおける報酬値を更新し、即ち、後知恵による経験再生の方式を利用して、データの利用率を向上させ、知的エージェントの訓練を加速させる。且つ、環境交互データが目標値を含むため、大量の目標を同時に訓練することができ、即ち、1つのモデルだけで一定の目標空間におけるすべての任務を遂行することができ、モデルの適用性と汎化性を向上させる。
【図面の簡単な説明】
【0012】
【
図1A】本開示の実施例に提供されるロボット制御方法の実現のフローチャートである。
【
図1B】本開示の実施例に提供されるロボット制御方法の実現のフローチャートである。
【
図2】本開示の実施例に提供されるロボット制御システムのアーキテクチャの概略図である。
【
図3】本開示の実施例に提供されるサーバの構造概略図である。
【
図4】本開示の実施例に提供されるロボット制御方法のフローチャートである。
【
図5】本開示の実施例に提供されるロボット制御方法のフローチャートである。
【
図6】本開示の実施例に提供されるロボット制御方法のフローチャートである。
【
図7】本開示の実施例に提供されるロボット制御方法のフローチャートである。
【
図8】本開示の実施例に提供される後知恵による経験再生を結合する方法のフローチャートである。
【
図9】本開示の実施例に提供されるフォーサイトによる経験再生と後知恵による経験再生を結合する方法のフローチャートである。
【
図10A】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10B】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10C】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10D】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10E】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10F】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10G】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【
図10H】本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
【発明を実施するための形態】
【0013】
本開示の目的、技術的手段及び利点をより明確にするために、以下は、図面を参照しながら本開示の実施形態についてさらに詳細に説明する。記載される実施例は、本開示を限定するものと見なすべきではない。創造的な労力を払うことなく、当業者に得られる他のすべての実施例は、本開示の保護範囲に含まれるものである。
【0014】
下記の「いくつかの実施例」と記載される部分において、可能な実施例のサブセットがすべて記載されているが、理解可能なこととして、「いくつかの実施例」というのは、全ての可能な実施例の同じサブセット又は異なるサブセットであり得、矛盾しない場合に互いに組み合わせることができる。明記されない限り、本開示の実施例で使用されるすべての技術用語と科学用語は、当業者に通常に理解されるものと同じ意味を有する。本開示の実施例で使用される用語は、単に本開示の実施例を説明することを目的とし、本開示を限定することを意図するものではない。
【0015】
本開示の実施例の解決策を説明する前に、まず、本開示の実施例に言及される名詞と用語について説明する。
【0016】
1)強化学習:機械学習の範疇に属する用語であり、通常、順次意思決定問題を解決するために用いられ、主に環境と知的エージェントの2つの部分を含む。知的エージェントは、環境の状態に基づいて動作を選択して実行し、環境が知的エージェントの動作に基づいて新しい状態に遷移され、1つの数値の報酬をフィードバックし、知的エージェントは、環境からフィードバックされた報酬に基づいてポリシーを継続的に最適化する。
【0017】
2)オフポリシー:強化学習におけるデータ収集の動作ポリシー及び更新の目標ポリシーと異なる方法であり、オフポリシーは、通常、経験再生技術を使用する必要がある。
【0018】
3)経験再生:強化学習におけるオフポリシーアルゴリズムで使用する手法であり、知的エージェントと環境との交互(「インタラクション」とも呼ばれる)のデータを記憶する1つの経験プールを保持し、ポリシーを訓練するときに、経験プールからデータをサンプリングしてポリシーネットワークを訓練する。経験再生の方式によって、オフポリシーアルゴリズムのデータの利用効率がオンポリシーアルゴリズムより高い。
【0019】
4)多目標強化学習:通常の強化学習任務は、1つの特定の任務を遂行することである。しかしながら、ロボット制御において、常に大量の任務が存在し、例えば、機械アームを空間における位置に移動することが挙げられ、その場合、知的エージェントが学習したポリシーは、目標空間における任意の目標位置に到達することができるように期待され、そのため、多目標強化学習が導入される。多目標強化学習は、複数の目標を同時に遂行することである。
【0020】
5)後知恵による経験再生(Hindsight Experience Replay):多目標強化学習に関する方法であり、経験プールにおけるデータの期待目標を達成した目標に変更することによって、後知恵による経験再生は、失敗データに対する利用効率を大幅に向上させることができる。
【0021】
6)フォーサイトによる経験再生(Foresight Experience Replay):フォーサイトによる経験再生の思想は、モンテカルロと時間的差分関数推定に由来しており、複数ステップの期待累積報酬を展開することによって価値関数の推定を加速させる。
【0022】
7)オフポリシー偏差:オフポリシーアルゴリズムにおいて直接的にフォーサイトによる経験再生方法を使用するときに、行為ポリシーと目標ポリシーに差異が存在するために、通常、フォーサイトによる経験再生によって、オフポリシー偏差の累積を引き起こし、知的エージェントのポリシー学習に深刻な影響を与える可能性がある。
【0023】
本開示の実施例を説明する前に、まず、本開示の実施例に提供される関連技術におけるロボット制御方法について説明する。
【0024】
図1Aは、本開示の実施例に提供されるロボット制御方法の実現のフローチャートである。該方法は、優先度付き経験再生メカニズムに基づく深層強化学習制御アルゴリズムであり、ロボットが操作する物体の状態情報を利用して優先度を計算し、且つ、深層強化学習方法を利用してエンドツーエンドのロボット制御モデルの訓練を遂行し、該方法は、深層強化学習の知的エージェントを環境において自主的に学習させ、指定された任務を完成させる。訓練過程において、目標物体の状態情報をリアルタイムで収集し、状態情報に基づいて経験再生の優先度を計算し、そして、優先度に基づいて経験再生プールにおけるデータに対してサンプリングを行い、強化学習アルゴリズムを採用して、サンプリングによって得られたデータに対して学習を行い、制御モデルを得る。該方法は、深層強化学習アルゴリズムのロバスト性を確保することを前提で、環境情報を最大限に利用し、制御モデルの効果を向上させ、学習収束の速度を加速させる。ここで、
図1Aに示すように、該方法は、下記のステップを含む。
【0025】
ステップS11において、仮想環境を構築する。
【0026】
ステップS12において、ロボットの任務実行過程におけるセンサデータを取得する。
【0027】
ステップS13において、ロボットの任務実行過程における環境交互データを取得し、サンプル軌跡セットを構築する。
【0028】
ステップS14において、材料の位置変化、角度変化、速度変化の3つの部分からなるサンプル軌跡優先度を計算する。
【0029】
ステップS15において、サンプル軌跡優先度に基づいて、サンプリング訓練を行う。
【0030】
ステップS16において、ネットワークの更新が所定のステップ数に達したか否かを判断する。
【0031】
ステップS17において、達した場合、訓練過程を完了し、強化学習モデルを得る。
【0032】
図1Bは、本開示の実施例に提供されるロボット制御方法の実現のフローチャートである。該方法は、模擬工業ロボットに基づく運動学自動把持学習方法とシステムであり、コンピュータ補助製造の分野に属する。該方法は、模擬環境に基づいて、強化学習理論を利用して、ロボット把持訓練を行う。模擬ロボットは、カメラで撮影された画像によって物体の位置情報を自動的に取得し、位置情報に基づいてロボットの先端把持ツールの把持位置を決定し、同時に、強化学習の画像処理方法に基づいて、観察して得られた画像における把持される物体の形状と置かれる状態に基づいて、把持ツールの姿態を決定し、最終的に、形状が異なる、随意に置かれる物体を問題なく把持する。該方法における把持技術は、多くの工業と生活場面に適用されることができ、従来のロボットの把持作業のプログラミングの複雑性を簡略化し、ロボットプログラムの拡張性を向上させることができ、ロボットの応用範囲と実際生産における作業効率を大幅に向上させる。ここで、
図1Bに示すように、ロボット制御システム全体は、ロボット模擬環境11、価値推定ネットワーク12、及び動作選択ネットワーク13を含み、ロボット模擬環境11、価値推定ネットワーク12と動作選択ネットワーク13の間の交互によって、システム全体におけるネットワークに対する訓練を実現する。
【0033】
しかしながら、上記の2つの方法には、少なくとも下記の問題が存在する。通常の場合、特徴任務毎に、1つのモデルを訓練する必要があり、モデルの汎化性が乏しい。後知恵による経験再生の情報を利用していないため、失敗データから学習することができない。フォーサイトによる経験再生の情報を利用していないため、通常、単一ステップの時間的差分方法を使用して訓練するため、訓練の効率が低く、訓練後の知的エージェントの正確性が低い。
【0034】
そのため、本開示の実施例は、ロボット制御方法を提供し、該方法は、フォーサイトによる経験再生と後知恵による経験再生を結合する多目標強化学習ロボット制御技術であり、知的エージェントの訓練データの利用効率を大幅に向上させることができ、同時に、オフポリシー偏差の影響を緩和することができる。本開示の実施例に提供される方法は、大量の目標を同時に訓練することができ、訓練によって得られる1つのモデルだけで、一定の目標空間におけるすべての任務を遂行することができる。且つ、後知恵による経験再生を利用して、失敗データの利用を向上させ、ロボット任務の訓練を加速させ、同時に、フォーサイトによる経験再生の複数ステップの報酬展開を使用し、価値関数の学習と知的エージェントの訓練を加速させる。
【0035】
実際に実施するときに、本開示の実施例に提供されるロボット制御方法において、まず、環境交互データを取得し、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含み、動作データに対応する動作を実行した後の実際に完成した実際目標値を取得する。次に、隣接する2つの時刻のうちの第1時刻における状態データ、動作データと実際目標値に基づいて、動作を実行した後の報酬値を決定し、動作を実行した後の報酬値を採用して環境交互データにおける報酬値を更新し、更新後の環境交互データを得る。次に、更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練する。最後に、訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行う。このように、後知恵による経験再生の方式を利用して、データの利用率を向上させ、知的エージェントの訓練を加速させる。且つ、環境交互データが目標値を含むため、大量の目標を同時に訓練することができ、訓練によって得られた1つのモデルだけで、一定の目標空間におけるすべての任務を遂行することができる。
【0036】
以下では、本開示の実施例に提供されるロボット制御機器の例示的な応用について説明する。1つの実現方式において、本開示の実施例に提供されるロボット制御機器は、ノートパソコン、タブレットコンピュータ、デスクトップコンピュータ、モバイル機器(例えば、携帯電話、携帯音楽プレーヤ、個人デジタルアシスタント、専用メッセージ機器、携帯ゲーム機器)、知能ロボットなどの任意の電子機器又は知的エージェントそのものとして実施されることができる。別の1つの実現方式において、本開示の実施例に提供されるロボット制御機器はさらに、サーバとして実施されることができる。以下では、ロボット制御機器がサーバとして実施されるときの例示的な応用について説明する。サーバによって知的エージェントを訓練し、訓練後の知的エージェントによって目標ロボットの動作に対して制御を行うことができる。
【0037】
図2を参照すると、
図2は、本開示の実施例に提供されるロボット制御システム10のアーキテクチャの概略図である。知的エージェントの訓練を実現するために、本開示の実施例に提供されるロボット制御システム10は、ロボット100、知的エージェント200、及びサーバ300を含む。サーバ300は、ロボット100の環境交互データを取得し、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含み、ここで、状態データは、ロボット100がセンサによって収集して得られるロボットの状態データであり得、動作データは、ロボット100が実行した動作に対応するデータであり、報酬値は、ロボットが動作を実行した後に得られるリターン値であり、目標値は、所定のロボットが達成しようとする目標である。サーバ300はさらに、ロボット100が動作データに対応する動作を実行した後の実際に完成した実際目標値を得、環境交互データと実際目標値を得た後に、サーバ300は、隣接する2つの時刻のうちの第1時刻における状態データ、動作データと実際目標値に基づいて、ロボット100が動作を実行した後の報酬値を決定し、動作を実行した後の報酬値を採用して環境交互データにおける報酬値を更新し、更新後の環境交互データを得、更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェント200を訓練し、知的エージェント200に対する訓練を完成した後に、訓練後の知的エージェント200を採用して目標ロボットの動作に対して制御を行う。
【0038】
本開示の実施例に提供されるロボット制御方法はさらに、人工知能技術の分野に関し、少なくとも人工知能技術におけるコンピュータビジョン技術と機械学習技術によって実現されることができる。ここで、コンピュータビジョン技術(CV:Computer Vision)は、機械にいかに「見させる」かを研究する科学であり、さらに言えば、カメラとコンピュータで人の目を代わって、目標に対して識別、追跡と測定などの機械ビジョンを行い、さらにグラフィック処理を行い、それによって、コンピュータの処理画像は、人の目で観察しやすく、又は機械に送信して検測しやすくなる。科学学科として、コンピュータビジョンは、関連する理論と技術を研究し、画像又は多次元データから情報を取得することができる人工知能システムを構築することを目指す。コンピュータビジョン技術は、通常、画像処理、画像識別、画像セマンティック理解、画像検索、光学文字識別(OCR:Optical Character Recognition)、ビデオ処理、ビデオセマンティック理解、ビデオコンテンツ/行為識別、3次元物体再構築、3次元(3D:Three Dimension)技術、仮想現実、拡張現実、同期測位、及び地図構築などの技術を含み、さらに、一般的な顔識別、及び指紋識別などの生物特徴識別技術を含む。機械学習(ML:Machine Learning)は、多領域に関する学際的な分野であり、確率論、統計学、近似理論、凸解析、アルゴリズム複雑性理論などの複数の分野に関し、コンピュータがいかに人間の学習行為をシミュレートし、又は、実現するかを主に研究し、それによって、新しい知識又はスキルを取得し、既存の知識構造を改めて組み合わせ、自身の性能を継続的に向上させる。機械学習は、人工知能のコア部分であり、コンピュータに知能を持たせる根本的な道であり、それの適用が人工知能の各分野に亘っている。機械学習と深層学習は、通常、人工ニューラルネットワーク、信頼ネットワーク、強化学習、遷移学習、帰納学習、及び模倣学習などの技術を含む。本開示の実施例において、機械学習技術によって、ネットワーク構造検索リクエストに対する応答を実現し、それによって、目標ネットワーク構造を自動的に検索し、及び、コントローラとスコアモデルに対する訓練とモデル最適化を実現する。
【0039】
図3は、本開示の実施例に提供されるロボット制御機器400の構造概略図である。実際の応用において、ロボット制御機器400は、
図2におけるサーバ300とロボット100であり得る。ロボット制御装置400が
図2に示すサーバ300であることを例として、本開示の実施例に提供されるロボット制御方法を実施するロボット制御機器について説明する。
図3に示すロボット制御機器400は、少なくとも1つのプロセッサ310、メモリ350、少なくとも1つのネットワークインターフェース320、及びユーザインタフェース330を含む。サーバ300における各コンポーネントは、バスシステム340によって結合する。理解可能なこととして、バスシステム340は、各コンポーネント間の接続通信を実現するように構成される。バスシステム340は、データバス以外、電源バス、制御バス、ステータス信号バスも含む。しかしながら、明らかに説明するために、
図3において、各種類のバスをバスシステム340として標記する。
【0040】
プロセッサ310は、集積回路チップであり得、信号処理機能を有し、例えば、汎用プロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)又は他のプログラマブル・ロジック・デバイス、ディスクリート・ゲート又はトランジスタ・ロジック・デバイス、ディスクリート・ハードウェア・コンポーネントなどであり得る。ここで、汎用プロセッサは、マイクロプロセッサ又は任意の従来のプロセッサであり得る。
【0041】
ユーザインタフェース330は、メディアコンテンツを表示することができる1つ又は複数の出力装置331を含み、1つ又は複数のスピーカ及び/又は1つ又は複数の視覚ディスプレイを含む。ユーザインタフェース330はさらに、1つ又は複数の入力装置332を含み、ユーザ入力に役立つユーザインタフェース部品を含み、例えば、キーボード、マウス、マイク、タッチスクリーンディスプレイ、カメラ、他の入力ボタン及びコントロールである。
【0042】
メモリ350は、取り除き可能、取り除き不可、又はそれらの組み合わせであり得る。例示的なハードウェア機器は、ソリッドステートメモリ、ハードディスクドライブ、及びCDドライブなどを含む。選択可能なこととして、メモリ350は、プロセッサ310から物理的に離れた位置にある1つ又は複数の記憶機器を含む。メモリ350は、揮発性メモリ又は不揮発性メモリを含み、揮発性メモリと不揮発性メモリの両方を含むこともできる。不揮発性メモリは、リード・オンリー・メモリ(ROM:Read Only Memory)であり得、揮発性メモリは、ランダム・アクセス・メモリ(RAM:Random Access Memory)であり得る。本開示の実施例によって説明されるメモリ350は、任意の適切なタイプのメモリを含むことを意図する。いくつかの実施例において、メモリ350は、様々な操作をサポートするように、データを記憶することができ、該データの例は、プログラム、モジュール、及びデータ構造、又は、そのサブセット又はスーパーセットを含む。以下では、例示的に説明する。
【0043】
オペレーティングシステム351は、様々な基本的なシステムサービスを処理し、且つ、ハードウェア関連の任務を実行するように構成されるシステムプログラムを含み、例えば、フレームワーク層、コアライブラリ層、ドライバ層などであり、様々な基本的な任務を実現し、且つ、ハードウェアに基づく任務を処理するように構成される。
【0044】
ネットワーク通信モジュール352は、1つ又は複数の(有線又は無線)ネットワークインターフェース320によって他の計算機器に達するように構成され、例示的なネットワークインターフェース320は、ブルートゥース(登録商標)、無線互換認証(WiFi)、及びユニバーサルシリアルバス(USB:Universal Serial Bus)などを含む。
【0045】
入力処理モジュール353は、1つ又は複数の入力装置332のうちの1つからの1つ又は複数のユーザ入力又はインタラクションに対して検出を行い、検出された入力又はインタラクションを翻訳するように構成される。
【0046】
いくつかの実施例において、本開示の実施例に提供される装置は、ソフトウェアの方式を採用して実現されることができる。
図3は、メモリ350に記憶されたロボット制御装置354を示し、該ロボット制御装置354は、サーバ300におけるロボット制御装置であり得、それは、プログラムとプラグインなどの形態のソフトウェアであり得、第1取得モジュール3541、第2取得モジュール3542、決定モジュール3543、更新モジュール3544、訓練モジュール3545、及び制御モジュール3546を含む。これらのモジュールは、ロジック的なものであり、したがって、実現する機能に基づいて、任意の組み合わせ又はさらに分割を行うことができる。以下では、各モジュールの機能について説明する。
【0047】
別のいくつかの実施例において、本開示の実施例に提供される装置は、ハードウェアの方式を採用して実現されることができる。例として、本開示の実施例に提供される装置は、ハードウェアデコーダプロセッサの形態を採用するプロセッサであり得、それは、プログラムされ、それによって、本開示の実施例に提供されるロボット制御方法を実行する。例えば、ハードウェアデコーダプロセッサの形態のプロセッサは、1つ又は複数のアプリケーション専用集積回路(ASIC:Application Specific Integrated Circuit)、DSP、プログラマブル・ロジック・デバイス(PLD:Programmable Logic Device)、複雑プログラマブル・ロジック・デバイス(CPLD:Complex Programmable Logic Device)、フィールド・プログラマブル・ゲート・アレイ(FPGA:Field-Programmable Gate Array)、又は他の電子部品を採用することができる。
【0048】
以下では、本開示の実施例に提供されるロボット制御機器400の例示的な応用を結合して、本開示の実施例に提供されるロボット制御方法について説明する。実際に実施するときに、本開示の実施例に提供されるロボット制御方法は、サーバ又は端末によって単独で実施されることができ、サーバ及び端末によって協同実施されることもできる。
図4を参照すると、
図4は、本開示の実施例に提供されるロボット制御方法のフローチャートである。該ロボット制御方法がサーバによって単独で実施されることを例として、
図4に示すステップを結合して説明する。
【0049】
ステップS401において、サーバは、環境交互データを取得し、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む。
【0050】
ここで、状態データは、ロボットがセンサによって収集して得られるロボットの状態データ又は現在ロボットが位置する環境の状態データであり得る。動作データは、ロボットが実行する動作に対応するデータであり、該動作は、ロボットが現在時刻の前の時刻に既に実行した動作であり得、現在時刻の後の次の時刻に実行しようとする動作でもあり得、ここで、動作は、移動、把持、仕分けなど、ロボットが実現可能な任意の動作であり得る。
【0051】
説明すべきこととして、環境の状態データに対応する状態セットと、動作データに対応する動作セットとの間にマッピング関係が存在し、即ち、ロボットが環境におけるある状態を観察した場合、特定の動作を発する必要があり、各状態で、ロボットが異なる動作を発する確率が異なる。例えば、囲碁において、環境の状態セットは、すべての可能な盤面の局面からなり、ロボット(例えば、アルファ碁)の動作セットは、アルファ碁が採ることができる、ルールを満たすすべての打ち方であり、このときのポリシーは、アルファ碁の行為であり、即ち、異なる局面に応じてアルファ碁が選択する囲碁方案である。
【0052】
報酬値は、ロボットが動作を実行した後に得られるリターン値であり、即ち、報酬値は、強化学習過程においてロボットの動作に基づいて得られるリターン値である。強化学習は、最も良いポリシーを探し出し、見つけたポリシーに基づいてロボットが一連の動作を発した後に、得られる累積リターン値が最も高くすることを目的としている。
【0053】
目標値は、所定のロボットが達成しようとする目標であり、本開示の実施例において、目標値は複数であり得る。
【0054】
ステップS402において、動作データに対応する動作を実行した後の実際に完成した実際目標値を取得する。
【0055】
ここで、実際目標値は、ロボットが動作データに対応する動作を実行した後に達成する目標であり、該目標は、現在時刻の実際目標値である。実際目標値は、期待目標値(即ち、環境交互データにおける目標値)との間に一定の偏差が存在する可能性があり、偏差が存在する場合、学習し続けてから、次の動作を実行する必要があり、実際目標値を期待目標値に収束させることを実現する。
【0056】
ステップS403において、隣接する2つの時刻のうちの第1時刻における状態データ、動作データと実際目標値に基づいて、動作を実行した後の報酬値を決定する。
【0057】
ここで、所定の報酬関数を採用して、隣接する2つの時刻のうちの第1時刻における状態データ、動作データと実際目標値に基づいて、動作を実行した後の報酬値を決定することができる。
【0058】
第1時刻は、動作を実行する前の時刻であり、動作を実行する前の状態データ、ロボットが実行しようとする動作に対応する動作データ、及び動作を実行した後の実際に完成した実際目標値に基づいて、実際目標値と期待目標値との間の偏差を決定し、さらに、該偏差に基づいて動作を実行した後の現在の報酬値を決定する。
【0059】
いくつかの実施例において、目標が達成されたときに、即ち、実際目標値と期待目標値との間に偏差がなく、又は、偏差が閾値より小さいときに、現在の報酬値は0である。目標が達成されていないときに、即ち、実際目標値と期待目標値との間の偏差が閾値以上であるときに、現在の報酬値は、-1である。
【0060】
ステップS404において、動作を実行した後の報酬値を採用して環境交互データにおける報酬値を更新し、更新後の環境交互データを得る。
【0061】
ここで、動作を実行した後の報酬値とロボットが過去の動作を実行したことに対応する報酬値とを累加し、環境交互データにおける報酬値の更新を実現し、更新後の環境交互データを得る。更新後の環境交互データに、新しい状態データ、新しい動作データ、新しい報酬値と新しい目標値が含まれる。ここで、更新後の環境交互データにおける新しい状態データは、ロボットが動作実行後に入った新しい環境の状態データであり、例えば、ロボットが実行する動作が平行移動である場合、新しい状態データは平行移動後のロボットの位置と姿態である。新しい動作データは、ロボットが動作実行後に、新しい報酬値に基づいて決定された、次に実行しようとする動作に対応する動作データであり、ここで、複数の連続する動作が最終的に実行された結果として、最終の結果をさらに期待の目標値に収束させる。新しい報酬値は、動作を実行した後の報酬値と、ロボットが過去の動作を実行したことに対応する報酬値との間の累加報酬値である。
【0062】
例えば、ロボットがある目標を達成しようとするときに、現在の動作で指定目標を達成していなく、他の目標を達成している可能性がある。この場合、ロボットは、該動作を完成した後に、後知恵の観点で1つの目標をさらに選択する。2回目の目標は、1回目の目標と異なり、2回目の目標は、基本的にロボットが実現可能な目標である。前回設定された目標が高すぎる可能性があるため、2回目でより低い目標を設定し、即ち、数回の実行によって、最終的に達成しようとする期待目標値を達成する。
【0063】
ステップS405において、更新後の環境交互データを採用して、ロボット制御ネットワークに対応する知的エージェントを訓練する。
【0064】
本開示の実施例において、更新後の環境交互データを採用して知的エージェントを訓練する同時に、更新前の環境交互データを採用して知的エージェントを訓練することもでき、即ち、更新前及び更新後の環境交互データを同時に採用して一緒に知的エージェントに対して訓練を行い、こうすると、後知恵による経験再生を利用して失敗データ(即ち、期待目標値の達成に成功していない過去の環境交互データ)の利用率を向上させ、ロボット任務の訓練を加速させる。
【0065】
ステップS406において、訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行う。
【0066】
ここで、知的エージェントを訓練した後に、訓練後の知的エージェントを採用して、目標ロボットの動作に対して制御を行うことができ、それによって、目標ロボットに知的エージェントの制御によって特定の動作を実現させる。
【0067】
本開示の実施例に提供されるロボット制御方法において、環境交互データを取得し、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含み、隣接する2つの時刻のうちの第1時刻の状態データ、動作データと動作実行後の動作実際目標値に基づいて、動作を実行した後の報酬値を決定し、環境交互データにおける報酬値を更新し、即ち、後知恵による経験再生の方式を利用して、データの利用率を向上させ、知的エージェントの訓練を加速させる。環境交互データが目標値を含むため、大量の目標を同時に訓練することができ、1つのモデルだけで一定の目標空間におけるすべての任務を遂行することができる。
【0068】
いくつかの実施例において、ロボット制御システムは、ロボット、知的エージェント、及びサーバを含む。ここで、ロボットは、任意の動作を実現することができ、例えば、把持と移動などが挙げられ、知的エージェントは、学習したポリシーに基づいて目標空間における任意の目標を達することができ、即ち、ロボットに対して制御を行い、それによって、ロボットに特定の目標に対応する動作を実現させる。
【0069】
以下では、本開示の実施例に提供されるロボット制御方法について説明し続ける。該ロボット制御方法は、端末及びサーバによって協同実施される。
図5は、本開示の実施例に提供されるロボット制御方法のフローチャートであり、
図5に示すように、該方法は、下記のステップを含む。
【0070】
ステップS501において、ロボットは、収集によって環境交互データを得、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む。
【0071】
ここで、ロボットが搭載するセンサによって環境交互データを収集し、又は、ロボットが外部のセンサによって収集された環境交互データを取得することができる。
【0072】
ステップS502において、ロボットは、収集された環境交互データをサーバに送信する。
【0073】
ステップS503において、サーバは、ロボットが動作データに対応する動作を実行した後の実際に完成した実際目標値を取得する。
【0074】
ステップS504において、サーバは、隣接する2つの時刻のうちの第1時刻における状態データ、動作データと実際目標値に基づいて、動作を実行した後の報酬値を決定する。
【0075】
ステップS505において、サーバは、動作を実行した後の報酬値を採用して環境交互データにおける報酬値を更新し、更新後の環境交互データを得る。
【0076】
ステップS506において、サーバは、更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練する。
【0077】
説明すべきこととして、ステップS503乃至ステップS506は、上記のステップS402乃至ステップS405と同じく、本開示の実施例は、ここで繰り返すことはない。
【0078】
本開示の実施例において、知的エージェントは、サーバにおけるソフトウェアモジュールであり得、サーバから独立するハードウェア構造でもあり得る。サーバは、知的エージェントに対して訓練を行うことによって、ロボットに対して有効且つ正確の制御を行うことができる知的エージェントを得、且つ、訓練後の知的エージェントを採用してロボットを制御し、それによって、サーバがリアルタイムでロボットを制御することによるネットワークリソース浪費の問題を避けることができる。
【0079】
ステップS507において、訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行う。
【0080】
ステップS508において、ロボットは、知的エージェントの制御によって特定の動作を実現する。
【0081】
説明すべきこととして、本開示の実施例において、強化学習技術に基づいて知的エージェントを訓練し、したがって、段階的な訓練と学習によって、訓練後の知的エージェントにロボットに対して正確な制御を行わせることができ、ロボットにユーザが期待する目標を正確に実現させることができ、ロボットの作業効率と作業品質を向上させる。なお、工業生産において、多くの場合でロボットを採用して人間を代わって操作を行うことができるため、強化学習訓練を採用して得られた知的エージェントは、人間と同じ動作があるロボット制御を実現することができ、工業生産効率と生産正確性を向上させる。
【0082】
図4に基づいて、
図6は、本開示の実施例に提供されるロボット制御方法のフローチャートであり、
図6に示すように、
図4に示すステップS405は、下記のステップによって実現されることができる。
【0083】
ステップS601において、各時刻に、更新後の環境交互データにおける目標値に基づいて、更新後の環境交互データにおける動作データを実行するように知的エージェントを制御することによって、次の時刻の状態データを得、次の時刻の報酬値を得る。
【0084】
ここで、ロボットが各時刻に現在時刻の環境交互データにおける動作データに対応する動作を実行するため、各時刻に動作が実行された後に、1つの報酬値を得、該報酬値を現在時刻環境交互データにおける報酬値に加え、同時に、環境交互データにおける他のデータを更新する。即ち、ロボットが動作の連続の実行につれて、環境交互データにおける異なるデータに対して反復最適化を行う過程を実現する。
【0085】
ステップS602において、次の時刻の後のすべての未来時刻の報酬値を取得する。
【0086】
ここで、未来時刻の報酬値とは、得ようとする期待報酬値である。次の時刻の後の各未来時刻の期待報酬値を予め設定することができ、ここで、期待報酬値は期待目標値に対応する。
【0087】
ステップS603において、すべての未来時刻の報酬値に対応する累積報酬値を決定する。
【0088】
ここで、累積報酬値は、未来時刻の期待報酬値の累加和である。
【0089】
ステップS604において、累積報酬値を最大化することを制御目標として、知的エージェントの訓練過程に対して制御を行う。
【0090】
本開示の実施例において、フォーサイトによる経験再生技術に基づいて知的エージェントの訓練を実現し、累積報酬値を最大化することの目的は、未来時刻の期待報酬値を最も大きくし、それによって、ロボットの動作がさらに期待目標値に接近することができることを保証する。
【0091】
いくつかの実施例において、ステップS604は、下記のステップによって実現されることができる。
【0092】
ステップS6041において、累積報酬値の期待累積報酬を決定する。ステップS6042において、期待累積報酬に基づいて初期動作価値関数を計算する。ステップS6043において、連続する複数の時刻の環境交互データを利用して、初期動作価値関数を展開し、展開された初期動作価値関数を得、それによって、初期動作価値関数の学習を加速させ、知的エージェントの訓練過程に対して制御を行う。
【0093】
ここで、ステップS6043において、フォーサイトによる経験再生を利用して、初期動作価値関数を展開することができ、それによって、初期動作価値関数の学習を加速させ、知的エージェントの訓練過程に対して制御を行うことを実現する。
【0094】
いくつかの実施例において、ステップS6043は、下記の方式によって実現されることができる。現在時刻の後の複数の連続する未来時刻のうちの各未来時刻の期待報酬値と所定の割引係数(「割引率」とも呼ばれる)を取得し、そして、割引係数と各未来時刻の期待報酬値に基づいて、展開された初期動作価値関数を得る。
【0095】
いくつかの実施例において、ステップS6043はさらに、下記の方式によって実現されることができる。初期動作価値関数の重みを取得し、重みの値は、0より大きく、且つ1より小さく、そして、フォーサイトによる経験再生によって、連続する複数の未来時刻の環境交互データを利用して、重みに基づいて初期動作価値関数を展開し、展開された初期動作価値関数を得る。
【0096】
ここで、重みに基づいて初期動作価値関数を展開することは、下記の数式(1-1)によって実現される。
【数1】
ここで、
【数2】
は、重み
【数3】
に基づいてn個ステップで展開した初期動作価値関数を表し、
【数4】
は、初期動作価値関数を表す。
【0097】
図7は、本開示の実施例に提供されるロボット制御方法のフローチャートであり、
図7に示すように、方法は、下記のステップを含む。
【0098】
ステップS701において、環境交互データを取得し、環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む。
【0099】
ステップS702において、動作データに対応する動作を実行した後の実際に完成した実際目標値を取得する。
【0100】
ステップS703において、隣接する2つの時刻のうちの第1時刻における状態データ、動作データと実際目標値に基づいて、動作を実行した後の報酬値を決定する。
【0101】
ここで、第1時刻は、動作を実行する前の時刻であり、動作を実行する前の状態データ、ロボットが実行しようとする動作に対応する動作データ、及び動作を実行した後の実際に完成した実際目標値に基づいて、実際目標値と期待目標値との間の偏差を決定し、さらに、該偏差に基づいて動作を実行した後の現在の報酬値を決定する。
【0102】
ステップS704において、展開後の動作価値関数に基づいて次の時刻の動作データを決定する。
【0103】
ステップS705において、次の時刻の動作データを採用して環境交互データにおける動作データを更新し、更新後の環境交互データを得る。
【0104】
本開示の実施例において、動作価値関数を得た後に、複数の動作から報酬値を増加することができる1つの動作を目標動作として選択し、目標動作に対応する動作データを環境交互データ内へ更新し、次の時刻の動作データとし、動作データの更なる更新を実現する。
【0105】
ステップS706において、現在の報酬値を採用して環境交互データにおける報酬値を更新するときに、累積報酬値に基づいて知的エージェントの実行ポリシーを決定する。
【0106】
ステップS707において、実行ポリシーに基づいて次の時刻の動作データを選択する。
【0107】
ステップS708において、次の時刻の動作データを環境交互データ内へ更新し、更新後の環境交互データを得る。
【0108】
いくつかの実施例において、知的エージェントが次の時刻の動作を実行した後に、知的エージェントの現在位置する環境の状態は次の時刻の状態に遷移され、次の時刻の状態は、次の時刻の状態データに対応し、相応的に、方法は、さらに下記のステップを含む。
【0109】
ステップS709において、次の時刻の状態データを環境交互データ内へ更新し、更新後の環境交互データを得る。
【0110】
ステップS710において、更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練する。
【0111】
本開示の実施例において、環境交互データに対して更新を行うときに、環境交互データにおける各データを同時に更新する。こうすると、更新後の環境交互データを採用して知的エージェントを訓練するときに、知的エージェントによって決定される次の時刻の動作が期待目標値に収束することを保証することができる。
【0112】
いくつかの実施例において、環境交互データにおける目標値は複数であり、相応的に、方法は、さらに下記のステップを含む。
【0113】
ステップS711において、次の時刻の複数の目標値を決定する。
【0114】
ステップS712において、決定された次の時刻の複数の目標値を環境交互データ内へ更新する。
【0115】
ステップS713において、訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行う。
【0116】
本開示の実施例に提供されるロボット制御方法において、環境交互データにおける目標値は複数であり、こうすると、複数の目標に対して同時に訓練を行うことを実現することができ、即ち、大量の目標を同時に訓練することができ、1つのモデルだけで一定の目標空間におけるすべての任務を遂行させることができる。例えば、複数の目標は、移動方向がYであることと、移動距離がXであることと、移動過程において特定対象を把持することと、特定対象を把持した後に、該特定対象を持ち上げることと、などを含むことができる。よって、複数の目標は、1つの動作系列における連続動作であり得、即ち、1つのモデルだけで目標空間におけるすべての任務を実現し、それによって、1つの動作系列の実行を完了し、ロボットの知能性を向上させる。
【0117】
以下では、1つの実際な応用場面において、本開示の実施例の例示的な応用について説明する。
【0118】
本開示の実施例に提供されるロボット制御方法は、多目標のロボット任務に適用されることができ、例えば、指定された物体を空間における異なる位置に置く必要がある場合(物流、ロボットの仕分けなどの場面)、ロボット(飛行機/無人車)が指定位置まで移動する必要がある場合などが挙げられる。
【0119】
本開示の実施例の方法を説明する前に、まず、本開示に関する記号について説明する。
【0120】
強化学習は、通常、マルコフ方策決定過程(MDP:Markov Decision Process)で表されることができる。本開示の実施例において、目標拡張のMDPを使用し、MDPは、6個の要素(S、A、R、P、γ、G)を含む。ここで、Sは、状態空間を表し、Aは、動作空間を表し、Rは、報酬関数を表し、Pは、状態遷移確率マトリックスを表し、γは、割引係数を表し、Gは、目標空間を表す。説明すべきこととして、目標空間は、達成する必要があるすべての目標を含むセットであり、即ち、目標空間Gは、複数の達成する必要がある目標値gを含み、目標値g毎に1つの目標に対応し、該目標は、強化学習によって達成しようとする目標である。知的エージェントは、各時刻の状態
【数5】
(ここで、tは対応する時刻を表す)を観測し、状態に基づいて動作
【数6】
を実行し、環境は、動作
【数7】
に応答して、次の状態
【数8】
に遷移され、報酬
【数9】
をフィードバックし、強化学習最適化の目標は、累積報酬値
【数10】
を最大化することである。知的エージェントは、ポリシー
【数11】
に基づいて動作を選択し、動作価値関数
【数12】
は、状態
【数13】
で動作
【数14】
を実行した後の期待累積報酬を表す。
ここで、
【数15】
、Eは、期待値を求めることを表す。
【0121】
多目標強化学習において、知的エージェントのポリシーと報酬関数は、いずれも目標gによって調整され、報酬関数、価値関数とポリシーは、
【数16】
で表される。本開示の実施例において、成功したか否かを使用して報酬関数を設置することができ、即ち、目標が達成された場合、報酬を0とし、目標が達成されていない場合、報酬を-1とする。状態から目標へのマッピングを
【数17】
で表し、設定された、目標を達成した閾値を
【数18】
で表す。報酬関数は、下記の数式(2-1)で表される。
【数19】
【0122】
本開示の実施例において、深層決定ポリシー勾配アルゴリズム(DDPG:Deep Deterministic Policy Gradient)は、Actor Criticアーキテクチャに基づいて実現される。ここで、Critic部分は、状態動作に対して評価を行い、Actor部分は、動作を選択するポリシーである。多目標強化学習の設定で、Actor部分とCritic部分の損失関数が
【数20】
であり、
【数21】
のそれぞれは、下記の数式(2-2)乃至(2-4)によって計算される。
【数22】
ここで、
【数23】
【0123】
本開示の実施例において、フォーサイトによる経験再生は、通常のオフポリシーアルゴリズムの更新の上に、連続する複数ステップのデータを利用して動作価値関数(即ち、上記の初期動作価値関数)を展開し、動作価値関数の学習を加速させることである。つまり、知的エージェントに前方を見る観点を持たせる。計算数式は、上記の数式における
【数24】
をn個ステップでの展開に置き換える結果は数式(2-5)である。
【数25】
【0124】
本開示の実施例の方法は、価値関数の学習を加速させることができるが、オフポリシーアルゴリズムに適用される場合、例えば、ここで使用されるDDPGに適用される場合、オフポリシー偏差を引き起こす。
【0125】
後知恵による経験再生は、多目標強化学習において、失敗した目標を実際に完成した目標に置き換えることである。これは、「後知恵」のようなやり方であり、後方を見る視野をもたらし、データの利用効率を大幅に向上させることができる。
図8に示すように、
図8は、本開示の実施例に提供される後知恵による経験再生を結合する方法のフローチャートであり、ここで、方法は、下記のステップを含む。
【0126】
ステップS801において、環境との交互データ(即ち、環境交互データ)
【数26】
を取得する。
【0127】
ステップS802において、実際に完成した目標
【数27】
をサンプリングする。
【0128】
ステップS803において、報酬関数に基づいて報酬値
【数28】
を再計算する。
【0129】
ステップS804において、算出した報酬値
【数29】
を採用して、更新によって新しい環境交互データ
【数30】
を得る。
【0130】
ステップS805において、新しい環境交互データと古い環境交互データを使用して一緒にオフポリシーを訓練する。
【0131】
本開示の実施例は、フォーサイトによる経験再生と後知恵による経験再生を結合する多目標強化学習ロボット制御技術を提供し、訓練速度を加速させ、データの利用効率を大幅に向上させることができ、ロボット場面において大量の必要ない物理/模擬実験データを節約することができる。さらに、フォーサイトによる経験再生n-stepを後知恵による経験再生(HER:Hindsight Experience Replay)に直接的に結合すると、オフポリシー偏差の影響を受けるため、指数関数的逓減する重みのn-stepの加重平均を使用することができ、オフポリシー偏差の影響を緩和する。本開示の実施例において、
【数31】
重みを利用する重み付けの方法を提供し、ここで、
【数32】
は、下記の数式(2-6)によって計算されることができる。
【数33】
【0132】
本開示の実施例の方法において、重み
【数34】
が0に接近するときに、
【数35】
は単一ステップの展開に接近し、このときに、
【数36】
にオフポリシー偏差がないが、フォーサイト情報が利用されていない。
【数37】
が増加するについて、
【数38】
により多くのn-stepのフォーサイト情報が含まれることになり、同時に、より多くの偏差が引き出される。したがって、
【数39】
は、フォーサイトの報酬情報とオフポリシー偏差とのバランスを取る役割を果たす。
【数40】
とステップ数nを調整することによって、フォーサイトの報酬情報をよりよく利用することができる。
【0133】
図9は、本開示の実施例に提供されるフォーサイトによる経験再生と後知恵による経験再生を結合する方法のフローチャートである。ここで、方法は、下記のステップを含む。
【0134】
ステップS901において、環境との交互データ(即ち、環境交互データ)
【数41】
を取得する。
【0135】
ステップS902において、実際に完成した目標
【数42】
をサンプリングする。
【0136】
ステップS903において、報酬関数に基づいて報酬値
【数43】
を再計算する。
【0137】
ステップS904において、算出した報酬値
【数44】
を採用して、更新によって新しい環境交互データ
【数45】
を得る。
【0138】
ここで、ステップS903乃至ステップS904は、後知恵による経験再生に関する技術である。
【0139】
ステップS905において、新しい環境交互データに基づいて複数ステップで展開された
【数46】
を計算する。
【0140】
ステップS906において、
【数47】
を計算して価値関数を更新する。
【0141】
ここで、ステップS905乃至ステップS906は、フォーサイトによる経験再生に関する技術である。
【0142】
ステップS907において、新しい環境交互データと古い環境交互データを使用して一緒にオフポリシーを訓練する。
【0143】
本開示の実施例に提供されるロボット制御方法は、多目標ロボット制御に適用されることができ、データの利用効率を大幅に向上させ、訓練速度を加速させる。同時に、目標空間全体を完成するポリシーを学習することができ、汎用性がより高い。
【0144】
下記の表1は、本開示の実施例における方法と関連技術における方法との実現結果の対比である。それぞれは、模擬環境Fetch、Handの8つの任務を使用してテストを行い、Fetchは、機械腕を操作することを表し、Handは、機械手を操作することを表す。ここで、DDPGは、関連技術における方法を表し、n-step DDPGは、フォーサイトによる経験再生を表し、HERは、後知恵による経験再生を表し、MHERは、本開示の実施例に提供されるフォーサイトによる経験再生を後知恵による経験再生を結合する方法を表す。比較結果は、同じ回数の訓練を完了した(Fetchで)後に任務を完成した平均成功率である。表1から分かるように、本開示の実施例の方法は、同じ回数で訓練された場合の表現が最も良い。
【表1】
【0145】
図10A乃至
図10Hは、本開示の実施例の方法を採用して異なる任務のテスト過程の概略図である。
図10Aは、手が伸びる概略図(HandReach)であり、ここで、暗影1001付きの手は、その親指と1つの選定された指を使用して、手のひらの上方の目標位置まで伸びなければならない。
図10Bは、手で立方体を制御する概略図(HandBlock)であり、手は、ブロック1002を、期待目標位置に達するまで操らなければならなく、且つ、目標位置においてブロック1002を回転する。
図10Cは、手がたまごを操作する概略図(HandEgg)であり、手は、たまご1003又は球体を、理想の目標位置に達するまで操らなければならなく、且つ、目標位置にたまご1003又は球体を回転する。
図10Dは、手がペンを操作する概略図(HandPen)であり、手は、ペン1004又は木の棒を、理想の目標位置に達するまで操らなければならなく、且つ、目標位置にペン1004又は木の棒を回転する。
図10Eは、ロボットがある位置に到達する概略図(FetchReach)であり、ロボットのエンドエフェクタ1005を必要な目標位置に移動しなければならない。
図10Fは、ロボットがスライドする概略図(FetchSlide)であり、ロボットは、一定の方向で移動しなければならなく、こうすると、ロボットがスライドし、且つ、必要な目標の上で待機する。
図10Gは、ロボットがプッシュする概略図(FetchPush)であり、ロボットは、ボックス1006が必要な目標位置に達するまで、ボックス1006を移動しなければならない。
図10Hは、ロボットが拾う概略図(FetchPick)であり、ロボットは、そのクリップで机の上からボックス1007を取り上げ、且つ、ボックス1007を机の上の目標位置に移動しなければならない。
【0146】
説明すべきこととして、本開示の実施例に記載された指数関数的逓減する重みで加重平均する複数ステップの期待報酬以外、さらに、人工で手動で重みを設計し、又は、フォーサイトによる経験再生の複数ステップの期待報酬(n-step return)を直接的に使用することができる。
【0147】
以下では、本開示の実施例に提供されるロボット制御装置354がソフトウェアモジュールとして実施される例示的な構造について説明し続ける。いくつかの実施例において、
図3に示すように、メモリ350のロボット制御装置354に記憶されたソフトウェアモジュールは、サーバ300におけるロボット制御装置であり得、該ロボット制御装置は、
環境交互データを取得するように構成される第1取得モジュール3541であって、前記環境交互データは、少なくとも隣接する2つの時刻における状態データ、動作データ、報酬値、及び目標値を含む、第1取得モジュール3541と、前記動作データに対応する動作を実行した後の実際に完成した実際目標値を取得するように構成される第2取得モジュール3542と、前記隣接する2つの時刻のうちの第1時刻の状態データ、前記動作データ及び前記実際目標値に基づいて、前記動作を実行した後の報酬値を決定するように構成される決定モジュール3543と、前記動作を実行した後の報酬値を採用して前記環境交互データにおける報酬値を更新し、更新後の環境交互データを得るように構成される更新モジュール3544と、前記更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練するように構成される訓練モジュール3545と、訓練後の知的エージェントを採用して目標ロボットの動作に対して制御を行うように構成される制御モジュール3546と、を含む。
【0148】
いくつかの実施例において、前記訓練モジュールはさらに、各時刻に、前記更新後の環境交互データにおける前記目標値に基づいて、前記更新後の環境交互データにおける前記動作データを実行するように前記知的エージェントを制御することによって、次の時刻の状態データを得、前記次の時刻の報酬値を得、前記次の時刻の後のすべての未来時刻の報酬値を得、前記すべての未来時刻の前記報酬値に対応する累積報酬値を決定し、前記累積報酬値を最大化することを制御目標として、前記知的エージェントの訓練過程に対して制御を行うように構成される。
【0149】
いくつかの実施例において、前記訓練モジュールはさらに、前記累積報酬値の期待累積報酬を決定し、前記期待累積報酬に基づいて初期動作価値関数を計算し、連続する複数の時刻の前記環境交互データを利用して、前記初期動作価値関数を展開し、展開された初期動作価値関数を得、それによって、前記初期動作価値関数の学習を加速させ、前記知的エージェントの訓練過程に対して制御を行うように構成される。
【0150】
いくつかの実施例において、前記訓練モジュールはさらに、現在時刻の後の複数の連続する未来時刻のうちの各未来時刻の期待報酬値と所定の割引係数を取得し、前記割引係数と各未来時刻の前記期待報酬値に基づいて、前記展開された初期動作価値関数を得るように構成される。
【0151】
いくつかの実施例において、前記訓練モジュールはさらに、前記動作価値関数の重みを得、前記重みの値は、0より大きく、且つ1より小さく、フォーサイトによる経験再生によって、連続する複数の未来時刻の前記環境交互データを利用して、前記重みに基づいて前記初期動作価値関数を展開し、前記展開された初期動作価値関数を得るように構成される。
【0152】
いくつかの実施例において、前記重みに基づいて前記初期動作価値関数を展開することは、下記の数式によって実現され、
【数48】
【数49】
は、重み
【数50】
に基づいてn個ステップで展開された初期動作価値関数を表し、
【数51】
は、初期動作価値関数を表す。
【0153】
いくつかの実施例において、前記装置はさらに、展開された初期動作価値関数に基づいて、次の時刻の動作データを決定するように構成される動作データ決定モジュールと、前記次の時刻の動作データを採用して前記環境交互データにおける前記動作データを更新し、更新後の環境交互データを得るように構成される第2更新モジュールと、を含み、前記訓練モジュールはさらに、前記更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練するように構成される。
【0154】
いくつかの実施例において、前記装置はさらに、前記現在の報酬値を採用して前記環境交互データにおける前記報酬値を更新するときに、前記累積報酬値に基づいて前記知的エージェントの実行ポリシーを決定するように構成される実行ポリシー決定モジュールと、前記実行ポリシーに基づいて次の時刻の動作データを選択するように構成される選択モジュールと、前記次の時刻の動作データを前記環境交互データ内へ更新し、前記更新後の環境交互データを得る第3更新モジュールと、を含む。
【0155】
いくつかの実施例において、前記知的エージェントが前記動作を実行した後に、前記知的エージェントの現在位置する環境の状態は次の時刻の状態に遷移され、前記次の時刻の状態は前記次の時刻の状態データに対応し、前記装置はさらに、前記次の時刻の状態データを前記環境交互データ内へ更新し、前記更新後の環境交互データを得るように構成される第4更新モジュールを含む。
【0156】
いくつかの実施例において、前記目標値は複数であり、前記装置はさらに、前記更新後の環境交互データを採用してロボット制御ネットワークに対応する知的エージェントを訓練するときに、次の時刻の複数の前記目標値を同時に決定するように構成される同時決定モジュールと、決定された次の時刻の複数の目標値を前記環境交互データ内へ更新するように構成される第5更新モジュールと、を含む。
【0157】
説明すべきこととして、本開示の実施例の装置の記載は、上記の方法の実施例の記載と類似しており、方法の実施例と類似する有益な効果を奏しており、ここで繰り返すことはない。本装置の実施例で開示されていない技術的な詳細について、本開示の方法の実施例の説明を参照して理解すること。
【0158】
本開示の実施例は、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムを提供し、該コンピュータ命令は、コンピュータ可読記憶媒体に記憶される。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から該コンピュータ命令を読み取り、プロセッサは、該コンピュータ命令を実行し、該コンピュータ機器に本開示の実施例に提供されるロボット制御方法を実行させる。
【0159】
本開示の実施例は、実行可能な命令を記憶したコンピュータ可読記憶媒体を提供し、実行可能な命令がプロセッサに実行されるときに、プロセッサに本開示の実施例に提供されるロボット制御方法、例えば、
図4に示すような方法を実現させる。
【0160】
いくつかの実施例において、記憶媒体は、コンピュータ可読記憶媒体であり得、例えば、磁気ランダム・アクセス・メモリ(FRAM(登録商標):Ferromagnetic Random Access Memory)、リード・オンリー・メモリ(ROM:Read Only Memory)、プログラマブル・リード・オンリー・メモリ(PROM:Programmable Read-Only Memory)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM:Erasable Programmable Read-Only Memory)、電気的に消去可能なプログラマブル・リード・オンリー・メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、フラッシュ・メモリ、磁気面メモリ、CD、又はCDリード・オンリー・メモリ(CD-ROM:Compact Disc Read-Only Memory)などのメモリであり、又は、上記のメモリの1つ又は任意の組み合わせを含む様々な機器でもあり得る。
【0161】
いくつかの実施例において、実行可能な命令は、プログラム、ソフトウェア、ソフトウェアモジュール、スクリプト、又はコードの方式を採用して、任意の形態のプログラミング言語(コンパイル言語又は解釈言語、又は、宣言型又は過程型言語を含む)で書かれることができ、且つ、独立のプログラムとして配置されることと、又は、モジュール、コンポーネント、サブルーチン又は計算環境において使用に相応する他のユニットとして配置されることと、を含み、任意の形態として配置されることができる。
【0162】
例として、実行可能な命令は、ファイルシステムにおけるファイルに対応することができるが、必ずしもそうではなく、他のプログラム又はデータを保存するファイルの一部に記憶されることができ、例えば、ハイパー・テキスト・マークアップ言語(HTML:Hyper Text Markup Language)文書における1つ又は複数のスクリプトに記憶され、議論されるプログラムに専用の単一ファイルに記憶され、又は、複数の協同ファイル(例えば、1つ又は複数のモジュール、サブルーチン、又はコード部分を記憶するファイル)に記憶される。例として、実行可能な命令は、1つの計算機器で実行され、又は、1つの場所に位置する複数の計算機器で実行され、又は、複数の場所に分散されて通信ネットワークによって相互接続される複数の計算機器で実行されるように配置されることができる。
【0163】
上記の内容は、本開示の実施例に過ぎず、本開示の保護範囲を限定することを意図するものではない。本開示の精神と範囲内で行われた任意の変更、等価置換、改良などは、本開示の保護範囲に含まれる。
【符号の説明】
【0164】
10 ロボット制御システム
11 ロボット模擬環境
12 価値推定ネットワーク
13 動作選択ネットワーク
100 ロボット
200 知的エージェント
300 サーバ
310 プロセッサ
320 ネットワークインターフェース
330 ユーザインタフェース
340 バスシステム
350 メモリ
351 オペレーティングシステム
352 ネットワーク通信モジュール
353 入力処理モジュール
354 ロボット制御装置
3541 第1取得モジュール
3542 第2取得モジュール
3543 決定モジュール
3544 更新モジュール
3545 訓練モジュール
3546 制御モジュール
400 ロボット制御機器