(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241007BHJP
G06N 3/08 20230101ALI20241007BHJP
B25J 13/08 20060101ALN20241007BHJP
【FI】
G06N20/00
G06N3/08
B25J13/08 A
(21)【出願番号】P 2020185041
(22)【出願日】2020-11-05
【審査請求日】2023-02-06
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】金子 敏充
(72)【発明者】
【氏名】下山 賢一
(72)【発明者】
【氏名】田中 達也
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2020/070876(WO,A1)
【文献】米国特許出願公開第2021/0129319(US,A1)
【文献】国際公開第2019/222734(WO,A1)
【文献】特開2006-309519(JP,A)
【文献】特開2014-211667(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
推論の対象となる第1対象に関連する1以上の第2対象それぞれの第1時刻の状態を示す1以上の第1状態情報と、1以上の前記第2対象それぞれの第2時刻の状態を示す1以上の第2状態情報とを取得する取得部と、
前記推論に用いる機械学習モデルの強化学習に用いる学習データとして、少なくとも一部が前記第2状態情報のいずれかに置き換えられた前記第1状態情報、および、少なくとも一部が前記第1状態情報のいずれかに置き換えられた前記第2状態情報を含む学習データを生成する生成制御部と、
を備える情報処理装置。
【請求項2】
前記第1対象はロボットであり、
前記第2対象は、前記ロボットが移動させる物体の移動元の領域である第1領域と、前記物体の移動先の領域である第2領域と、を含み、
前記第1状態情報は、前記第1時刻の前記第1領域の状態を示す第3状態情報と、前記第1時刻の前記第2領域の状態を示す第4状態情報と、を含み、
前記第2状態情報は、前記第2時刻の前記第1領域の状態を示す第5状態情報と、前記第2時刻の前記第2領域の状態を示す第6状態情報と、を含む、
請求項1に記載の情報処理装置。
【請求項3】
前記生成制御部は、
前記第6状態情報に置き換えた前記第3状態情報、
前記第5状態情報に置き換えた前記第4状態情報、
前記第4状態情報に置き換えた前記第5状態情報、および、
前記第3状態情報に置き換えた前記第6状態情報、
を含む前記学習データを生成する、
請求項2に記載の情報処理装置。
【請求項4】
前記生成制御部は、
前記第5状態情報に置き換えた前記第4状態情報、および、
前記第3状態情報に置き換えた前記第6状態情報、
を含む前記学習データを生成する、
請求項2に記載の情報処理装置。
【請求項5】
前記生成制御部は、
前記第6状態情報に置き換えた前記第3状態情報、および、
前記第4状態情報に置き換えた前記第5状態情報、
を含む前記学習データを生成する、
請求項2に記載の情報処理装置。
【請求項6】
前記第1領域および前記第2領域は大きさが異なり、
前記取得部は、前記第1状態情報および前記第2状態情報が同じ大きさの領域の状態を示すように、前記第1状態情報および前記第2状態情報の少なくとも一方を修正する、
請求項2に記載の情報処理装置。
【請求項7】
前記第1領域および前記第2領域は大きさが異なり、
前記生成制御部は、前記第1状態情報および前記第2状態情報が同じ大きさの領域の状態を示すように、前記第1状態情報および前記第2状態情報の少なくとも一方を修正し、修正した前記第1状態情報および前記第2状態情報を含む前記学習データを生成する、
請求項2に記載の情報処理装置。
【請求項8】
前記生成制御部は、前記第1状態情報を前記第2状態情報に置き換え可能か否か、および、前記第2状態情報を前記第1状態情報に置き換え可能か否かを判定し、置き換え可能と判定した前記第1状態情報を前記第2状態情報に置き換え、置き換え可能と判定した前記第2状態情報を前記第1状態情報に置き換る、
請求項1に記載の情報処理装置。
【請求項9】
前記第1対象はグリッドワールド内を移動するエージェントの移動経路であり、
前記第2対象は、前記エージェントを含み、
前記第1状態情報は、前記第1時刻の前記エージェントの位置を示し、
前記第2状態情報は、前記第2時刻の前記エージェントの位置を示す、
請求項1に記載の情報処理装置。
【請求項10】
情報処理装置が実行する情報処理方法であって、
推論の対象となる第1対象に関連する1以上の第2対象それぞれの第1時刻の状態を示す1以上の第1状態情報と、1以上の前記第2対象それぞれの第2時刻の状態を示す1以上の第2状態情報とを取得する取得ステップと、
前記推論に用いる機械学習モデルの強化学習に用いる学習データとして、少なくとも一部が前記第2状態情報のいずれかに置き換えられた前記第1状態情報、および、少なくとも一部が前記第1状態情報のいずれかに置き換えられた前記第2状態情報を含む学習データを生成する生成制御ステップと、
を含む情報処理方法。
【請求項11】
コンピュータに、
推論の対象となる第1対象に関連する1以上の第2対象それぞれの第1時刻の状態を示す1以上の第1状態情報と、1以上の前記第2対象それぞれの第2時刻の状態を示す1以上の第2状態情報とを取得する取得ステップと、
前記推論に用いる機械学習モデルの強化学習に用いる学習データとして、少なくとも一部が前記第2状態情報のいずれかに置き換えられた前記第1状態情報、および、少なくとも一部が前記第1状態情報のいずれかに置き換えられた前記第2状態情報を含む学習データを生成する生成制御ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
強化学習は、試行錯誤に繰り返すことにより最適な行動方策の学習を行うため、行動の試行回数に対する学習効率の向上が求められている。ロボットの動作を学習する際に、1回の試行により得られた経験データを面対称な座標系に変換することでデータを拡張し、学習効率を改善する技術が提案されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Yijiong Lin, Jiancong Huang, Matthieu Zimmer, Yisheng Guan, Juan Rojas, Paul Weng, “Invariant Transform Experience Replay: Data Augmentation for Deep Reinforcement Learning” arxiv:1909.10707, 2019.
【文献】Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Andrei A. Rusu, Joel Veness, Marc G. Bellemare, Alex Graves, Martin Riedmiller, Andreas K. Fidjeland, Georg Ostrovski, Stig Petersen, Charles Beattie, Amir Sadik, Ioannis Antonoglou, Helen King, Dharshan Kumaran, Daan Wierstra, Shane Legg & Demis Hassabis, “Human-level control through deep reinforcement learning” Nature 518.7540 (2015): 529-533.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、拡張したデータを学習に用いることができず、学習効率を改善できない場合があった。例えば、ある容器内の対象物を把持して他の容器内に箱詰めする動作をロボットに学習させる構成を考える。このような構成では、面対称な座標変換を行う拡張によると、対象物の移動元と移動先の位置が入れ替わったデータが得られる。しかし、一般的な箱詰め作業では移動元と移動先の位置が入れ替わることはないため、拡張されたデータは強化学習に使うことができない。
【0005】
本発明が解決しようとする課題は、学習効率を改善することができる情報処理装置、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
実施形態の情報処理装置は、取得部と、生成制御部と、を備える。取得部は、推論の対象となる第1対象に関連する1以上の第2対象それぞれの第1時刻の状態を示す1以上の第1状態情報と、1以上の第2対象それぞれの第2時刻の状態を示す1以上の第2状態情報とを取得する。生成制御部は、推論に用いる機械学習モデルの強化学習に用いる学習データとして、少なくとも一部が第2状態情報のいずれかに置き換えられた第1状態情報、および、少なくとも一部が第1状態情報のいずれかに置き換えられた第2状態情報を含む学習データを生成する。
【図面の簡単な説明】
【0007】
【
図1】第1の実施形態にかかるロボットシステムの構成図。
【
図4】第1の実施形態における学習処理のフローチャート。
【
図8】第2の実施形態にかかる情報処理装置のブロック図。
【
図9】第2の実施形態にかかる生成制御部のブロック図。
【
図10】第3の実施形態にかかる情報処理装置のブロック図。
【
図11】第3の実施形態にかかる生成制御部のブロック図。
【
図12】グリッドワールドにおける状態の例を示す図。
【
図13】第1から第3の実施形態にかかる情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0009】
(第1の実施形態)
第1の実施形態にかかる情報処理装置は、対象物の移動元と移動先、および、移動前と移動後の容器の状態を入れ替えてデータを拡張し、拡張したデータを用いて箱詰めの対象物の把持の位置・姿勢と箱詰めの位置・姿勢を学習する。このようにデータ拡張を行うことにより、1回の対象物の把持および箱詰め動作から2つ以上の経験データを生成して強化学習に用いることができる。従って、学習効率を高めることが可能となる。
【0010】
第1の実施形態では、物品(対象物の一例)を把持し、把持した物品を移動して容器(移動先の一例)に詰める機能を有するロボットを制御するロボットシステムについて主に説明する。
【0011】
第1の実施形態にかかる情報処理装置は、箱詰めの対象物の把持の位置および姿勢(把持位置・姿勢)と、箱詰めの位置および姿勢(箱詰め位置・姿勢)とを併せて決定する方策を学習する際に用いられる。これにより、ロボットにより実行可能で、充填率の高い、または、箱詰め作業時間の短い効率的な箱詰め方策を効率的に学習することが可能となる。ロボットにより実行可能であるとは、例えば、容器および他の物体に干渉することなく対象物を箱詰め可能であることを意味する。
【0012】
図1は、第1の実施形態にかかる情報処理装置120を有するロボットシステムの構成の一例を示す図である。
図1に示すように、本実施形態のロボットシステムは、ロボット100と、生成部110と、生成部111と、情報処理装置120と、ネットワーク130と、表示部140と、入力部150と、容器160と、容器170と、シミュレータ180と、を備える。
【0013】
ロボット100は、操作の対象物161を容器160から容器170へ移動させる機能を有するロボットである。ロボット100は、多関節ロボット、直行ロボット、および、これらの組み合わせ等により構成することができる。以下では、ロボット100が多関節アーム101、エンドエフェクタ102、および、複数のアクチュエータ103を備える多関節ロボットである場合を例に説明する。
【0014】
エンドエフェクタ102は、対象物(例えば物品)を移動させるために、多関節アーム101の先端に取り付けられる。エンドエフェクタ102は、例えば対象物を把持可能なグリッパー、および、真空式ロボットハンドなどである。多関節アーム101およびエンドエフェクタ102は、アクチュエータ103による駆動に応じて制御される。より具体的には、多関節アーム101は、アクチュエータ103による駆動に応じて、移動、回転、および、伸縮(すなわち関節間の角度の変更)等を行う。エンドエフェクタ102は、アクチュエータ103による駆動に応じて、対象物の把持(グリップまたは吸着)、および、把持の解除(リリース)を行う。
【0015】
情報処理装置120は、ロボット100の動作を制御する。情報処理装置120は、コンピュータ、および、ロボット100の動作を制御するための専用の制御装置等として実現され得る。情報処理装置120の機能の詳細は後述する。
【0016】
ネットワーク130は、ロボット100、生成部110、生成部111、および、情報処理装置120などの構成要素を接続する、例えば、LAN(ローカルエリアネットワーク)およびインターネットなどのネットワークである。ネットワーク130は、有線ネットワークおよび無線ネットワークのいずれであってもよい。ロボット100、生成部110、生成部111、および情報処理装置120は、ネットワーク130を介してデータ(信号)を送受信できる。なお、データの送受信は、ネットワーク130を介することなく、コンポーネント間の直接的な有線接続または無線接続を用いて行われてもよい。
【0017】
表示部140は、情報処理装置120による各種処理で用いられる情報を表示するための装置である。表示部140は、例えば、液晶ディスプレイ(LCD)等の表示装置により構成できる。表示部140は、ロボット100に関する設定、ロボット100の状態、および、ロボット100による作業状況等を表示し得る。
【0018】
入力部150は、キーボード、および、マウス等のポインティングデバイスを含む入力装置である。表示部140および入力部150は、情報処理装置120内に組み込まれていてもよい。
【0019】
ロボット100は、容器160(第1容器)に設置された対象物を把持し、容器170(第2容器)に詰め込む作業を行う。容器170は、空の場合もあるし、既に対象物171が詰め込まれている場合もある。容器160は、例えば倉庫内で物品を保存または移動するための容器(コンテナ)である。また、容器170は、例えば出荷等の用途に用いられる容器(コンテナ)である。容器170は、例えば段ボール箱、および、運送用のパレット等である。
【0020】
容器160および容器170は、それぞれ作業台162および作業台172の上に配置されている。容器160および容器170は、それぞれを搬送可能なベルトコンベア上に配置されてもよい。その場合、容器160および容器170は、ベルトコンベアの動作によりロボット100が動作可能な範囲に配置される。
【0021】
また、容器160および容器170の少なくとも一方を使用せず、例えば、ベルトコンベアまたは台車などの作業領域(移動先の一例)に対象物161および/または対象物171を直接配置するように構成してもよい。
【0022】
本実施形態では、推論の対象はロボット100である。例えば、把持位置・姿勢、および、箱詰め位置・姿勢が、ロボット100の動作として推論される。この場合、ロボット100に関連する対象は、例えば対象物161の移動元の領域(第1領域)、および、移動先の領域(第2領域)である。ロボット100に関連する対象は、ロボット100(の動作)に影響する対象と解釈することもできる。容器160および容器170は、それぞれ、移動元の領域、および、移動先の領域の例である。上記のように、ベルトコンベアまたは台車などの作業領域が、第1領域または第2領域となる場合がある。
【0023】
生成部110は、容器160内の状態を示す状態情報(第1領域の状態情報)を生成する。生成部111は、対象物161の移動先の状態を示す状態情報(第2領域の状態情報)を生成する。生成部110および生成部111は、例えば画像を生成するカメラ、および、デプス画像(デプスデータ)を生成する距離センサ等である。生成部110および生成部111は、ロボット100を含む環境内(例えば室内の柱、および、天井等)に設置されていてもよいし、ロボット100に取り付けられていてもよい。
【0024】
作業台162と並行な平面をXY平面とし、XY平面と垂直な方向をZ軸とする3次元座標を用いる場合、画像は、例えばZ軸と平行な方向を撮像方向とするカメラにより生成される。また、デプス画像は、例えばZ軸と平行な方向を測距方向とする距離センサにより生成される。例えばデプス画像は、XY平面上の各位置(x、y)でのZ軸方向のデプス値を表す情報である。
【0025】
生成部110は、例えば、容器160内の少なくとも一部の状態を観測することにより状態情報を生成する。状態情報は、例えば容器160内の画像およびデプス画像の少なくとも一方を含む。
【0026】
生成部111は、例えば、容器170内の少なくとも一部の状態を観測することにより状態情報を生成する。状態情報は、例えば容器170内の画像およびデプス画像の少なくとも一方を含む。
【0027】
生成部110および生成部111は、1つの生成部に統合してもよい。この場合1つの生成部が、容器160の状態情報の生成、および、容器170の状態情報の生成を実行する。また、3個以上の生成部が備えられてもよい。
【0028】
情報処理装置120は、生成部110および生成部111により生成された状態情報を用いて、少なくとも、対象物161の1つを把持し、移動し、容器170に詰め込むまでの動作計画を作成する。情報処理装置120は、作成された動作計画に基づく制御信号をロボット100のアクチュエータ103に送出することにより、ロボット100を動作させる。
【0029】
シミュレータ180は、ロボット100による動作を模擬するシミュレータである。シミュレータ180は、例えばコンピュータ等の情報処理装置として実現され、ロボット100による動作の学習および評価に用いられる。なお、ロボットシステムは、シミュレータ180を備えなくてもよい。
【0030】
図2は、情報処理装置120の機能構成の一例を示すブロック図である。
図2に示すように、情報処理装置120は、取得部201と、推論部202と、ロボット制御部203と、出力制御部204と、報酬決定部211と、生成制御部220と、学習部212と、記憶部231と、を備える。
【0031】
取得部201は、情報処理装置120で実行される各種処理で用いられる各種情報を取得する。例えば取得部201は、ネットワーク130を介して、生成部110および生成部111から状態情報を取得(受信)する。
【0032】
以下では、第1時刻に生成部110および生成部111から取得した状態情報を第1状態情報という。また、第1時刻より後の第2時刻に生成部110および生成部111から取得した状態情報を第2状態情報という。本実施形態では、生成部110および生成部111の2つから状態情報が取得されるため、第1状態情報および第2状態情報はそれぞれ2つとなる。
【0033】
取得部201は、取得した状態情報を推論部202および報酬決定部211に出力するが、その際、取得した状態情報をそのまま出力してもよいし、解像度変換、フレームレート変換、クリッピング、および、トリミング等の処理を加えてから出力してもよい。以下では、生成部110から取得した時刻tの第1領域の状態情報をs(1)
tとし、生成部111から取得した時刻tの第2領域の状態情報をs(2)
tとする。
【0034】
時刻tを第1時刻とし、時刻t+1を第2時刻とする場合、時刻tの第1領域の状態情報s(1)
t、および、第2領域の状態情報s(2)
tが、それぞれ第1状態情報に相当する。また、時刻t+1の第1領域の状態情報s(1)
t+1、および、第2領域の状態情報s(2)
t+1が、それぞれ第2状態情報に相当する。
【0035】
推論部202は、時刻tの状態情報s(1)
tおよび状態情報s(2)
tを用いて、ロボット100が容器160内で対象物161を把持する際の把持位置・姿勢a(1)
t、および、容器170内に対象物161を箱詰めする際の箱詰め位置・姿勢a(2)
tを決定(推論)する。推論部202は、様々な強化学習アルゴリズムを使用して推論を行うことができる。例えばDQN(Deep Q-Network)により推論を行う場合、推論部202は、状態情報s(1)
tおよび状態情報s(2)
tを連結した状態st=(s(1)
t,s(2)
t)をニューラルネットワークで構成された行動価値関数Q(st,at)に入力し、以下の(1)式により行動atを決定する。
argmax{Q(st,at)} ・・・(1)
at
【0036】
行動atは、把持位置・姿勢a(1)
tと箱詰め位置・姿勢a(2)
tの組み合わせと1対1に対応する。行動atから把持位置・姿勢a(1)
tと箱詰め位置・姿勢a(2)
tが決定される。
【0037】
把持位置・姿勢a(1)
tは、対象物161を把持する際のエンドエフェクタ102の位置を決定する座標値、および、対象物161を把持する際のエンドエフェクタ102の向きまたは傾き等を表す。一方、箱詰め位置・姿勢a(2)
tは、対象物161を置く際のエンドエフェクタ102の位置を決定する座標値、および、対象物161を置く際のエンドエフェクタ102の向きまたは傾き等を表す。位置を決定する座標値は、例えば予め定められた3次元の座標系における座標値で表される。向きまたは傾きは、例えば、3次元の座標系の各軸回りの回転角度で表される。
【0038】
推論部202が推論に用いる機械学習モデルはニューラルネットワークに限られず、同様の入力データから推論が実行できるモデルであればどのようなモデルであってもよい。例えば推論部202は、線形モデルを機械学習モデルとして用いてもよい。
【0039】
ロボット制御部203は、推論部202からの出力情報に基づいて、計画された位置・姿勢で対象物161を把持、箱詰めするように、ロボット100を制御する。例えばロボット制御部203は、以下のような動作をそれぞれ実行させるためのアクチュエータ103の制御信号を生成する。
・ロボットの100の現在の状態から推論部202によって計画された把持位置・姿勢で対象物161を把持するまでの動作
・対象物161の把持動作
・対象物161を推論部202によって計画された箱詰め位置・姿勢まで移動させる動作
・対象物161を置く動作
・箱詰め後にロボット100を所望の状態にするための動作
【0040】
ロボット制御部203は、生成した制御信号を例えばネットワーク130を介してロボット100に送出する。制御信号に基づくアクチュエータ103の駆動に応じて、ロボット100が対象物161の把持および箱詰め動作を行う。
【0041】
出力制御部204は、情報処理装置120による各種処理で用いられる各種情報の出力を制御する。例えば出力制御部204は、ニューラルネットワークの出力を表示部140に表示する処理を制御する。
【0042】
報酬決定部211は、ロボット100の動作結果の好ましさに基づいて強化学習に用いる報酬の値を決定する。報酬決定部211は、ロボット制御部203に入力された計画に従って対象物161を把持および箱詰めした結果、好ましい状態となった場合に大きな報酬、好ましくない状態となった場合に小さな報酬となるように、報酬を決定する。例えば、対象物161の把持および箱詰めに成功した場合、報酬決定部211は対象物161の体積または重量等に基づいて報酬の値を決定する。報酬決定部211は、把持から箱詰めまでに要するロボットの作業時間が短いほど大きな報酬となるように決定してもよい。
【0043】
一方、報酬決定部211は、以下のような好ましくない状態となった場合、報酬を小さな値(例えば負の値)に決定する。
・対象物161の把持に失敗した場合
・対象物161の移動および箱詰め時に、容器160、容器170、または、対象物171などに衝突(接触)した場合
・計画された位置および姿勢とは異なる状態で対象物161を箱詰めした場合
【0044】
以下では、時刻tの報酬をrtと表記する。ここで、時刻tの行動に対する報酬は時刻t+1の状態に基づいて時刻t+1に決定されるため、rtは時刻t-1の行動に対する報酬に相当する。
【0045】
生成制御部220は、強化学習に用いる学習データ(経験データ)を生成するデータ生成処理を実行する。例えば生成制御部220は、取得部201が取得した第1領域の状態情報と第2領域の状態情報、報酬決定部211が決定した報酬、並びに、推論部202が決定した把持位置・姿勢および箱詰め位置・姿勢から、経験データを生成する。
【0046】
本実施形態では、生成制御部220は、推論部202による推論の結果に基づきロボット制御部203がロボット100を動作させて得られる経験データのみでなく、この経験データを拡張した経験データも生成する。生成制御部220は、少なくとも一部が第2状態情報に置き換えられた第1状態情報、および、少なくとも一部が第1状態情報に置き換えられた第2状態情報を含む経験データを生成する。生成制御部220による経験データの生成方法の詳細は後述する。
【0047】
記憶部231は、情報処理装置120で実行される各種処理で用いられる各種情報を記憶する。例えば記憶部231は、生成制御部220で生成された経験データを記憶する。記憶部231は、記憶する経験データ数に予め上限が設けられてもよい。例えば経験データ数が上限を上回った場合には、記憶部231は、既に記憶されている一部の経験データを削除してから新しい経験データを記憶する。例えば記憶部231は、古い時刻の経験データから順に削除する。蓄積された経験データを用いて学習する際には、一定の処理間隔で、ランダムサンプリングなどの予め決められた方法で一定数の経験データがサンプリングされ、学習部212に出力される。
【0048】
記憶部231は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0049】
学習部212は、推論部202が用いる機械学習モデル(ニューラルネットワーク)の学習処理(強化学習)を実行する。例えば学習部212は、記憶部231からサンプリングした経験データを用いて、推論部202が用いるニューラルネットワークのパラメータの更新量を決定する。推論部202がニューラルネットワークで推論を行う場合、パラメータは、ニューラルネットワークの重みおよびバイアスに相当する。DQNにより強化学習を行う場合には、経験データx=(st,at,rt+1,st+1)がサンプリングされたとき、学習部212は、以下の(2)式で表される損失関数を用いてバックプロパゲーションを行うことで各パラメータの更新量を決定する。
L=(rt+1+γmax{Q(st+1,at+1)}-Q(st,at))2
at+1
・・・(2)
【0050】
γは強化学習において割引率と呼ばれる値である。maxは、at+1を変化させて算出されるQの値のうち最大値を求める関数である。なお損失関数は(2)式に限られるものではない。
【0051】
上記各部(取得部201、推論部202、ロボット制御部203、出力制御部204、報酬決定部211、生成制御部220、および、学習部212)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0052】
次に生成制御部220の処理を詳細に説明する。
図3は、生成制御部220の機能構成の一例を示すブロック図である。
図3に示すように、生成制御部220は、データ制御部221と、拡張部222と、データ生成部223と、一時記憶部224と、を備える。
【0053】
まず、容器160と容器170が同じ大きさ(第1領域と第2領域とが同じ大きさ)である場合について説明する。
【0054】
一時記憶部224は、経験データの生成に必要な状態情報と把持位置・姿勢を一時的に記憶する記憶装置である。一時記憶部224は、記憶部231と同様に、フラッシュメモリ、メモリカード、RAM、HDD、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。記憶部231が一時記憶部224として動作するように構成されてもよい。
【0055】
経験データの生成は、経験データの生成に必要な情報が一時記憶部224に記憶されている場合に実行される。以下では、時刻tの第1領域の状態情報s(1)
tと、第2領域の状態情報をs(2)
tと、把持位置・姿勢a(1)
tと、箱詰め位置・姿勢a(2)
tと、が一時記憶部224に記憶されていることを前提とする。
【0056】
データ制御部221は、経験データの生成に必要なデータを準備する。まずデータ制御部221は、報酬決定部211から入力された時刻t+1の第1領域の状態情報s(1)
t+1と第2領域の状態情報をs(2)
t+1と、推論部202から入力された時刻t+1の把持位置・姿勢a(1)
t+1と箱詰め位置・姿勢a(2)
t+1と、を一時記憶部224に出力する。
【0057】
次にデータ制御部221は、一時記憶部224に記憶されている時刻tの第1領域の状態情報s(1)
tと、第2領域の状態情報をs(2)
tと、把持位置・姿勢a(1)
tと、箱詰め位置・姿勢a(2)
tと、を読み出す。データ制御部221は、読み出した時刻tの各情報と、時刻t+1に得られる各情報(第1領域の状態情報s(1)
t+1、第2領域の状態情報s(2)
t+1、報酬決定部211から入力された報酬rt+1)と、を合わせて、経験データの生成に必要な、以下の(3)式で表されるデータutを拡張部222に出力する。
ut=(s(1)
t,s(2)
t,a(1)
t,a(2)
t,rt+1,s(1)
t+1,s(2)
t+1) ・・・(3)
【0058】
データutの各項は、それぞれ以下の情報を意味する。
・第1項:時刻tの第1領域の状態情報
・第2項:時刻tの第2領域の状態情報
・第3項:時刻tの把持位置・姿勢
・第4項:時刻tの箱詰め位置・姿勢
・第5項:時刻t+1の報酬
・第6項:時刻t+1の第1領域の状態情報
・第7項:時刻t+1の第2領域の状態情報
【0059】
拡張部222は、経験データを増やして強化学習の学習効率を高めるためのデータ拡張を行う。拡張部222は、まず入力されたデータutがデータ拡張可能か否かを判定する。例えば、把持および箱詰めが成功したデータであれば、拡張部222は、データutがデータ拡張可能であると判定する。把持および箱詰めの少なくとも一方が失敗した場合、拡張部222は、データutがデータ拡張可能でないと判定する。データ拡張可能か否かを判定することは、少なくとも一部の状態情報が置き換え可能か否かを判定することに相当すると解釈することができる。
【0060】
データ拡張が可能と判定された場合、拡張部222は、データutから以下の(4)~(6)式で表されるf1、f2、f3の3通りのデータ拡張を行うことができる。
f1(ut)=
(s(2)
t+1,s(1)
t+1,a(2)
t,a(1)
t,rt+1,s(2)
t,s(1)
t)
・・・(4)
f2(ut)=
(s(1)
t,s(1)
t+1,a(1)
t,a(1)
t,rt+1,s(1)
t+1,s(1)
t)
・・・(5)
f3(ut)=
(s(2)
t+1,s(2)
t,a(2)
t,a(2)
t,rt+1,s(2)
t,s(2)
t+1)
・・・(6)
【0061】
拡張部222は、データ拡張が可能と判定された場合に、拡張前のデータutに加えて拡張されたデータf1(ut)、f2(ut)、f3(ut)の少なくとも1つをデータ生成部223に出力する。
【0062】
データ生成部223は、強化学習に用いる経験データxを生成する。拡張部222から入力されたデータが(3)式で表されるデータutのとき、データ生成部223は、以下の(7)式で表される経験データxを生成する。
x=(st,at,rt+1,st+1) ・・・(7)
【0063】
状態stは、st=(s(1)
t,s(2)
t)で表され、状態st+1は、st+1=(s(1)
t+1,s(2)
t+1)で表され、atは、a(1)
tとa(2)
tの組み合わせに対応する行動である。すなわち、データ生成部223は、入力されたデータから、以下の規則に従って経験データxを生成する。
・入力されたデータの第1項、第2項を結合したデータを、経験データの第1項とする。
・入力されたデータの第3項、第4項を結合したデータを、経験データの第2項とする。
・入力されたデータの第5項を、経験データの第3項とする。
・入力されたデータの第6項、第7項を結合したデータを、経験データの第4項とする。
【0064】
データ生成部223は、拡張されたデータf1(ut)、f2(ut)、f3(ut)についても上記規則に従って経験データを生成することができる。
【0065】
状態情報を以下のように定義する。
・第3状態情報:時刻tの第1領域の状態情報s(1)
t
・第4状態情報:時刻tの第2領域の状態情報s(2)
t
・第5状態情報:時刻t+1の第1領域の状態情報s(1)
t+1
・第6状態情報:時刻t+1の第2領域の状態情報s(2)
t+1
【0066】
この場合、データ生成部223は、データf1(ut)、f2(ut)、f3(ut)それぞれに対して、以下のような経験データを生成することになる。
・データf1(ut):第6状態情報に置き換えた第3状態情報、第5状態情報に置き換えた第4状態情報、第4状態情報に置き換えた第5状態情報、および、第3状態情報に置き換えた第6状態情報を含む経験データ
・データf2(ut):第5状態情報に置き換えた第4状態情報、および、第3状態情報に置き換えた第6状態情報を含む経験データ
・データf3(ut):第6状態情報に置き換えた第3状態情報、および、第4状態情報に置き換えた第5状態情報を含む経験データ
【0067】
データ生成部223は、生成した各経験データを記憶部231に出力する。
【0068】
次に、このように構成された第1の実施形態にかかる情報処理装置120による学習処理について説明する。
図4は、第1の実施形態における学習処理の一例を示すフローチャートである。
【0069】
取得部201は、生成部110から、移動元の容器160時刻tの状態情報をs(1)
tを取得する(ステップS101)。取得部201は、生成部111から、移動先の容器170の時刻tの状態情報をs(2)
tを取得する(ステップS102)。
【0070】
学習部212は、取得された状態情報s(1)
tおよびs(2)
tを推論部202が用いるニューラルネットワークに入力し、ニューラルネットワークの出力から、ロボット100の把持位置・姿勢および箱詰め位置・姿勢を決定する(ステップS103)。
【0071】
ロボット制御部203は、決定された把持位置・姿勢および箱詰め位置・姿勢となるようにロボット100の動作を制御する(ステップS104)。
【0072】
報酬決定部211は、ロボット100の動作の結果に基づいて報酬の値を決定する(ステップS105)。
【0073】
生成制御部220は、取得された第1領域の状態情報と第2領域の状態情報、決定された報酬の値、並びに、決定された把持位置・姿勢および箱詰め位置・姿勢と用いて、上記のような手順で経験データを生成するデータ生成処理を実行する(ステップS106)。
【0074】
学習部212は、生成された経験データを用いて、バックプロパゲーションにより畳み込み層の重みとバイアスを更新する(ステップS107)。
【0075】
学習部212は、学習を終了するか否かを判定する(ステップS108)。学習部212は、例えば、行動価値関数の値が収束したか、または、学習の繰り返しの回数が上限値に達したかなどにより、学習の終了を判定する。学習を継続する場合は(ステップS108:No)、ステップS101に戻り、処理が繰り返される。学習が終了したと判定された場合(ステップS108:Yes)、学習処理を終了する。
【0076】
次に、生成される経験データの具体例について説明する。
図5は、データ拡張f
1により拡張されたデータの例を示す図である。
図5の状態情報501は、時刻tと時刻t+1における移動元の領域および移動先の領域の状態を表す。
【0077】
具体的には、状態情報501は、以下のような第3状態情報501-3、第4状態情報501-4、第5状態情報501-5、および、第6状態情報501-6と、を含む。
・第3状態情報501-3:時刻tにおける移動元の領域(容器160)の状態
・第4状態情報501-4:時刻tにおける移動先の領域(容器170)の状態
・第5状態情報501-5:時刻t+1における移動元の領域(容器160)の状態
・第6状態情報501-6:時刻t+1における移動先の領域(容器170)の状態
【0078】
状態情報501は、時刻tに把持位置513で対象物512を把持し、箱詰め位置514に箱詰めした結果、時刻t+1の状態になったことを示す。
【0079】
状態情報502は、データ拡張f1により状態情報501を拡張したデータを表す。状態情報502は、状態情報501の各状態の時刻と容器を共に入れ替えた状態情報となっている。すなわち、状態情報502は、以下のような第3状態情報502-3、第4状態情報502-4、第5状態情報502-5、および、第6状態情報502-6と、を含む。
・第3状態情報502-3:第6状態情報501-6に置き換えた状態情報
・第4状態情報502-4:第5状態情報501-5に置き換えた状態情報
・第5状態情報502-5:第4状態情報501-4に置き換えた状態情報
・第6状態情報502-6:第3状態情報501-3に置き換えた状態情報
【0080】
状態情報502は、状態情報501とは逆に、容器170にある対象物512を把持位置514で把持し、箱詰め位置513で容器160に箱詰めしたことを示す。状態情報502は、実際に移動元の容器(容器160)および移動先の容器(容器170)の状態が逆であった場合の状態遷移を模擬したデータとなっているため、強化学習の経験データとして利用することができる。
【0081】
図6は、データ拡張f
2により拡張されたデータの例を示す図である。状態情報503は、データ拡張f
2により状態情報501を拡張したデータを表す。状態情報503は、状態情報501の容器170の状態を逆の時刻の容器160の状態に置き換えたデータとなっている。すなわち、状態情報503は、以下のような第3状態情報503-3、第4状態情報503-4、第5状態情報503-5、および、第6状態情報503-6と、を含む。
・第3状態情報503-3:第3状態情報501-3と同じ(置き換えなし)
・第4状態情報503-4:第5状態情報501-5に置き換えた状態情報
・第5状態情報503-5:第4状態情報501-5と同じ(置き換えなし)
・第6状態情報503-6:第3状態情報501-3に置き換えた状態情報
【0082】
その結果、状態情報503は、容器160にある対象物512を把持位置513で把持し、箱詰め位置513で容器160に箱詰めしたことを示す。状態情報503は、移動元の容器(容器160)および移動先の容器(容器170)の状態が箱詰め対象物を除いて同じであった場合を模擬したデータとなっているため、強化学習の経験データとして利用することができる。
【0083】
図7は、データ拡張f
3により拡張されたデータの例を示す図である。状態情報504は、データ拡張f
3により状態情報501を拡張したデータを表す。状態情報504は、状態情報501の容器160の状態を逆の時刻の容器170の状態に置き換えたデータとなっている。すなわち、状態情報504は、以下のような第3状態情報504-3、第4状態情報504-4、第5状態情報504-5、および、第6状態情報504-6と、を含む。
・第3状態情報504-3:第3状態情報501-6に置き換えた状態情報
・第4状態情報504-4:第5状態情報501-4と同じ(置き換えなし)
・第5状態情報504-5:第4状態情報501-4に置き換えた状態情報
・第6状態情報504-6:第3状態情報501-6と同じ(置き換えなし)
【0084】
その結果、状態情報504は、容器170にある対象物512を把持位置514で把持し、箱詰め位置514で容器170に箱詰めしたことを示す。状態情報504は、移動元の容器(容器160)および移動先の容器(容器170)の状態が箱詰め対象物を除いて同じであった場合を模擬したデータとなっているため、強化学習の経験データとして利用することができる。
【0085】
把持および箱詰めに成功した場合の報酬が、対象物161の体積または重量等に基づいて算出されている場合、データ拡張を実行したときに、報酬の値を変更する必要はない。しかし、報酬の定義によってはデータ拡張後の報酬が好ましくないことがある。このような場合は、データ拡張後の状態情報を再び報酬決定部211に入力し、報酬rtを算出して用いてもよい。
【0086】
これまでは、容器160と容器170が同じ大きさである場合の処理について説明した。次に容器160と容器170の大きさが異なる場合の対応方法について説明する。以下では容器170が容器160よりも大きな場合について説明するが、容器170が容器160よりも小さい場合でも同様に処理することが可能である。
【0087】
容器160よりも容器170が大きい場合の第1の処理方法は、取得部201が、各容器内の状態情報を取得した際、容器160の状態情報および容器170の状態情報の少なくとも一方を、両者が同じ大きさとなるように修正することである。取得部201は、容器170の状態情報に対してトリミングを行うことによって容器160の状態情報と同じ大きさの状態情報を出力してもよいし、容器160の状態情報に対してパディングを行うことによって容器170の状態情報と同じ大きさの状態情報を出力してもよい。
【0088】
トリミングを行う場合、取得部201は、様々なトリミング位置に対してトリミングを行って複数の状態情報を生成し、それぞれの状態情報に対して推論部202が把持位置・姿勢と箱詰め位置・姿勢を出力するようにしてもよい。推論部202は、最終的には複数の把持位置・姿勢と箱詰め位置・姿勢に対し、予め決められた方法で1組の把持位置・姿勢と箱詰め位置・姿勢を選択する。例えば、ニューラルネットワークの出力(行動価値関数Qの出力値など)が最も大きい把持位置・姿勢と箱詰め位置・姿勢に決定する。生成制御部220は、推論部202が選択した把持位置・姿勢と箱詰め位置・姿勢に対応するトリミング位置でトリミングされた状態情報を用いて経験データを生成する。
【0089】
容器160よりも容器170が大きい場合の第2の処理方法は、拡張部222が、データ拡張を行うときに状態情報のトリミングおよびパディングを行う方法である。データ拡張により移動元の容器(例えば容器160)の状態情報を移動先の容器(例えば容器170)の状態情報に置き換える場合には、拡張部222は、状態情報のトリミングを行うことで状態情報の大きさを合わせる。このとき、箱詰めの対象物がトリミング後の状態情報に含まれるようにトリミング位置を調整する。
【0090】
一方、データ拡張により移動先の容器(例えば容器170)の状態情報を移動元の容器(例えば容器160)の状態情報に置き換える場合には、拡張部222は、状態情報のパディングを行うことで状態情報の大きさを合わせる。パディングの方法としては、例えば、0を挿入するゼロパディング、状態情報の周囲の値を繰り返し複製するパディング、内側の状態情報を外側に折り返すパディング、および、ランダムな値を生成して挿入するパディング、などを用いることができる。
【0091】
第2の処理方法は、置き換え元の状態情報を置き換え先の状態情報の大きさに合わせるように修正する方法であると解釈することができる。第1の処理方法のように取得部201が状態情報を修正する場合にも、置き換え元の状態情報を置き換え先の状態情報の大きさに合わせるように修正する方法を適用してもよい。
【0092】
本実施形態では、時刻tにおける状態情報と時刻t+1における状態情報を他方の時刻における状態情報に置き換えることでデータ拡張を行う方法について説明した。このようなデータ拡張は、画像認識の目的で用いられているデータ拡張手法と組み合わせることも可能である。例えば、拡張部222は、上記のような手法でデータ拡張を行った後、画像およびデプス画像などの状態情報に対し、さらに反転、アフィン変換、および、ノイズ付与を行うことによりデータ拡張を行ってもよい。ただし、このようなデータ拡張により把持位置・姿勢、および、箱詰め位置・姿勢が変化する場合には、把持位置・姿勢と箱詰め位置・姿勢の修正処理も行う必要がある。
【0093】
このように、第1の実施形態にかかる情報処理装置では、1回の対象物の把持および箱詰め動作から2つ以上の経験データを生成し、強化学習に用いることができる。これにより、把持および箱詰めの試行回数に対する強化学習の学習効率を高めることが可能となる。
【0094】
(第2の実施形態)
第2の実施形態では、第1の実施形態と同様に、物品(対象物の一例)を把持し、把持した物品を移動して容器(移動先の一例)に詰める機能を有するロボットを制御するロボットシステムについて主に説明する。
【0095】
第1の実施形態では、箱詰めの対象物の把持の位置および姿勢(把持位置・姿勢)と、箱詰めの位置および姿勢(箱詰め位置・姿勢)とを併せて決定する方策を学習した。しかし、箱詰めの対象物の把持の位置および姿勢(把持位置・姿勢)が容易に決定できて学習の必要がない場合、箱詰めの位置および姿勢のみを決定する方策を学習することにより、ロボットにより実行可能で、充填率の高い、または、箱詰め作業時間の短い効率的な箱詰め方策を第1の実施形態よりもさらに効率的に学習することが可能となる。
【0096】
第2の実施形態のロボットシステムの構成は
図1と同様であるので説明を省略する。第2の実施形態では、ロボットシステム内の情報処理装置の機能が、第1の実施形態と異なっている。
【0097】
図8は、第2の実施形態にかかる情報処理装置120-2の構成の一例を示すブロック図である。
図8に示すように、情報処理装置120-2は、取得部201-2と、推論部202-2と、ロボット制御部203と、出力制御部204と、報酬決定部211と、生成制御部220-2と、学習部212と、記憶部231と、を備える。
【0098】
図9は、生成制御部220-2の機能構成の一例を示すブロック図である。
図9に示すように、生成制御部220-2は、データ制御部221と、拡張部222と、データ生成部223-2と、一時記憶部224と、を備える。
【0099】
第2の実施形態では、取得部201-2、推論部202-2、並びに、生成制御部220-2内の拡張部222-2およびデータ生成部223-2の機能が、第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態の
図2または
図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0100】
箱詰めの位置および姿勢のみを決定する方策を学習する場合、取得部201-2は、時刻tにおける容器160の状態情報s(1)
tに加え、時刻tにおける箱詰めの対象物の状態情報s(о)
tを取得する。箱詰めの対象物の状態情報s(о)
tは、箱詰めの対象物の形状および把持姿勢に関する情報を含む。
【0101】
推論部202-2は、箱詰めの対象物の状態情報s(о)
tおよび容器170の状態情報s(2)
tを入力として把持位置・姿勢、および、箱詰め位置・姿勢を決定する。すなわち、箱詰めの対象物の状態情報s(о)
tおよび容器170の状態情報s(2)
tを連結した状態st=(s(о)
t,s(2)
t)をニューラルネットワークで構成された行動価値関数Q(st,at)に入力して行動atを決定する。本実施形態では、行動atは箱詰め位置・姿勢a(2)
tと1対1に対応する。
【0102】
拡張部222-2は、データutから以下の(8)式で表されるf4に従いデータ拡張を行う。
f4(ut)=(s(2)
t+1,s(1)
t+1,a(2)
t,a(1)
t,rt+1,s(2)
t,s(1)
t) ・・・(8)
【0103】
拡張部222-2は、拡張したデータf4(ut)を、拡張前のデータutと共にデータ生成部223-2に出力する。
【0104】
データ生成部223-2は、拡張部222-2から入力されたデータから経験データx=(st,at,rt+1,st+1)を生成して出力する。拡張部222-2からデータut=(s(1)
t,s(2)
t,a(1)
t,a(2)
t,rt+1,s(1)
t+1,s(2)
t+1)が入力されたときは、データ生成部223-2は、st=(s(о)
t,s(2)
t)、st+1=(s(о)
t+1,s(2)
t+1)とし、行動atは箱詰め位置・姿勢a(2)
tを一意に特定する値として、経験データxを生成する。
【0105】
一方、拡張部222-2からf4(ut)が入力されたときは、データ生成部223-2は、st=(s(о)
t,s(1)
t+1)、st+1=(s(о)
t+1,s(1)
t)とし、行動atを箱詰め位置・姿勢a(1)
tを一意に特定する値として、経験データを生成する。
【0106】
このように、第2の実施形態にかかる情報処理装置では、1回の対象物の箱詰め動作から2つの経験データを生成し、強化学習に用いることができる。これにより、箱詰めの試行回数に対する強化学習の学習効率を高めることが可能となる。
【0107】
(第3の実施形態)
上記実施形態のようなデータ拡張の手法は、対象物を移動させるロボットの動作制御の学習以外にも適用可能である。第3の実施形態では、グリッドワールドにおける無人搬送車等のエージェントの行動方策の強化学習に適用する例を説明する。
【0108】
図10は、第3の実施形態にかかる情報処理装置120-3の構成の一例を示すブロック図である。
図10に示すように、情報処理装置120-3は、取得部201-3と、推論部202-3と、と、出力制御部204と、報酬決定部211-3と、生成制御部220-3と、学習部212と、記憶部231と、を備える。
【0109】
図11は、生成制御部220-3の機能構成の一例を示すブロック図である。
図11に示すように、生成制御部220-3は、データ制御部221-3と、拡張部222-3と、データ生成部223-3と、一時記憶部224と、を備える。
【0110】
第3の実施形態では、取得部201-3、推論部202-3、報酬決定部211-3、および、生成制御部220-3内の一時記憶部224以外の構成部の機能、並びに、ロボット制御部203を削除したことが、第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態の
図2または
図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0111】
取得部201-3は、推論に用いる状態情報を取得する。例えば取得部201-3は、グリッドワールドにおける時刻tの状態st(第1状態情報の一例)を取得する。状態情報stは、例えば、グリッドワールドでのエージェントのスタート位置、エージェントのゴール位置、障害物の位置、および、エージェントの現在位置を含む。
【0112】
推論部202-3は、状態stを用いて、エージェントがグリッドワールド内で次に移動する方向(移動方向)を決定(推論)する。推論部202-3は、第1の実施形態の推論部202と同様に、様々な強化学習アルゴリズムを使用して推論を行うことができる。例えばDQNにより推論を行う場合、推論部202-3は、状態stをニューラルネットワークで構成された行動価値関数Q(st,at)に入力し、上記(1)式により行動atを決定する。行動atは、例えばエージェントの移動方向である。
【0113】
報酬決定部211-3は、例えば、ゴールまでの距離の減少分を報酬として決定する。
【0114】
データ制御部221-3は、経験データの生成に必要な、以下の(9)式で表されるデータutを拡張部222-3に出力する。
ut=(st,at,rt+1,st+1) ・・・(9)
【0115】
データutの各項は、それぞれ以下の情報を意味する。
・第1項:時刻tの状態情報
・第2項:時刻tの行動(移動方向)
・第3項:時刻t+1の報酬
・第4項:時刻t+1の状態情報
【0116】
拡張部222-3は、データutから以下の(10)式で表されるf5に従いデータ拡張を行う。
f5(ut)=(st+1,a’t,rt+1,st) ・・・(10)
【0117】
行動a’tは、行動atが示す方向を逆方向に修正した行動である。例えば、行動atが右方向を示す場合、行動a’tは、左方向を示すように修正される。また拡張部222-3は、報酬についても必要に応じて修正を行う。例えば、ゴールまでの距離の減少分を報酬とする場合、拡張部222-3は、rt+1を-rt+1に修正する。
【0118】
なお拡張部222-3は、時刻t+1においてエージェントが障害物に衝突した場合、および、ゴールに到達した場合にはデータ拡張は行わない。
【0119】
データ生成部223-3は、拡張部222-3から入力されたデータが(9)式で表されるデータutのとき、データ生成部223-3は、上記の(7)式で表される経験データxを生成する。すなわち、データ生成部223-3は、入力されたデータから、以下の規則に従って経験データxを生成する。
・入力されたデータの第1項を、経験データの第1項とする。
・入力されたデータの第2項を、経験データの第2項とする。
・入力されたデータの第3項を、経験データの第3項とする。
・入力されたデータの第4項を、経験データの第4項とする。
【0120】
データ生成部223-3は、拡張されたデータf5(ut)についても上記規則に従って経験データを生成することができる。
【0121】
図12は、グリッドワールドにおける時刻tの状態s
tと時刻t+1の状態s
t+1の例を示す図である。状態情報801はエージェントの行動により実際に得られた状態の状態情報である。状態情報801は、スタート位置811、ゴール位置812、エージェントの現在位置813、および、障害物の位置814を含む。
【0122】
具体的には、状態情報801は、以下のような第1状態情報801-1、および、第2状態情報801-2を含む。
・第1状態情報801-1:時刻tにおけるグリッドワールドの状態
・第2状態情報801-2:時刻t+1におけるグリッドワールドの状態
【0123】
なお、スタート位置811、ゴール位置812、および、障害物の位置814は、試行のたびにランダムに変化させた値が設定される。
【0124】
本実施形態では、推論部202-3は、1回の行動で隣接するどのグリッドに移動するか(移動方向)を決定する。エージェントの目的は、障害物に接触することなく、できるだけ少ない移動回数でゴールに到達することである。言い換えると、本実施形態での推論の対象は、グリッドワールド内を移動するエージェントの移動経路である。また、移動経路に関連する対象は、例えばエージェント自身である。
【0125】
本実施形態では、データ生成部223-3は、状態情報801に含まれる時刻tの状態と時刻t+1の状態とを相互に入れ替えた状態の状態情報802を生成する。
【0126】
状態情報802は、データ拡張f5により状態情報801を拡張したデータを表す。状態情報802は、状態情報801の各状態の時刻を入れ替えた状態情報となっている。すなわち、状態情報802は、以下のような第1状態情報802-1、および、第2状態情報802-2と、を含む。
・第1状態情報802-1:第2状態情報801-2に置き換えた状態情報
・第2状態情報802-2:第1状態情報801-1に置き換えた状態情報
【0127】
状態情報801では、エージェントは右のグリッドに移動している。一方、状態情報802は、エージェントが右のグリッドから左のグリッドに移動した行動を模擬したデータとなっている。
【0128】
このように、第3の実施形態では、グリッドワールドにおける1回の行動から2つ以上の経験データを生成することができる。このため、行動回数に対する強化学習の学習効率を高めることが可能となる。
【0129】
以上説明したとおり、第1から第3の実施形態によれば、学習効率を改善することができる。
【0130】
次に、第1から第3の実施形態にかかる情報処理装置のハードウェア構成について
図13を用いて説明する。
図13は、第1から第3の実施形態にかかる情報処理装置のハードウェア構成例を示す説明図である。
【0131】
第1から第3の実施形態にかかる情報処理装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0132】
第1から第3の実施形態にかかる情報処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0133】
第1から第3の実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0134】
さらに、第1から第3の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1から第3の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0135】
第1から第3の実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0136】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0137】
100 ロボット
110 生成部
111 生成部
120、120-2、120-3 情報処理装置
130 ネットワーク
140 表示部
150 入力部
201、201-2、201-3 取得部
202、202-2、202-3 推論部
203 ロボット制御部
204 出力制御部
211、211-3 報酬決定部
212 学習部
220、220-2、220-3 生成制御部
221、221-3 データ制御部
222、222-2、222-3 拡張部
223、223-2、223-3 データ生成部
224 一時記憶部
231 記憶部