(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-27
(45)【発行日】2024-09-04
(54)【発明の名称】自然言語およびビジョンデータを使用して制御ポリシーを学習する報酬生成方法、その命令を格納する非一時的コンピュータ可読媒体、及びそのシステム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240828BHJP
G06N 3/092 20230101ALN20240828BHJP
【FI】
G06N20/00
G06N3/092
(21)【出願番号】P 2023110727
(22)【出願日】2023-07-05
【審査請求日】2023-07-05
(32)【優先日】2022-07-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】アンドリュー ジェームス ウォーカー
(72)【発明者】
【氏名】ジョイディープ アチャヤ
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2022/0164673(US,A1)
【文献】特表2020-530602(JP,A)
【文献】特開2021-094677(JP,A)
【文献】特表2020-522791(JP,A)
【文献】特表2022-501725(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/02-3/10
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
報酬を
強化学習に提供する方法であって、
プロセッサによって、
環境から得られた画像とテキストで規定されたタスク記述とを受信することと、
前記画像をスライスして複数のサブ画像にすることと、
前記タスク記述の前記テキストおよび前記サブ画像を埋め込んで、前記タスク記述に対する関連性に基づいて前記サブ画像の分布を生成する、埋込みモデルを実行することと、
前記サブ画像の前記分布から前記報酬を生成することと
を含む、方法。
【請求項2】
前記プロセッサによって、
前記タスク記述を更新するため、前記タスク記述に関するテキストの選択を受信することと、
前記テキストの選択に基づいて前記タスク記述を更新することと
を更に含む、請求項1に記載の方法。
【請求項3】
前記プロセッサによって、
前記テキストの選択に基づいて前記タスク記述を更新することが、前記テキストの選択を最適化することを含み、前記テキストの選択を最適化することが、
環境から得られた画像のデータベースから、前記
強化学習の出力によってもたらされる成功エピソードと関連付けられた画像のセットを抽出することと、
前記画像のセットから、前記テキストの選択に関連するゴールに対応する画像の別のセットを抽出することと、
前記画像の別のセットおよび前記テキストの選択に対して意味抽出装置を実行して、意味空間における前記画像の別のセットおよび前記テキストの選択の埋込みを作成することと、
前記画像の別のセットおよび前記テキストの選択に対して前記意味空間内で最も近いポイントを決定することと、
前記意味空間内のベクトルを含む更新された前記タスク記述を、前記意味空間の最適化されたポイントから生成することと
を含む、請求項
2に記載の方法。
【請求項4】
前記プロセッサによって、
前記タスク記述の前記テキストおよび前記サブ画像を埋め込んで、前記タスク記述に対する関連性に基づいて前記サブ画像の分布を生成する、埋込みモデルを実行することが、
前記サブ画像および前記タスク記述の埋込みの間の類似性スコアを計算することと、
前記サブ画像がそれぞれ前記タスク記述に関連する確率を示す、前記分布を生成することと、を含み、
前記報酬を前記サブ画像に対する分布から生成することが、前記分布のエントロピーに基づいて前記報酬を生成することを含む、
請求項1に記載の方法。
【請求項5】
前記プロセッサによって、
前記報酬がロボット制御システムに提供され、前記
強化学習が前記報酬を処理して、前記
強化学習の所与の状態に対するポリシーを更新する、請求項1に記載の方法。
【請求項6】
報酬を
強化学習に提供する命令を格納する非一時的コンピュータ可読媒体であって、前記命令
は、
プロセッサに、
環境から得られた画像とテキストで規定されたタスク記述とを受信することと、
前記画像をスライスして複数のサブ画像にすることと、
前記タスク記述のテキストおよび前記サブ画像を埋め込んで、前記タスク記述に対する関連性に基づいて前記サブ画像の分布を生成する、埋込みモデルを実行することと、
前記サブ画像の前記分布から前記報酬を生成
させる命令
を含む、非一時的コンピュータ可読媒体。
【請求項7】
前記命令が、
前記タスク記述を更新するため、前記タスク記述に関するテキストの選択を受信することと、
前記テキストの選択に基づいて前記タスク記述を更新することと
を更に含む、請求項6に記載の非一時的コンピュータ可読媒体。
【請求項8】
前記テキストの選択に基づいて前記タスク記述を更新することが、前記テキストの選択を最適化することを含み、前記テキストの選択を最適化することが、
環境から得られた画像のデータベースから、前記
強化学習の出力によってもたらされる成功エピソードと関連付けられた画像のセットを抽出することと、
前記画像のセットから、前記テキストの選択に関連するゴールに対応する画像の別のセットを抽出することと、
前記画像の別のセットおよび前記テキストの選択に対して意味抽出装置を実行して、意味空間における前記画像の別のセットおよび前記テキストの選択の埋込みを作成することと、
前記画像の別のセットおよび前記テキストの選択に対して前記意味空間内で最も近いポイントを決定することと、
前記意味空間内のベクトルを含む更新された前記タスク記述を、前記意味空間の最適化されたポイントから生成することと
を含む、請求項
7に記載の非一時的コンピュータ可読媒体。
【請求項9】
前記タスク記述の前記テキストおよび前記サブ画像を埋め込んで、前記タスク記述に対する関連性に基づいて前記サブ画像の分布を生成する、埋込みモデルを実行することが、
前記サブ画像および前記タスク記述の埋込みの間の類似性スコアを計算することと、
前記サブ画像がそれぞれ前記タスク記述に関連する確率を示す、前記分布を生成することと、を含み、
前記報酬を前記サブ画像に対する分布から生成することが、前記分布のエントロピーに基づいて前記報酬を生成することを含む、
請求項6に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記報酬がロボット制御システムに提供され、前記
強化学習が前記報酬を処理して、前記
強化学習の所与の状態に対するポリシーを更新する、請求項6に記載の非一時的コンピュータ可読媒体。
【請求項11】
1つまたは複数のロボットを制御するように構成された、1つまたは複数のロボット制御システムと、
装置と、を備え、前記装置が、
前記1つまたは複数のロボット制御システムを制御する
強化学習に報酬を提供するように構成された、プロセッサを備え、前記プロセッサが、
環境から得られた画像とテキストで規定されたタスク記述とを受信し、
前記画像をスライスして複数のサブ画像にし、
前記タスク記述の前記テキストおよび前記サブ画像を埋め込んで、前記タスク記述に対する関連性に基づいて前記サブ画像の分布を生成する、埋込みモデルを実行し、
前記サブ画像の前記分布から前記報酬を生成する
ように構成された、システム。
【請求項12】
前記プロセッサが、
前記タスク記述を更新するため、前記タスク記述に関するテキストの選択を受信し、
前記テキストの選択に基づいて前記タスク記述を更新する、ように構成された、
請求項11に記載のシステム。
【請求項13】
前記プロセッサが、前記テキストの選択を最適化することによって、前記テキストの選択に基づいて前記タスク記述を更新するように構成され、前記テキストの選択を最適化することが、
環境から得られた画像のデータベースから、前記
強化学習の出力によってもたらされる成功エピソードと関連付けられた画像のセットを抽出することと、
前記画像のセットから、前記テキストの選択に関連するゴールに対応する画像の別のセットを抽出することと、
前記画像の別のセットおよび前記テキストの選択に対して意味抽出装置を実行して、意味空間における前記画像の別のセットおよび前記テキストの選択の埋込みを作成することと、
前記画像の別のセットおよび前記テキストの選択に対して前記意味空間内で最も近いポイントを決定することと、
前記意味空間内のベクトルを含む更新された前記タスク記述を、前記意味空間の最適化されたポイントから生成することと
を含む、請求項
12に記載のシステム。
【請求項14】
前記プロセッサが、
前記サブ画像および前記タスク記述の埋込みの間の類似性スコアを計算し、
前記サブ画像がそれぞれ前記タスク記述に関連する確率を示す、前記分布を生成することによって、
前記タスク記述の前記テキストおよび前記サブ画像を埋め込んで、前記タスク記述に対する関連性に基づいて前記サブ画像の分布を生成する、埋込みモデルを実行するように構成され、
前記報酬を前記サブ画像に対する分布から生成することが、前記分布のエントロピーに基づいて前記報酬を生成することを含む、
請求項11に記載のシステム。
【請求項15】
前記報酬が前記1つまたは複数のロボット制御システムに提供され、前記
強化学習が前記報酬を処理して、前記
強化学習の所与の状態に対するポリシーを更新する、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、全体として、ロボットシステムを対象とし、より具体的には、自然言語およびビジョンデータを使用して制御ポリシーを学習する報酬フィードバックのためのロボットシステムを対象とする。
【背景技術】
【0002】
関連技術では、様々なタスクに対するロボットの制御ポリシーは、古典的なハードコーディングの手法に基づく制御方法によって決定される。しかしながら、近年、強化学習(RL)における方法が、かかるポリシーを学習する際に有効であることが証明されている。この場合の枠組みは、エージェント(ロボット)が、状態と呼ばれる自身の環境に関する情報を取り込み、現在の状態を入力とするとともに取るべき次のアクションを出力とするポリシーを学習しようとするというものである。
【0003】
ロボットは、自身がアクションを行った後に到達する次の状態に基づいて、報酬を受け取る。報酬は、行ったアクションに関する情報をロボットに与えるものであり、大きい報酬は、行ったアクションが良好であったことをエージェントに伝え、小さい報酬は、アクションが良好ではなかったことを示す。
【0004】
報酬は、(1)疎な報酬および(2)密な報酬という、2つの基本的カテゴリに分けることができる。疎な報酬は、保持する情報が比較的少ない。例えば、疎な報酬は、タスクが完了していることのみをエージェントに伝え、他の情報は何も提供しないことがある。他方で、密な報酬は、フィードバック信号に、タスクが完了する前の中間ステップに関する更なる情報を与える。
【0005】
しかしながら、密な報酬は一般的に構築するのが難しく、概して、目下の特定のタスクに対してより慎重に作り上げる必要があるという形でトレードオフがもたらされる。
【0006】
関連技術では、良好な報酬関数を作成するための研究に多くの戦略が採用されてきた。ある特定の関連技術の戦略は、自然言語を使用して、報酬成形関数を作り上げる助けとすることを目標とする。
【0007】
つまり、エージェントは、報酬RRを最適化するよう試みる代わりに、この報酬を、次式の形態の新しい報酬を作成する関数FFを追加することによって、より多くの情報を有するものと置き換える。
【0008】
R’=R+F
適切なFを選ぶこの技術は報酬成形と呼ばれる。関連技術の実現例には、言語命令lとエージェントが行った一連のアクションaとを受け取る方法を含む。次に、ペア(l,a)が、成形関数Fを規定するのに使用される目下のタスクに関連するかを知るため、ポテンシャル関数が学習される。
【0009】
ここで、ポテンシャル関数は履歴データから学習しなければならず、言語命令lは特定のタスクに対して固定である。かかる方法は、技術的設定を要し、良好な成形関数を構築するのは非常に時間がかかる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0010】
したがって、より多くの情報を保持しつつも作り上げるのが比較的簡単である報酬関数を信頼性高く構築することができる、方法を開発することが必要とされている。これは、多品種少量の動的作業に適応するように生産ラインを迅速に再構成しなければならない、現代の製造(業)において特に重要である。
【0011】
これに関連して、タスクの性質は頻繁に変わることがあるので、ロボットエージェントは新しいポリシーを迅速に学習しなければならない。本明細書に記載する例示的実現例は、この作業において、エージェントに提供される報酬信号の作成に関する方法に焦点を当てる。
【0012】
強化学習における自然言語の使用は既にある程度研究されてきているが、履歴訓練データを必要とせずに使用することができる技法、または特定のタスクに合わせて調整された技法はない。
【0013】
タスクが頻繁に変わる可能性があり、ポリシーを更新するかまたは再学習させる必要がある場合、これには、有益なフィードバックをエージェントに提供してポリシーを再設計する助けとする、フィードバック信号(報酬)を生成する必要がある。有効なポリシーを学習することを助けるため、過度な手作業による推敲に依存しない、有用な報酬信号を生成する方法が、一般に必要とされている。
【0014】
更に、自然言語を使用することは重要であり、ポリシーを学習する助けとするのにある程度研究されてきているが、ポリシーを通知するのに言語命令をフレーズ化する最適な手法、いわゆる「プロンプトエンジニアリング」に焦点を当てた研究は比較的少ない。
【0015】
文言を注意深く選ぶことは学習に大きな影響を有し得る。言語命令で伝えられる意味内容は、エージェントを最適なポリシーへとガイドすることができるが、または適切にフレーズ化されていない場合、エージェントがどのようにしてタスクを完了するか理解できないままのことがある。
【0016】
例えば、「パレットを持ち上げて積み重ねられた他のパレットの上に乗せる」という命令について考える。ロボットの視界内にパレットの複数の山があることがあるので、かかる命令は潜在的に曖昧な可能性があり、意図される山に関心を向ける手法を伴わなければ、不十分なポリシーが学習されることがある。したがって、ポリシーを学習する際の言語の使用を最適化することが必要とされている。
【課題を解決するための手段】
【0017】
本開示の態様は、プロセッサによって、環境から得られた画像とテキストで規定されたタスク記述とを受信することと、環境から得られた画像をスライスして複数のサブ画像にすることと、タスク記述のテキストおよびサブ画像を埋め込んで、タスク記述に対する関連性に基づいてサブ画像の分布を生成する、埋込みモデルを実行することと、サブ画像の分布から報酬を生成することと、を含むことができる、報酬を強化学習に提供する方法を含むことができる。
【0018】
本開示の態様は、報酬を強化学習に提供する命令を格納する非一時的コンピュータ可読媒体であって、命令は、プロセッサに、環境から得られた画像とテキストで規定されたタスク記述とを受信することと、環境から得られた画像をスライスして複数のサブ画像にすることと、タスク記述のテキストおよびサブ画像を埋め込んで、タスク記述に対する関連性に基づいてサブ画像の分布を生成する、埋込みモデルを実行することと、サブ画像の分布から報酬を生成させる命令を含む、非一時的コンピュータ可読媒体を含むことができる。
【0020】
本開示の態様は、1つまたは複数のロボットを制御するように構成された、1つまたは複数のロボット制御システムと、装置と、を備え、装置が、1つまたは複数のロボット制御システムを制御する強化学習に報酬を提供するように構成された、プロセッサを備え、プロセッサが、環境から得られた画像とテキストで規定されたタスク記述とを受信し、環境から得られた画像をスライスして複数のサブ画像にし、タスク記述のテキストおよびサブ画像を埋め込んで、タスク記述に対する関連性に基づいてサブ画像の分布を生成する、埋込みモデルを実行し、サブ画像の分布から報酬を生成するように構成された、システムを含むことができる。
【発明の効果】
【0021】
本明細書に記載する例示的実現例を通して、強化学習を使用してロボットポリシーを学習するのに使用する、より良好な報酬関数をそれによって構築することができる。
【図面の簡単な説明】
【0022】
【
図1】本明細書に記載する例示的実現例が適用されてもよい主要フロー図である。
【
図2】報酬を作成する例示的実現例を示す図である。
【
図3】1つの例示的実現例による、タスク記述更新ブロックの詳細を示す図である。
【
図4】1つの例示的実現例による、報酬生成ブロックの詳細を示す図である。
【
図5】1つの例示的実現例による、確率の計算のためのフロー図である。
【
図6】例示的実現例を適用することができる物理的環境例を示す図である。
【
図7】1つの例示的実現例による、管理装置にネットワーク接続された複数のロボットシステムを含むシステムを示す図である。
【
図8】いくつかの例示的実現例で使用するのに適したコンピュータデバイス例を有するコンピューティング環境例を示す図である。
【発明を実施するための形態】
【0023】
以下の詳細な記載は、本出願の図面および例示的実現例の詳細を提供する。図面間で重複する要素の参照番号および記載は、明瞭にするために省略する。記載全体を通して使用される用語は、例として提供されるものであり、限定的であることを意図しない。
【0024】
例えば、「自動」という用語の使用は、本出願の実現例を実践する当業者における所望の実現例に応じて、完全自動の実現例、あるいは実現例の特定の態様に対するユーザまたは管理者の制御を伴う半自動の実現例を含むことがある。
【0025】
選択は、ユーザがユーザインターフェースまたは他の入力手段を通して実施することができ、あるいは所望のアルゴリズムを通して実現することができる。本明細書に記載するような例示的実現例は、単独でまたは組み合わせて利用することができ、例示的実現例の機能性は、所望の実現例による任意の手段を通して実現することができる。
【0026】
本開示の中核となるのは、テキスト情報およびアノテーション、ならびに処理タスクからの画像を通して最適化されたタスク記述から得られる、報酬関数を設計することが求められている、という点である。
【0027】
例示的実現例は、このデータを使用して、次に、タスク記述および各画像の類似性に基づいて確率分布を計算し、次にそれを使用して、タスクまたはサブタスクの完了を示す報酬値を出力することができる。
【0028】
本開示は、潜在的に報酬関数がなく、環境から得た観察結果から学習しなければならない、逆強化学習のスキーマを利用する。
図1は、本明細書に記載する例示的実現例が適用されうる主要フロー図を示している。例示的実現例は、利用可能な画像データ105および学習済みのタスク記述104を使用して、タスク記述の更新103と報酬作成106とを選択的に行う方法を含む。
【0029】
この報酬は、使用されている現在のポリシーを更新するのに使用することができる、フィードバック信号をエージェント108に提供する。つまり、報酬を計算した後、これは一般の強化学習の枠組みと同じように処理されるのであるが、環境110からの状態111が観察され、状態111および計算したばかりの報酬107の両方がロボットエージェント108へと送られ、そこでは、この情報を使用してポリシーが更新されうる。
【0030】
この状態および報酬データを受信した後、エージェントは、環境110内で現在の状態111を更新するアクション109を選ぶことができる。この状態情報は、報酬の生成において使用される同じ画像105を含むことができ、または現在の時間ステップでの環境に関する情報をもたらす他の変数を含むことができる。
【0031】
エージェント108がタスクをどのように解決するかを学習する際に環境から十分な画像をデータベース101に収集した後、エージェントのタスクの学習がどの程度進捗しているかに基づいて、タスク記述を更新すべきか否かの決定が102で行われる。成功エピソード(つまり、ロボットがタスクの完了に成功したトライアル)からより多くの画像が収集されるので、これらを使用して、報酬の生成106で使用されるタスクの記述104を改良することができる。
【0032】
これは、作業者がタスクのコンポーネントに関連するキーワードを供給する、タスク記述更新ステップ103を介して行われ、次に既に収集されている画像データに基づいて、タスク記述がそれによって最適化される。この最適化されたタスク記述は、自然言語で表現されるのではなく、タスクを理解するのに必要とされる意味内容を保存する、特定の「意味空間」に埋め込まれる。
【0033】
最適化されたタスク記述104が作成されると、報酬生成部106を使用して報酬信号107が生成される。例示的実現例では、方法は、画像105を環境から得て、画像の意味内容とタスク記述との比較を行うことに依存することができる。それらの意味内容の類似性に基づいて、報酬信号107が作成される。この報酬は、それ自体で使用することができ、または既存の報酬内の情報を拡張する成形関数として使用することができる。
【0034】
図2は、報酬を作成する例示的実現例を示している。
図2では、報酬を作成するのに本発明の実現例がどのように使用されるかの一例が示される。ロボットからの画像105は、タスクをどのように実施するかをロボットが学習すると作成される。
【0035】
次に、画像は、報酬作成ブロック106の内部でサブ画像1063へと分解される。これらのサブ画像、ならびにタスク記述は、意味空間へ埋込サブ画像1062、埋込タスク記述1064として入れられ、次に比較されて(1065)、各サブ画像とタスク記述との類似性スコアが得られる。
【0036】
これを、サブ画像が(たとえば、他のサブ画像と比べて)タスク記述に合致する尤度を反映する、確率分布1066に変えることができる。例えば、
図2の例では、右列のサブ画像はタスク記述と何も関係がないので、その確率分布は0である。他方で、中央下および中央上のサブ画像はタスク記述と最も密に関係しているので、それらに関連する最も高い確率を有する。
【0037】
この分布から、分布がどの程度タスク全体に関連するかに関する集計統計が得られる関数を、それによって計算することができる。すべてのサブ画像にわたって均等に分散される分布は、タスクを解決するのに有用な関連情報をほとんど含まず、したがって高エントロピーを有する。
【0038】
一方、そのすべての確率質量が1つのサブ画像に集中した分布は、0エントロピーを有する。したがって、分布のエントロピーH(P)1067を使用して、それが特定の閾値を下回る場合には、報酬1068を規定することができる。平均または最大値などの他の関数を使用して、所望の実現例に応じて報酬を生成することができる。
【0039】
図3は、1つの例示的実現例による、タスク記述更新ブロック103の詳細を示している。タスク記述を更新するため、作業者は、タスクに関連するいくつかの基本キーワードまたは短いテキストプロンプトを選択する(1031)。
【0040】
これらのキーワードは、必ずしもそれらに限定されないが、ロボットエージェントがタスクにおいて達成しなければならないサブゴールまたはゴールを含むことができ、あるいは単にタスクに関連する単語であることができる。例えば、ロボットエージェントのタスクが「ネジを拾って穴に入れる」であれば、入力キーワードは「小片を拾って台に入れる」でもいいし、「小片」、「台」のキーワードだけでもいい。
【0041】
ここで、ユーザがタスクプロンプトを最適化したい場合(1032)、環境からの画像のデータベース101から、成功エピソードからの画像が1033で抽出される。成功エピソードとは、ロボットエージェントによるタスクを完了させるための試みが成功した一連のステップを意味する。このステップは、環境からの画像のデータベースが空でない場合のみ行うことができる。データベース101が空の場合、本質的には初期化ステップとして、キーワード1031をタスク記述104として、直接使用しなければならない。
【0042】
この成功エピソードの選択ステップ1033は、画像X1、…、XTのシーケンスを選び、次にそれらの時間ステップそれぞれで受信される対応する報酬R1、…、RTを調べることによって、自動的に実施することができる。次式の単純関数
【0043】
【0044】
を使用して、エピソードが成功したか否かを決めることができ、ここで、G(R1,…,RT)=1はエピソードが成功であったことを意味し、G(R1,…,RT)=0はエピソードが成功ではなかったことを意味する。例えば、エージェントがゴール状態に達した場合のみ報酬Rt=1が受信され、それ以外はRt=0である、ゴール調整の例では、関数Fは単に次式のようになる。
【0045】
【0046】
成功エピソードが選択されると(1033)、これらの成功画像に属する画像から、入力キーワードに関連するゴールまたはサブゴールに対応する別のサブセットが選択される(1034)。これは、手動のアノテーションまたは教師なし戦略のどちらかを通して行うことができる。
【0047】
教師なしの事例では、これは、どの画像が埋込みキーワードの意味内容に最も密に合致するかを格付けすることによって行うことができる。いずれの場合も、キーワードに対応する画像が選択された後、キーワードおよびこれらの選択画像の両方が意味抽出装置に通される(1035)。
【0048】
意味抽出装置の出力は、サブゴール/ゴール画像および選択キーワードの両方の意味空間への埋込みである。この多モードデータは共通空間内にあるので、計算をより直接的に行うことができる。このデータは、意味空間内においてこのデータに最も近い最適点を見つけ出すことを目標とする最適化装置1037に通される。
【0049】
これは、単純に中心を取る方法、またはこのデータに関する損失を最小化するより複雑な最適化装置など、様々な手法で行うことができる。しかしながら、ここでの出力は最適なタスク記述104である。このタスク記述は自然言語で表現されるのではなく、意味空間内のベクトルとして表現され、したがって、本ブロック103の始まりに識別された選択画像1034およびキーワード1031に最も関連する意味内容を保持する。
【0050】
タスク記述104が指定され、画像105が環境から得られると、この画像を作成した状態へと至ったアクションに基づいて報酬を計算することができる。
図4は、1つの例示的実現例による、報酬生成ブロック106の詳細を示している。
【0051】
このブロックの出力は、ポリシーを更新するのにエージェントに供給される報酬信号である。最初に、フローは、タスク記述104が自然言語で表現されているか、または意味空間内にあるかを確かめる(1061)。前者の事例は、環境からの画像が完成しておらず、供給されたキーワード1031のみが、初期化ステップなどでタスク記述104として受信されている場合に起こるであろう。
【0052】
前者の事例が真の場合(NO)、フローが進んで、自然言語で表現されたタスク記述を得て、それを意味抽出装置に通して埋込みタスク記述を得る(1062)。続いて、フローは次に画像105を得て、画像Xをスライスしてサブ画像XijのL×Lのグリッドにする(1063)。
【0053】
Xijは、グリッドのi番目の行およびj番目の列におけるサブ画像Xを指す。次に、これらのサブ画像それぞれを意味抽出装置に通して、これらのサブ画像それぞれの意味空間への埋込みを行う(1064)。ドット積など、類似性の適切な基準s(・,・)を使用して、それによってフローは、グリッドの各サブ画像Xijに関して、zとして表される埋込みテキスト記述に対する類似性を計算することができる(1065)。
【0054】
z=φ(c)であり、cは、フローが初期段階の場合にタスク記述を規定するのに使用されるキーワードであることに注意されたい。つまり、フローは次式を計算する。
【0055】
【0056】
次に、これらの類似性を、ソフトマックス関数(温度λを有する)を適用することなどによって、グリッドに対する確率分布に変えることができる。
【0057】
【0058】
より一般には、この確率分布の計算は
図5に記載するように行うことができる。
図5は、1つの例示的実現例による、確率の計算のためのフロー図を示している。プロンプトの埋込とサブ画像の埋込との類似度Sijを収集し(1065)、再重み付けされた類似度SijであるWijを計算する(10651)。これらはすべて正である。
【0059】
次に、それらの和W=Σi,wij が計算され(10652)、ここから確率pij=wij/W をそれによって得ることができる(1066)。この確率分布1066は、サブ画像wijが、グリッド内の他の画像と比べて、タスク記述zに最も密に合致する確率として解釈することができる。
【0060】
ここから、任意の所望の実現例にしたがって確率分布を処理して、報酬信号を作成することができる(1067)。分布を特定の関数に通すことによって報酬信号を作成することができる、いくつかの手法がある。例えば、報酬信号を生成するため、エントロピーを次式のように計算することができる。
【0061】
【0062】
その発想は、画像全体がタスクの記述104を反映する状態から得たものである場合、タスク記述zに関連するより少ないサブ画像Xijにより多くの情報が含まれるというものである。特定の閾値vに対してエントロピーH<vである状態に対応する画像Xを、それによって決定することができる。
【0063】
このブロックの出力Fは、画像Xおよびタスク記述zに応じて決まり、次式の信号を規定するのに使用することができる。
【0064】
【0065】
ここから、この信号F(X,z)のみを使用して報酬信号107を規定することができ、または、既存の報酬Rが既に得られている場合、報酬成形を使用して別の報酬関数R’=R+Fを得ることによって報酬を修正できるという点で、報酬成形関数として処理することができる。
【0066】
図6は、例示的実現例を適用することができる物理的環境例を示している。ここで記載する例示的実現例は、ロボットの近くのデバイスに存在するドッカー化したマイクロサービスとして設定することができる。このデバイスは、ロボットにタスクを完了するために必要とするアクションを与えるポリシーの計算に関与する。
【0067】
このポリシーは、本明細書に記載する例示的実現例によって拡張される、強化学習(RL)アルゴリズム202を介して学習される。DDPG、SAC、PPOなど、様々なRLアルゴリズムを使用することができる。本発明の環境では、ロボットがタスクを完了しようとする際にキャプチャされる画像105を提供するカメラ201があると仮定される。
【0068】
これらの画像は、別のデバイスに存在するデータベース101に格納されるが、RLアルゴリズムを計算するのに使用されるデバイスがこれらの画像にアクセスすることができる限り、RLアルゴリズムの同じデバイスに存在することもできる。
【0069】
ポリシーが、現在の状態に基づいてRLアルゴリズム202を使用してアクションを計算すると、ロボットに対するアクション命令203が、ロボットと通信するデバイスに送られる。これはやはり、RLアルゴリズムが稼働する同じデバイスであることができる。ここから、このアクションが処理され、ロボット108に通信して、ポリシーによって指定される次のアクションへと移る。
【0070】
アクションが行われると、別のカメラ画像が撮られ、プロセスは繰り返す。提案される報酬方法は、ロボットが取り組もうと試みているタスクに関連する、キーワード1031の形態での人間の入力を使用することができる。これらは、RLアルゴリズムが動作するエッジデバイスへと入力することができる。
【0071】
本明細書に記載する例示的実現例を通して、強化学習を使用してロボットポリシーを学習するのに使用する、より良好な報酬関数をそれによって構築することができる。これは、かかるアルゴリズムがロボットポリシーをより短時間で学習することを可能にする即効性を有するようになるので、個々のタスクそれぞれに合わせて調整される、高度にカスタマイズされた報酬の必要性が低減される。
【0072】
いくつかの事例では、必要とされるであろうものは、単一の言語命令と、場合によっては少量の追加のアノテーションとですべてである。実際の学習時間を低減する他に、提案される解決策によってリソース要件が全体的に少なくなる。例示的実現例では、環境を観察するカメラのみを必要とする可能性があるが、より複雑なフィードバックをロボットに提供することができる、詳細な感知要件に対する必要性を適宜低減させることができる。
【0073】
この複雑なフィードバックの構築は、一般に、顕著なエンジニアリングリソースを要する。他方で、例示的実現例は、詳細な技術的知識なしに利用することができ、必要とする時間投資は最小限である。
【0074】
図7は、1つの例示的実現例による、管理装置にネットワーク接続された複数のロボットシステムを含むシステムを示している。1つまたは複数のロボット制御システム701(例えば、ロボットアーム、旋盤、エアコンプレッサなどの制御システム)は、管理装置702に接続された対応するロボットハードウェアコントローラを通して、ネットワーク700(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN))に通信可能に結合される。
【0075】
管理装置702は、ロボット制御システム701から収集された履歴データを収容し、またロボット制御システム701のそれぞれに対する遠隔制御を容易にする、データベース703を管理する。
【0076】
代替の例示的実現例では、ロボットシステムからのデータは、ロボット制御システム701からデータを取り込む専用データベースなどの中央レポジトリまたは中央データベース、あるいはエンタープライズリソースプランニングシステムなどのシステムに格納することができ、管理装置702は、中央レポジトリまたは中央データベースにアクセスするか、あるいはそこからデータを取り出すことができる。
【0077】
図8は、
図7に示されるような管理装置など、いくつかの例示的実現例で使用するのに適したコンピュータデバイス例を有するコンピューティング環境例を示している。
【0078】
コンピューティング環境800のコンピュータデバイス805は、1つもしくは複数の処理装置、コア、またはプロセッサ810、メモリ815(例えば、RAM、ROM、および/もしくはその他)、内部ストレージ820(例えば、磁気、光学、固体記憶装置、および/もしくは有機)、ならびに/あるいはI/Oインターフェース825を含むことができ、それらはいずれも、情報を通信する通信メカニズムまたはバス830で結合するか、あるいはコンピュータデバイス805に埋め込むことができる。
【0079】
I/Oインターフェース825はまた、所望の実現例に応じて、画像をカメラから受信するか、画像をプロジェクタまたはディスプレイに提供するように構成される。
【0080】
コンピュータデバイス805は、入力/ユーザインターフェース835および出力デバイス/インターフェース840に通信可能に結合することができる。入力/ユーザインターフェース835および出力デバイス/インターフェース840のどちらか一方または両方は、有線もしくは無線インターフェースであることができ、取外し可能であることができる。
【0081】
入力/ユーザインターフェース835は、入力を提供することができる、物理的または仮想の、任意のデバイス、構成要素、センサ、またはインターフェース(例えば、ボタン、タッチスクリーンインターフェース、キーボード、ポインティング/カーソル制御、マイクロフォン、カメラ、点字、モーションセンサ、光学リーダ、および/もしくはその他)を含んでもよい。
【0082】
出力デバイス/インターフェース840は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカー、点字などを含んでもよい。いくつかの例示的実現例では、入力/ユーザインターフェース835および出力デバイス/インターフェース840は、コンピュータデバイス805を埋め込むか、またはそれに物理的に結合することができる。
【0083】
他の例示的実現例では、他のコンピュータデバイスが、コンピュータデバイス805の入力/ユーザインターフェース835および出力デバイス/インターフェース840として機能するか、またはその機能を提供してもよい。
【0084】
コンピュータデバイス805の例としては、高度モバイルデバイス(例えば、スマートフォン、自動車または他の機械のデバイス、人および動物が携帯するデバイスなど)、モバイルデバイス(例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど)、ならびに移動用に設計されていないデバイス(例えば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、1つまたは複数のプロセッサが埋め込まれたテレビおよび/またはそれらが結合されたテレビ、ラジオなど)を含んでもよいが、それらに限定されない。
【0085】
コンピュータデバイス805は、同じまたは異なる構成の1つもしくは複数のコンピュータデバイスを含む、任意の数のネットワーク化された構成要素、デバイス、およびシステムと通信するため、(例えば、I/Oインターフェース825を介して)外部ストレージ845およびネットワーク850に通信可能に結合することができる。
【0086】
コンピュータデバイス805、または任意の接続されたコンピュータデバイスは、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、または別のレベルとして機能するか、そのサービスを提供するか、あるいはその名称で呼ぶことができる。
【0087】
I/Oインターフェース825は、コンピューティング環境800の少なくとも全ての接続された構成要素、デバイス、およびネットワークとの間で情報を通信するため、任意の通信もしくはI/Oプロトコルまたは規格(例えば、Ethernet(登録商標)、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラーネットワークプロトコルなど)を使用して、有線および/または無線インターフェースを含むことができるが、それらに限定されない。
【0088】
ネットワーク850は、任意のネットワークまたはネットワークの組み合わせ(例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど)であることができる。
【0089】
コンピュータデバイス805は、一時的媒体および非一時的媒体を含む、コンピュータ使用可能またはコンピュータ可読媒体を使用することができ、ならびに/あるいはそれらを使用して通信することができる。
【0090】
一時的媒体は、伝送媒体(例えば、金属ケーブル、光ファイバー)、信号、搬送波などを含む。非一時的媒体は、磁気媒体(例えば、ディスクおよびテープ)、光学媒体(例えば、CD ROM、デジタルビデオディスク、ブルーレイディスク)、固体媒体(例えば、RAM、ROM、フラッシュメモリ、固体記憶装置)、ならびに他の不揮発性記憶装置またはメモリを含む。
【0091】
コンピュータデバイス805は、技術、方法、アプリケーション、プロセス、またはコンピュータ実行可能命令を、いくつかのコンピューティング環境例において実現するのに使用することができる。
【0092】
コンピュータ実行可能命令は、一時的媒体から取り出すことができ、また非一時的媒体に格納し、そこから取り出すことができる。実行可能命令は、任意のプログラミング、スクリプト、および機械言語(例えば、C、C++、C#、Java(登録商標)、Visual Basic、Python(登録商標)、Perl(登録商標)、JavaScript(登録商標)など)の1つまたは複数によるものであることができる。
【0093】
プロセッサ810は、ネイティブまたは仮想環境において、任意のオペレーティングシステム(OS)(図示なし)下で実行することができる。ロジックユニット860、アプリケーションプログラミングインターフェース(API)ユニット865、入力ユニット870、出力ユニット875、ならびに異なるユニットが互いと、OSと、および他のアプリケーション(図示なし)と通信するための、ユニット間通信メカニズム895を含む、1つまたは複数のアプリケーションを配備することができる。
【0094】
記載したユニットおよび要素は、設計、機能、構成、または実装が可変であり、提供する説明に限定されない。プロセッサ810は、中央処理装置(CPU)などのハードウェアプロセッサの形態、またはハードウェアおよびソフトウェアユニットの組み合わせであることができる。
【0095】
いくつかの例示的実現例では、情報または実行命令がAPIユニット865によって受信されると、1つまたは複数の他のユニット(例えば、ロジックユニット860、入力ユニット870、出力ユニット875)に通信されてもよい。
【0096】
いくつかの例では、ロジックユニット860は、ユニット間の情報フローを制御し、上述したいくつかの例示的実現例では、APIユニット865、入力ユニット870、出力ユニット875によって提供されるサービスを方向付けるように構成されてもよい。
【0097】
例えば、1つもしくは複数のプロセスまたは実装のフローは、ロジックユニット860のみによって、またはAPIユニット865との組み合わせで制御されてもよい。入力ユニット870は、例示的実現例に記載される計算のための入力を得るように構成されてもよく、出力ユニット875は、例示的実現例に記載される計算に基づいて出力を提供するように構成されてもよい。
【0098】
プロセッサ810は、報酬を、1つまたは複数のロボット制御システムを制御する機械学習アルゴリズムに提供するように構成することができ、プロセッサは、画像105とテキストで規定されたタスク記述104とを受信し、画像をスライスして
図2に示されるような複数のサブ画像にし、タスク記述のテキストおよびサブ画像を埋め込んで、タスク記述に対する関連性に基づいてサブ画像の分布を生成する、埋込みモデルを実行し、
図2~
図4に示されるようにサブ画像の分布から報酬を生成するように構成される。
【0099】
プロセッサ810は、タスク記述を更新するのに、タスク記述のためのテキストの選択を受信し、
図3に示されるようなテキストの選択に基づいて、タスク記述を更新するように構成することができる。
【0100】
プロセッサ810は、テキストの選択を最適化することによって、テキストの選択に基づいてタスク記述を更新するように構成することができ、テキストの選択の最適化は、画像のデータベースから、機械学習アルゴリズムの出力によってもたらされる成功エピソードと関連付けられた画像のセットを抽出することと、画像のセットから、テキストの選択に関連するゴールに対応する画像の別のセットを抽出することと、画像の別のセットおよびテキストの選択に対して意味抽出装置を実行して、意味空間内における画像の別のセットおよびテキストの選択の埋込みを作成することと、画像の別のセットおよびテキストの選択に対して意味空間内で最も近いポイントを決定することと、
図3の103で示されるような意味空間内のベクトルを含む更新されたタスク記述を、意味空間の最適化されたポイントから生成することと、を含む。
【0101】
プロセッサ810は、サブ画像およびタスク記述の埋込みの間の類似性スコアを計算し、サブ画像それぞれがタスク記述に関連する確率を示す分布を生成することによって、埋込みモデルを実行してタスク記述のテキストおよびサブ画像を埋め込んで、タスク記述に対する関連性に基づいて、サブ画像の分布を生成するように構成することができ、報酬をサブ画像に関する分布から生成することは、
図4および
図5に示されるような分布のエントロピーに基づいて、報酬を生成することを含む。
【0102】
所望の実現例に応じて、報酬が1つまたは複数のロボット制御システムに提供され、機械学習アルゴリズムは、報酬を処理して、
図6に示されるような機械学習アルゴリズムの所与の状態に対するポリシーを更新する。
【0103】
詳細な記載のいくつかの部分は、コンピュータ内の動作のアルゴリズムおよび記号的表現に関して提示される。これらのアルゴリズム的説明および記号的表現は、データ処理分野の当業者が技術革新の本質を他の当業者に伝達するのに使用される手段である。アルゴリズムは、所望の最終状態または結果につながる一連の規定されたステップである。例示的実現例では、実施されたステップは、有形の結果を達成するために有形の量を物理的に操作することを要する。
【0104】
別段の具体的な提示がない限り、考察から明らかなように、説明全体を通して、「処理」、「コンピューティング」、「計算」、「決定」、「表示」などの用語を利用した考察は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として提示されるデータを操作し、コンピュータシステムのメモリもしくはレジスタまたは他の情報記憶、送信、もしくは表示デバイス内の物理的量として同様に提示される他のデータに変換する、コンピュータシステムまたは他の情報処理デバイスの動作およびプロセスを含むことができるものと認識される。
【0105】
例示的実現例はまた、本明細書の動作を実施するための装置に関連してもよい。この装置は、必要な目的のために特別に構築されてもよく、あるいは1つもしくは複数のコンピュータプログラムによって選択的に活性化または再構成される、1つもしくは複数の汎用コンピュータを含んでもよい。
【0106】
かかるコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体など、コンピュータ可読媒体に格納されてもよい。コンピュータ可読記憶媒体は、光学ディスク、磁気ディスク、読出し専用メモリ、ランダムアクセスメモリ、固体デバイスおよびドライブ、または電子情報を格納するのに適した他の任意のタイプの有形もしくは非一時的媒体など、有形媒体を含んでもよい。
【0107】
コンピュータ可読信号媒体は、搬送波などの媒体を含んでもよい。本明細書で提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関連しない。コンピュータプログラムは、所望の実現例の動作を実施する命令を含む、純粋なソフトウェア実現例を含んでもよい。
【0108】
様々な汎用システムが、本明細書の例によるプログラムおよびモジュールとともに使用されてもよく、または所望の方法ステップを実施する、より専門的な装置を構築するのに便利であると判明することがある。それに加えて、例示的実現例は、任意の特定のプログラミング言語を参照して記載されない。
【0109】
本明細書に記載されるような例示的実現例の技法を実現するのに、様々なプログラミング言語が使用されてもよいことが認識されるであろう。プログラミング言語の命令は、1つもしくは複数の処理デバイス、例えば中央処理装置(CPU)、プロセッサ、またはコントローラによって実行されてもよい。
【0110】
当該分野では知られているように、上述の動作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実施することができる。例示的実現例の様々な態様が、回路およびロジックデバイス(ハードウェア)を使用して実現されてもよく、他の態様は、プロセッサによって実行された場合、本出願の実例を実施する方法をプロセッサに実施させる、機械可読媒体(ソフトウェア)に格納された命令を使用して実現されてもよい。
【0111】
更に、本出願のいくつかの例示的実現例は、ハードウェアのみによって実施されてもよく、他の例示的実現例はソフトウェアのみによって実施されてもよい。更に、記載した様々な機能は、単一のユニットで実施することができ、または様々な手法で多数の構成要素に拡散することができる。
【0112】
ソフトウェアによって実施される場合、方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてもよい。所望の場合、命令は、圧縮および/または暗号化された形式で媒体に格納することができる。
【0113】
更に、本出願の他の実現例が、本明細書を考慮し本出願の技法を実践することによって、当業者には明白となるであろう。記載した例示的実現例の様々な態様および/または構成要素は、単独でまたは任意の組み合わせで使用されてもよい。本明細書および例示的実現例は単なる例として見なされ、本出願の真の範囲および趣旨は以下の特許請求の範囲によって示されるものとする。
【符号の説明】
【0114】
101:環境のデータベース
103:タスク記述更新ブロック
106:報酬生成ブロック
108:エージェント
110:環境