図面 (/)

技術 制御装置、制御方法、および制御プログラム

出願人 株式会社日立製作所
発明者 松本高斉秋富知明矢野和男
出願日 2016年8月9日 (4年3ヶ月経過) 出願番号 2016-156147
公開日 2018年2月15日 (2年9ヶ月経過) 公開番号 2018-024036
状態 特許登録済
技術分野 フィードバック制御一般 マニプレータ 学習型計算機
主要キーワード 大振り 振り角θ 同一行動 外乱検出 試行状態 踏込角度 調整処理手順 位相毎
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年2月15日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (8)

課題

報酬設定の手間の軽減化を図ること。

解決手段

行動により状態を得る制御対象を制御する制御装置は、プログラムを実行するプロセッサと、プログラムを記憶する記憶デバイスと、制御対象と通信する通信インタフェースと、を有し、プロセッサは、制御対象から制御対象の状態および行動を取得する取得処理と、取得処理によって取得された制御対象の状態および行動に基づいて、制御対象の次の行動が制御対象の次の状態を最適化する報酬を生成する生成処理と、取得処理によって取得された制御対象の状態および行動と、生成処理によって生成された報酬とに基づいて、制御対象の次の行動を選択する選択処理と、選択処理によって選択された制御対象の次の行動に応じた制御指令値を制御対象に与える制御処理と、を実行する。

概要

背景

特許文献1は、供給される入力情報に応じた行動を行うロボット装置を開示する。このロボット装置では、行動管理部が、行動価値を計算し、その値に基づいて、実行する行動を決定する。行動管理部が行動を実行すると、環境またはユーザから報酬が与えられる。行動管理部は、環境またはユーザから獲得した報酬と、予め設定されている学習率とに基づき、行動価値を更新する。また、行動管理部は、その学習率を入力情報に基づいて変化させる。

概要

報酬設定の手間の軽減化をること。行動により状態を得る制御対象を制御する制御装置は、プログラムを実行するプロセッサと、プログラムを記憶する記憶デバイスと、制御対象と通信する通信インタフェースと、を有し、プロセッサは、制御対象から制御対象の状態および行動を取得する取得処理と、取得処理によって取得された制御対象の状態および行動に基づいて、制御対象の次の行動が制御対象の次の状態を最適化する報酬を生成する生成処理と、取得処理によって取得された制御対象の状態および行動と、生成処理によって生成された報酬とに基づいて、制御対象の次の行動を選択する選択処理と、選択処理によって選択された制御対象の次の行動に応じた制御指令値を制御対象に与える制御処理と、を実行する。

目的

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

行動により状態を得る制御対象を制御する制御装置であって、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、前記制御対象と通信する通信インタフェースと、を有し、前記プロセッサは、前記制御対象から前記制御対象の前記状態および前記行動を取得する取得処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動に基づいて、前記制御対象の次の行動が前記制御対象の次の状態を最適化する報酬を生成する生成処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動と、前記生成処理によって生成された報酬とに基づいて、前記制御対象の次の行動を選択する選択処理と、前記選択処理によって選択された前記制御対象の前記次の行動に応じた制御指令値を前記制御対象に与える制御処理と、を実行することを特徴とする制御装置。

請求項2

請求項1に記載の制御装置であって、前記制御対象が移動体である場合、前記行動は前記移動体を移動させるために前記移動体に与えられる入力データであり、前記状態は前記移動体が前記行動により前記移動体が移動した場合の前記移動体の動作に関する出力データであることを特徴とする制御装置。

請求項3

請求項1に記載の制御装置であって、前記制御対象が物品ピッキングするアームを有する場合、前記行動は前記アームの角度に関する情報であり、前記状態は前記アームの先端が前記物品の位置となるように制御する前記アームの動作角度であることを特徴とする制御装置。

請求項4

請求項1に記載の制御装置であって、前記生成処理では、前記プロセッサは、前記制御対象の前記状態と前記行動との相関に基づいて、前記報酬を生成することを特徴とする制御装置。

請求項5

請求項1に記載の制御装置であって、前記プロセッサは、前記行動および前記状態による前記制御対象の動作が開始してから収束するまでの動作単位を繰り返し実行し、前記プロセッサは、前記制御対象の周囲の外乱を検出する検出処理と、前記検出処理によって検出された外乱に基づいて、前記動作単位の実行回数増減するように調整する調整処理と、を実行することを特徴とする制御装置。

請求項6

行動により状態を得る制御対象を制御する制御装置による制御方法であって、前記制御装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、前記制御対象と通信する通信インタフェースと、を有し、前記プロセッサは、前記制御対象から前記制御対象の前記状態および前記行動を取得する取得処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動に基づいて、前記制御対象の次の行動が前記制御対象の次の状態を最適化する報酬を生成する生成処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動と、前記生成処理によって生成された報酬とに基づいて、前記制御対象の次の行動を選択する選択処理と、前記選択処理によって選択された前記制御対象の前記次の行動に応じた制御指令値を前記制御対象に与える制御処理と、を実行することを特徴とする制御方法。

請求項7

行動により状態を得る制御対象を制御するプロセッサに、前記制御対象から前記制御対象の前記状態および前記行動を取得する取得処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動に基づいて、前記制御対象の次の行動が前記制御対象の次の状態を最適化する報酬を生成する生成処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動と、前記生成処理によって生成された報酬とに基づいて、前記制御対象の次の行動を選択する選択処理と、前記選択処理によって選択された前記制御対象の前記次の行動に応じた制御指令値を前記制御対象に与える制御処理と、を実行させることを特徴とする制御プログラム

技術分野

0001

本発明は、制御対象を制御する制御装置制御方法、および制御プログラムに関する。

背景技術

0002

特許文献1は、供給される入力情報に応じた行動を行うロボット装置を開示する。このロボット装置では、行動管理部が、行動価値を計算し、その値に基づいて、実行する行動を決定する。行動管理部が行動を実行すると、環境またはユーザから報酬が与えられる。行動管理部は、環境またはユーザから獲得した報酬と、予め設定されている学習率とに基づき、行動価値を更新する。また、行動管理部は、その学習率を入力情報に基づいて変化させる。

先行技術

0003

特開2003−340760号公報

発明が解決しようとする課題

0004

しかしながら、上述した特許文献1の技術では、報酬の与え方自体は、自動で設定されないことから、制御対象の目的となる制御方法を自動で獲得することができないという問題がある。

0005

本発明は、制御対象に対する制御方法の獲得の自動化を目的とする。

課題を解決するための手段

0006

本願において開示される発明の一側面となる制御装置、制御方法、および制御プログラムは、行動により状態を得る制御対象を制御する制御装置、制御方法、および制御プログラムであって、前記制御装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、前記制御対象と通信する通信インタフェースと、を有し、前記プロセッサは、前記制御対象から前記制御対象の前記状態および前記行動を取得する取得処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動に基づいて、前記制御対象の次の行動が前記制御対象の次の状態を最適化する報酬を生成する生成処理と、前記取得処理によって取得された前記制御対象の前記状態および前記行動と、前記生成処理によって生成された報酬とに基づいて、前記制御対象の次の行動を選択する選択処理と、前記選択処理によって選択された前記制御対象の前記次の行動に応じた制御指令値を前記制御対象に与える制御処理と、を実行することを特徴とする。

発明の効果

0007

本発明の代表的な実施の形態によれば、報酬設定の手間の軽減化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。

図面の簡単な説明

0008

図1は、制御システムの構成例を示す説明図である。
図2は、制御システムのハードウェア構成例を示すブロック図である。
図3は、入出力データテーブル記憶内容例を示す説明図である。
図4は、試行状態管理テーブルの記憶内容例を示す説明図である。
図5は、設定部および強化学習部による強化学習処理手順例を示すフローチャートである。
図6は、報酬生成部による報酬生成処理手順例を示すフローチャートである。
図7は、調整部によるデータ範囲調整処理手順例を示すフローチャートである。

実施例

0009

<制御システムの構成例>
図1は、制御システム100の構成例を示す説明図である。制御システム100は、行動aにより状態sを得る制御対象101と、動作環境102と、制御装置103と、を有する。本実施例では、例として、動作環境102をブランコ、制御対象101をブランコを漕ぐロボットとする。制御システム100は、動作環境102で行動する制御対象101を観測して報酬rを与えるという一連の動作を繰り返す強化学習を制御対象101に実行する。

0010

制御対象101および動作環境102の組み合わせがロボットおよびブランコである場合、ロボットの行動aは、ブランコの漕ぎ動作であり、ロボットの状態sはブランコ(=ロボットが載る部分)の振り角比(ブランコが、支柱に対してなす角度を振り角とするとき、この振り角が前回の振り角に対してなす割合)であり、ロボットに与えられる報酬rは、ブランコの振り角をより大きくするための行動aの出やすさを決めるパラメータである。

0011

また、本例では、行動aである漕ぎ動作を、ブランコの振り角2θを5分割した位相(θ,θ/2,0,−θ/2,−θ)毎のロボットの状態とする。振り角2θを1周期とする。ロボットの状態とは、ロボットの漕ぎ動作の一形態であり、本例の場合、ブランコを漕いでいる状態(漕ぎ状態。図1中、「漕」)とブランコに立っている状態(立ち状態図1中、「立」)をいう。

0012

また、制御システム100は、動作環境102およびその周辺における外乱を検出する第1センサデバイス104を有してもよい。ここで、外乱とは、動作環境102およびその周辺における乱れであり、たとえば、風速、温度や湿度降雨量降雪量、明るさ、粉塵の量など、ロボットとブランコ全体とが置かれた動作環境102の呼称である。第1センサデバイス104は、制御装置103に接続される。

0013

制御装置103は、設定部110と、強化学習部120と、報酬生成部130と、調整部140と、を有する。

0014

設定部110は、第1記憶デバイス212からの自動読込またはユーザの手入力により、初期設定を実行する。設定部110は、たとえば、1回の試行での学習係数α、割引率γ、最大エピソード数、エピソード終了条件初期報酬、動作環境102に与えるパラメータ、制御対象101に与えるパラメータを設定する。

0015

最大エピソード数とは、1回の試行で実行されるエピソードの最大数である。エピソードとは、行動aおよび状態sによる制御対象の動作が開始してから収束するまでの動作単位である。エピソード終了条件とは、1回のエピソードを終了させてはいけない条件および終了させる条件である。たとえば、終了させてはいけない条件としては、たとえば、ブランコが振動開始から10周期経過するまではエピソードを継続させるという条件がある。エピソードを終了させる条件としては、たとえば、下限しきい値以下振り角が複数周期連続して計測された場合にエピソードを終了させるという条件がある。また、上限しきい値以上振り角が複数周期連続して計測された場合にエピソードを終了させるという条件もある。また、エピソード開始から所定時間経過した場合にエピソードを終了させるという条件もある。

0016

初期報酬とは、強化学習における行動価値関数変数である報酬rの初期値である。動作環境102に与えるパラメータとは、たとえば、ブランコにあたえる初速である。制御対象101に与えるパラメータとは、たとえば、ロボットに与える初期膝角度、ロボットの振り角の下限しきい値、上限しきい値、目標振り角、位相の数(周期の分割数。本例では5個)である。なお、報酬rの初期値は、ランダムに与えてもよいし、人の知見をもとに一旦与えてもよい。また獲得済みの報酬をそのまま使ってもよいし、部分的あるいは全体的に改変して使ってもよい。

0017

強化学習部120は、制御対象101の強化学習を実行する。強化学習部120は、取得部121と、評価値更新部122と、行動選択部123と、制御部124と、を有する。取得部121は、制御対象101からセンサデータとして1周期分の振り角と位相毎の膝角度測定値を取得する。なお、本実施例では、ロボットの膝角度測定値をセンサデータとしたが、大腿部付け根の角度や足首の角度をセンサデータに含めてもよい。本実施例では、説明の便宜上、膝角度について説明し、大腿部の付け根の角度や足首の角度については省略する。

0018

評価値更新部122は、評価値Qを更新する。具体的には、たとえば、評価値更新部122は、行動価値関数により、位相毎に評価値Qを更新する。更新後の評価値QをQ(st,at)とする。sは、制御対象101の状態(ここでは、振り角θ)、aは制御対象101の行動(漕ぎ状態)である。stは、更新前の制御対象101の状態(ここでは、振り角θ)、atは、更新前の制御対象101の行動(漕ぎ状態)である。

0019

まず、評価値更新部122は、1つのエピソードについて、評価値Qから導かれる方策π(s,a)に基づき、状態sを初期化して、位相毎に、以下の処理(1)〜(4)を繰り返し実行する。

0020

(1)評価値更新部122は、評価値Qから導かれる方策π(s,a)に基づき、状態sにおける行動aを決定する。

0021

(2)評価値更新部122は、制御対象101に行動aを実行させ、報酬rと行動aをとった後の状態st+1を観測する。

0022

(3)評価値更新部122は、評価値Qを更新する。

0023

Q(st,at)
←Q(st,at)+α[rt+1+γmaxQ(st+1,a)−Q(st,at)]

0024

αは学習係数で、0<α≦1の範囲をとるパラメータである。γは割引率であり、0<γ≦1の範囲をとるパラメータである。rt+1は、更新後の報酬rである。st+1は、更新後の制御対象101の状態(ここでは、振り角θ)である。maxQ(st+1,a)は、状態st+1のの下で、最もQ値の高い行動aを選んだ場合のQ値にγを乗じた値となる。

0025

(4)評価値更新部122は、状態st+1がエピソード終了条件を満たせば、当該エピソードが終了する。

0026

本実施例では、報酬rを自動計算して評価値Qに与えることにより、獲得してほしい動作を自動的にするように制御する。

0027

行動選択部123は、位相単位で制御対象101の次の周期での行動aを選択する。具体的には、たとえば、行動選択部123は、位相毎に今回の評価値Qと前回の評価値Qとを比較する。ある位相について今回の評価値Qが前回の評価値Q以上である場合、行動選択部123は、当該位相について前回の行動aと同一行動を次の周期の行動aとして選択する。たとえば、当該位相での前回の行動aが「漕ぎ」である場合、次の周期の当該位相での行動aとして「漕ぎ」が選択される。

0028

一方、ある位相について今回の評価値Qが前回の評価値Q未満である場合、行動選択部123は、当該位相について前回の行動aとは異なる行動aを次の周期の行動aとして選択する。たとえば、当該位相での前回の行動aが「漕ぎ」である場合、次の周期の当該位相での行動aとして「立ち」が選択される。

0029

また、行動選択部123は、ランダム性を適用して、少なくとも1つの位相について次の周期の行動aを選択してもよい。また、行動選択部123は、どの位相にランダム性を適用するかもランダムに選択してもよい。

0030

制御部124は、各選択行動に応じた制御指令値を生成して制御対象101を制御する。具体的には、たとえば、制御部124は、制御指令値を生成して制御対象101に送信する。選択行動に応じた制御指令値とは、たとえば、ロボットの膝角度が漕ぎ状態または立ち状態となるようにアクチュエータ223に与えられる電流値である。

0031

報酬生成部130は、テーブル131と、テーブル更新部132と、相関演算部133と、報酬演算部134と、を有する。テーブル131は、入出力データテーブル300と試行状態管理テーブル400とを有する。入出力データテーブル300の詳細については図3で後述する。試行状態管理テーブル400の詳細については図4で後述する。

0032

相関演算部133は、テーブル更新部132は、入出力データテーブル300と試行状態管理テーブル400とを更新する。相関演算部133は、入出力データテーブル300と試行状態管理テーブル400とを参照して、位相毎の計測漕ぎ状態403と最大振り角比306との相関情報を演算する。報酬演算部134は、相関情報を用いて報酬(具体的には、更新後の報酬rt+1)を算出し、評価値更新部122に与える。

0033

調整部140は、第1センサデバイス104で動作環境102での外乱を検出し、制御対象101が実行する最大エピソード数を増減させる。外乱の発生頻度が高い場合、目的達成ができない状況が継続することとなる。この場合、最大エピソード数を減少させることで、報酬rの計算に用いるエピソードを直近のエピソードに制限することができる。逆に、外乱の発生頻度が低い場合、最大エピソード数を増加させることで、報酬rの計算に用いるデータ範囲の拡大を図る。センサデバイスがなく、動作環境102での外乱が直接検出できない場合においては、学習が進まない場合、例えば最大振り角などを目的変数とする場合に、その値の向上が見られないかゆるやかな場合は外乱があるとみなして、同様の処理を行うようにしてもよい。

0034

<制御システム100のハードウェア構成例>
図2は、制御システム100のハードウェア構成例を示すブロック図である。制御装置103は、第1プロセッサ211と、第1記憶デバイス212と、入力デバイス213と、出力デバイス214と、第1通信インターフェース(IF)215と、を有する。第1プロセッサ211、第1記憶デバイス212、入力デバイス213、出力デバイス214、および第1通信IF215は、第1バス216に接続される。第1センサデバイス104は、第1通信IF215に接続される。第1プロセッサ211は、制御装置103を制御する。第1記憶デバイス212は、第1プロセッサ211の作業エリアとなる。また、第1記憶デバイス212は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。第1記憶デバイス212としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。

0035

入力デバイス213は、データを入力する。入力デバイス213としては、たとえば、キーボードマウスタッチパネルテンキースキャナがある。出力デバイス214は、データを出力する。出力デバイス214としては、たとえば、ディスプレイプリンタがある。第1通信IF215は、ネットワークと接続し、制御対象101とデータを送受信する。

0036

上述した設定部110、強化学習部120、報酬生成部130、および調整部140は、具体的には、たとえば、第1記憶デバイス212に記憶されたプログラムを第1プロセッサ211に実行させることで実現される。また、テーブル131(入出力データテーブル300と試行状態管理テーブル400)は、具体的には、たとえば、第1記憶デバイス212に記憶されたデータ構造として実現される。

0037

制御対象101は、第2プロセッサ221と、第2記憶デバイス222と、アクチュエータ223と、第2センサデバイス224と、第2通信IF225と、を有する。第2プロセッサ221、第2記憶デバイス222、アクチュエータ223、第2センサデバイス224、および第2通信IF225は、第2バス226により接続される。第2プロセッサ221は、制御装置103を制御する。第2記憶デバイス222は、第2プロセッサ221の作業エリアとなる。また、第2記憶デバイス222は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。第2記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。

0038

アクチュエータ223は、入力エネルギー並進または回転運動といった物理運動に変換する駆動機構である。具体的には、例えば、アクチュエータ223は、ロボットの脚を構成するの付け根、、足首に設けられ、制御装置103から指示された電流値により、ロボットの脚を駆動制御する。第2センサデバイス224は、ブランコに対するロボットの振り角の算出元となる各速度を検出するジャイロセンサである。第2通信IF225は、ネットワークと接続し、制御装置103とデータを送受信する。

0039

<テーブル131の記憶内容例>
つぎに、図3および図4を用いて、図1に示したテーブル131の記憶内容例を説明する。なお、ここでは、データ構造をテーブル形式で説明するが、テーブルによるデータ構造で表現されていなくてもよく、リストデータベースキュー等のデータ構造でもよい。また、テーブルの説明において、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、試行IDフィールド301の値を、試行ID301と表記する。

0040

図3は、入出力データテーブル300の記憶内容例を示す説明図である。図3において、入出力データテーブル300は、制御対象101から入力されるデータと制御対象101に出力するデータとを管理するテーブルである。入出力データテーブル300は、試行IDフィールド301と、エピソードIDフィールド302と、振り角フィールド303と、膝角度計測値フィールド304と、膝角度指令値フィールド305と、最大振り角比フィールド306と、を有する。各フィールド301〜306の列には、当該フィールドの値が格納されている。

0041

試行IDフィールド301は、試行IDを格納する記憶領域である。試行ID301とは、動作環境102における制御対象101の動作の試行を一意に特定する識別情報である。試行ID301単位で、設定部110により初期設定が実行される。

0042

エピソードIDフィールド302は、エピソードIDを格納する記憶領域である。エピソードID302とは、エピソードを一意に特定する識別情報である。エピソードとは、動作環境102における制御対象101の動作が開始してから当該動作が収束するまでの動作単位である。たとえば、振り角が上限しきい値以上となった場合、または、振り角が下限しきい値以下となった場合に、エピソードは終了する。なお、1回の試行でのエピソード回数m(mは1以上の整数)は、設定部110での初期設定により設定される。

0043

振り角フィールド303は、エピソードでの振り角2×θを格納する記憶領域である。振り角303は、取得部121によって計測される。振り角303は、相関演算部133による相関演算での説明変数となりうる値である。

0044

膝角度計測値フィールド304は、エピソードでの膝角度計測値を格納する記憶領域である。膝角度計測値304とは、ロボットの膝の角度の計測値である。膝角度計測値304は、相関演算部133による相関演算での説明変数となりうる値である。膝角度計測値304は、取得部121によって取得される計測値である。膝角度計測値304は、振り角303の位相毎に格納される。

0045

膝角度指令値フィールド305は、エピソードでの膝角度指令値を格納する記憶領域である。膝角度指令値305とは、ロボットの膝角度を所望の角度に設定するための指令値である。より具体的には、たとえば、アクチュエータ223に与える電流量などの制御指令値である。膝角度指令値305は、相関演算部133による相関演算での説明変数となりうる値である。膝角度指令値305は、振り角303の位相毎に格納される。

0046

最大振り角比フィールド306は、最大振り角比を格納する記憶領域である。最大振り角比306は、テーブル更新部132によって算出される。最大振り角比306は、相関演算部133による相関演算での目的変数となる値である。最大振り角比306とは、エピソードID302において前回の試行ID301での振り角303の最大値と、今回の振り角303との比である。たとえば、試行ID:Tr1での最大振り角をエピソードID:ep11の振り角303(2×θ11_1)とする。今回の振り角303を、試行ID:Tr2のエピソード:ep2mの振り角303(2×θ2m_1)とすると、その最大振り角比306(r2m_1)は、
r2m_1=θ2m_1/θ11_1
となる。

0047

なお、初回の試行ID:Tr1については、前回の試行ID301の振り角303がないため、最大振り角比306は格納されない(NA(Not Available))。または、初期設定において前回の最大振り角を任意に設定しておくことにより、最大振り角比306を格納してもよい。

0048

また、入出力データテーブル300には、振り角比が格納されてもよい。振り角比は、相関演算部133による相関演算での説明変数となりうる値である。振り角比は、前回の振り角と今回の振り角との比である。たとえば、エピソードID:ep11において、前回の振り角303(2×θ11_1)と今回の振り角303(2×θ11_2)との振り角比306であるr11_2は、
r11_2=θ11_2/θ11_1
となる。

0049

なお、エピソードID302において初回については、前回の振り角303がないため、振り角比は格納されない(NA(Not Available))。または、初期設定において前回の振り角303を任意に設定しておくことにより、初回の振り角比を格納してもよい。

0050

図4は、試行状態管理テーブル400の記憶内容例を示す説明図である。試行状態管理テーブル400は、試行IDフィールド301と、エピソードIDフィールド302と、計測漕ぎ状態フィールド403と、選択漕ぎ状態フィールド404と、を有する。各フィールド301,302,403,404の列には、当該フィールドの値が格納されている。

0051

計測漕ぎ状態フィールド403は、計測漕ぎ状態を格納する記憶領域である。計測漕ぎ状態403とは、エピソードでの膝角度計測値304に対応する漕ぎ状態である。具体的には、たとえば、計測漕ぎ状態403は、膝角度計測値304をあるしきい値角度で2値化処理した値である。ここでは、例として、漕ぎ状態を「0」、立ち状態を「1」とする。計測漕ぎ状態403は、振り角の位相毎に格納される。計測漕ぎ状態403は、相関演算部133による相関演算での説明変数となりうる値である。

0052

選択漕ぎ状態フィールド404は、選択漕ぎ状態を格納する記憶領域である。選択漕ぎ状態404とは、エピソードで行動選択部123によって選択された漕ぎ状態である。選択漕ぎ状態404は、振り角303の位相毎に格納される。同一エントリにおいて、選択漕ぎ状態404でロボットが制御された場合の膝角度の実測値2値化した値が計測漕ぎ状態403である。

0053

<強化学習処理手順例>
図5は、設定部110および強化学習部120による強化学習処理手順例を示すフローチャートである。図5は、1回の試行における強化学習処理手順例を示す。設定部110は、第1記憶デバイス212からの自動読込またはユーザの手入力により、初期設定を実行する(ステップS501)。初期設定では、たとえば、1回の試行での学習係数α、割引率γ、最大エピソード数、エピソード終了条件、初期報酬、動作環境102に与えるパラメータ、制御対象101に与えるパラメータが設定される。

0054

強化学習部120は、初期設定が完了すると、エピソードを開始する(ステップS502)。そして、強化学習部120は、取得部121により、制御対象101からセンサデータを計測し、報酬生成部130に送信する(ステップS503)。センサデータとは、1周期の振り角およびロボットの位相毎の膝角度計測値を含む。

0055

つぎに、強化学習部120は、評価値更新部122により、報酬生成部130から報酬rが受信されたか否かを判断する(ステップS504)。受信されていない場合(ステップS504:No)、ステップS506に移行する。一方、受信された場合(ステップS505:Yes)、強化学習部120は、評価値更新部122により、報酬rを、受信した報酬rに更新して(ステップS505)、ステップS506に移行する。

0056

つぎに、強化学習部120は、評価値更新部122により、位相毎に行動価値関数を用いて評価値を算出し(ステップS506)、算出した今回の評価値を最新の評価値Qとして保持する(ステップS507)。

0057

つぎに、強化学習部120は、行動選択部123により、位相単位で制御対象101の次の周期での行動aを選択する(ステップS508)。行動選択部123は、選択行動の情報を報酬生成部130に送信する。

0058

つぎに、強化学習部120は、制御部124により、各選択行動に応じた制御指令値を生成して制御対象101に送信する(ステップS509)。

0059

そして、強化学習部120は、設定部110によって設定されたエピソードの終了条件に一致するか否かを判断する(ステップS510)。一致しない場合(ステップS510:No)、ステップS503に戻る。一致した場合(ステップS510:Yes)、強化学習部120は、当該エピソードの終了通知を報酬生成部130に送信する(ステップS511)。そして、強化学習部120は、設定部110によって設定された最大エピソード数に到達したか否かを判断する(ステップS512)。到達してない場合(ステップS512:No)、ステップS502に戻る。到達した場合(ステップS512:Yes)、強化学習部120は、当該試行を終了する。

0060

<報酬生成処理手順例>
図6は、報酬生成部130による報酬生成処理手順例を示すフローチャートである。報酬生成部130は、テーブル更新部132により、ステップS503で送信された位相毎のセンサデータおよびステップS508で送信された位相毎の選択行動の情報を取得する(ステップS601)。ステップS503で送信されたセンサデータには1周期の振り角およびロボットの位相毎の膝角度計測値が含まれる。具体的には、たとえば、報酬生成部130は、テーブル更新部132により、入出力データテーブル300の現在の試行ID301における現在のエピソードID302のエントリにおいて、取得した1周期の振り角を振り角フィールド303に格納し、位相毎の膝角度計測値を膝角度計測値フィールド304に格納する。また、報酬生成部130は、テーブル更新部132により、試行状態管理テーブル400の現在の試行ID301における現在のエピソードID302のエントリにおいて、位相毎の選択行動の情報(「0」(漕)または「1」(立))を選択漕ぎ状態フィールド404に格納する。

0061

つぎに、報酬生成部130は、テーブル更新部132により、特徴データを生成する(ステップS602)。具体的には、たとえば、報酬生成部130は、テーブル更新部132により、入出力データテーブル300の現在の試行ID301における現在のエピソードID302のエントリに格納されたロボットの位相毎の膝角度計測値304を2値化処理する。これにより、報酬生成部130は、テーブル更新部132により、「0」(漕)または「1」(立)のいずれかを示す値を特徴データとして生成する。そして、報酬生成部130は、テーブル更新部132により、試行状態管理テーブル400の現在の試行ID301における現在のエピソードID302のエントリにおいて、計測漕ぎ状態403に、生成した特徴データを格納する。

0062

また、報酬生成部130は、テーブル更新部132により、現在のエピソードにおいて最大振り角比306を特徴データとして算出し、入出力データテーブル300の現在の試行ID301における現在のエピソードID302のエントリに格納する。

0063

つぎに、報酬生成部130は、強化学習部120から送信されたエピソード終了通知(ステップS511)を受信したか否かを判断する(ステップS603)。受信していない場合(ステップS603:No)、ステップS601に戻る。一方、受信した場合(ステップS603:Yes)、報酬生成部130は、終了エピソード数をインクリメントすることで更新する(ステップS604)。報酬生成部130は、終了エピソード数がしきい値以上であるか否かを判断する(ステップS605)。しきい値以上でない場合(ステップS605:No)、ステップS601に戻り、つぎのエピソードID302についてステップS601を実行する。

0064

一方、終了エピソード数がしきい値以上である場合(ステップS605:Yes)、報酬生成部130は、相関演算部133により、相関情報を演算する(ステップS606)。終了エピソード数がしきい値以上である場合(ステップS605:Yes)、現在の試行ID301においてしきい値と同じ終了エピソード数分のエピソードID302のエントリが、入出力データテーブル300および試行状態管理テーブル400に存在する。

0065

したがって、報酬生成部130は、相関演算部133により、位相毎の漕ぎ動作(計測漕ぎ状態403)と最大振り角比306との相関を示す相関情報を算出する。具体的には、たとえば、試行ID301が「Tr1」である試行について終了エピソード数がしきい値以上となった場合、エピソードep11〜ep1mまでの位相毎の計測漕ぎ状態403および最大振り角比306(r11_11〜r1m_y)が得られる。相関情報の一例として相関係数Rを求める場合、下記式により位相毎に相関係数Rが求められる。

0066

0067

xiは、ある位相での計測漕ぎ状態403、xavは、ある試行ID301での計測漕ぎ状態403の平均、yiは、ある位相での最大振り角比306、yavは、ある試行ID301での最大振り角比306の平均、nは、ある試行ID301での振り角303が得られた回数である。なお、ここでは、計測漕ぎ状態403と最大振り角比306との相関を求めたが、膝角度計測値304と最大振り角比306との相関でもよく、また、振り角と最大振り角比306との相関でもよい。

0068

つぎに、報酬生成部130は、報酬演算部134により、位相毎に報酬rを演算する(ステップS607)。具体的には、たとえば、報酬生成部130は、報酬演算部134により、相関情報に応じた報酬rを算出する。相関情報が、たとえば、相関係数Rとすると、その範囲は、−1≦R≦1である。報酬生成部130は、報酬演算部134により、前回の試行ID301での相関係数Rと今回の試行ID301での相関係数Rとの差分に比例して、報酬rの増分Δrを設定し、今回の報酬rを更新する。つぎに、報酬生成部130は、今回の報酬rを制御対象101に送信し(ステップS608)、終了エピソード数を「0」にリセットし(ステップS609)、ステップS601に戻る。

0069

<データ範囲調整処理手順例>
図7は、調整部140によるデータ範囲調整処理手順例を示すフローチャートである。調整部140は、第1センサデバイス104での外乱の検出を待ち受ける(ステップS701:No)。外乱が検出された場合(ステップS701:Yes)、調整部140は、外乱検出回数をインクリメントすることで更新する(ステップS702)。つぎに、調整部140は、外乱検出回数が上限しきい値以上であるか否かを判断する(ステップS703)。上限しきい値以上でない場合(ステップS703:No)、ステップS705に移行する。一方、上限しきい値以上である場合(ステップS703:Yes)、調整部140は、最大エピソード数を所定数減少させる指示データを強化学習部120に送信して(ステップS704)、ステップS705に移行する。これにより、強化学習部120は、最大エピソード数を減少させて強化学習を実行することになる。すなわち、ステップS512では、減少後の最大エピソード数が採用される。

0070

このあと、調整部140は、外乱検出回数が下限しきい値以下であるか否かを判断する(ステップS705)。下限しきい値以下でない場合(ステップS705:No)、ステップS701に戻る。一方、下限しきい値以下である場合(ステップS705:Yes)、最大エピソード数を所定数増加させる指示データを強化学習部120に送信して(ステップS706)、ステップS701に戻る。これにより、強化学習部120は、最大エピソード数を増加させて強化学習を実行することになる。すなわち、ステップS512では、増加後の最大エピソード数が採用される。

0071

以上説明したように、本実施例によれば、報酬設定の手間の軽減化を図ることができる。これにより、制御対象101を、獲得してほしい動作を実行するように制御することができる。

0072

また、上述した実施例では、制御対象101としてブランコを漕ぐロボットを例に挙げて説明したが、制御対象101は、たとえば、自動車バイクスクーター電動アシスト自転車電車船舶飛行機といった移動体でもよい。この場合、強化学習における行動aは、移動体を移動させるために移動体に与えられる入力データである。自動車の場合、行動aである入力データは、たとえば、ステアリングホイールハンドル)の角度やアクセルペダル踏込角度ブレーキペダルの踏込角度である。状態sは移動体が行動aにより移動体が移動した場合の移動体の動作に関する出力データである。自動車の場合、状態sは、たとえば、先行車との車間距離である。

0073

また、制御対象101が物品ピッキングするアームを有する産業用ロボットである場合、行動aはアームの角度または肘角度を2値化したデータ(肘角度に関する情報)であり、状態sはアームの先端が物品の位置となるように制御するアームの可動範囲内における動作角度となる。

0074

また、行動a(漕ぎ状態)と状態s(振り角)の相関に基づいて報酬を生成することにより、目的達成に特に関わる制御指令値(たとえば、アクチュエータ223に与える電流値)が出やすいように報酬rが更新される。したがって、制御対象101の制御の高速化を図ることができる。

0075

また、制御対象101の周囲で検出された外乱に基づいて、行動aおよび状態sによる制御対象101の動作が開始してから収束するまでの動作単位(エピソード)の実行回数を増減するように調整する。これにより、外乱の影響を、最大エピソード数に反映して、強化学習の期間を設定することができる。たとえば、外乱の発生頻度が高い場合、目的達成ができない状況が継続することとなる。この場合、最大エピソード数を減少させることで、報酬rの計算に用いるエピソードを直近のエピソードに制限することができる。逆に、外乱の発生頻度が低い場合、最大エピソード数を増加させることで、報酬rの計算に用いるデータ範囲の拡大を図ることができる。

0076

なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。

0077

また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。

0078

各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリハードディスクSSD(Solid State Drive)等の記憶装置、又は、IC(IntegratedCircuit)カードSDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。

0079

また、制御線情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。

0080

100 制御システム
101制御対象
102動作環境
103制御装置
104センサデバイス
110 設定部
120強化学習部
121 取得部
122評価値更新部
123行動選択部
124 制御部
130報酬生成部
131 テーブル
132 テーブル更新部
133相関演算部
134 報酬演算部
140 調整部
300入出力データテーブル
400試行状態管理テーブル

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ