Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7736159B2 - 学習装置、制御装置、学習方法及びプログラム - Google Patents
[go: Go Back, main page]

JP7736159B2 - 学習装置、制御装置、学習方法及びプログラム - Google Patents

学習装置、制御装置、学習方法及びプログラム

Info

Publication number
JP7736159B2
JP7736159B2 JP2024504056A JP2024504056A JP7736159B2 JP 7736159 B2 JP7736159 B2 JP 7736159B2 JP 2024504056 A JP2024504056 A JP 2024504056A JP 2024504056 A JP2024504056 A JP 2024504056A JP 7736159 B2 JP7736159 B2 JP 7736159B2
Authority
JP
Japan
Prior art keywords
learning
search point
evaluation
unit
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2024504056A
Other languages
English (en)
Other versions
JPWO2023166574A5 (ja
JPWO2023166574A1 (ja
Inventor
博之 大山
凜 高野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2023166574A1 publication Critical patent/JPWO2023166574A1/ja
Publication of JPWO2023166574A5 publication Critical patent/JPWO2023166574A5/ja
Application granted granted Critical
Publication of JP7736159B2 publication Critical patent/JP7736159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1628Program controls characterised by the control loop
    • B25J9/163Program controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39244Generic motion control operations, primitive skills each for special task

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Manipulator (AREA)

Description

本発明は、学習装置、制御装置、学習方法及びプログラムに関する。
タスクを実行するために必要なロボットの制御を行う場合に、ロボットの動作をモジュール化したスキルを設けてロボット制御を行うシステムが提案されている。例えば、特許文献1には、多関節ロボットが所与のタスクを実行するシステムにおいて、タスクに応じて選択可能なロボットスキルがタプルとして定義されており、タプルに含まれるパラメータを学習により更新する技術が開示されている。
国際公開第2018/219943号
ロボットのスキルの学習など、制御対象に対する制御の学習を行う際、学習の継続の要否を判定することができれば、無駄な学習を省くことができ、学習を効率的に行えると期待される。
この開示の目的の一例は、上述した課題を解決することのできる学習装置、制御装置、学習方法およびプログラムを提供することである。
本発明の第一の態様によれば、学習装置は、制御対象の動作を示す探索点のうち、前記制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択する探索点設定手段と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、前記制御対象を制御する制御手段が出力すべき出力値とを算出する計算手段と、選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して前記制御手段が出力すべき出力値とに基づいて、前記制御手段による前記制御対象に対する制御の学習のための訓練データを取得するデータ取得手段と、前記訓練データの取得状況に対する評価に基づいて、前記訓練データの取得を継続するか否かを判定する評価手段と、を備える。
本発明の第の態様によれば、学習方法は、コンピュータが、制御対象の動作を示す探索点のうち、前記制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択し、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、前記制御対象を制御する制御手段が出力すべき出力値とを算出し、選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して前記制御手段が出力すべき出力値とに基づいて、前記制御手段による前記制御対象に対する制御の学習のための訓練データを取得し、前記訓練データの取得状況に対する評価に基づいて、前記訓練データの取得を継続するか否かを判定する、ことを含む。
本発明の第の態様によれば、プログラムは、コンピュータに、制御対象の動作を示す探索点のうち、前記制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択することと、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、前記制御対象を制御する制御手段が出力すべき出力値とを算出することと、選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して前記制御手段が出力すべき出力値とに基づいて、前記制御手段による前記制御対象に対する制御の学習のための訓練データを取得することと、前記訓練データの取得状況に対する評価に基づいて、前記訓練データの取得を継続するか否かを判定することと、を実行させるためのプログラムである。
本発明によれば、制御対象に対する制御の学習を行う際、学習の継続の要否を判定することができれば、学習を効率的に行えると期待される。
第1実施形態に係る制御システムの構成の例を示す図である。 第1実施形態に係る既知タスクパラメータの例を示す図である。 第1実施形態に係る未知タスクパラメータの例を示す図である。 第1実施形態に係る学習装置のハードウェア構成の例を示す図である。 第1実施形態に係るロボットコントローラのハードウェア構成の例を示す図である。 第1実施形態に係る物体の把持を行うロボットと、把持対象物体とを実空間において表した図である。 図6に示す状態を抽象空間において表した図である。 第1実施形態に係るスキルの実行に関する制御系の構成の例を示す図である。 第1実施形態に係るスキルデータベースの更新に関する学習装置の機能構成の例を示す図である。 第一実施形態に係るスキル学習部の構成の例を示す図である。 第一実施形態に係るスキル学習部におけるデータの入出力の例を示す図である。 第一実施形態に係る学習装置によるスキルデータベースの更新処理の例を示す図である。 第二実施形態に係るスキル学習部におけるデータの入出力の例を示す図である。 第二実施形態に係る学習装置によるスキルデータベースの更新処理の例を示す図である。 第三実施形態に係るスキル学習部の構成の例を示す図である。 第三実施形態に係るスキル学習部におけるデータの入出力の例を示す図である。 第三実施形態に係るメタパラメータ処理部の構成の例を示す図である。 第三実施形態に係るメタパラメータ処理部におけるデータの入出力の例を示す図である。 第三実施形態に係るメタパラメータ個別処理部の構成の第1の例を示す図である。 図19に示すメタパラメータ個別処理部におけるデータの入出力の例を示す図である。 第三実施形態に係るメタパラメータ個別処理部の構成の第2の例を示す図である。 図21に示すメタパラメータ個別処理部におけるデータの入出力の例を示す図である。 第三実施形態に係る学習装置によるスキルデータベースの更新処理の例を示す図である。 第三実施形態に係るメタパラメータ処理部が予測器のメタパラメータ値を算出する処理の例を示す図である。 第三実施形態に係るメタパラメータ個別処理部が、予測器毎にメタパラメータ値を算出し、メタパラメータ値の学習継続の要否を判定する処理の第1の例を示す図である。 第三実施形態に係るメタパラメータ個別処理部が、予測器毎にメタパラメータ値を算出し、メタパラメータ値の学習継続の要否を判定する処理の第2の例を示す図である。 第四実施形態に係る学習装置の構成の例を示す図である。 第五実施形態に係る制御装置の構成の例を示す図である。 第六実施形態に係る学習方法における処理の手順の例を示す図である。
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、任意の文字「A」の上に任意の記号「x」が付された文字を、本明細書では便宜上、「A」と表す。
<第1実施形態>
(1)システム構成
図1は、第1実施形態に係る制御システムの構成の例を示す図である。図1に示す構成で、制御システム100は、学習装置1と、記憶装置2と、ロボットコントローラ3と、計測装置4と、ロボット5とを備える。学習装置1は、通信網を介し、又は、無線若しくは有線による直接通信により、記憶装置2とデータ通信を行う。また、ロボットコントローラ3は、記憶装置2、計測装置4及びロボット5と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。
学習装置1は、与えられたタスクを実行するためのロボット5の動作を、例えば自己教師あり学習(Self-Supervised Learning;SSL)などの機械学習によって学習する。また、学習装置1は、学習する動作を実行可能な状態の集合を学習する。
ただし、学習装置1が動作の学習を行う対象は特定のものに限定されず、制御可能、かつ、その制御を学習可能ないろいろな制御対象とすることができる。また、ロボット5など制御対象の動作は、位置の変化を伴うものに限定されない。例えば、ロボット5がセンサを用いてセンサ測定データを取得することが、ロボット5の動作の1つとして設定されていてもよい。
以下の実施形態でも同様である。
ここでいう状態は、ロボット5およびロボット5の動作環境を含む対象システムの状態である。
ロボット5と、ロボット5の動作環境とを総称して、対象システム、または、単にシステムと表記する。物を把持するタスクなど、タスクが対象物を扱うものである場合、タスクの対象物も対象システムに含まれるものとする。
対象システムの状態をシステム状態、または、単に状態と称する。タスクに定められているタスク完了時のシステム状態を、そのタスクの目標状態、または、単に目標状態とも称する。タスクの目標状態に到達することを、そのタスクを達成する、あるいは、そのタスクに成功するとも称する。
スキルを実行することでタスクが達成される場合、スキル実行終了時の状態が目標状態に該当する。
タスク開始時のシステム状態を、そのタスクの初期状態とも称する。
学習装置1は、ロボット5の特定の動作を動作毎にモジュール化したスキルに関する学習を行う。実施形態では、1つのタスクに対して1つのスキルの実行によってそのタスクを達成できるようなタスクを想定し、学習装置1が、そのタスクを達成できるようにスキルの学習を行う場合を例に説明する。
一方、ロボットコントローラ3が、複数のスキルを組み合わせてタスクを実行するようにしてもよい。例えば、ロボットコントローラ3が、与えられたタスクをスキルに対応するサブタスクに分割し、各サブタスクを実行するためのスキルを組み合わせて、与えられたタスクの実行を計画するようにしてもよい。
学習装置1は、スキルに関する学習にて、そのスキルを実行可能な状態集合の学習も行う。学習装置1は、学習したスキルに関する情報を、記憶装置2が記憶するスキルデータベースに登録する。スキルデータベースに登録される情報を、スキルタプル(Skill Tuple)とも称する。スキルタプルは、モジュール化したい動作を実行するために必要な種々の情報を含む。学習装置1は、記憶装置2が記憶する詳細システムモデル情報、ローレベル制御器情報、及び目標パラメータ情報に基づいて、スキルタプルを生成する。
記憶装置2は、学習装置1及びロボットコントローラ3が参照する情報を記憶する。記憶装置2は、例えば、詳細システムモデル情報と、ローレベル制御器情報と、目標パラメータ情報と、スキルデータベースとを記憶する。なお、記憶装置2は、学習装置1又はロボットコントローラ3に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよく、学習装置1及びロボットコントローラ3とデータ通信を行うサーバ装置などであってもよい。また、記憶装置2は、複数の記憶装置から構成され、上述した各記憶部を分散して保有してもよい。
詳細システムモデル情報は、実空間における対象システムのモデルを表す情報である。実空間における対象システムのモデルを詳細システムモデルとも称する。詳細システムモデルを抽象化した「抽象」システムモデルとの区別のために、「詳細」システムモデルと表記する。
詳細システムモデル情報が、詳細システムモデルを表す微分又は差分方程式で示されていてもよい。あるいは、詳細システムモデルが、ロボット5の動作を模擬するシミュレータとして構成されていてもよい。
ローレベル制御器情報は、ハイレベル制御器が出力するパラメータ値に基づき実際のロボット5の動作を制御する入力を生成するローレベル制御器に関する情報である。ローレベル制御器は、例えば、ハイレベル制御器がロボット5の軌道を生成した場合に、当該軌道に従ってロボット5の動作を追従する制御入力を生成するものであってもよい。例えば、ローレベル制御器は、ハイレベル制御器の出力するパラメータに基づきPID(Proportional Integral Differential)によるサーボ制御にてロボット5の制御を行うものであってもよい。
目標パラメータ情報は、学習装置1が学習するスキル毎に設けられ、例えば、初期状態情報と、目標状態/既知タスクパラメータ情報と、未知タスクパラメータ情報と、実行時間情報と、一般制約情報とを含む。
ここで、タスクの可変部分をタスクパラメータと称する。
タスクパラメータのうち数値で表されるものを既知タスクパラメータと称する。既知タスクパラメータの例として、タスクが対象物を把持するタスクである場合の把持対象物の大きさなど、タスクにおける対象物の大きさ、および、タスクを実行するためのロボット5の軌跡を挙げることができるが、これらに限定されない。
既知タスクパラメータは、スキルにおいてもパラメータとして扱うことができる。既知タスクパラメータは、スキルのパラメータの例に該当する。
図2は、既知タスクパラメータの例を示す図である。図2は、ロボット5が、円柱の形状の対象物を把持するタスクを実行する場合の例を示している。この場合、対象物である円柱の半径および高さが既知タスクパラメータの例に該当する。
一方、タスクパラメータのうち数値での表現が困難なものを未知タスクパラメータと称する。未知タスクパラメータの例として、タスクが対象物を把持するタスクである場合の把持対象物の形状など、タスクにおける対象物の形状、および、タスクを実行するために必要なスキルなど、タスクを実行するためのロボット5の動作の種類を挙げることができるが、これらに限定されない。
図3は、未知タスクパラメータの例を示す図である。図3は、ロボット5が、いろいろな形状の対象物を把持するタスクを実行する場合の例を示している。この場合、対象物の形状が未知パラメータの例に該当する。
また、制御システム100が、システム状態を数値化して扱うことを想定して、目標状態が数値で表されるものとする。例えば、ロボット5がピックアンドプレイス(Pick And Place)を行うタスクの場合、目標状態が、対象物の座標が所定の範囲内にあることと表されていてもよい。
初期状態情報は、対象のスキルを実行可能な状態の集合を示す情報である。スキルの実行開始時の状態を、そのスキルの初期状態、または、単に初期状態とも称する。初期状態の集合を初期状態集合とも称する。
初期状態をxまたはxsiで表す。ここでは、「i」は、初期状態を識別する識別番号を表す正の整数である。また、初期状態の時刻を0とし、初期状態をxで表す場合がある。
目標状態/既知タスクパラメータ情報は、対象のスキルの実行によって到達可能な状態である目標状態がとり得る値と、対象のスキルにおける陽的なパラメータとして扱われる既知タスクパラメータがとり得る値との組み合わせの集合を示す情報である。例えば、ロボット5が対象物を把持するスキルの場合、目標状態がとり得る値としてフォーム・クロージャ(Form Closure)、フォース・クロージャ(Force Closure)などの安定把持条件に関する情報を含んでいてもよい。
目標状態と既知タスクパラメータ値との組み合わせを目標状態/既知タスクパラメータ値と称し、βまたはβgiで表す。ここでは、「i」は、目標状態/既知タスクパラメータ値を識別する識別番号を表す正の整数である。
タスクにおける目標状態の違い、および、既知タスクパラメータ値の違いをスキルにおけるパラメータとして扱うことで、目標状態および既知タスクパラメータ値の何れか、またはこれら両方が異なるタスクを、1つのスキルで実行することができる。
例えば、学習装置1が、予測器(Predictor)を用いてスキルの学習に関する処理を行う場合、目標状態および既知タスクパラメータ値を予測器に入力して、目標状態および既知タスクパラメータ値に応じた出力値を得ることができる。ここでは、予測器は、例えばニューラルネットワークまたはガウス過程(Gaussian Process;GP)など、学習モデル(機械学習におけるモデル)を用いて構成される。
なお、スキルによっては既知タスクパラメータが無い場合が考えられる。この場合、目標状態/既知タスクパラメータ情報が、目標状態がとり得る値の集合として構成されていてもよい。また、目標状態/既知タスクパラメータ値βが、目標状態を示すものとなっていてもよい。
未知タスクパラメータ情報は、未知タスクパラメータに関する情報である。例えば、第三実施形態で後述するように、未知パラメータ関するデータの確率分布が未知タスクパラメータ情報にて示されていてもよい。1つのスキルが複数の未知タスクパラメータを有する場合、それぞれの未知タスクパラメータに関する情報が、未知タスクパラメータ情報にて示されていてもよい。
なお、第一実施形態および第二実施形態では、目標状態/既知タスクパラメータ情報に対する対応について説明する。第一実施形態および第二実施形態では、未知タスクパラメータに対応する値が固定値で示されていてもよい。
未知タスクパラメータ値をτまたはτで表す。ここでは、「j」は、未知タスクパラメータ値を識別する識別番号を表す正の整数である。
なお、未知タスクパラメータは、その値を体系立てて数値化することが困難な点で数値での表現が困難だが、未知タスクパラメータ値が同じか否かは判定可能であるものとする。例えば、未知タスクパラメータが対象物の形状を表す場合、2つの対象物の形状を比較することで、未知タスクパラメータ値が同じか否かを判定可能であるものとする。
制御システム100は、2つのタスクにおける未知タスクパラメータ値が同じ場合は、それら2つのタスクを同じタスクとして扱い、未知タスクパラメータ値が異なる場合は、それら2つのタスクを別々のタスクとして扱う。τまたはτでタスクを表す場合がある。上記の「j」は、タスクを識別する識別番号を表す正の整数と捉えることもできる。
実行時間情報は、スキル実行時の時間制限に関する情報である。例えば、実行時間情報が、スキルの実行時間(スキルの実行にかかる時間)、または、スキル実行開始から終了までの時間の許容条件値、あるいはこれら両方を示していてもよい。
一般制約情報は、例えば、ロボット5の可動範囲の制限、速度の制限、入力の制限に関する条件など、一般的な制約条件を示す情報である。
スキルデータベースは、スキルごとに用意されるスキルタプルのデータベースである。スキルタプルが、対象のスキルを実行するためのハイレベル制御器に関する情報と、対象のスキルを実行するためのローレベル制御器に関する情報と、対象のスキルを実行可能な、状態(スキルにおける初期状態)および目標状態/既知タスクパラメータ値の組み合わせの集合に関する情報とを含んでいてもよい。対象のスキルを実行可能な、状態および目標状態/既知タスクパラメータ値の集合を、実行可能状態集合とも称する。
実行可能状態集合は、実際の空間を抽象化した抽象空間において定義されていてもよい。実行可能状態集合は、たとえば、ガウス過程回帰(Gaussian Process Regression;GPR)や、レベルセット推定法(Level Set Estimation;LSE)により推定されたレベルセット関数、またはレベルセット関数の近似関数を用いて表すことができる。言い換えると、実行可能状態集合が、ある状態および目標状態/既知タスクパラメータ値の組み合わせを含んでいるか否かを、該ある状態および目標状態/既知タスクパラメータ値の組み合わせに対するガウス過程回帰の値(たとえば、平均値)や、該ある状態および目標状態/既知タスクパラメータ値の組み合わせに対する近似関数の値が、実行可能性について判定する制約条件を満たしているか否かによって判定することができる。
以下では、実行可能状態集合を示す関数としてレベルセット関数を用いる場合を例に説明するが、これに限定されない。
ロボットコントローラ3は、学習装置1による学習処理後に、計測装置4が供給する計測信号、及び、スキルデータベース等に基づき、ロボット5の動作計画を策定する。ロボットコントローラ3は、計画した動作をロボット5に実行させるための制御指令(制御入力)を生成し、ロボット5に当該制御指令を供給する。
例えば、ロボットコントローラ3は、ロボット5に実行させるタスクを、ロボット5が受付可能なタスクのタイムステップ(時間刻み)毎のシーケンスに変換する。そして、ロボットコントローラ3は、生成したシーケンスの実行指令に相当する制御指令に基づき、ロボット5を制御する。制御指令は、ローレベル制御器が出力する制御入力に相当する。
計測装置4は、例えば、ロボット5によるタスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。計測装置4は、生成した計測信号をロボットコントローラ3に供給する。計測装置4は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置4は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置4は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置4は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
ロボット5は、ロボットコントローラ3から供給される制御指令に基づき指定されたタスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ3に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の動作の進捗状態を示す信号であってもよい。
なお、図1に示す制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボットコントローラ3とロボット5とは、一体に構成されていてもよい。他の例では、学習装置1と記憶装置2とロボットコントローラ3のうち少なくともいずれか2つは一体に構成されていてもよい。
また、制御システム100の制御対象はロボットに限定されない。学習装置1が制御を学習可能ないろいろな制御対象を、制御システム100の制御対象とすることができる。
(2)ハードウェア構成
図4は、学習装置1のハードウェア構成の例を示す図である。学習装置1は、ハードウェアとして、プロセッサ11と、メモリ12と、インタフェース13とを含む。プロセッサ11、メモリ12及びインタフェース13は、データバス10を介して接続されている。
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、学習装置1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11が、複数のプロセッサから構成されていてもよい。プロセッサ11は、コンピュータの例に該当する。
メモリ12は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、学習装置1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、学習装置1と通信可能な1又は複数の外部記憶装置(例えば記憶装置2)により記憶されてもよく、学習装置1に対して着脱自在な記憶媒体により記憶されていてもよい。
インタフェース13は、学習装置1と他の装置とを電気的に接続するためのインタフェースである。これらのインタフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイヤレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。例えば、インタフェース13は、タッチパネル、ボタン、キーボード、音声入力装置などのユーザの入力(外部入力)を受け付ける入力装置、ディスプレイ、プロジェクタ等の表示装置、スピーカなどの音出力装置等とのインタフェース動作を行ってもよい。
なお、学習装置1のハードウェア構成は、図4に示す構成に限定されない。例えば、学習装置1が、表示装置、入力装置又は音出力装置の少なくともいずれかを内蔵してもよい。また、学習装置1が、記憶装置2を含んで構成されていてもよい。
図5は、ロボットコントローラ3のハードウェア構成の例を示す図である。ロボットコントローラ3は、ハードウェアとして、プロセッサ31と、メモリ32と、インタフェース33とを含む。プロセッサ31、メモリ32及びインタフェース33は、データバス30を介して接続されている。
プロセッサ31は、メモリ32に記憶されているプログラムを実行することにより、ロボットコントローラ3の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ31は、例えば、CPU、GPU、TPUなどのプロセッサである。プロセッサ31が、複数のプロセッサから構成されていてもよい。
メモリ32は、例えば、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ32には、ロボットコントローラ3が実行する処理を実行するためのプログラムが記憶される。なお、メモリ32が記憶する情報の一部は、ロボットコントローラ3と通信可能な1又は複数の外部記憶装置(例えば記憶装置2)により記憶されてもよく、ロボットコントローラ3に対して着脱自在な記憶媒体により記憶されていてもよい。
インタフェース33は、ロボットコントローラ3と他の装置とを電気的に接続するためのインタフェースである。これらのインタフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイヤレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
なお、ロボットコントローラ3のハードウェア構成は、図5に示す構成に限定されない。例えば、ロボットコントローラ3が、表示装置、入力装置又は音出力装置の少なくともいずれかを内蔵してもよい。また、ロボットコントローラ3が、記憶装置2を含んで構成されていてもよい。
(3)抽象空間
ロボットコントローラ3は、スキルタプルに基づき、抽象空間においてロボット5の動作計画の策定を行う。そこで、ロボット5の動作計画において対象とする抽象空間について説明する。
図6は、物体の把持を行うロボット(マニピュレータ)5と、把持対象物体6とを実空間において表した図である。
図7は、図6に示す状態を抽象空間において表した図である。
一般的に、ピックアンドプレイスをタスクとするロボット5の動作計画を策定するには、ロボット5のエンドエフェクタ形状、把持対象物体6の幾何形状、ロボット5の把持位置・姿勢及び把持対象物体6の物体特性等を考慮した厳密な計算が必要となる。一方、本実施形態では、ロボットコントローラ3は、ロボット5、把持対象物体6などの各物体の状態が抽象的に(簡略的に)表された抽象空間において動作計画を策定する。図7の例では、抽象空間では、ロボット5のエンドエフェクタに対応する抽象モデル5xと、把持対象物体6に対応する抽象モデル6xと、ロボット5による把持対象物体6の把持動作実行可能領域(破線枠60参照)とが定義される。なお、抽象空間においても、上記のように、実行可能状態集合は、スキルを実行可能な、初期状態と目標状態/既知タスクパラメータ値との組み合わせの集合として示される。図7の例では、把持スキルを実行可能な、初期状態と目標状態/既知タスクパラメータ値との組み合わせの集合を、破線枠60の把持動作実行可能領域として例示している。
このように、抽象空間におけるロボットの状態は、エンドエフェクタの状態等を抽象的に表される。また、操作対象物または環境物体に該当する各物体の状態についても、例えば、作業台などの基準物体を基準とする座標系等において抽象的に表される。
本実施形態におけるロボットコントローラ3は、スキルを利用し、実際のシステムを抽象化した抽象空間において動作計画を策定する。これにより、マルチステージタスクにおいても動作計画に要する計算コストを好適に抑制する。図7の例では、ロボットコントローラ3は、抽象空間において定義される把持可能領域(破線枠60)において、把持を実行するためのスキルを実行する動作計画を策定し、策定した動作計画に基づきロボット5の制御指令を生成する。
以後では、実空間におけるシステムの状態を「x」、抽象空間におけるシステムの状態を「x’」と表記して、これらを区別する場合がある。状態x’は、ベクトル(抽象状態ベクトル)として表される。例えば、ピックアンドプレイスなどのタスクの場合、抽象状態ベクトルは、操作対象物の状態(例えば、位置、姿勢、速度等)を表すベクトル、操作可能なロボット5のエンドエフェクタの状態を表すベクトル、環境物体の状態を表すベクトルを含む。このように、状態x’は、実システムにおける一部の要素の状態を抽象的に表した状態ベクトルとして定義される。
同様に、実空間における目標状態/既知タスクパラメータ値を「β」、抽象空間における目標状態/既知タスクパラメータ値を「β’」と表記して、これらを区別する場合がある。
(4)スキル実行に関する制御系
図8は、スキルの実行に関する制御系の構成の例を示す図である。ロボットコントローラ3のプロセッサ31は、機能的には、動作計画部34と、ハイレベル制御部35と、ローレベル制御部36とを備える。また、システム50は、実際のシステム(ロボット5を含む実システム)に相当する。
ハイレベル制御部35をハイレベル制御器とも称し、πで表す。ハイレベル制御部35は、制御手段の例に該当する。ローレベル制御部36をローレベル制御器とも称し、πで表す。
ロボットコントローラ3は、ロボット5を制御する制御装置の例に該当する。
また、図8では、説明の便宜上、動作計画部34において対象とする抽象空間を例示した図(図7参照)を表す吹き出しを動作計画部34に対応付けて表示すると共に、システム50に対応する実システムを例示した図(図6参照)を表す吹き出しをシステム50に対応付けて表示している。同様に、図8では、スキルの実行可能状態集合に関する情報を表す吹き出しをハイレベル制御部35に対応付けて表示している。
動作計画部34は、抽象システムにおける状態x’とスキルデータベースとに基づき、ロボット5の動作計画を策定する。動作計画部34は、例えば、目標状態を時相論理に基づく論理式により表現する。動作計画部34が、線形時相論理、MTL(Metric Temporal Logic)、STL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現するようにしてもよい。
動作計画部34は、生成した論理式をタイムステップごとのシーケンス(動作シーケンス)に変換する。この動作シーケンスには、例えば、各タイムステップにおいて使用されるスキルに関する情報が含まれる。
ハイレベル制御部35は、動作計画部34が生成した動作シーケンスに基づき、タイムステップごとに実行すべきスキルを認識する。そして、ハイレベル制御部35は、現在のタイムステップにおいて実行すべきスキルに対応するスキルタプルに含まれるハイレベル制御器「π」に基づき、ローレベル制御部36への入力となるパラメータ「α」を生成する。
ハイレベル制御部35は、実行すべきスキルの実行開始時における抽象空間での状態「x’」および目標状態/既知タスクパラメータ値の組み合わせが、そのスキルの実行可能状態集合「χ’」に属する場合に、以下の式(1)に示されるように制御パラメータαを生成する。
上述したように、スキルの実行開始時における状態を、初期状態とも称する。初期状態は、例えば、抽象空間での状態で示される。
また、スキルの実行可能状態集合χ’に属するか否かを判定可能なレベルセット関数の近似関数を「g^」と定義すると、ロボットコントローラ3は、状態x’が実行可能状態集合χ’に属するか否かを、式(2)が満たされるか否か判定することで判定することが可能となる。
式(2)は、ある状態からの、スキルの実行可能性を判定する制約条件を表しているということもできる。あるいは、近似関数「g^」は、ある初期状態x’から、既知タスクパラメータ値の下で目標状態に到達できるかどうかを評価することができるモデルであるということもできる。
近似関数g^は、後述するように、学習装置1が学習することで求められる。
対象のスキルの実行後の抽象空間での目標状態の集合である目標状態集合を「χ’」と表記し、対象のスキルの実行時間を「T」と表記する。また、スキル実行開始からT時間経過した時点での状態を「x’(T)」とする。ローレベル制御部36を用いてスキルを実行することで、式(3)を実現可能である。
ローレベル制御部36は、ハイレベル制御部35が生成した制御パラメータαと、システム50から得られる現在の実システムでの状態xおよび目標状態/既知タスクパラメータ値βとに基づき、入力「u」を生成する。ローレベル制御部36は、スキルタプルに含まれるローレベル制御器「π」に基づき、式(4)に示されるように入力uを制御指令として生成する。
なお、ローレベル制御器πは、上記の式の形式に限定されず、種々の形式を有する制御器であってもよい。
ローレベル制御部36は、計測装置4が出力する計測信号(ロボット5からの信号を含んでもよい)等に基づき任意の状態認識技術を用いて認識したロボット5及び環境の状態を、状態xとして取得する。
図8では、システム50は、ロボット5への入力uと、状態xとを引数とする関数「f」を用いた、式(5)に示される状態方程式により表されている。
演算子「」は、時間についての微分、または、時間についての差分を表す。
(5)スキルデータベースの更新の概要
図9は、スキルデータベースの更新に関する学習装置1の機能構成の例を示す図である。学習装置1のプロセッサ11は、機能的には、抽象システムモデル設定部14と、スキル学習部15と、スキルタプル生成部16とを備える。なお、図9では、各ブロックについて授受が行われるデータの一例が示されているが、これに限定されない。他の図についても同様である。
抽象システムモデル設定部14は、詳細システムモデル情報に基づき、抽象システムモデルを設定する。この抽象システムモデルは、詳細システムモデル情報により特定される詳細システムモデルが簡略化されたモデルである。詳細システムモデルは、図8のシステム50に相当するモデルである。
抽象システムモデルは、詳細システムモデルにおける状態xを基に構成される抽象状態ベクトルx’を状態として持つモデルである。動作計画部34は、抽象システムモデルを用いて動作計画を策定する。
抽象システムモデル設定部14は、例えば、予め記憶装置2等に記憶されたアルゴリズムに基づき、詳細システムモデルから抽象システムモデルを算出する。
あるいは、抽象システムモデルに関する情報が予め記憶装置2等に記憶されていてもよい。この場合、抽象システムモデル設定部14が、記憶装置2等から抽象システムモデルに関する情報を取得するようにしてもよい。抽象システムモデル設定部14は、設定した抽象システムモデルに関する情報を、スキル学習部15及びスキルタプル生成部16に供給する。
スキル学習部15は、抽象システムモデル設定部14が設定した抽象システムモデルと、記憶装置2が記憶する詳細システムモデル情報、ローレベル制御器情報、及び、目標パラメータ情報とに基づき、スキル実行の制御の学習を行う。特に、スキル学習部15は、ハイレベル制御器πが出力する、ローレベル制御器πの制御パラメータαの値の学習を行う。また、スキル学習部15は、レベルセット関数の学習を行い、例えば、レベルセット関数の予測精度を評価する評価関数を用いて、制御パラメータαの学習のための訓練データを取得する。
スキルタプル生成部16は、スキル学習部15が学習した実行可能状態集合χ’に関する情報と、ハイレベル制御器πに関する情報と、抽象システムモデル設定部14が設定した抽象システムモデルに関する情報と、ローレベル制御器情報と,目標パラメータ情報とを含む組(タプル)をスキルタプルとして生成する。そして、スキルタプル生成部16は、生成したスキルタプルを、スキルデータベースに登録する。スキルデータベースのデータは、ロボットコントローラ3がロボット5を制御するために用いられる。
抽象システムモデル設定部14、スキル学習部15及びスキルタプル生成部16の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されていてもよい。このように、各構成要素は、種々のハードウェアにより実現されていてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されていてもよい。
(6)スキル学習部の説明
図10は、第一実施形態に係るスキル学習部15の構成の例を示す図である。スキル学習部15は、機能的には、探索点集合設定部210と、データ取得部220と、予測精度評価関数学習部230と、ハイレベル制御器学習部240とを備える。
探索点集合設定部210は、探索点集合初期化部211と、次探索点集合設定部212とを備える。
データ取得部220は、システムモデル設定部221と、問題設定計算部222と、データ更新部223とを備える。
予測精度評価関数学習部230は、レベルセット関数学習部231と、予測精度評価関数設定部232と、評価部233とを備える。
上記のように、スキル学習部15は、ハイレベル制御器πの学習を行うための訓練データ(Training Data)を生成し、生成した訓練データを用いてハイレベル制御器πの学習を行う。また、スキル学習部15は、レベルセット関数の学習を行う。
探索点集合設定部210は、ハイレベル制御器πの学習の対象とするタスク設定の候補として、初期状態xと、目標状態/既知タスクパラメータ値βとの組み合わせを複数用意する。探索点集合設定部210は、用意した複数の候補のうち、ロボットコントローラ3によるロボット5の制御の学習のための訓練データ取得の対象とするタスク設定を選択する。
探索点集合設定部210は、探索点設定手段の例に該当する。
探索点集合初期化部211は、ハイレベル制御器πの学習、および、レベルセット関数の対象とするタスク設定の候補の集合を設定する。具体的には、探索点集合初期化部211は、初期状態xと、目標状態/既知タスクパラメータ値βとの組み合わせを要素とする集合を設定する。
探索点集合初期化部211が設定する、ハイレベル制御器πの学習の対象とするタスク設定の候補の集合を探索点集合と称し、X searchで表す。また、タスク設定の候補を探索点とも称する。探索点は、(x,β)と表すことができる。
探索点(x,β)が決まればタスク設定が決まり、ロボット5の動作が決まる。探索点(x,β)は、タスク毎にロボット5の動作を示すものといえる。
次探索点集合設定部212は、探索点集合X searchから部分集合を取り出す。次探索点集合設定部212が取り出す部分集合の各要素は、ハイレベル制御器πの学習の対象とするタスク設定として扱われる。
次探索点集合設定部212が探索点集合X searchから取り出す部分集合を探索点部分集合と称し、X checkで表す。
探索点部分集合X checkの要素をXまたはX で表す。ここでは、「i」は、探索点部分集合の要素を識別する識別番号を表す正の整数である。
探索点部分集合X checkの要素を選択された探索点、または単に探索点とも称する。
データ取得部220は、次探索点集合設定部212が設定する探索点部分集合X checkの要素X毎に、ハイレベル制御器πの学習用の訓練データを取得する。
システムモデル設定部221は、探索点X毎に、最適制御問題の設定のためのシステムモデル等の設定を行う。
問題設定計算部222は、システムモデル設定部221が行った設定に基づいて、ロボット5によるタスク実行を示す解探索問題を設定する。ここでいう解探索問題は、提示される制約条件を満たす解を求める問題である。
具体的には、問題設定計算部222は、タスクに関する制約条件、および、ロボットの動作に関する制約条件などの制約条件と、目標状態への到達可能性の評価関数とを含む最適制御問題を設定する。最適制御問題は、評価関数値で示される評価がなるべく高くなるような制御入力を求める問題であり、最適化問題として捉えることができる。
以下では、最適制御問題の評価関数として、評価関数値が小さいほど評価が高いことを示す関数を用いる場合を例に説明する。この場合、最適制御問題を解く際には、評価関数の最小値など、評価関数値がなるべく小さくなる解を求める。
ただし、学習装置1が、最適制御問題の評価関数として、関数値が大きいほど評価が高いことを示す関数を用いるようにしてもよい。
問題設定計算部222は、設定した最適制御問題を解いて、評価関数値がなるべく小さくなるような、ハイレベル制御器πの出力値と、その出力値の場合の評価関数値とを算出する。
問題設定計算部222が算出する評価関数値は、探索点Xが示す動作の実行可否の評価を示す情報の例に該当する。問題設定計算部222は、計算手段の例に該当する。
データ更新部223は、問題設定計算部222が最適制御問題を解いて得られたデータを、ハイレベル制御器πの訓練データ、および、レベルセット関数の訓練データに含めるように、これらの訓練データを更新する。ここでいう、ハイレベル制御器πの訓練データは、ハイレベル制御器πの学習のための訓練データである。レベルセット関数の訓練データは、レベルセット関数の学習のための訓練データである。特に、最適制御問題を解いて得られる、ハイレベル制御器πが出力すべきパラメータ値αを、ハイレベル制御器πの学習のための訓練データに使用することができる。また、最適制御問題の解によって示される、スキルの実行可否の情報を、レベルセット関数の訓練データに使用することができる。また、これらの訓練データには、それぞれ、探索点X が含まれる。
ハイレベル制御器πの訓練データは、ロボットコントローラ3がハイレベル制御器πを用いて行うロボット5に対する制御の学習のための訓練データといえる。データ更新部223は、データ取得手段の例に該当する。
データ更新部223が扱う、ハイレベル制御器πの訓練データを表す集合を獲得データ集合と称し、Doptで表す。
予測精度評価関数学習部230は、獲得データ集合Doptを用いて、レベルセット関数および予測精度評価関数の学習を行い、レベルセット関数の学習継続の要否を判定する。
上記のように、レベルセット関数は、目標状態に到達可能な、状態および目標状態/既知タスクパラメータ値の組み合わせの集合である実行可能状態集合を示す関数である。予測精度評価関数は、レベルセット関数による、目標状態に到達可能な、状態および目標状態/既知タスクパラメータ値の組み合わせの推定精度に対する評価を示す関数である。
レベルセット関数の訓練は、ハイレベル制御器πの訓練データの取得の対象として選択された探索点Xについて、問題設定計算部222が算出する、ハイレベル制御器πの訓練データに用いられるデータを用いて行われる。データ更新部223が取得する訓練データの個数と、レベルセット関数の推定精度との間には正の相関関係があると考えられる。予測精度評価関数は、訓練データの取得状況に対する評価を示す関数とも言える。
レベルセット関数学習部231は、獲得データ集合Doptを用いてレベルセット関数の学習を行う。例えば、レベルセット関数学習部231は、獲得データ集合Doptの要素毎に、問題設定計算部222が算出した評価関数値に基づいて、目標状態への到達可否を判定する。そして、レベルセット関数学習部231は、目標状態への到達可否と、その要素が示す初期状態xおよび目標状態/既知タスクパラメータ値βとの組み合わせを訓練データとして用いて、レベルセット関数の学習を行う。
レベルセット関数学習部231は、レベルセット関数学習手段の例に該当する。
予測精度評価関数設定部232は、レベルセット関数学習部231が学習するレベルセット関数に対する予測精度評価関数を学習する。例えば、予測精度評価関数設定部232が、レベルセット関数の学習の対象となった探索点Xの、探索点Xの候補の空間における分布に基づいて、探索点Xの個数の多い部分空間または密度の高い部分空間の評価が高くなるように、予測精度評価関数を学習するようにしてもよい。予測精度評価関数設定部232は、予測精度評価関数設定手段の例に該当する。
予測精度評価関数をJg^、または、Jg^jで表す。ここでの「j」は、タスクを識別する識別番号を表す正の整数である。上述したように、制御システム100は、2つのタスクにおける未知タスクパラメータ値が異なる場合は、別々のタスクとして扱う。
評価部233は、予測精度評価関数を用いて、ハイレベル制御器πの訓練データの取得の継続の要否を判定する。評価部233は、評価手段の例に該当する。
ハイレベル制御器πの訓練データの取得の継続の要否は、レベルセット関数の学習の継続の要否と捉えることもできる。
評価部233の判定結果を示すフラグを、学習継続フラグとも称する。
ハイレベル制御器学習部240は、評価部233がハイレベル制御器πの訓練データの取得の継続不要と判定すると、獲得データ集合Doptを用いてハイレベル制御器πの学習を行う。
例えば、ハイレベル制御器学習部240は、獲得データ集合Doptの要素のうち、評価関数値が目標状態へ到達可能であることを示す要素を用いて、その要素に示される状態をハイレベル制御器πへの入力とした場合に、その要素に示される出力値を出力するように、ハイレベル制御器πの学習を行う。
ただし、ハイレベル制御器学習部240によるハイレベル制御器πの学習方法は、特定の方法に限定されない。
図11は、第一実施形態に係るスキル学習部15におけるデータの入出力の例を示す図である。
図11の例で、探索点集合初期化部211は、記憶装置2が記憶する目標パラメータ情報を用いて探索点集合X searchを設定する。例えば、探索点集合初期化部211が、目標パラメータ情報に基づいて、初期状態xsiと目標状態/既知タスクパラメータ値βとの可能な全ての組み合わせを、探索点集合X searchの要素として設定するようにしてもよい。
探索点集合初期化部211による探索点集合X searchの設定は、探索点集合X searchの初期設定に該当する。探索点集合X searchは、次探索点集合設定部212によって更新される。
次探索点集合設定部212は、探索点集合X searchから探索点部分集合X checkを取り出す。具体的には、次探索点集合設定部212は、探索点集合X searchから1つ以上の要素を読み出し、読み出した要素を探索点部分集合X checkの要素として設定する。そして、次探索点集合設定部212は、読み出した要素を探索点部分集合X checkに設定した要素を、探索点集合X searchの要素から削除する。
予測精度評価関数設定部232が予測精度評価関数の学習を行った場合、次探索点集合設定部212は、得られた予測精度評価関数を用いて探索点部分集合X checkの設定を行う。特に、次探索点集合設定部212は、探索点集合X searchの要素のうち、予測精度評価関数値が、レベルセット関数の推定精度が所定の条件よりも低いことを示す要素を、探索点部分集合X checkの要素として設定する。
ここでの推定精度が所定の条件よりも低いか否かの判定方法は、特定の方法に限定されない。例えば、予測精度評価関数値が大きいほど精度が低いとの評価を示す場合、推定精度が所定の条件よりも低いことは、予測精度評価関数値が所定の閾値よりも大きいことであってもよいが、これに限定されない。
システムモデル設定部221は、探索点部分集合X checkの要素毎に、最適制御問題の設定のための各種設定を行う。例えば、システムモデル設定部221は、記憶装置2が記憶する詳細システムモデル情報、ローレベル制御器情報、目標パラメータ情報、及び、抽象システムモデル設定部14が設定する抽象システムモデルに基づいて、ローレベル制御器πと、システムモデルと、システムモデルのパラメータに関する制約条件と、目標状態への到達可能性の評価関数とを設定する。
ここでいうシステムモデルは、例えば対象システムの運動モデルなど、対象システムのモデルである。システムモデルのパラメータに関する制約条件は、例えば、対象システムが備える装置の仕様上の制約条件、および、物理的な制約条件など、システムモデルのパラメータがとり得る値の制約条件である。システムモデル、および、システムモデルのパラメータに関する制約条件は、問題設定計算部222が扱う最適制御問題における制約条件の一部として用いられる。
システムモデル設定部221は、設定したローレベル制御器πと、システムモデルと、システムモデルのパラメータと、目標状態への到達可能性の評価関数と、探索点X と、実行時間Tなどスキル実行時の時間制限に関する情報を、問題設定計算部222へ出力する。
問題設定計算部222は、システムモデル設定部221からの情報に基づいて、探索点X 毎に最適制御問題を設定し、設定した最適制御問題の解を探索する。
上述したように、最適制御問題は、例えば、評価関数値がなるべく小さくなるような制御入力を求める問題である。具体的には、ここでいう最適制御問題は、初期状態および評価関数が与えられたときに、動作環境等による制約条件の下で評価関数値がなるべく小さくなるような制御入力を求める問題である。
問題設定計算部222は、目標状態への到達可能性の評価関数を、最適制御問題における評価関数に設定し、その他の各種設定を、最適制御問題における制約条件に設定する。
問題設定計算部222は、最適制御問題における制約条件のもとで、評価関数値がなるべく小さくなるような、ハイレベル制御器πの出力値を求める。問題設定計算部222は、探索点X と、評価関数値が最も小さくなるようなハイレベル制御器πの出力値α と、そのときの評価関数値g との組み合わせ(X ,g ,α )をデータ更新部223へ出力する。
例えば、問題設定計算部222が、式(6)が成立する場合に状態x’が目標状態であるような評価関数gを、最適制御問題の評価関数として用いるようにしてもよい。
式(6)が成立する場合に状態x’が目標状態であることは、式(7)のように表される。
’は目標状態集合を表す。
詳細システムモデルの状態xから抽象システムモデルの状態x’への写像をγで表すと、式(7)から式(8)を得られる。
最適制御問題で評価関数gの値を最小化することは、式(9)のように表される。
上記のように、Tは、スキル実行の所要時間を表す。g(γ(x(T)),β)は、スキル終了時における状態x(T)による評価関数値を表す。この評価関数値が0以下になれば、スキル実行によって目標状態に到達可能と判定することができる。
上記のように、αは、ハイレベル制御器πの出力を表す。式(9)は、評価関数gの値がなるべく小さくなるようなハイレベル制御器πの出力αを求めることを表している。
最適制御問題におけるシステムモデルは、式(10)のように表すことができる。
上記のように、τは、未知タスクパラメータを表す。
時間tは、式(11)のように表される。
最適制御問題における不等式制約条件は、式(12)のように表すことができる。
cは、制約条件を表す関数であり、例えば、目標パラメータ情報に基づいて設定される。
時刻0における状態は初期状態であり、式(13)のように表される。
γが詳細システムモデルの状態xから抽象システムモデルの状態x’への写像であることは、式(14)のように表すことができる。
問題設定計算部222は、例えば式(10)から式(14)までの制約条件の下で、式(9)に示されるように評価関数gの値をなるべく小さくするような、ハイレベル制御器の出力α、および、そのときの評価関数gの値gを求める。式(6)のように、g≦0であれば、このときの初期状態から、ハイレベル制御器の出力をαとしてスキルを実行することで、目標状態へ到達可能と判定することができる。
問題設定計算部222は、得られた評価関数の最小値g、および、そのときのハイレベル制御器の出力αを、初期状態x、および、目標状態/既知タスクパラメータ値βと共に、データ更新部223に出力する。あるいは、問題設定計算部222が、ハイレベル制御器の出力αに加えて、あるいは代えて、目標状態への到達可能を示す情報を、データ更新部223に出力するようにしてもよい。
データ更新部223は、このデータを、ハイレベル制御器学習部240によるハイレベル制御器πの学習に用いられる訓練データに含める。
問題設定計算部222が最適制御問題を解く方法は、特定の方法に限定されない。例えば、問題設定計算部222が、最適制御問題における解探索アルゴリズムとして公知のアルゴリズム、または、最適化問題における回探索問題として公知のアルゴリズムを用いるようにしてもよい。あるいは、問題設定計算部222が、ロボット5の動作のシミュレーションにて、強化学習など、評価関数値がなるべく小さくなるような動作の学習を行うようにしてもよい。
例えば、式(10)の関数fが解析的に得られている場合、問題設定計算部222は、Direct Collocation法、微分動的計画法(Differential Dynamic Programming;DDP)などの任意の最適制御アルゴリズムを用いて最適制御問題を解くことができる。
一方、関数fとしてシミュレータを用いた場合など、関数fが解析的に得られていない場合、問題設定計算部222は、Path Integral Controlなどのブラックボックス最適化手法、モデルフリーな最適制御手法を用いて、最適制御問題を解くことができる。この場合、問題設定計算部222は、制約条件を表す関数cに基づき、評価関数gを最小化する問題に従い制御パラメータαを求める。
ここで、図6に示されるピックアンドプレイスのタスクにおいて把持動作のスキルを生成する場合に、最適制御問題において用いられる目標パラメータ情報及びローレベル制御器πの具体例について説明する。
ここでいう、「スキルを生成する」ことは、スキルを学習済みのタスクとは異なるタスクのスキルを学習することである。上記のように、異なるタスクとは、未知タスクパラメータの値が異なるタスクである。
ここでは、式(10)に示されるシステムモデルとして、状態x、ロボット5への入力u、及び把持対象物体6を把持する力である接触力Fに基づく物理シミュレータを用いるものとする。この場合、目標状態に到達可能か否かの判定式は、式(15)のように表される。
式(15)が成立する場合、目標状態に到達可能と判定できる。
また、目標パラメータ情報の実行時間情報には、スキルの実行時間Tの上限値「Tmax」(T≦Tmax)を指定する情報が含まれているものとする。また、目標パラメータ情報の一般制約条件情報には、式(16)に示されるような、状態x、入力u、及び接触力Fに関する制約式を表す情報が含まれているものとする。
例えば、この制約式は、接触力Fの上限「Fmax」(F≦Fmax)、可動範囲(又は速度)の制限「xmax」(|x|≦xmax)、入力uの上限「umax」(|u|≦umax)などを包括的に表す式となっている。
また、ローレベル制御器πは、例えば、PIDによるサーボ制御器であるものとする。ここで、ロボット5の状態を「x」、ロボット5の状態の目標軌道を「xrd」とすると、入力uは、例えば、式(17)のように表される。
目標軌道xrdは、例えば、式(18)のように表される。
式(17)および式(18)で、ハイレベル制御器πHの出力αによる制御パラメータは、目標軌道多項式の係数及びPID制御のゲインであり、式(19)のように表される。
問題設定計算部222は、最適制御問題を解いて、式(19)に示される制御パラメータ(α)の最適値(α)を算出する。
データ更新部223は、問題設定計算部222から出力される(X ,g ,α )を獲得データ集合Doptに含めるように、獲得データ集合Doptを更新する。
レベルセット関数学習部231は、上述したように、獲得データ集合Doptに基づいてレベルセット関数の学習を行う。レベルセット関数学習部231は、得られたレベルセット関数を予測精度評価関数設定部232へ出力する。
例えば、レベルセット関数学習部231は、獲得データ集合Doptに示される評価関数値を所定の閾値と比較して、獲得データ集合Doptに示される初期状態から目標状態への到達可否を判定する。式(8)及び式(9)の例の場合、レベルセット関数学習部231は、評価関数値gが0以下か否かに基づいて、目標状態への到達可否を判定する。
そして、レベルセット関数学習部231は、獲得データ集合Doptに示される状態と、目標状態と、目標状態への到達可否の判定結果との組み合わせを訓練データとして用いて、レベルセット関数の学習を行う。
ここで、抽象状態における初期状態x’および目標状態/既知タスクパラメータ値βに対して評価関数gの最適値gを出力する関数をg(x’,β)と表記する。対象となるスキルの実行可能状態集合χ’は、式(20)のように表される。
レベルセット関数学習部231は、獲得データ集合Doptに含まれる初期状態x’と目標状態/既知タスクパラメータ値β’と関数値gとの複数の組に基づいて、実行可能状態集合χ’を表すレベルセット関数を学習する。例えば、レベルセット関数学習部231は、ベイズ最適化の考え方に基づくガウス過程回帰を用いた推定法であるレベルセット推定法を用いて、レベルセット関数を算出する。ここでは、このレベルセット関数をgGPで表す。
なお、このレベルセット関数gGPは、レベルセット推定法を通じて得られるガウス過程の平均値関数を利用して定義されていてもよいし、平均値関数と分散関数の組み合わせとして定義されていてもよい。
なお、レベルセット関数学習部231が、実行可能状態集合を示す関数を学習する方法は、特定の方法に限定されない。例えば、レベルセット関数学習部231が、レベルセット推定法と同様にガウス過程回帰を用いた推定法であるTruncated Variance Reduction(TruVaR)などを用いてレベルセット関数を求めるようにしてもよい。
上述したように、レベルセット関数は、所望状態に対して到達可能な初期状態を評価するモデルであればよい。また、レベルセット関数、および、ハイレベル制御器πの出力値αは、初期状態x’と目標状態/既知タスクパラメータ値β’と評価関数値gとの組に基づき決定されるということもできる。そして、レベルセット関数を決定することによって、到達可能な状態および既知タスクパラメータ値を評価することができるため、システムについての所望状態を達成可能な制御パラメータを決定することができるという効果を奏する。ここでは、ハイレベル制御器πの出力値αが制御パラメータの例に該当する。
また、ロボット等の制御装置が、レベルセット関数を用いて、与えられた既知タスクパラメータ値の下である初期状態から所望状態に到達可能か否かを判定するようにしてもよい。そして、この制御装置が、到達可能と判定した場合に、その初期状態に応じた制御パラメータを用いてロボット等の制御対象を制御するようにしてもよい。
レベルセット関数の計算コストを低減させるため、レベルセット関数学習部231が、多項式近似等により簡略化されたレベルセット関数を学習にて取得するようにしてもよい。この場合のレベルセット関数をg^で表す。g^をレベルセット近似関数とも称する。
レベルセット関数学習部231が、式(21)を満たすようなレベルセット近似関数g^を学習するようにしてもよい。
予測精度評価関数設定部232は、上述したように、レベルセット関数学習部231が学習するレベルセット関数に対する評価を示す予測精度評価関数を設定する。予測精度評価関数設定部232は、得られた予測精度評価関数を評価部233へ出力する。
例えば、予測精度評価関数設定部232が、レベルセット関数の学習の対象となった探索点Xの、探索点Xの候補の空間における分布に対する評価を示す関数を、予測精度評価関数として学習するようにしてもよい。ここでいう探索点Xの候補の空間は、探索点Xがとり得る値が構成する空間である。予測精度評価関数設定部232が、探索点Xの定義域が構成する空間を、探索点Xの候補の空間として用いるようにしてもよい。あるいは、探索点Xの候補の空間は、探索点集合X searchの初期値であってもよい。
例えば、予測精度評価関数として、探索点Xの候補を引数とし、その探索点Xの候補に対してレベルセット関数が示す目標状態への到達可能性に対する評価値を関数値として出力する関数を用いるようにしてもよい。
そして、予測精度評価関数設定部232が、予測精度評価関数の引数として入力される探索点Xの候補から所定の距離以内にある学習済みの探索点Xの個数が多いほど高い評価を示すように、予測精度評価関数値を算出するようにしてもよい。
あるいは、第三実施形態で説明するように、レベルセット関数値の分散が求まる場合、予測精度評価関数設定部232が、レベルセット関数値の分散が小さいほど評価が高くなるように、予測精度評価関数を設定するようにしてもよい。
ただし、予測精度評価関数設定部232が予測精度評価関数を学習する方法は、特定の方法に限定されない。
以下、特に区別の必要が無い場合は、レベルセット関数gGPとレベルセット関数g^とを総称してレベルセット関数g^と表記する。
評価部233は、上述したように、予測精度評価関数を用いて、ハイレベル制御器πの訓練データの取得の継続の要否を判定する。評価部233は、判定結果を学習継続フラグに設定する。
例えば、評価部233が、探索点Xの候補の空間における予測精度評価関数の最低値を算出するようにしてもよい。ここでいう予測精度評価関数の最低値は、評価が最も低い値である。そして、予測精度評価関数の最低値が所定の閾値よりも評価が低い場合、評価部233が、訓練データの取得の継続が必要と判定するようにしてもよい。一方、予測精度評価関数の最低値が所定の閾値以上に評価が高い場合、評価部233が、訓練データの取得の継続は不要と判定するようにしてもよい。
あるいは、評価部233が、探索点Xの候補の空間にて予測精度評価関数値をサンプリングし、得られた予測精度評価関数値にうち評価が最も低い値に基づいて、訓練データの取得の継続の要否を判定するようにしてもよい。
ただし、評価部233が、ハイレベル制御器πの訓練データの取得の継続の要否を判定方法は、特定の方法に限定されない。
例えば、評価部233が、予測精度評価関数の値に加えて所定の学習条件に基づいて、訓練データの取得の継続の要否を判定するようにしてもよい。ここでの学習条件は、いろいろな条件とすることができる。例えば、訓練データの取得回数が所定の回数以上になった場合、予測精度評価関数が示す評価が所定の評価に達していなくても、評価部233が、訓練データの取得の継続は不要と判定するようにしてもよい。
ハイレベル制御器学習部240は、上述したように、評価部233がハイレベル制御器πの訓練データの取得の継続不要と判定すると、獲得データ集合Doptを用いてハイレベル制御器πの学習を行う。
具体的には、ハイレベル制御器学習部240は、獲得データ集合Doptの要素のうち、目標状態に到達可能な要素について、ハイレベル制御器πが、その要素に含まれる初期状態x’および目標状態/既知タスクパラメータ値β’の入力に対して、その要素に含まれる出力値αを出力するように、ハイレベル制御器πの学習を行う。
ハイレベル制御器学習部240がハイレベル制御器πの学習を行う際のモデルは、いろいろなモデルとすることができる、例えば、モデルとしてニューラルネットワーク、ガウス過程回帰、又はサポートベクター回帰(Support Vector Regression)を用いるようにしてもよいが、これらに限定されない。
(7)処理フロー
図12は、第一実施形態に係る学習装置1によるスキルデータベースの更新処理の例を示す図である。学習装置1は、図12の処理を、生成するスキルの各々に対して実行する。
(ステップS101)
探索点集合初期化部211は、探索点集合X searchおよび獲得データ集合Doptの初期設定を行う。
例えば、探索点集合初期化部211は、目標パラメータ情報のうち、初期状態情報に含まれる初期状態xと、目標状態/既知タスクパラメータ情報に含まれる目標状態/既知タスクパラメータ値βとの任意の組み合わせの各々を探索点集合X searchの要素として、探索点集合X searchを生成する。
また、探索点集合初期化部211は、獲得データ集合Doptの値を空集合に設定する。
ステップS101の後、処理がステップS102へ進む。
(ステップS102)
次探索点集合設定部212は、探索点集合X searchから部分集合を取り出す。具体的には、次探索点集合設定部212は、探索点集合X searchの部分集合を探索点部分集合X checkとして設定する。そして、次探索点集合設定部212は、設定した探索点部分集合X checkの各要素を探索点集合X searchから除外する。
式(22)のように、探索点部分集合X checkは、初期状態xsiと、目標状態/既知タスクパラメータ値βgiとの組み合わせを要素に持つ。
次探索点集合設定部212が、設定した部分集合X checkの各要素を探索点集合X searchから除外する処理は、式(23)のように表すことができる。
ここでは「-」は、集合から部分集合を除くことを示す。
ステップS102の後、処理がステップS103へ進む。
(ステップS103)
学習装置1は、探索点集合の部分集合X checkの要素である探索点X毎に処理を行うループL11を開始する。ループL11では、ループの繰り返し回数を「i」で表す。また、ループL11で処理対象となっている探索点Xを、対象探索点X とも称する。
ステップS103の後、処理がステップS104へ進む。
(ステップS104)
システムモデル設定部221は、対象探索点X に基づいて、最適制御問題の設定のための各種設定を行う。例えば、システムモデル設定部221は、ローレベル制御器πと、システムモデルと、システムモデルのパラメータに関する制約条件と、目標状態への到達可能性の評価関数とを設定する。
ステップS104の後、処理がステップS105へ進む。
(ステップS105)
問題設定計算部222は、ステップS104でのシステムモデル設定部221による設定に基づいて、最適制御問題を設定する。そして、問題設定計算部222は、設定した最適制御問題を解き、評価関数値がなるべく小さくなるようなハイレベル制御器の出力α、および、そのときの評価関数gの値gを解として取得する。
ステップS105の後、処理がステップS106へ進む。
(ステップS106)
データ更新部223は、獲得データ集合Doptを更新する。具体的には、データ更新部223は、探索点集合の部分集合X checkのi番目の要素X と、タスクに成功したか否かの判定結果g と、得られた制御パラメータα との組み合わせ(X ,g ,α )を獲得データ集合Doptの要素として加える。
データ更新部223が獲得データ集合Doptを更新する処理は、式(24)のように表される。
「{(X ,g ,α )}」は、(X ,g ,α )を要素に持つ、要素の個数1要素の集合を表す。
ステップS106の後、処理がステップS107へ進む。
(ステップS107)
学習装置1は、ループL11の終端処理を行う。具体的には、学習装置1は、探索点集合の部分集合X checkの全ての要素に対してループL11の処理を行ったか否かを判定する。まだループL11の処理を行っていない要素があると判定した場合、学習装置1は、ループL11の処理を未実行の要素に対して引き続きループL11の処理を行う。この場合、処理がステップS103へ戻る。
一方、探索点集合の部分集合X checkの全ての要素に対してループL11の処理を行ったと判定した場合、学習装置1は、ループL11を終了する。この場合、処理がステップS111へ進む。
(ステップS111)
レベルセット関数学習部231は、獲得データ集合Doptに基づいてレベルセット関数g^の学習を行う。
ステップS111の後、処理がステップS112へ進む。
(ステップS112)
予測精度評価関数設定部232は、レベルセット関数g^に基づいて、予測精度評価関数Jg^を設定する。
ステップS112の後、処理がステップS110へ進む。
(ステップS113)
評価部233は、予測精度評価関数Jに基づいて、レベルセット関数g^の学習の継続の要否を判定する。評価部233が、予測精度評価関数Jに加えてさらに、所定の学習条件に基づいて、レベルセット関数g^の学習の継続の要否を判定するようにしてもよい。
レベルセット関数g^の学習の継続が必要と評価部233が判定した場合(ステップS113:YES)、処理がステップS121へ進む。一方、レベルセット関数g^の学習の継続は不要と評価部233が判定した場合(ステップS113:NO)、処理がステップS131へ進む。
(ステップS121)
次探索点集合設定部212は、予測精度評価関数Jに基づいて、探索点集合X searchからの部分集合X checkの取り出しを再度行う。具体的には、次探索点集合設定部212は、予測精度評価関数Jに基づいて、探索点集合X searchの部分集合X checkを設定する。そして、次探索点集合設定部212は、設定した部分集合X checkの各要素を探索点集合X searchから除外する。
ステップS121の後、処理がステップS103へ戻る。
(ステップS131)
ハイレベル制御器学習部240は、得られた獲得データ集合Doptを用いてハイレベル制御器πの学習を行う。
ステップS131の後、学習装置1は、図12の処理を終了する。
以上のように、探索点集合設定部210は、ロボット5の動作を示す探索点(x,β)のうち、ロボット5の制御の学習のための訓練データ取得の対象とする探索点Xを選択する。
問題設定計算部222は、選択された探索点Xが示す動作の実行可否の評価を示す情報と、選択された探索点Xが示す動作に対して、ロボット5を制御するハイレベル制御器πが出力すべき出力値とを算出する。
データ更新部223は、選択された探索点Xと、選択された探索点Xが示す動作の実行可否の評価を示す情報と、選択された探索点Xが示す動作に対してハイレベル制御器πが出力すべき出力値とに基づいて、ハイレベル制御器πによるロボット5に対する制御の学習のための訓練データを取得する。
評価部233は、訓練データの取得状況に対する評価に基づいて、訓練データの取得を継続するか否かを判定する。
学習装置1によれば、ロボット5に対する制御の学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
また、レベルセット関数学習部231は、探索点(x,β)の入力を受けて、その探索点(x,β)が示す動作の実行可否の推定値を出力するレベルセット関数g^の学習を、問題設定計算部222による、探索点(x,β)が示す動作の実行可否の評価結果に基づいて行う。
予測精度評価関数設定部232は、探索点(x,β)の入力を受けて、その探索点(x,β)に対するレベルセット関数g^の推定精度の評価値を出力する予測精度評価関数Jg^を設定する。評価部233は、予測精度評価関数Jg^に基づいて、訓練データの取得を継続するか否かを判定する。
学習装置1によれば、レベルセット関数g^を用いて、訓練データの取得を継続するか否かを判定することができる。レベルセット関数g^は、ロボットコントローラ3がロボット5を制御する際に、スキルの選択に用いられる。学習装置1によれば、訓練データの取得を継続するか否かを判定するためのみに必要な作業が比較的少なく、この点で、訓練データの取得を継続するか否かの判定を効率よく行うことができる。
また、探索点集合設定部210は、予測精度評価関数Jg^による評価値が、レベルセット関数g^の推定精度が所定の条件よりも低いことを示す探索点(x,β)を、ロボット5の制御の訓練データ取得の対象として選択する。
これにより、学習装置1では、ハイレベル制御器πの出力の精度が低いと思われる入出力を示す訓練データを取得することができ、ハイレベル制御器πの学習を効率的に行うことができる。
また、探索点(x,β)は、前記制御対象の動作がモジュール化されたスキルのパラメータ値である既知タスクパラメータを含む。
これにより、学習装置1では、ロボット5の動作における、パラメータ値による表現が可能な相違をスキルのパラメータ値で表し、異なる動作に対して同じスキルを適用するように制御の学習を行うことができる。
また、探索点(x,β)は、ロボット5およびその動作環境のスキル開始時における初期状態と、スキルの既知パラメータ値と、ロボット5およびその動作環境のスキル終了時における目標状態との組み合わせで構成される。
これにより、学習装置1は、抽象空間でハイレベル制御器πの学習を行うことができ、現実の空間でハイレベル制御器πおよびローレベル制御器πの両方に相当する制御の学習を行う場合よりも効率的に学習を行うことができる。
また、ロボットコントローラ3は、学習装置1が取得した訓練データを用いた学習で得られたハイレベル制御器πを備える。
ロボットコントローラ3によれば、ロボットコントローラ3の学習の際に、ロボット5に対する制御の学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
また、ロボットコントローラ3は、大きさの異なる把持対象物をそれぞれロボット5に把持させるように、把持対象物の大きさに応じてロボット5の制御を行うハイレベル制御器πを備える。
ロボットコントローラ3によれば、把持対象物の大きさに応じて、ロボット5を高精度に制御できると期待される。
<第二実施形態>
データ取得部220がデータを取得する際、ハイレベル制御器学習部240がハイレベル制御器πの学習を行い、学習結果をフィードバックするようにしてもよい。第二実施形態では、この点について説明する。
第二実施形態における制御システム100の構成は、第一実施形態の場合と同様である。第二実施形態でも、図1から図10に示す制御システム100の構成を用いて説明する。
図13は、第二実施形態に係るスキル学習部15におけるデータの入出力の例を示す図である。第二実施形態では、データ取得部220によるデータの取得の際にハイレベル制御器学習部240がハイレベル制御器の学習を行い、学習で得られたハイレベル制御器π をデータ取得部220に出力する。ハイレベル制御器を出力することは、例えば、ニューラルネットワークまたはガウス過程など、ハイレベル制御器を構成する予測器のパラメータの設定値を出力することで行うことができる。
それ以外の点では、図13に示すデータの入出力は、図11を参照して説明した第一実施形態の場合のデータの入出力と同様である。
図14は、第二実施形態に係る学習装置1によるスキルデータベースの更新処理の例を示す図である。学習装置1は、図14の処理を、生成するスキルの各々に対して実行する。
図14のステップS201からS204までは、図12のステップS101からS104までと同様である。
図14のステップS203からS207のループを、ループL21と表記する。
(ステップS205)
問題設定計算部222は、ステップS105で説明したのと同様、最適制御問題を設定し、設定した最適制御問題を解いて、評価関数値がなるべく小さくなるような、ハイレベル制御器πの出力、および、そのときの評価関数値を求める。
一方、ステップS205では、問題設定計算部222は、ハイレベル制御器πがある場合に、そのハイレベル制御器πによる出力値から離れないように、ハイレベル制御器πの出力を求める点で、ステップS105の場合と異なる。例えば、問題設定計算部222が、得られているハイレベル制御器πの出力値と、最適制御問題で求めるハイレベル制御器πの出力値との誤差ノルムの項を、最適制御問題の評価関数に含めるようにしてもよい。そして、問題設定計算部222が、評価関数値がなるべく小さくなるように最適制御問題の解を求めるようにしてもよい。これにより、問題設定計算部222は、元々の評価関数の値をなるべく小さくし、かつ、ハイレベル制御器πの出力値が、得られているハイレベル制御器πの出力値に近いような解を求めることができる。
ステップS206およびS207は、図12のステップS106およびS107と同様である。
ステップS207で、学習装置1がループL21を終了した場合、処理がステップS211へ進む。
(ステップS211)
ハイレベル制御器学習部240は、ハイレベル制御器πの学習を継続する必要があるか否かを判定する、ここでの判定基準は特定のものに限定されない。例えば、ハイレベル制御器学習部240が、ステップS205で最適制御問題を解いて得られるハイレベル制御器πの出力と、ハイレベル制御器πを用いて得られる出力との差が所定の条件よりも小さい場合に、ハイレベル制御器πの学習を継続する必要が無いと判定するようにしてもよい。
ステップS211で、ハイレベル制御器πの学習を継続する必要があるとハイレベル制御器学習部240が判定した場合(ステップS211:YES)、処理がステップS221へ進む。
一方、ハイレベル制御器πの学習を継続する必要がないとハイレベル制御器学習部240が判定した場合(ステップS211:NO)、処理がステップS231へ進む。
(ステップS221)
ハイレベル制御器学習部240は、獲得データ集合Doptを用いてハイレベル制御器πの学習を行う。ステップS221での、ハイレベル制御器学習部240がハイレベル制御器を学習する方法は、図12のステップS131の場合と同様である。ステップS221では、獲得データ集合Doptが生成途中のものである点が、ステップS131の場合と異なる。
ステップS221の後、処理がステップS203へ戻る。
ステップS231からS233は、図12のステップS111からS113と同様である。
ステップS233で、レベルセット関数g^の学習の継続が必要と評価部233が判定した場合(ステップS233:YES)、処理がステップS241へ進む。一方、レベルセット関数g^の学習の継続は不要と評価部233が判定した場合(ステップS233:NO)、処理がステップS251へ進む。
ステップS241は、図12のステップS121と同様である。ステップS241の後、処理がステップS203へ戻る。
ステップS251は、図12のステップ131と同様である。ステップS251の後、学習装置1は、図14の処理を終了する。
<第三実施形態>
第三実施形態では、学習装置1が、パラメータ値による表現が困難なタスクの違いに対応してスキルを学習する場合の例について説明する。
具体的には、学習装置1は、第一実施形態の場合の学習に加えて、レベルセット関数を構成する予測器、および、ハイレベル制御器を構成する予測器それぞれのメタパラメータ値の学習を行う。学習装置1は、新たなタスクの訓練データを取得してそのタスクを実行するためのスキルを学習する際に、これらの予測器の予測精度がなるべく高くなるように、既に取得している訓練データを用いて予めメタパラメータ値を学習し、設定しておく。
学習装置1が、第二実施形態の場合の学習に加えて、第三実施形態に係る学習を行うようにしてもよい。すなわち、第二実施形態と第三実施形態とを組み合わせて実施することも可能である。
第三実施形態では、何らかの確率分布に従ってタスクが生成され、予測器の入出力の正解データが、タスク毎に定まる何らかの確率分布に従うと仮定する。
何らかの確率分布に従ってタスクが生成されることは、τ~Τと表すことができる。Τは、タスクが従う確率分布を表す。また、ここでは、τはタスクを表す。
予測器の入出力の正解データが、タスク毎に定まる何らかの確率分布に従うことは、S~Dと表すことができる。Dは、タスクτに応じて定まる確率分布を示す。Sは、タスクτの場合の予測器の入出力の正解データを表す。
図15は、第三実施形態に係るスキル学習部15の構成の例を示す図である。図15に示す構成で、スキル学習部15は、図10に示す各部に加えて探索タスク設定部250と、メタパラメータ処理部260とを備える。
それ以外の点では、第三実施形態における制御システムの構成は、第一実施形態の場合と同様である。第三実施形態でも、図1から図9に示す制御システム100の構成を用いて説明する。
探索タスク設定部250は、学習装置1による学習の対象とするタスクを設定する。探索タスク設定部250が設定する、学習装置1による学習の対象とするタスクを、探索タスクとも称する。
探索タスク設定部250は、生成されるタスクが従う確率分布Τを仮定し、仮定した確率分布Τに基づいて探索タスクを設定する。探索タスク設定部250が、生成されるタスクが従う確率分布Τを仮定する方法は、特定の方法に限定されない。例えば、確率分布Τが予め設定されていてもよいが、これに限定されない。
メタパラメータ処理部260は、レベルセット関数を構成する予測器、および、ハイレベル制御器πを構成する予測器のメタパラメータ値を学習し、学習で得られたメタパラメータ値をこれらの予測器に設定する。
第三実施形態では、レベルセット関数を構成する予測器、および、ハイレベル制御器πを構成する予測器として、ベイジアンニューラルネットワークまたはガウシアンプロセスなど、パラメータ値が確率分布に従って設定される学習モデルによる予測器が用いられる。メタパラメータ処理部260は、これらのパラメータ値が従う確率分布を、メタパラメータ値として学習し設定する。
また、メタパラメータ処理部260は、メタパラメータを設定した予測器の予測精度を評価し、評価結果に基づいて、メタパラメータ値の学習を継続するか否かを決定する。
図16は、第三実施形態に係るスキル学習部15におけるデータの入出力の例を示す図である。図15を参照して説明したのと同様、図16に示す構成でも、スキル学習部15は、図11に示す各部に加えて探索タスク設定部250と、メタパラメータ処理部260とを備える。
探索タスク設定部250は、タスクパラメータ情報の入力を受けて探索タスクを設定する。タスクパラメータ情報は、生成されるタスクの確率分布Τに関する情報を含む。例えば、タスクパラメータ情報が、生成されるタスクの確率分布Τを示す情報であり、探索タスク設定部250が、この確率分布Τに従って探索タスクを設定するようにしてもよい。
探索タスク設定部250は、未知タスクパラメータ用の学習継続フラグが学習の継続を示す間、探索タスクの設定を繰り返す。未知タスクパラメータ用の学習継続フラグは、予測器のメタパラメータ値の学習を継続するか否かを示すフラグである。未知タスクパラメータ用の学習継続フラグが学習の継続を示す間、探索タスク設定部250は、学習装置1が探索タスクに関する学習を終了する毎に、次の探索タスクを設定する。
なお、第三実施形態では、評価部233が設定する学習継続フラグを、未知タスクパラメータ用の学習継続フラグと区別するために、既知タスクパラメータ用の学習継続フラグとも称する。また、タスク毎のデータについて、「τ」または「j」を記載して、タスク毎のデータであることを示す場合がある。
学習装置1は、探索タスク設定部250が探索タスクを設定する毎に、探索タスクとして設定されたタスクτについて、第一実施形態における学習を行う。特に、探索点集合初期化部211は、探索タスクに応じて探索点集合X searchを設定する。また、システムモデル設定部221は、探索タスクに応じて、最適制御問題の設定のための各種設定を行う。
メタパラメータ処理部260は、全獲得データ集合Doptallを用いて、上述したメタパラメータ値の学習、および、メタパラメータ値の学習を継続するか否かの決定を行う。全獲得データ集合Doptallは、データ更新部223が取得した全ての獲得データ集合Dopt,jを結合したものである。
例えば、データ更新部223が、全獲得データ集合Doptallの初期値を0に設定しておき、獲得データ集合Dopt,jを生成する毎に、生成した獲得データ集合Dopt,jを全獲得データ集合Doptallに結合するようにしてもよい。
獲得データ集合Dopt,jを全獲得データ集合Doptallに結合する処理は、式(25)のように表すことができる。
メタパラメータ処理部260が学習するメタパラメータ値は、レベルセット集合を構成する予測器、および、ハイレベル制御器を構成する予測器に設定される。
また、上記のように、メタパラメータ処理部260が設定する未知タスクパラメータ用の学習継続フラグが学習の継続を示す間、探索タスク設定部250は、学習装置1が探索タスクに関する学習を終了する毎に、次の探索タスクを設定する。
図17は、メタパラメータ処理部260の構成の例を示す図である。図17に示す構成で、メタパラメータ処理部260は、メタパラメータ個別処理部261と、学習継続フラグ統合部262とを備える。
メタパラメータ処理部260は、学習の対象とする予測器毎にメタパラメータ個別処理部261を備える。図16の例の場合、レベルセット関数と、ハイレベル制御器πとが、予測器を用いて構成されてメタパラメータ値の学習の対象となる。この場合、メタパラメータ処理部260は、2つのメタパラメータ個別処理部261を備える。
ただし、メタパラメータ処理部260が備えるメタパラメータ個別処理部261の個数は、2つに限定されない。例えば、レベルセット関数およびハイレベル制御器π以外にも、予測器を用いて構成されメタパラメータ値の学習の対象となるものがあってもよい。この場合、メタパラメータ処理部260が、予測器を用いて構成されメタパラメータ値の学習の対象となるもの毎に、メタパラメータ個別処理部261を備えるようにしてもよい。
個々のメタパラメータ個別処理部261を区別する場合、メタパラメータ個別処理部261-1、メタパラメータ個別処理部261-2、・・・、メタパラメータ個別処理部261-Nと表記する。ここでは、Nは、メタパラメータ処理部260が備えるメタパラメータ個別処理部261の個数を示す正の整数である。
メタパラメータ個別処理部261は、予測器のメタパラメータ値を学習する。予測器のメタパラメータが複数ある場合、メタパラメータ個別処理部261は、メタパラメータ毎に、その値を学習する。
例えば、個々の予測器がベイジアンニューラルネットワークを用いて構成され、パラメータとしてノード間毎の重み係数、および、ノード毎のバイアスを有する場合、これらパラメータの各々が従う確率分布がメタパラメータに該当する。メタパラメータ個別処理部261は、これらのメタパラメータ毎に、その値を学習する。
また、メタパラメータ個別処理部261は、対象とする予測器について、メタパラメータ値の学習継続の要否を示す、予測器毎の学習継続フラグの値を設定する。予測器毎の学習継続フラグを、個別学習継続フラグとも称する。
学習継続フラグ統合部262は、個別学習継続フラグの値を統合して、未知タスクパラメータ用の学習継続フラグの値を設定する。学習継続フラグ統合部262は、学習継続判定統合手段の例に該当する。
図18は、メタパラメータ処理部260におけるデータの入出力の例を示す図である。
上記のように、メタパラメータ個別処理部261は、メタパラメータ処理部260が対象とする予測器毎に設けられている。メタパラメータ個別処理部261は、全獲得データDoptallと、メタ学習実行フラグまたは内部学習評価値との入力を受けて、そのメタパラメータ個別処理部261が対象とするメタパラメータの値を出力し、また、個別学習継続フラグの値を設定する。
メタ学習実行フラグは、メタパラメータ値の学習を行うか否かの設定を示すフラグである。例えば、全獲得データ集合Doptallに各タスクのデータ(集合の要素)が所定の個数以上蓄積されると、データ更新部223が、メタ学習実行フラグの値をメタパラメータ値の学習を行うことを示す値に設定するようにしてもよい。また、メタパラメータ処理部260が、メタパラメータ値の学習を終了するときに、メタ学習実行フラグの値をメタパラメータ値の学習を行わないことを示す値に設定するようにしてもよい。
内部学習評価値は、予測器の予測精度の評価を示す値である。例えば、メタパラメータ値の学習が開始されると、メタパラメータ個別処理部261がメタパラメータの汎化誤差を算出するようにしてもよい。そして、メタパラメータ処理部260が、メタパラメータの汎化誤差に基づいて、メタパラメータ値の学習対象の全ての予測器についての総合的な評価を示す内部学習評価値を算出するようにしてもよい。
学習継続フラグ統合部262は、個別学習継続フラグの値を統合して、未知タスクパラメータ用の学習継続フラグの値を設定する。例えば、1つ以上の個別学習継続フラグの値が、学習継続が必要であることを示す場合、学習継続フラグ統合部262は、未知タスクパラメータ用の学習継続フラグの値を、学習継続が必要であることを示す値に設定する。また、全ての個別学習継続フラグの値が、学習継続が不要であることを示す場合、学習継続フラグ統合部262は、未知タスクパラメータ用の学習継続フラグの値を、学習継続が不要であることを示す値に設定する。
図19は、メタパラメータ個別処理部261の構成の第1の例を示す図である。図19に示す構成で、メタパラメータ個別処理部261は、訓練データ抽出部271と、メタパラメータ学習部272と、汎化誤差評価部273と、学習継続判定部274とを備える。
訓練データ抽出部271は、全獲得データ集合Doptallから、メタパラメータ値の学習用の訓練データを抽出する。
メタパラメータ学習部272は、訓練データ抽出部271が抽出する訓練データを用いて、メタパラメータ値の学習を行う。
汎化誤差評価部273は、メタパラメータ学習部272が学習したメタパラメータ値を用いる場合の予測器の汎化誤差に対する評価値を算出する。
学習継続判定部274は、汎化誤差評価部273が算出した評価値に基づいて、メタパラメータ値の学習を継続するか否かを判定する。
図20は、図19に示すメタパラメータ個別処理部261におけるデータの入出力の例を示す図である。
訓練データ抽出部271は、メタ学習実行フラグの値がメタパラメータ値の学習を行うことを示す場合に、全獲得データ集合Doptallから、メタパラメータ値の学習用の訓練データを抽出する。訓練データ抽出部271は、メタ学習実行フラグの値が、学習継続が不要との判定結果を示す値になるまで、訓練データの抽出を繰り返す。
訓練データ抽出部271は、訓練データ抽出手段の例に該当する。
メタパラメータ学習部272は、メタ学習実行フラグの値がメタパラメータ値の学習を行うことを示す場合に、メタパラメータ値の学習用の訓練データと、学習パラメータ情報と、予測器情報とに基づいて、メタパラメータ値の学習を行う。メタパラメータ値の学習用の訓練データには、学習モデルにおける入力値と、その入力値の場合の学習モデルの出力値の正解との組み合わせが含まれる。メタパラメータ学習部272は、メタパラメータ学習手段の例に該当する。
予測器情報は、学習対象のメタパラメータを有する予測器に関する情報である。例えば、予測器情報が、その予測器を表す関数の情報を含んでいてもよい。
学習パラメータ情報は、学習対象のメタパラメータに関する情報である。例えば、学習パラメータ情報が、学習対象の予測器が有するメタパラメータの個数を示す情報を含んでいてもよい。
ここで、メタパラメータ値の学習対象の予測器を式(26)のように関数fで表す。
xは、予測器への入力を示す。θは、予測器のパラメータを示す。yは予測器の出力を示す。
予測器の出力の確率分布p(y|x,θ)は、式(27)のように表される。
は、予測器のパラメータの個数を示す正の整数であり、θ=(θ、θ、・・・、θNs)と表される。
パラメータθ(i=1、2、・・・、N)の値は、式(28)のように、確率分布p(θ|S)に従う。
ベイジアンニューラルネットワークの学習では、この、パラメータθのデータSによる条件付き確率分布p(θ|S)を求める。
学習装置1が確率分布p(θ|S)を求める方法は、特定の方法に限定されない。例えば、学習装置1が、式(29)に示されるOptimal Gibbs Posteriorの構造を用いて、確率分布p(θ|S)を求めるようにしてもよい。
P(θ)は、パラメータθの値の事前分布を表す。メタパラメータ学習部272は、この事前分布P(θ)をメタパラメータ値として学習する。
βは、温度パラメータと呼ばれるパラメータである。温度パラメータβの値は、例えば、予め設定される。
「l(S,f(x,θ))」は、予測器の出力と、訓練データとして示される正解データSによる出力の正解値との相違に基づく損失関数lを示す。
「E」は期待値を表す。具体的には、「Eθ~P(θ)[exp(-βl(S,f(x,θ)))]」は、パラメータθが事前分布P(θ)に従う場合の、「exp(-βl(S,f(x,θ)))」の期待値を示す。
メタパラメータ学習部272は、例えば、式(30)に示される損失関数の期待値がなるべく小さくなるように、メタパラメータ値の学習を行う。
式(30)の「l(S,fθ,P)」は、式(29)の「l(S,f(x,θ)))」と同様の損失関数lを表す。式(30)では、予測器を示す関数fを「fθ,P」と表記して、パラメータθと、メタパラメータである確率分布Pとを示している。
上記のように、「E」は期待値を表す。具体的には、「ES~D[l(S,fθ,P)]」正解データSが確率分布Dに従う場合の損失関数lの期待値を表す。「ED~Τ[ES~D[l(S,fθ,P)]]」は、確率分布Dが確率分布Τに従う場合の、期待値「ED~Τ[ES~D[l(S,fθ,P)]]」の期待値を表す。
例えば、メタパラメータ学習部272は、式(31)に基づいて、メタパラメータとしての確率分布P(θ)の確率分布Q(P)を求める。
「P(P)」は、メタパラメータである確率分布P(θ)の事前分布を表す。
λは、温度パラメータと呼ばれるパラメータである。λの値は、例えば、予め設定される。
τは、タスクの個数を表す正の整数である。
「ln」は、自然対数を表す。
上記のように、「E」は期待値を表す。具体的には、「Eθ~P(θ)[・・・]」は、パラメータθの値が確率分布P(θ)に従う場合の、括弧内の値([・・・])の期待値を表す。「EP~P[・・・]」は、確率分布P(θ)が確率分布P(P)に従う場合の、括弧内の値([・・・])の期待値を表す。
汎化誤差評価部273は、上記の確率分布P(θ)およびQ(P)を用いた場合の、予測器の汎化誤差の評価値を算出する。例えば、汎化誤差評価部273は、式(32)で示される汎化誤差L(Q,Τ)の評価値を算出する。
上記のように、「E」は期待値を表す。具体的には、式(32)の右辺「EP~Q[ED~Τ[ES~D[l(S,fθ,P)]]]」は、確率分布P(θ)が確率分布Q(P)に従う場合の、式(30)に示す期待値「ED~Τ[ES~D[l(S,fθ,P)]]」の期待値を表す。
汎化誤差評価部273は、例えば、式(33)の右辺(式(33)に示す不等式の右辺)の値を、汎化誤差L(Q,Τ)の評価値として算出する。
「C(δ,λ,β)」は、損失関数l(S,fθ,f)の種類に応じて定まる関数である。
式(33)の右辺は、汎化誤差L(Q,Τ)の上界(Upper Bound)を示している。式(33)の右辺をL^(Q,Τ)とも表記する。
学習継続判定部274は、汎化誤差評価部273が算出する汎化誤差の評価値L^(Q,Τ)に基づいて、個別学習継続フラグの値を設定する。学習継続判定部274が、式(34)に基づいて、個別学習継続フラグIの値を算出するようにしてもよい。
個別学習継続フラグIの値「0」は、メタパラメータ値の学習を継続する必要が無いことを示す。個別学習継続フラグIの値「1」は、メタパラメータ値の学習を継続する必要があることを示す。
εは、所定の閾値を示す定数である。
汎化誤差の評価値L^(Q,Τ)は、評価が高いほど小さい値を示す。そこで、評価値L^(Q,Τ)の値が閾値ε以下である場合、学習継続判定部274は、メタパラメータ値の学習を継続する必要は無いと判定する。一方、評価値L^(Q,Τ)の値が閾値εよりも大きい場合、学習継続判定部274は、メタパラメータ値の学習を継続する必要があると判定する。
学習継続判定部274が、学習の継続の条件に関する情報に基づいて、メタパラメータ値の学習の継続の要否を判定するようにしてもよい。図20は、学習継続判定部274が、学習の継続の条件に関する情報として誤差閾値情報および継続条件情報を取得する場合の例を示している。
誤差閾値情報は、上記の閾値εのように、汎化誤差の評価値L^(Q,Τ)に対する判定閾値である。
継続条件情報は、汎化誤差の評価値L^(Q,Τ)に基づく判定以外の判定方法を示す情報である。例えば、メタパラメータ値の学習の繰り返しの回数が所定の回数に達した場合、汎化誤差の評価値L^(Q,Τ)が閾値εよりも大きくても、学習継続判定部274は、メタパラメータ値の学習を継続する必要が無いと判定するようにしてもよい。
ただし、学習継続判定部274が、メタパラメータ値の学習を継続する必要の有無を判定する方法は、特定の方法に限定されない。学習継続判定部274が用いる、学習の継続の条件に関する情報は、学習継続判定部274がメタパラメータ値の学習を継続する必要の有無を判定する方法に応じたいろいろな情報とすることができる。
図21は、メタパラメータ個別処理部261の構成の第2の例を示す図である。図21の例では、メタパラメータ個別処理部261は、図19に示す各部に加えてメタ学習実行判定部281を備える。
メタ学習実行判定部281は、メタ学習実行フラグを設定する。
図22は、図21に示すメタパラメータ個別処理部261におけるデータの入出力の例を示す図である。
メタ学習実行判定部281は、内部学習評価値に基づいてメタ学習実行フラグの値を設定する。
例えば、内部学習評価値が示す予測器の予測精度の評価が所定の評価よりも低い場合、メタ学習実行判定部281は、メタ学習実行フラグの値を、メタパラメータ値の学習を行うことを示す値に設定する。一方、内部学習評価値が示す予測器の予測精度の評価が所定の評価以上に高い場合、メタ学習実行判定部281は、メタ学習実行フラグの値を、メタパラメータ値の学習を行わないことを示す値に設定する。メタ学習実行判定部281はメタ学習実行判定手段の例に該当する。
このように、メタ学習実行フラグの値を学習継続判定部274の内部で設定するようにしてもよい。
図23は、第三実施形態に係る学習装置1によるスキルデータベースの更新処理の例を示す図である。例えば、学習装置1は、複数のスキル分の訓練データを取得した場合に、図23の処理を行う。
(ステップS301)
データ更新部223は、全獲得データ集合Doptallの初期設定を行う。具体的には、データ更新部223は、全獲得データ集合Doptallの値を空集合に設定する。
ステップS301の後、処理がステップS302へ進む。
(ステップS302)
探索タスク設定部250は、探索タスクを設定する。例えば、探索タスク設定部250は、未知タスクパラメータ値τを選択することで、未知タスクパラメータ値τに対応付けられるタスクτを、探索タスクに設定するようにしてもよい。
ステップS302の後、処理がステップS303へ進む。
図23のステップS303からS313までは、図12のステップS101からS113までと同様である。
図23のステップS305からS309のループを、ループL31と表記する。
ステップS313で、ハイレベル制御器πの学習を継続する必要があるとハイレベル制御器学習部240が判定した場合(ステップS313:YES)、処理がステップS321へ進む。
一方、ハイレベル制御器πの学習を継続する必要がないとハイレベル制御器学習部240が判定した場合(ステップS313:NO)、処理がステップS331へ進む。
図23のステップS321は、図12のステップS121と同様である。
ステップS321の後、処理がステップS305へ戻る。
図23のステップS331は、図12のステップS131と同様である。
ステップS331の後、処理がステップS332へ進む。
(ステップS332)
データ更新部223は、全獲得データ集合Doptallを更新する。上述したように、データ更新部223は、生成した獲得データ集合Dopt,jを全獲得データ集合Doptallに結合する。
ステップS332の後、処理がステップS333へ進む。
(ステップS333)
メタパラメータ処理部260は、予測器のメタパラメータ値を算出する。
ステップS333の後、処理がステップS334へ進む。
(ステップS334)
メタパラメータ処理部260は、メタパラメータ値の学習継続の要否を判定する。学習継続が必要とメタパラメータ処理部260が判定した場合(ステップS334:YES)、処理がステップS341へ進む。
一方、学習継続は不要とメタパラメータ処理部260が判定した場合(ステップS334:NO)、学習装置1は、図23の処理を終了する。
(ステップS341)
探索タスク設定部250は、探索タスクを更新する。具体的には、探索タスク設定部250は、まだ探索タスクに設定していないタスクの何れかを、探索タスクに設定する。
ステップS341の後、処理がステップS303へ戻る。
図24は、メタパラメータ処理部260が予測器のメタパラメータ値を算出する処理の例を示す図である。メタパラメータ処理部260は、図23のステップS333で、図24の処理を行う。
(ステップS401)
メタパラメータ個別処理部261は、予測器毎にメタパラメータ値を算出する。また、メタパラメータ個別処理部261は、予測器毎に、メタパラメータ値の学習継続の要否を判定する。
メタパラメータ個別処理部261が、予測器毎のステップS401の処理を並列実行するようにしてもよい。あるいは、メタパラメータ個別処理部261が、予測器毎のステップS401の処理を逐次実行するようにしてもよい。
処理対象となっている全ての予測器についてステップS401の処理が終了した後、処理がステップS402へ進む。
(ステップS402)
学習継続フラグ統合部262は、予測器毎のメタパラメータ値の学習継続の要否の判定結果に基づいて、複数の予測器全体についてのメタパラメータ値の学習継続の要否を判定する。
ステップS402の後、メタパラメータ処理部260は、図24の処理を終了する。
図25は、メタパラメータ個別処理部261が、予測器毎にメタパラメータ値を算出し、メタパラメータ値の学習継続の要否を判定する処理の第1の例を示す図である。メタパラメータ個別処理部261図24のステップS401で、予測器毎に図25の処理を行う。
(ステップS411)
訓練データ抽出部271は、全獲得データ集合Doptallから、メタパラメータ値の学習用の訓練データを抽出する。
ステップS411の後、処理がステップS412へ進む。
(ステップS412)
メタパラメータ学習部272は、処理対象となっている予測器のメタパラメータ値を学習する。
ステップS412の後、処理がステップS413へ進む。
(ステップS413)
汎化誤差評価部273は、学習で得られたメタパラメータ値を用いる場合の汎化誤差の評価値を算出する。
ステップS413の後、処理がステップS414へ進む。
(ステップS414)
学習継続判定部274は、汎化誤差の評価値に基づいて、パラメータ値の学習の継続の要否を判定する。
ステップS414の後、メタパラメータ個別処理部261は、図25の処理を終了する。
図26は、メタパラメータ個別処理部261が、予測器毎にメタパラメータ値を算出し、メタパラメータ値の学習継続の要否を判定する処理の第2の例を示す図である。メタパラメータ個別処理部261図24のステップS401で、予測器毎に、図25の処理に代えて図26の処理を行う。
(ステップS421)
メタ学習実行判定部281は、内部学習評価値に基づいて、メタ学習実行フラグの値を設定する。
ステップS421の後、処理がステップS422へ進む。
図26のステップS422からS425までは、図25のステップS411からS414までと同様である。
ステップS425の後、メタパラメータ個別処理部261は、図26の処理を終了する。
図23に示す、第三実施形態に係る学習装置1によるスキルデータベースの更新処理の、さらに具体的な例について説明する。
ステップS302で、探索タスク設定部250は、例えば、把持動作を学習する対象物の形状を未知タスクパラメータとして選択する。探索タスク設定部250が、確率分布Τに従って未知タスクパラメータをサンプリングするようにしてもよい。あるいは、探索タスク設定部250が、未知タスクパラメータを確率的に選択するアルゴリズムを用いて未知タスクパラメータを設定するようにしてもよい。
ステップS341についても同様である。
ステップS303で、探索点集合初期化部211は、ロボット5及び把持対象物の位置および姿勢等を表す状態変数xを定義し、把持動作実行前のロボット5及び把持対象物の状態を初期状態xsiとして設定する。また、探索点集合初期化部211は、把持動作実行後のロボット5及び把持対象物の目標状態および把持対象物の大きさ(スケール)を含む目標状態/既知タスクパラメータβgiを設定する。そして、探索点集合初期化部211は、初期状態xsiと、目標状態/既知タスクパラメータβgiとの組(xsi,βgi)を、探索点集合X search,jの要素に設定する。
ステップS306で、システムモデル設定部221は、探索点部分集合X checkの要素である探索点X を抽出し、目標状態/既知タスクパラメータβgi及び設定されたタスクτを基に、システムモデル(ダイナミクス)、システムモデルにおける制約条件、ローレベル制御器πを設定する。ここでの制約条件の例として、ロボット5の動作領域、ロボット5の仕様上の入力の上限値、衝突回避のための制約条件等が挙げられるが、これらに限定されない。
さらに、システムモデル設定部221は、探索点X より初期状態xsiと、目標状態/既知タスクパラメータβgiに含まれるxfiとを設定する。
また、システムモデル設定部221は、これらの値に基づいて、最適制御問題における評価関数gを設定する。システムモデル設定部221が、式(35)に示される評価関数gを設定するようにしてもよい。
「||・||」は、2乗ノルムを示す。
εは、誤差の大きさの許容値を示す許容誤差パラメータである。
ステップS312で、予測精度評価関数設定部232が、ベイジアンニューラルネットワークを用いて構成される予測器について、式(36)に示される予測精度評価関数Jg^iを設定するようにしてもよい。
μg^j(X)は、予測平均値を示す。σg^j (X)は、予測分散を示す。ベイジアンニューラルネットワークの予測に関しては、これらの値を得ることができる。
γは、予測分散に乗算される係数であり、信頼領域(信頼区間)を設定するパラメータと解することができる。
あるいは、予測精度評価関数設定部232が、レベルセット関数g のエントロピーを計算する関数を予測精度評価関数Jg^iとして設定するようにしてもよい。
ステップS313で、評価部233が、探索点集合X search,jの各要素Xについて上記の予測分散σg^j (X)を算出し、全ての要素についてσg^j (X)≦εσが成立する場合に、学習継続不要と判定するようにしてもよい。εσは、予測分散の閾値である。εσを分散閾値パラメータとも称する。なお、ここでは、探索点集合X search,jの要素(xsi,βgi)を、Xと表記している。
あるいは、探索点集合X search,jの全ての要素についてσg^j (X)≦εσが成立している場合、または、獲得データ集合Dopt,jの要素数が、設定された閾値に達している場合に、学習継続不要と判定するようにしてもよい。
以上のように、メタパラメータ学習部272は、パラメータの値が確率分布に従う学習モデルにおける確率分布を示すメタパラメータの値の学習を、学習モデルにおける入力および出力を示す訓練データに基づいて行う。
汎化誤差評価部273は、学習モデルの汎化誤差に対する評価を示す評価値を算出する。
学習継続判定部274は、学習モデルの汎化誤差に対する評価を示す評価値に基づいてメタパラメータの値の学習継続の要否を判定する。
学習装置1によれば、学習モデルのメタパラメータ値の学習を行う際、学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
また、訓練データ抽出部271は、メタパラメータの値の学習用の訓練データのうち、学習に用いる訓練データの選択を、学習継続が不要と判定されるまで繰り返す。
学習装置1によれば、学習モデルのメタパラメータ値の学習を行う際、学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
また、メタ学習実行判定部281は、学習モデルの汎化誤差に対する評価を示す評価値に基づいて、メタパラメータの値の学習を行うか否かを判定する。
訓練データ抽出部271は、メタ学習実行判定部281がメタパラメータの値の学習を行うと判定している場合に、訓練データの選択を行う。
学習装置1によれば、学習モデルのメタパラメータ値の学習を行う際、学習モデルの汎化誤差に対する評価に基づいて学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
また、学習継続フラグ統合部262は、複数の学習モデルに応じた複数の学習継続判定手段それぞれの判定結果に基づいて、複数の学習モデル全体についてメタパラメータ値の学習継続の要否を判定する。
学習装置1によれば、複数の学習モデルについてメタパラメータ値の学習継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
また、学習モデルの1つは、ロボット5の動作がモジュール化されたタスクをロボット5に実行させる制御を行うハイレベル制御器πとして構成され、スキルのパラメータ値が学習モデルに対する入力値に含まれる。メタパラメータ学習部272は、複数のスキルの訓練データを用いてメタパラメータ値の学習を行う。
学習装置1によれば、タスクの違いに対してメタパラメータ値の学習で対応して、複数のタスクを1つの学習モデルによるハイレベル制御器πで実行することができる。
また、ロボットコントローラ3は、学習装置1での学習によるハイレベル制御器πを備える。
ロボットコントローラ3によれば、タスクの違いに対してメタパラメータ値の設定で対応して、複数のタスクを1つの学習モデルによるハイレベル制御器πで実行することができる。
また、ロボットコントローラ3は、形状の異なる把持対象物をそれぞれロボット5に把持させるように、把持対象物の形状に応じてロボット5の制御を行うハイレベル制御器πを備える。
ロボットコントローラ3によれば、把持対象物の形状に応じて、ロボット5を高精度に制御できると期待される。
<第四実施形態>
図27は、第四実施形態に係る学習装置の構成の例を示す図である。図27に示す構成で、学習装置610は、探索点設定部611と、計算部612と、データ取得部613と、評価部614とを備える。
かかる構成で、探索点設定部611は、制御対象の動作を示す探索点のうち、制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択する。
計算部612は、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、制御対象を制御する制御手段が出力すべき出力値とを算出する。
データ取得部613は、選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して制御手段が出力すべき出力値とに基づいて、制御手段による制御対象に対する制御の学習のための訓練データを取得する。
評価部614は、訓練データの取得状況に対する評価に基づいて、訓練データの取得を継続するか否かを判定する。
探索点設定部611は、探索点設定手段の例に該当する。計算部612は、計算手段の例に該当する。データ取得部613は、データ取得手段の例に該当する。評価部614は、評価手段の例に該当する。
学習装置610によれば、制御対象に対する制御の学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
<第五実施形態>
図28は、第五実施形態に係る制御装置の構成の例を示す図である。図28に示す構成で、制御装置620は、制御部621を備える。
かかる構成で、制御部621は、大きさの異なる把持対象物をそれぞれロボットに把持させるように、把持対象物の大きさに応じてロボットの制御を行う。
制御装置620によれば、把持対象物の大きさに応じて、ロボットを高精度に制御できると期待される。
<第六実施形態>
図29は、第六実施形態に係る学習方法における処理の例を示す図である。図29に示す学習方法は、探索点を設定すること(ステップS611)と、計算を行うこと(ステップS612)と、データを取得すること(ステップS613)と、評価を行うこと(ステップS614)とを含む。
探索点を設定すること(ステップS611)では、コンピュータが、制御対象の動作を示す探索点のうち、制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択する。
計算を行うこと(ステップS612)では、コンピュータが、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、制御対象を制御する制御手段が出力すべき出力値とを算出する。
データを取得すること(ステップS613)では、コンピュータが、選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して制御手段が出力すべき出力値とに基づいて、制御手段による制御対象に対する制御の学習のための訓練データを取得する。
評価を行うこと(ステップS614)では、コンピュータが、訓練データの取得状況に対する評価に基づいて、訓練データの取得を継続するか否かを判定する。
図29に示す学習方法によれば、制御対象に対する制御の学習の継続の要否を判定することができ、無駄な学習を省くことができる点で、学習を効率的に行うことができる。
なお、学習装置1、ロボットコントローラ3、学習装置610、および、制御装置620が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、学習装置、制御装置、学習方法および記録媒体に適用してもよい。
1、610 学習装置
2 記憶装置
3 ロボットコントローラ
4 計測装置
5 ロボット
100 制御システム
210 探索点集合設定部
211 探索点集合初期化部
212 次探索点集合設定部
221 システムモデル設定部
222 問題設定計算部
223 データ更新部
230 予測精度評価関数学習部
231 レベルセット関数学習部
232 予測精度評価関数設定部
233 評価部
240 ハイレベル制御器学習部
611 探索点設定部
612 計算部
613 データ取得部
614 評価部
620 制御装置
621 制御部

Claims (8)

  1. 制御対象の動作を示す探索点のうち、前記制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択する探索点設定手段と、
    選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、前記制御対象を制御する制御手段が出力すべき出力値とを算出する計算手段と、
    選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して前記制御手段が出力すべき出力値とに基づいて、前記制御手段による前記制御対象に対する制御の学習のための訓練データを取得するデータ取得手段と、
    前記訓練データの取得状況に対する評価に基づいて、前記訓練データの取得を継続するか否かを判定する評価手段と、
    を備える学習装置。
  2. 探索点の入力を受けて、その探索点が示す動作の実行可否の推定値を出力するレベルセット関数の学習を、前記計算手段による前記探索点が示す動作の実行可否の評価結果に基づいて行うレベルセット関数学習手段と、
    探索点の入力を受けて、その探索点に対する前記レベルセット関数の推定精度の評価値を出力する予測精度評価関数を設定する予測精度評価関数設定手段と、
    を備え、
    前記評価手段は、前記予測精度評価関数に基づいて、前記訓練データの取得を継続するか否かを判定する、
    請求項1に記載の学習装置。
  3. 前記探索点設定手段は、前記予測精度評価関数による評価値が、前記レベルセット関数の推定精度が所定の条件よりも低いことを示す探索点を、前記制御対象の制御の訓練データ取得の対象として選択する、
    請求項2に記載の学習装置。
  4. 前記探索点は、前記制御対象の動作がモジュール化されたスキルのパラメータ値を含む、
    請求項1から3の何れか一項に記載の学習装置。
  5. 前記探索点は、前記制御対象およびその制御対象の動作環境のスキル開始時における初期状態と、前記スキルのパラメータ値と、前記制御対象およびその制御対象の動作環境のスキル終了時における目標状態との組み合わせで構成される、
    請求項4に記載の学習装置。
  6. 請求項1から5の何れか一項に記載の学習装置が取得した訓練データを用いた学習で得られた制御手段
    を備える制御装置。
  7. コンピュータが、
    制御対象の動作を示す探索点のうち、前記制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択し、
    選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、前記制御対象を制御する制御手段が出力すべき出力値とを算出し、
    選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して前記制御手段が出力すべき出力値とに基づいて、前記制御手段による前記制御対象に対する制御の学習のための訓練データを取得し、
    前記訓練データの取得状況に対する評価に基づいて、前記訓練データの取得を継続するか否かを判定する、
    ことを含む学習方法。
  8. コンピュータに、
    制御対象の動作を示す探索点のうち、前記制御対象の制御の学習のための訓練データ取得の対象とする探索点を選択することと、
    選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して、前記制御対象を制御する制御手段が出力すべき出力値とを算出することと、
    選択された探索点と、選択された探索点が示す動作の実行可否の評価を示す情報と、選択された探索点が示す動作に対して前記制御手段が出力すべき出力値とに基づいて、前記制御手段による前記制御対象に対する制御の学習のための訓練データを取得することと、
    前記訓練データの取得状況に対する評価に基づいて、前記訓練データの取得を継続するか否かを判定することと、
    を実行させるためのプログラム。
JP2024504056A 2022-03-01 2022-03-01 学習装置、制御装置、学習方法及びプログラム Active JP7736159B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/008700 WO2023166574A1 (ja) 2022-03-01 2022-03-01 学習装置、制御装置、学習方法及び記憶媒体

Publications (3)

Publication Number Publication Date
JPWO2023166574A1 JPWO2023166574A1 (ja) 2023-09-07
JPWO2023166574A5 JPWO2023166574A5 (ja) 2024-11-19
JP7736159B2 true JP7736159B2 (ja) 2025-09-09

Family

ID=87883191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024504056A Active JP7736159B2 (ja) 2022-03-01 2022-03-01 学習装置、制御装置、学習方法及びプログラム

Country Status (4)

Country Link
US (1) US20250164944A1 (ja)
EP (1) EP4488016A4 (ja)
JP (1) JP7736159B2 (ja)
WO (1) WO2023166574A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012024882A (ja) 2010-07-23 2012-02-09 Seiko Epson Corp ロボットの駆動装置、ロボットの駆動方法、およびロボット
JP2020522394A (ja) 2017-05-29 2020-07-30 フランカ エミカ ゲーエムベーハーFRANKA EMIKA GmbH 多関節ロボットのアクチュエータを制御するシステムおよび方法
JP2021533478A (ja) 2018-08-03 2021-12-02 シーメンス・ヘルスケア・ダイアグノスティックス・インコーポレイテッド 技術システムを制御するために機械学習ルーチンを訓練するための方法および装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7647862B2 (ja) * 2021-02-26 2025-03-18 日本電気株式会社 学習装置、学習方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012024882A (ja) 2010-07-23 2012-02-09 Seiko Epson Corp ロボットの駆動装置、ロボットの駆動方法、およびロボット
JP2020522394A (ja) 2017-05-29 2020-07-30 フランカ エミカ ゲーエムベーハーFRANKA EMIKA GmbH 多関節ロボットのアクチュエータを制御するシステムおよび方法
JP2021533478A (ja) 2018-08-03 2021-12-02 シーメンス・ヘルスケア・ダイアグノスティックス・インコーポレイテッド 技術システムを制御するために機械学習ルーチンを訓練するための方法および装置

Also Published As

Publication number Publication date
EP4488016A4 (en) 2025-04-23
US20250164944A1 (en) 2025-05-22
WO2023166574A1 (ja) 2023-09-07
EP4488016A1 (en) 2025-01-08
JPWO2023166574A1 (ja) 2023-09-07

Similar Documents

Publication Publication Date Title
CN113677485B (zh) 使用基于元模仿学习和元强化学习的元学习的用于新任务的机器人控制策略的高效自适应
JP4169063B2 (ja) データ処理装置、データ処理方法、及びプログラム
CN112292239B (zh) 用于计算机辅助地确定用于适宜操作技术系统的调节参数的方法和设备
JP2022100227A (ja) リスク尺度を示すパラメータに基づいて訓練されたモデルを使用して、与えられた状況に対するデバイスの行動を決定する方法およびシステム
JP2009288934A (ja) データ処理装置、データ処理方法、及びプログラム
JP7806879B2 (ja) 学習装置、制御装置、学習方法及びプログラム
JP4201012B2 (ja) データ処理装置、データ処理方法、およびプログラム
CN112016611B (zh) 生成器网络和策略生成网络的训练方法、装置和电子设备
CN112016678B (zh) 用于增强学习的策略生成网络的训练方法、装置和电子设备
JP2021501433A (ja) ターゲットシステム用制御システムの生成
EP4003664B1 (en) FUTURE PREDICTION, USING CONFRONTATION-BASED STOCHASTIC SAMPLING, FOR ROBOTIC CONTROL
Rottmann et al. Adaptive autonomous control using online value iteration with gaussian processes
JP7647862B2 (ja) 学習装置、学習方法及びプログラム
Rohrer BECCA: Reintegrating AI for Natural World Interaction.
JP7736159B2 (ja) 学習装置、制御装置、学習方法及びプログラム
Langsfeld Learning task models for robotic manipulation of nonrigid objects
JP4596024B2 (ja) 情報処理装置および方法、並びにプログラム
Amirshirzad et al. Context-based echo state networks with prediction confidence for human-robot shared control
Al Homsi et al. Comparative analysis of deep Q-learning algorithms for object throwing using a robot manipulator
WO2024180656A1 (ja) 学習装置、制御装置、制御システム、学習方法および記憶媒体
US11731279B2 (en) Systems and methods for automated tuning of robotics systems
Caamaño et al. Introducing synaptic delays in the NEAT algorithm to improve modelling in cognitive robotics
Khan Neural network and metaheuristic based learning and control of articulated robotic agents
US20200134464A1 (en) Dynamic boltzmann machine for estimating time-varying second moment
US12617082B2 (en) Learning device, learning method, and recording medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240827

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250811

R150 Certificate of patent or registration of utility model

Ref document number: 7736159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150