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

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

▶ ユーアイパス,インコーポレイテッドの特許一覧

特表2022-552130ロボティックプロセスオートメーションにおける強化学習
<>
  • 特表-ロボティックプロセスオートメーションにおける強化学習 図1
  • 特表-ロボティックプロセスオートメーションにおける強化学習 図2
  • 特表-ロボティックプロセスオートメーションにおける強化学習 図3
  • 特表-ロボティックプロセスオートメーションにおける強化学習 図4
  • 特表-ロボティックプロセスオートメーションにおける強化学習 図5
  • 特表-ロボティックプロセスオートメーションにおける強化学習 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】ロボティックプロセスオートメーションにおける強化学習
(51)【国際特許分類】
   G06N 20/00 20190101AFI20221208BHJP
【FI】
G06N20/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022520181
(86)(22)【出願日】2020-08-18
(85)【翻訳文提出日】2022-05-06
(86)【国際出願番号】 US2020046764
(87)【国際公開番号】W WO2021076222
(87)【国際公開日】2021-04-22
(31)【優先権主張番号】16/707,858
(32)【優先日】2019-12-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/915,385
(32)【優先日】2019-10-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.ZIGBEE
3.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】シング,プラブディープ
(72)【発明者】
【氏名】ヒダルゴ,マルコ,アルバン
(57)【要約】
強化学習は、ロボットによって実施されるロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデルを訓練するために使用することができる。特定の入力を提供することによって明確な出力を達成するように学習するポリシーネットワークを使用することができる。言い換えれば、ポリシーネットワークは、勝利状態に近づいているかどうかをシステムに通知する。ポリシーネットワークは、勝利状態に達するために、またはより最適な勝利状態を達成するために、ロボットによって自動的に、または人間の定期的な支援によって洗練されてもよい。ロボットはまた、強化学習を利用する他のロボットを作成することができる。

【特許請求の範囲】
【請求項1】
強化学習を使用してロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデルを訓練するためのコンピュータにより実施される方法であって、
前記MLモデルを使用して訓練データ上でシミュレーションを実行することによって前記MLモデルを訓練するステップであって、前記MLモデルが報酬関数を有する、ステップと、
前記MLモデルが、1つまたは複数の基準に基づいて前記報酬関数によって定義される収束を達成しない場合に、
人間の支援を要求するステップと、
コンピューティングシステム上で人間によって行われたアクションを監視するステップと、
前記人間によって行われた前記アクションに基づいて、前記MLモデル、前記報酬関数、またはその両方のためのポリシーネットワークを修正するステップと、を含む、コンピュータにより実施される方法。
【請求項2】
前記MLモデルを訓練する前記ステップ、人間の支援を要求する前記ステップ、前記コンピューティングシステム上で前記人間によって行われた前記アクションを監視する前記ステップ、および前記ポリシーネットワーク、前記報酬関数、もしくはその両方を修正する前記ステップは、RPAロボットによって実行される、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
収束が達成されるまで、前記MLモデルを使用して前記訓練データ上で前記シミュレーションを実行する前記ステップと、人間の支援を要求する前記ステップと、前記コンピューティングシステム上で前記人間によって行われた前記アクションを監視する前記ステップと、前記ポリシーネットワーク、前記報酬関数、またはその両方を修正する前記ステップと、を繰り返すステップをさらに含む、
請求項1に記載のコンピュータにより実施される方法。
【請求項4】
収束が達成された後に、前記方法は、
前記MLモデルを展開するステップと、
RPAロボットによって、実行時に前記MLモデルを呼び出すステップと、をさらに含む、請求項3に記載のコンピュータにより実施される方法。
【請求項5】
前記MLモデルのデプロイメントは、前記訓練されたMLモデルを呼び出すために、前記RPAロボットによって実施されたRPAワークフロー内の1つまたは複数のアクティビティを修正するステップを含む、請求項4に記載のコンピュータにより実施される方法。
【請求項6】
前記RPAロボットによって、前記MLモデルの性能が所定の性能しきい値を超えて低下していることを検出するステップと、
収束が達成されるまで前記MLモデルを再訓練するステップと、
をさらに含む、請求項4に記載のコンピュータにより実施される方法。
【請求項7】
前記所定の性能しきい値は、ユーザーアクションなしに収束が達成される検出精度または頻度を含む、請求項6に記載のコンピュータにより実施される方法。
【請求項8】
前記1つまたは複数の基準は、所定の試行回数、所定の時間、またはこれらの組み合わせを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項9】
前記人間によって行われた前記アクションの前記監視は、前記人間によって行われた前記アクションに基づいて行われたアプリケーションプログラミングインターフェース(API)呼び出しを監視するステップを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項10】
強化学習を使用してロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデルを訓練するためのコンピュータにより実施される方法であって、
前記MLモデルを使用して訓練データ上でシミュレーションを実行するステップであって、前記MLモデルが報酬関数を有する、ステップと、
前記MLモデルが、1つまたは複数の基準に基づいて前記報酬関数によって定義される収束を達成しない場合に、
コンピューティングシステム上で人間によって行われたアクションを監視するステップと、
前記人間によって行われた前記アクションに基づいて、前記MLモデル、前記報酬関数、またはその両方のためのポリシーネットワークを修正するステップと、
収束が達成されるまで、前記MLモデルを使用して前記訓練データ上で前記シミュレーションを実行する前記ステップと、前記コンピューティングシステム上で前記人間によって行われた前記アクションを監視する前記ステップと、前記ポリシーネットワーク、前記報酬関数、またはその両方を修正する前記ステップと、を繰り返すステップと、を含む、コンピュータにより実施される方法。
【請求項11】
前記方法ステップは、RPAロボットによって実行される、請求項10に記載のコンピュータにより実施される方法。
【請求項12】
収束が達成された後に、前記方法は、
前記MLモデルを展開するステップと、
RPAロボットによって、実行時に前記MLモデルを呼び出すステップと、をさらに含む、請求項10に記載のコンピュータにより実施される方法。
【請求項13】
前記MLモデルのデプロイメントは、前記訓練されたMLモデルを呼び出すために、前記RPAロボットによって実施されたRPAワークフロー内の1つまたは複数のアクティビティを修正するステップを含む、請求項12に記載のコンピュータにより実施される方法。
【請求項14】
前記RPAロボットによって、前記MLモデルの性能が所定の性能しきい値を超えて低下していることを検出するステップと、
収束が達成されるまで前記MLモデルを再訓練するステップと、
をさらに含む、請求項12に記載のコンピュータにより実施される方法。
【請求項15】
前記所定の性能しきい値は、ユーザーアクションなしに収束が達成される検出精度または頻度を含む、請求項14に記載のコンピュータにより実施される方法。
【請求項16】
前記1つまたは複数の基準は、所定の試行回数、所定の時間、またはこれらの組み合わせを含む、請求項10に記載のコンピュータにより実施される方法。
【請求項17】
前記人間によって行われた前記アクションの前記監視は、前記人間によって行われた前記アクションに基づいて行われたアプリケーションプログラミングインターフェース(API)呼び出しを監視するステップを含む、請求項10に記載のコンピュータにより実施される方法。
【請求項18】
強化学習を使用してロボティックプロセスオートメーション(RPA)のための機械学習(ML)モデルを訓練するためのコンピュータにより実施される方法であって、
ポリシーネットワークを使用して前記MLモデルを訓練するステップであって、前記MLモデルが報酬関数を有する、ステップと、
前記訓練されたMLモデルを展開するステップであって、前記訓練されたMLモデルのデプロイメントが、前記訓練されたMLモデルを呼び出すために、RPAロボットによって実施されたRPAワークフロー内の1つまたは複数のアクティビティを修正することを含む、ステップと、
前記RPAロボットによって、実行時に前記訓練されたMLモデルを呼び出すステップと、を含む、コンピュータにより実施される方法。
【請求項19】
前記RPAロボットによって、前記MLモデルの性能が所定の性能しきい値を超えて低下していることを検出するステップと、
強化学習を使用して前記MLモデルを再訓練するステップと、
をさらに含む、請求項18に記載のコンピュータにより実施される方法。
【請求項20】
前記MLモデルの前記訓練は、
前記MLモデルを使用して訓練データ上でシミュレーションを実行するステップと、
前記MLモデルが、1つまたは複数の基準に基づいて前記報酬関数によって定義される収束を達成しない場合に、
人間の支援を要求するステップと、
コンピューティングシステム上で人間によって行われたアクションを監視するステップと、
前記人間によって行われた前記アクションに基づいて、前記MLモデル、前記報酬関数、またはその両方のための前記ポリシーネットワークを修正するステップと、を含む、請求項18に記載のコンピュータにより実施される方法。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2019年12月9日に出願された米国非仮特許出願第16/707,858号および2019年10月15日に出願された米国仮特許出願第62/915,385号の利益を主張する。これらの先願の主題は、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAにおける強化学習に関する。
【背景技術】
【0003】
現在のほとんどの機械学習アルゴリズムは、学習の基礎として履歴データを利用する。しかし、強化学習では、既存の知識の活用と未知の探索とを併用するバランスがとられる。探索では、現在の知識によって導かれるランダムなアクションが、目的関数(すなわち、「勝利」状態)に近づこうと試みて用いられる。言い換えれば、勝利状態に達していない場合、そのようなアルゴリズムが探索機能を実施する。そのような技術は、「ブレイクアウト」ゲームおよび「ゴー」ゲームをプレイすることをコンピュータに教示するために使用されてきた。
【0004】
強化学習は、RPAのコンテキストでは使用されていない。また、従来の強化学習技術は、膨大な量の計算能力およびかなりの時間を要するため、多くの用途に適さない。したがって、改善された強化学習のソリューションが有益であり得る。
【発明の概要】
【0005】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、または解決されていない当技術分野の問題および必要性に対するソリューションを提供することができる。例えば、本発明のいくつかの実施形態は、RPAにおける強化学習に関する。
【0006】
一実施形態では、強化学習を使用してRPAのためのMLモデルを訓練するためのコンピュータにより実施される方法は、MLモデルを使用して訓練データ上でシミュレーションを実行することによってMLモデルを訓練するステップを含む。MLモデルは、報酬関数を有する。MLモデルが1つまたは複数の基準に基づいて報酬関数によって定義された収束を達成しない場合、コンピュータにより実施される方法は、人間の支援を要求するステップと、コンピューティングシステム上で人間によって行われたアクションを監視するステップと、人間によって行われたアクションに基づいて、MLモデル、報酬関数、またはその両方のポリシーネットワークを修正するステップと、を含む。
【0007】
別の実施形態では、強化学習を使用してRPAのためのMLモデルを訓練するためのコンピュータにより実施される方法は、MLモデルを使用して訓練データ上でシミュレーションを実行するステップを含む。MLモデルは、報酬関数を有する。MLモデルが1つまたは複数の基準に基づいて報酬関数によって定義された収束を達成しない場合、コンピュータにより実施される方法は、コンピューティングシステム上で人間によって行われたアクションを監視するステップと、人間によって行われたアクションに基づいて、MLモデル、報酬関数、またはその両方のポリシーネットワークを修正するステップと、を含む。コンピュータにより実施される方法は、収束が達成されるまで、MLモデルを使用して訓練データ上でシミュレーションを実行するステップと、コンピューティングシステム上で人間によって行われたアクションを監視するステップと、ポリシーネットワーク、報酬関数、またはその両方を修正するステップと、を繰り返すステップを含む。
【0008】
さらに別の実施形態では、強化学習を使用してRPAのためのMLモデルを訓練するためのコンピュータにより実施される方法は、ポリシーネットワークを使用してMLモデルを訓練するステップを含む。MLモデルは、報酬関数を有する。コンピュータにより実施される方法はまた、訓練されたMLモデルを展開するステップを含む。訓練されたMLモデルのデプロイメントは、訓練されたMLモデルを呼び出すために、RPAロボットによって実施されたRPAワークフロー内の1つまたは複数のアクティビティを修正するステップを含む。コンピュータにより実施される方法は、RPAロボットによって、実行時に訓練されたMLモデルを呼び出すステップをさらに含む。
【図面の簡単な説明】
【0009】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより具体的な説明は、添付の図面に示されている特定の実施形態を参照することによって提供される。これらの図面は、本発明の典型的な実施形態のみを示しており、したがってその範囲を限定するものとみなされるべきではないことを理解されたいが、本発明は、添付の図面を使用することによって追加の具体性および詳細を伴って記載され説明される。
【0010】
図1】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0011】
図2】本発明の一実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
【0012】
図3】本発明の一実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0013】
図4】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0014】
図5】本発明の一実施形態による、RPAにおいて強化学習を実施するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0015】
図6】本発明の一実施形態による、RPAにおいて強化学習を実施するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0016】
いくつかの実施形態は、RPAにおける強化学習に関する。強化学習では、探索フェーズがある。プロセスマイニングは、システムの様々な状態を(例えば、コンピューティングシステム上にリスナーを展開し、クリックボタン、アプリケーションのオープン/クローズ、テキストの入力など、それらのコンピューティングシステム上でユーザー、ロボット、またはその両方によって行われたアクションに関する情報を収集することによって)提供することができる。開始状態(例えば、一組の電子メールアドレス)および終了状態(例えば、すべての電子メールアドレスが適切にSalesforce(登録商標)に入力されて終わる)を指定することによって、システムは、状態空間の探索を導くために短期報酬および長期報酬の両方を伴う中間遷移およびステップを探索する報酬関数を使用して、開始状態から終了状態までの解をランダムに見つけようと試みることができる。取引の場合、例えば、システムは、それが収益を上げるまでランダムに取引を続けるように要求され得る。
【0017】
しかしながら、システムは、この目的を達成するために何らかのガイダンスを必要とする。ソリューションが特定の基準(例えば、一定回数の試行、所定の時間など)に達していない場合には、システムは人間のガイダンスを要求することができる。このプロセスは、ソリューションに達するまで繰り返されてもよい。
【0018】
いくつかの実施形態は、報酬関数を調整して定義するポリシーネットワークを使用する。いくつかの実施形態では、これは、システムが人間によって行われたアクションを監視することによって達成され得る。人間が、自分がロボットとインタラクトしていることを知っているかどうかにかかわらず、コンピューティングシステム上でアクションを行うことによって操作を修正する場合には、ポリシーネットワークは、このアクションから学習し、それを報酬関数に組み込むことができる。これは、ロボットが報酬関数の目標に近づくのを助ける。換言すれば、ポリシーネットワークは、それが勝利状態に近づいているかどうかをロボットに通知する。本明細書で使用される場合、勝利状態はゲームに関連しなくてもよい。むしろ、画像内の顔または人間の感情を正しく認識すること、文書を処理すること、車両を所望の方法で制御すること、または本発明の範囲から逸脱することなく任意の他の適切な所望の結果を含むが、これらに限定されない任意の適切な所望の結果である。
【0019】
勝利状態に近づくために、ロボットは基礎となる分布を解析することができる。結果が同じ範囲(例えば、標準偏差の半分以内、1つの標準偏差など)にある場合には、これはロボットの性能に関する情報を提供する。解析は、検索機能、統計分布などとすることができる。例えば、ロボットがSalesforce(登録商標)にログインできない場合には、ロボットは人間がそうするのを見ることができる。言い換えれば、ロボットは、人間によって行われるアプリケーションプログラミングインターフェース(API)呼び出しを監視することができる(例えば、人間は、ユーザー名フィールドをクリックし、ユーザー名を入力し、パスワードフィールドをクリックし、パスワードを入力し、提出ボタンをクリックする)。
【0020】
完全にランダムな探索を実行するのではなく、いくつかの実施形態は、ポリシーネットワークを介してポリシーが何であるべきかを決定する。これにより、勝利状態を達成するために必要なシミュレーションの数を大幅に減らすことができ、強化学習を介して訓練された機械学習(ML)モデルをより迅速に開発および展開すること、より少ないコンピューティングハードウェアリソースを使用して訓練すること、またはその両方が可能になる。実際、いくつかの実施形態では、強化学習は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォンなどのユーザー自身のコンピューティングシステム上で実行されてもよく、これは通常、従来は不可能である。
【0021】
ユーザーインターフェースとインタラクトするコンテキストでは、例えば、ロボットは画面上でランダムにクリックして、何がクリック可能かを判定することができる。次いで、強化学習を使用して、所望の自動化を先に進めることができる。例えば、電子メールアドレスおよび所望の電子メールテキストのスプレッドシートが与えられると、強化学習を使用して、どのクリック可能なボタンが電子メールアプリケーションを開くかを発見し、電子メール内のどこに異なるテキストが入力されるべきかを発見し、電子メールを送信するためにクリックするボタンを発見することができる。この例では、ポリシーネットワークを使用して、電子メールの送信が可能であるか、または望ましいかどうかを最初に判定することができる。この判定が行われると、ポリシーネットワークは、スプレッドシートからの電子メールアドレスおよび電子メール本文テキストを送信前に電子メールにコピーできるかどうかを判定することができる。
【0022】
複雑なユースケースでは、報酬関数が何であるべきかを最初に決定することは、しばしば困難または不可能である。例えば、カメラからのビデオフィードを使用して人間が何をしているかを推測しようとする事例を考える。例えば、報酬関数が十分に迅速に収束していない場合には、または全く収束していない場合には、人間は報酬関数のさらなる改良に関与することができる。MLモデルを試験および訓練し、報酬関数を改良するために、制御された環境を設計時に提供することができる。実行時に、新しいまたは洗練されたMLモデルを展開することができ、ロボットによって実施されたワークフローは、ワークフロー内のそれぞれのアクティビティを修正することによって、新しいまたは洗練されたMLモデルを呼び出すように修正することができる。
【0023】
非限定的な例として、数百万のリンクがある強化学習を使用してAmazon(登録商標)で単位当たり最低価格を見つける方法を学習するようにRPAロボットを訓練することが望ましい場合を考える。ロボットは、シミュレーション環境内でリンクをランダムに探索し、クリックすることができるが、ロボットが合理的に追従し、勝利状態への収束を達成するには多すぎる選択肢がある。人間は、最初にロボットのアクションをレビューし、何らかのガイダンスを提供することができる(例えば、ロボットにキーワードを入力する方法およびクリックする場所を手動で示す)。ロボットは、これらのアクションを見て、無分別にクリックしないように学習する。この入力が与えられると、ロボットは訓練し、さらに探索することができる。次いで、ロボットはそのポリシーネットワークを修正し、所望の結果に近づく。人間は、ロボットが収束を達成するのに十分なガイダンスを有するまで、定期的に何らかのガイダンスを提供し続けるか、または特定の条件下でガイダンスを提供し続けることができる。
【0024】
したがって、人間は、MLモデルをより効果的にするために、訓練、パーソナライズなどにおいて任意の所望の層でロボットを支援することができる。人間を関与させる場合および関与させるかどうかは、特定の用途および挙動に依存し得る。例えば、MLモデルの性能が特定のしきい値を超えて低下している場合には、それはシステムが次のステップおよび/または例を人間に求めることをトリガする可能性がある。Amazon(登録商標)の例では、ロボットが回答を取得せずに1万クリックを実行した場合、人間によるレビューおよびガイダンスが開始され得る。
【0025】
いくつかの実施形態では、ロボットは、ポリシーネットワーク自体を自動的に構築するために強化学習を利用することができる。これらのポリシーネットワークは、所与のシナリオ(例えば、どのAPIが呼び出されるか)におけるコンピューティングシステムとの人間のインタラクションの観測に基づいて構築することができる。特定の実施形態では、RPAロボット自体が、強化学習を実施する他のロボットを構築することができる。
【0026】
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計および実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、ならびに第三者アプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供することができる。デザイナ110は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0027】
自動化プロジェクトは、本明細書で「アクティビティ」と定義される、ワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ110の一実施形態の一商用例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。いくつかの実施形態では、ワークフローはネストまたは埋め込みされてもよい。
【0028】
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含むことができるが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへの流れを可能にする線形プロセスに特に適し得る。フローチャートは、より複雑なビジネスロジックに特に適しており、複数の分岐論理演算子を介してより多様な方法で決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している場合がある。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を判定し、プロセスをデバッグするのに特に適し得る。
【0029】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの遂行は、デザイナ110で開発されたワークフローを遂行する1つまたは複数のロボット130を編成するコンダクタ120によって編成される。コンダクタ120の一実施形態の一商用例は、UiPathオーケストレータ(商標)である。コンダクタ120は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、第三者のソリューションおよびアプリケーションとの統合ポイントまたは集約ポイントのうちの1つとして機能することができる。
【0030】
コンダクタ120は、集中ポイントからロボット130を接続し遂行するすべてのロボット130を管理することができる。管理され得るロボット130のタイプは、これらに限定されないが、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発および試験の目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発および試験の目的で使用される)を含む。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよび記録媒体のためのコンダクタ120と共に使用することができる。アテンディッドロボット132は、人間のユーザーが様々なタスクを達成するのを助けることができ、ユーザーイベントによってトリガすることができる。いくつかの実施形態では、プロセスは、このタイプのロボットのコンダクタ120から開始することができず、および/またはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイまたはコマンドプロンプトからのみ起動することができる。いくつかの実施形態では、アテンディッドロボット132は人間の監督下で動作するべきである。
【0031】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業待ち行列のサポートの提供を担当することができる。いくつかの実施形態では、すべてのロボットタイプのデバッグを、デザイナ110で実行することができる。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステムおよびアプリケーションを自動化することができる。
【0032】
コンダクタ120は、プロビジョニング、デプロイメント、バージョン管理、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な機能を有することができる。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続の作成および保守を含むことができる。デプロイメントは、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含むことができる。バージョン管理は、いくつかの実施形態では、いくつかのプロセスまたは構成の固有のインスタンスの管理を含むことができる。構成は、ロボット環境およびプロセス構成の維持および配信を含むことができる。キューイングは、キューおよびキュー項目の管理を提供することを含むことができる。監視は、ロボット識別データを追跡し、ユーザー権限を維持することを含むことができる。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージ機構(例えば、大規模なデータセットを格納し、迅速にクエリする能力を提供するElasticSearch(登録商標))へのログの格納およびインデックス付けを含むことができる。コンダクタ120は、第三者のソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供することができる。
【0033】
ロボット130は、デザイナ110に構築されたワークフローを実行する遂行エージェントである。ロボット130のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。
【0034】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置することができる。このようなロボット130の場合、これは、所与のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特徴は、その最大の可能性で各機械の完全な利用を保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、任意のタイプのロボット130をHD環境で構成することができる。
【0035】
いくつかの実施形態におけるロボット130は、各々が特定の自動化タスク専用であるいくつかのコンポーネントに分割される。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして機能する。これらのサービスは、ロボット130の資格情報で信頼され、管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。
【0036】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして機能する。ユーザーモードロボットサービスは、ロボット130のための資格情報を信頼し管理することができる。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションを自動的に起動することができる。
【0037】
エグゼキュータは、Windows(登録商標)セッション下で所与のジョブを実行することができる(すなわち、エグゼキュータはワークフローを遂行することができる)。エグゼキュータは、モニターごとのドット/インチ(DPI)設定を認識することができる。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブの開始または停止および設定の変更を要求することができる。コマンドラインは、サービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0038】
上記で説明したようにロボット130のコンポーネントを分割することは、開発者、サポートユーザー、およびコンピューティングシステムが各コンポーネントが実行しているものをより容易に実行、識別、および追跡するのに役立つ。このようにして、エグゼキュータおよびサービスに対して異なるファイアウォールルールを設定するなど、特別な挙動をコンポーネントごとに構成することができる。エグゼキュータは、いくつかの実施形態では、モニターごとにDPI設定を常に認識することができる。結果として、ワークフローは、それらが作成されたコンピューティングシステムの構成にかかわらず、任意のDPIで遂行され得る。いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルとは無関係であってもよい。DPIを認識していない、または意図的に認識していないとマークされたアプリケーションの場合、いくつかの実施形態ではDPIを無効にすることができる。
【0039】
図2は、本発明の一実施形態による、展開されたRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバー側、またはその両方は、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意されたい。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212と、エージェント214と、デザイナ216と、を含む。しかしながら、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212は、実行中のプロセスである。図2に示すように、いくつかのビジネスプロジェクトが同時に実行されてもよい。エージェント214(例えば、Windows(登録商標)サービス)は、この実施形態ではすべてのエグゼキュータ212に対する単一の接続ポイントである。この実施形態におけるすべてのメッセージは、データベースサーバー240、インデクササーバー250、またはその両方を介してそれらをさらに処理するコンダクタ230にログされる。図1に関して上述したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0040】
いくつかの実施形態では、ロボットは、機械名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、複数のロボットが同時に実行され、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行されてもよい。これは、上記ではHDロボットと呼ばれる。
【0041】
エージェント214はまた、ロボットのステータス(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)を送信し、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では常にエージェント214によって開始される。通知シナリオでは、エージェント214は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ230によって後で使用されるWebSocketチャネルを開くことができる。
【0042】
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、ならびに通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ220のインターフェース内で(例えば、ブラウザ220を介して)実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。そのようなアクションは、本発明の範囲から逸脱することなく、ロボット上のジョブの開始、キュー内のデータの追加/削除、無人で実行するためのジョブのスケジューリングなどを含むことができるが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびJavaScript(JS)を使用する。しかしながら、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、または任意の他のフォーマットを使用することができる。ユーザーは、コンダクタ230を制御するための様々なアクションを実行するために、この実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクトする。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごとおよび/またはプロセスごとにログを解析し、ロボットを起動および停止することなどができる。
【0043】
ウェブアプリケーション232に加えて、コンダクタ230はまた、OData REST APIエンドポイント234を公開するサービス層を含む。しかしながら、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、この実施形態ではクライアントコンピュータ上の1つまたは複数のロボットの管理者である。
【0044】
この実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義および構成するために使用され得る。例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報などの様々な情報をログに記録するために、RESTエンドポイントをロギングすることができる。開始ジョブコマンドがコンダクタ230内で使用される場合に遂行されるべきパッケージバージョンをクエリするために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キューおよびキュー項目管理を担当することができる。
【0045】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視することができる。通知監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送信/受信に使用されるRESTエンドポイントであってもよい。通知監視API236はまた、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0046】
永続層は、この実施形態におけるサーバーのペア、すなわちデータベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。この実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態ではウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキュー項目を管理することができる。いくつかの実施形態では、データベースサーバー240は、(インデクササーバー250に加えて、またはその代わりに)ロボットによって記録されたメッセージを格納することができる。
【0047】
インデクササーバー250は、いくつかの実施形態ではオプションであり、ロボットによって記録された情報を格納し、インデックス付けする。特定の実施形態では、インデクササーバー250は、構成設定を通じて無効にすることができる。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトのフルテキスト検索エンジンであるElasticSearch(登録商標)を使用する。ロボット(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用する)によってログされたメッセージは、ロギングRESTエンドポイントを介してインデクササーバー250に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
【0048】
図3は、本発明の一実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。上記により、開発者は、デザイナ310を使用して、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含むことができる。いくつかの実施形態は、本明細書ではコンピュータビジョン(CV)と呼ばれる、画像内の非テキスト視覚コンポーネントを識別することができる。そのようなコンポーネントに関係するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素存在、リフレッシュ範囲、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学文字認識(OCR)、ファジー文字マッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを使用して要素を識別することができる。テキストを取得し、OCRを使用して特定のテキストの位置を識別し、それをスキャンすることができる。ホバーは、要素を識別し、それをホバーすることができる。要素が存在することは、上述した技術を使用して、画面上に要素が存在するかどうかをチェックすることができる。いくつかの実施形態では、デザイナ310に実装することができるアクティビティは、数百または数千であってもよい。しかしながら、本発明の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティが利用可能であり得る。
【0049】
UI自動化アクティビティ330は、下位レベルコード(例えば、CVアクティビティ)に書き込まれ、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアとインタラクトすることを可能にするドライバ340を介したこれらのインタラクションを容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0050】
ドライバ340は、フックを探し、キーを監視するなど、低レベルでOSとインタラクトすることができる。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にすることができる。例えば、「クリック」アクティビティは、ドライバ340を介してこれらの異なるアプリケーションで同じ役割を実行する。
【0051】
図4は、本発明の一実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、図1および/または図2のRPAシステム100および/または200であり得るか、それらを含み得る。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。次に、コンダクタコンピューティングシステム420は、データベースサーバー430および任意選択のインデクササーバー440と通信することができる。
【0052】
図1および図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用できることに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバー側アプリケーションを実行することができる。
【0053】
図5は、本発明の一実施形態による、RPAにおいて強化学習を実施するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためにバス505に結合されたプロセッサ510と、を含む。プロセッサ510は、中央プロセッシングユニット(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの汎用または専用プロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、プロセッサ510の少なくとも一方は、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0054】
コンピューティングシステム500は、プロセッサ510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体、またはそれらの組み合わせの任意の組み合わせで構成することができる。非一時的コンピュータ可読媒体は、プロセッサ510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能、取り外し不能、またはその両方であってもよい。
【0055】
さらに、コンピューティングシステム500は、無線接続および/または有線接続を介して通信ネットワークへのアクセスを提供するためのトランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、ロングタームエボリューション(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、ホームノードB(HnB)、Bluetooth、無線周波数識別(RFID)、赤外線データ結合(IrDA)、近距離通信(NFC)、第5世代(5G)、新無線(NR)、それらの任意の組み合わせ、ならびに/あるいは本発明の範囲から逸脱することなく、任意の他の現在存在する、または将来実施される通信規格および/またはプロトコルを使用するように構成されてもよい。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、位相、切り替え、ビームフォーミング、ビームステア、それらの組み合わせ、および/または任意の他のアンテナ構成である1つまたは複数のアンテナを含むことができる。
【0056】
プロセッサ510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
【0057】
キーボード530およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするためにバス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクトすることができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500と遠隔でインタラクトすることができ、またはコンピューティングシステム500は自律的に動作することができる。
【0058】
メモリ515は、プロセッサ510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成された強化学習モジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含むことができる。
【0059】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。
【0060】
本明細書に記載されたシステム特徴のいくつかは、それらの実装の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0061】
モジュールはまた、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。
【0062】
実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
【0063】
図6は、本発明の一実施形態に係る、RPAにおいて強化学習を実施するためのプロセス600を示すフローチャートである。いくつかの実施形態では、訓練は、サーバー、ユーザーコンピューティングシステム、RPAロボット、またはそれらの任意の組み合わせによって実行されてもよい。プロセスは、610において、MLモデルを使用して訓練データ上でシミュレーションを実行することによって、初期報酬関数を有するMLモデルを訓練することから始まる。620において、MLモデルが、1つまたは複数の基準(例えば、所定数のシミュレーションの後に、所定の時間の後に、これらの組み合わせ(例えば、所定の回数の試行がその間に行われない限り、所定の時間の後に)など)に基づく報酬関数によって定義された収束を達成しない(すなわち、MLモデルが勝利状態に至っていない)場合に、630において人間の支援が要求され、ロボットは、640において、人間によって行われたアクションを監視し、MLモデル、報酬関数、またはその両方のポリシーネットワークを修正する。例えば、ロボットは、人間のコンピューティングシステムとのインタラクション中に行われるAPI呼び出しを監視し、それらを模倣するように学習することができる。次いで、プロセスはステップ610に戻り、修正されたポリシーネットワーク、修正された報酬関数、またはその両方を使用して訓練データ上でさらなるシミュレーションを実行する。
【0064】
人間の支援を要求し、ポリシーネットワークを修正し、さらなるシミュレーションを実行するプロセスは、620で収束が達成されるまで繰り返される。次いで、訓練されたMLモデルが650において展開され、展開されたMLモデルが660においてRPAロボットによって実行時に呼び出される。いくつかの実施形態では、訓練されたMLモデルのデプロイメントは、訓練されたMLモデルを呼び出すためにRPAロボットによって実施されたRPAワークフローにおける1つまたは複数のアクティビティを修正することを含む。670において、MLモデルの性能が所定の性能しきい値を超えて低下していること(例えば、検出精度が所定のしきい値を下回る、報酬関数の目標が人間のアクションなしで達成される頻度が低い、など)が検出された場合には、プロセスはステップ610に戻り、MLモデルの再訓練を実行する。
【0065】
図6で実行されるプロセスステップは、本発明の実施形態に従って、プロセッサが図6で説明したプロセスの少なくとも一部を実行するための命令を符号化するコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される任意の他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納することもできる、図6で説明したプロセスステップの全部または一部を実施するようにコンピューティングシステムのプロセッサ(例えば、図5のコンピューティングシステム500のプロセッサ510)を制御するための符号化命令を含むことができる。
【0066】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実施することができる。コンピュータプログラムは、互いに動作可能に通信し、表示するために情報または命令を渡すように設計されたモジュールから構成することができる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で動作するように構成することができる。
【0067】
本発明の様々な実施形態のコンポーネントは、本明細書の図に一般的に記載および図示するように、多種多様な異なる構成で配置および設計されてもよいことが容易に理解されよう。したがって、添付の図面に表される本発明の実施形態の詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を単に代表するものである。
【0068】
本明細書を通して説明される本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」というフレーズ、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
【0069】
本明細書を通して特徴、利点、または同様の文言を参照することは、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであること、または本発明の任意の単一の実施形態であることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、一実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0070】
さらに、本発明の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本発明を実施できることを認識するであろう。他の例では、本発明のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0071】
当業者は、上述の本発明が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本発明をこれらの好ましい実施形態に基づいて説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の修正、変形、および代替構築が明らかであることは、当業者には明らかであろう。したがって、本発明の範囲を決定するために、添付の特許請求の範囲を参照すべきである。

図1
図2
図3
図4
図5
図6
【国際調査報告】