(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-30
(45)【発行日】2025-02-07
(54)【発明の名称】強化学習装置、強化学習方法及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20250131BHJP
G06N 3/092 20230101ALI20250131BHJP
【FI】
G06N20/00
G06N3/092
(21)【出願番号】P 2021040746
(22)【出願日】2021-03-12
【審査請求日】2024-02-16
(73)【特許権者】
【識別番号】591245473
【氏名又は名称】ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100177839
【氏名又は名称】大場 玲児
(74)【代理人】
【識別番号】100172340
【氏名又は名称】高橋 始
(74)【代理人】
【識別番号】100182626
【氏名又は名称】八島 剛
(72)【発明者】
【氏名】中里 研一
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2018/150654(WO,A1)
【文献】特開2021-035714(JP,A)
【文献】増田 直之, 潮 俊光,「階層型深層強化学習を用いた車両系の最適経路探索」,人工知能の導入による生産性、効率性の向上、新製品開発への活用,オンデマンド版 第1版,株式会社 技術情報協会,2019年03月27日,pp.215-221,ISBN: 978-4-86104-755-8
【文献】XIE, Jiexin et al.,"Deep Reinforcement Learning With Optimized Reward Functions for Robotic Trajectory Planning",IEEE Access [online],IEEE,2019年,Volume 7,pp.105669-105679,[検索日 2024.12.20], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/8782495>,DOI: 10.1109/ACCESS.2019.2932257
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
与えられた環境においてタスクを達成するまで、エージェントの行動を選択するエピソードを繰り返し実施し、1エピソードにおける一連の行動の累積価値が最大化するように前記エージェントの行動を学習する強化学習装置(10)において、
前記エージェントの行動を繰り返し選択する行動選択部(111)と、
前記行動が選択されるごとに、前記選択された行動に対して付与される報酬(R)を用いて、前記選択された行動の価値(Q)を計算する計算処理部(112)と、
前記タスクから1又は複数のサブタスクを定義するとともに、前記サブタスクの達成度に応じて付与する第2の報酬(M)を定義するタスク制御部(113)と、を備え、
前記計算処理部(112)は、前記選択された行動に対して定義された前記第2の報酬(M)と前記環境から付与される第1の報酬(r)とを取得し、前記第1の報酬(r)に前記第2の報酬(M)を加えることにより、前記報酬(R)を計算する
強化学習装置(10)。
【請求項2】
前記計算処理部(112)は、前記第2の報酬(M)を加える割合(τ)を調整する
請求項1に記載の強化学習装置(10)。
【請求項3】
前記計算処理部(112)は、前記エピソードの実施回数が増えるにつれて、前記第2の報酬(M)を加える割合(τ)を減らす
請求項2に記載の強化学習装置(10)。
【請求項4】
前記タスク制御部(113)は、前記サブタスクごとに独立して前記第2の報酬(M)を定義する
請求項1~3のいずれか一項に記載の強化学習装置(10)。
【請求項5】
前記タスク制御部(113)は、前記サブタスクの有効化又は無効化を選択する
請求項1~4のいずれか一項に記載の強化学習装置(10)。
【請求項6】
前記行動選択部(111)は、前記サブタスクの有効化又は無効化を前記エージェントの行動の1つとして選択する
請求項1~4に記載の強化学習装置(10)。
【請求項7】
与えられた環境においてタスクを達成するまで、エージェントの行動を選択するエピソードを繰り返し実施し、1エピソードにおける一連の行動の累積価値が最大化するように前記エージェントの行動を学習する強化学習方法において、
前記エージェントの行動を繰り返し選択するステップと、
前記行動が選択されるごとに、前記選択された行動に対して付与される報酬(R)を用いて、前記選択された行動の価値(Q)を計算するステップと、
前記タスクから1又は複数のサブタスクを定義するとともに、前記サブタスクの達成度に応じて付与する第2の報酬(M)を定義するステップと、を含み、
前記価値(Q)を計算するステップは、
前記選択された行動に対して定義された前記第2の報酬(M)と前記環境から付与される第1の報酬(r)とを取得するステップと、
前記第1の報酬(r)に前記第2の報酬(M)を加えることにより、前記報酬(R)を計算するステップと、を含む
強化学習方法。
【請求項8】
与えられた環境においてタスクを達成するまで、エージェントの行動を選択するエピソードを繰り返し実施し、1エピソードにおける一連の行動の累積価値が最大化するように前記エージェントの行動を学習する強化学習方法を、コンピュータに実行させるためのプログラムであって、
前記強化学習方法は、
前記エージェントの行動を繰り返し選択するステップと、
前記行動が選択されるごとに、前記選択された行動に対して付与される報酬(R)を用いて、前記選択された行動の価値(Q)を計算するステップと、
前記タスクから1又は複数のサブタスクを定義するとともに、前記サブタスクの達成度に応じて付与する第2の報酬(M)を定義するステップと、を含み、
前記価値(Q)を計算するステップは、
前記選択された行動に対して定義された前記第2の報酬(M)と前記環境から付与される第1の報酬(r)とを取得するステップと、
前記第1の報酬(r)に前記第2の報酬(M)を加えることにより、前記報酬(R)を計算するステップと、を含む
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、強化学習装置、強化学習方法及びプログラムに関する。
【背景技術】
【0002】
従来、与えられたタスクを達成するために強化学習が用いられている。強化学習は、タスクが与えられた環境においてエージェントの一連の行動の累積価値が最大化するように、エージェントの行動を学習する方法である。例えば、強化学習は、ゲームやモータの制御、又は車両の自動運転制御等に応用されている(特許文献1及び2参照。)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-63602号公報
【文献】特開2020-144483号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般的な強化学習は、エージェントの行動をランダムに又は確率的に選択して試行錯誤を繰り返す。累積価値が最大値付近に収束するまでの学習時間が長くなりやすいため、学習の効率化が求められている。
【0005】
特に、エージェントの行動に対して、タスクを達成するまで報酬が付与されない環境下では、学習時間が長くなりやすい。エージェントの行動の価値は、その行動に対して環境から付与される報酬によって計算され、計算された価値がその後のエージェントの行動を選択する指針となる。しかし、タスクを達成するまでの過程において報酬が付与されない場合、その間の行動の価値が変化せず、行動を選択する指針が得られずに試行錯誤が増えるためである。
【0006】
本発明は、強化学習の学習効率を高めることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様は、与えられた環境においてタスクを達成するまで、エージェントの行動を選択するエピソードを繰り返し実施し、1エピソードにおける一連の行動の累積価値が最大化するように前記エージェントの行動を学習する強化学習装置(10)である。強化学習装置(10)は、前記エージェントの行動を繰り返し選択する行動選択部(111)と、前記行動が選択されるごとに、前記選択された行動に対して付与される報酬(R)を用いて、前記選択された行動の価値(Q)を計算する計算処理部(112)と、前記タスクから1又は複数のサブタスクを定義するとともに、前記サブタスクの達成度に応じて付与する第2の報酬(M)を定義するタスク制御部(113)と、を備える。前記計算処理部(112)は、前記選択された行動に対して定義された前記第2の報酬(M)と前記環境から付与される第1の報酬(r)とを取得し、前記第1の報酬(r)に前記第2の報酬(M)を加えることにより、前記報酬(R)を計算する。
【0008】
本発明の他の一態様は、与えられた環境においてタスクを達成するまで、エージェントの行動を選択するエピソードを繰り返し実施し、1エピソードにおける一連の行動の累積価値が最大化するように前記エージェントの行動を学習する強化学習方法である。前記強化学習方法は、前記エージェントの行動を繰り返し選択するステップと、前記行動が選択されるごとに、前記選択された行動に対して付与される報酬(R)を用いて、前記選択された行動の価値(Q)を計算するステップと、前記タスクから1又は複数のサブタスクを定義するとともに、前記サブタスクの達成度に応じて付与する第2の報酬(M)を定義するステップと、を含む。前記価値(Q)を計算するステップは、前記選択された行動に対して定義された前記第2の報酬(M)と前記環境から付与される第1の報酬(r)とを取得するステップと、前記第1の報酬(r)に前記第2の報酬(M)を加えることにより、前記報酬(R)を計算するステップと、を含む。
【0009】
本発明の他の一態様は、与えられた環境においてタスクを達成するまで、エージェントの行動を選択するエピソードを繰り返し実施し、1エピソードにおける一連の行動の累積価値が最大化するように前記エージェントの行動を学習する強化学習方法を、コンピュータに実行させるためのプログラムである。前記強化学習方法は、前記エージェントの行動を繰り返し選択するステップと、前記行動が選択されるごとに、前記選択された行動に対して付与される報酬(R)を用いて、前記選択された行動の価値(Q)を計算するステップと、前記タスクから1又は複数のサブタスクを定義するとともに、前記サブタスクの達成度に応じて付与する第2の報酬(M)を定義するステップと、を含む。前記価値(Q)を計算するステップは、前記選択された行動に対して定義された前記第2の報酬(M)と前記環境から付与される第1の報酬(r)とを取得するステップと、前記第1の報酬(r)に前記第2の報酬(M)を加えることにより、前記報酬(R)を計算するステップと、を含む。
【発明の効果】
【0010】
本発明によれば、強化学習の学習効率を高めることができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態の強化学習装置の構成を示すブロック図である。
【
図2】強化学習装置において実行される強化学習処理を示すフローチャートである。
【
図3】環境の一例であるゲームエリアを示す図である。
【
図5】第2の報酬のテーブルの一例を示す図である。
【
図6】第2の報酬のテーブルの他の一例を示す図である。
【
図8】サブタスクごとに計算された価値のテーブルの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の強化学習装置、強化学習方法及びプログラムの一実施形態について、図面を参照して説明する。以下の説明は本発明の一例(代表例)であり、本発明はこれに限定されない。
【0013】
図1は、本発明の一実施形態の強化学習装置10の構成を示す。
強化学習装置10は、CPU(Central Processing Unit)11及び記憶部12を備える。強化学習装置10は、操作部13、表示部14及び通信部15をさらに備えてもよい。
【0014】
CPU11は、記憶部12からプログラムを読み出して実行することにより、後述する強化学習処理を実行する。強化学習処理において、CPU11は、行動選択部111、計算処理部112及びタスク制御部113として機能する。
【0015】
行動選択部111は、タスクが与えられた環境においてエージェントの行動を選択する。計算処理部112は、行動選択部111により選択された行動の価値を、当該行動に対して付与される報酬を用いて計算する。タスク制御部113は、与えられたタスクからサブタスクを定義する。
【0016】
記憶部12は、CPU11が読み取り可能なプログラム、及びプログラムの実行に用いられるテーブル等を記憶する。記憶部12としては、例えばハードディスク等の記録媒体を用いることができる。
【0017】
操作部13は、キーボード、又はマウス等である。操作部13は、ユーザの操作を受け付けて、その操作内容をCPU11に出力する。
【0018】
表示部14は、ディスプレイ等である。表示部14は、CPU11からの表示指示にしたがって、操作画面やCPU11の処理結果等を表示する。
【0019】
通信部15は、ネットワークを介して外部のコンピュータと通信するインターフェイスである。
【0020】
強化学習装置10において、CPU11は、与えられたタスクを達成するための方策を強化学習により決定することができる。本実施形態では、強化学習の1つであるQ学習の例を説明する。
【0021】
(一般的な強化学習方法)
Q学習では、タスクが与えられた環境にエージェントが配置される。エージェントとは行動主体をいう。エージェントは、環境のある状態(st)においてとり得る複数の行動(a)から1つの行動(a)を選択する。選択された行動(a)によって環境の状態(st)は状態(st+1)に遷移する。
【0022】
エージェントの各行動(a)には、その行動(a)を評価する価値(Q)が関連付けられる。価値(Q)は、下記式(10)により表される行動価値関数Qによって計算される。
【数1】
【0023】
式(10)において、stは時間tにおける環境の状態(s)を表す。st+1は、状態(st)における行動(a)によって遷移した1ステップ後の状態(s)を表す。rt+1は状態(st)における行動(a)に応じて環境から付与される報酬(r)を表す。αは学習率を表し、0<α≦1を満たす。γは割引率を表し、0<γ≦1を満たす。maxQ(st+1,a)は、状態(st+1)においてとり得るいくつかの行動(a)の価値Q(st+1,a)のなかから最大値を出力する関数を表す。
【0024】
環境が初期状態(s0)から最終状態(se)に遷移するまで、エージェントは行動(a)を続ける。この初期状態(s0)から最終状態(se)までのエージェントの一連の行動(a)は、エピソードと呼ばれる。エピソードを繰り返し実施することにより、各状態(s)における行動(a)の価値(Q)が順次計算され、更新されていく。一定数のエピソードを実施したときの累積価値が最も大きくなる一連の行動を、与えられた環境に対する最適な行動として学習することができる。
【0025】
一般的なQ学習では、累積価値が最大値付近に収束するまで、エピソードを繰り返し、試行錯誤する必要がある。そのため、学習時間が長くなりやすい。特に、タスクが達成されるまで報酬(r)が付与されない環境下では学習時間が長くなりやすい。価値(Q)は、報酬(r)によって重み付けられ、その後のエージェントの行動(a)の選択の指針となる。しかし、タスクの達成まで付与される報酬(r)が0であると、タスクが達成されるまでの間、行動(a)の価値(Q)の変化がなく、試行錯誤が増えるためである。
【0026】
これに対し、本実施形態の強化学習装置10は、与えられたタスクの一部であるサブタスクを定義し、当該サブタスクを達成する行動(a)に応じて報酬を付与する。つまり、強化学習装置10は、価値(Q)の計算に、環境から与えられる報酬(r)だけではなく、サブタスクの達成度に応じた報酬を用いる。タスクを達成するまでの間も行動(a)の選択の指針となる価値(Q)を重み付け、試行錯誤を減らすことにより、学習の効率化を図る。以下、環境から与えられる従来の報酬(r)を第1の報酬(r)といい、この第1の報酬(r)に追加される報酬を第2の報酬(M)という。
【0027】
(本実施形態の強化学習方法)
図2は、強化学習装置10における強化学習処理の流れを示す。この強化学習処理は、CPU11が記憶部12のプログラムを読み取ることにより実行される。
以下、強化学習処理に与えられるタスクの一例として、ゲームを説明する。
図3は、ゲームの環境として与えられる6×6ブロックのゲームエリア30を示す。
【0028】
図3において、各ブロックはブロック番号(ij)により区別される。iはゲームエリア30の行を表す0~5の数値である。jはゲームエリア30の列を表す0~5の数値である。例えば、2行目かつ1列目のブロックはブロック(10)と表される。
【0029】
ゲームエリア30には、ブラシ20が配置される。ブラシ20は、現在のブロック(ij)から上下左右に1ブロックずつ移動し、移動後のブロック(ij)を掃除することができる。掃除されたブロック(ij)の色は、黒から白に変化する。
【0030】
このゲームのタスクは、すべてのブロック(ij)の色を黒から白に変えることである。ブラシ20の総移動距離が短いほど、タスクを効率的に達成することができる。すべてのブロック(ij)が白に変わったときにゲームエリア30から付与される第1の報酬(r)は100ポイントである。黒のブロック(ij)がある間は、どのような行動(a)に対しても付与される第1の報酬(r)は0ポイントである。第1の報酬(r)の情報は、ゲームエリア30とともに与えられ、記憶部12に保存される。
【0031】
このタスクにおいて、ゲームエリア30は与えられた環境である。環境の初期状態(s0)は、白のブロック数が0であり、黒のブロックの残数が36の状態である。ブラシ20を移動する行動(a)によって、環境の状態(s)、すなわちブロック(ij)の色の状態(s)が遷移していく。タスクの達成によってゲームが終了するため、環境の最終状態(se)は、全ブロックが白の状態、つまり白のブロック数が36であり、黒のブロックの残数が0の状態である。
【0032】
強化学習装置10は、ゲームのプレイヤーとしてブラシ20を移動するエージェントの行動(a)を選択し、その価値(Q)を計算することを繰り返す。これにより、強化学習装置10は、すべてのブロック(ij)の色が黒から白へ変わるまでの一連の行動(a)に対して計算される価値(Q)の累積値が最大化する行動(a)を探索する。
【0033】
まず、CPU11のタスク制御部113が、与えられたタスク(以下、メインタスクという)から1又は複数のサブタスクを定義する(ステップS1)。サブタスクはメインタスクの一部である。つまり、サブタスクの達成によりメインタスクの一部が達成される。
【0034】
図4は、サブタスクの一例を示す。
この例において、タスク制御部113は、6×6ブロックのゲームエリア30の色を変えるメインタスクから、3つのサブタスクを定義し、01、02及び03のIDを付与する。ID=01のサブタスクは、4×2ブロックのエリア31の色を変えることである。ID=02のサブタスクは、2×4ブロックのエリア32の色を変えることである。ID=03のサブタスクは、3×4ブロックのエリア33の色を変えることである。
【0035】
各サブタスクの一部は、他のサブタスクの一部と重複してもよい。
図4の例では、ID=02のサブタスクのエリア32は、ID=03のサブタスクのエリア33と部分的に重複している。なお、メインタスクをいくつかに分割することにより、重複のない複数のサブタスクが定義されてもよい。
【0036】
サブタスクの定義により、環境は、メインタスクにおける状態(s)と各サブタスクにおける状態(m)とを有する。状態(s)は、メインタスクの状態を表す複数の要素を有し、s={x1,x2,・・・,xn}と表される。状態(m)は、サブタスクの状態を表す複数の要素を有し、m={y1,y2,・・・,yn}と表される。各要素は任意に決定され得る。例えば、メインタスクの状態(s)の要素xnは、ゲームエリア30内において、ブラシ20の移動により白に変化したブロック番号(ij)、黒のブロックの残数等を含む。また、サブタスクの状態(m)の要素ynは、各サブタスクのエリア内において、白に変化したブロック番号(ij)、黒のブロックの残数等を含む。
【0037】
例えば、
図4に示すゲームエリア30においてメインタスクは、白に変化したブロック番号が00及び01であり、黒のブロックの残数が34の状態(s)にある。また、ID=01のサブタスクは、エリア31において白に変化したブロック番号はまだなく、黒のブロックの残数が8の状態(m)にある。ID=03のサブタスクも、エリア33において白に変化したブロック番号がなく、黒のブロックの残数が12の状態(m)にある。ID=02のサブタスクは、エリア32内で白に変化したブロック番号が00及び01であり、黒のブロックの残数が6の状態(m)にある。
【0038】
次に、タスク制御部113は、エージェントの行動(a)に対し、サブタスクの達成度に応じて付与される第2の報酬(M)を定義する(ステップS2)。タスク制御部113は、定義された第2の報酬(M)を記憶部12に保存する。
【0039】
タスク制御部113は、サブタスクごとに独立して第2の報酬(M)を定義することができる。各サブタスクの第2の報酬(M)は同じ定義であってもよいし、異なる定義であってもよい。
【0040】
図5は、ID=01のサブタスクに対して定義された第2の報酬(M)を保持するテーブルT31の例を示す。
図5において、状態(s
t,m)及び(s
t+1,m)の項目は、状態を示す各要素のうち、エリア31内の黒のブロックの残数のみを示す。
【0041】
テーブルT31において、ある状態(st,m)から状態(st+1,m)へ遷移する行動(a)であって、ブロックの色を変える行動(a)に対しては、3ポイントの第2の報酬(M)が関連付けられる。例えば、エリア31内の黒のブロックの残数が8の状態(st,m)から7の状態(st+1,m)に遷移する行動(a)には、3ポイントの第2の報酬(M)が関連付けられている。
【0042】
一方、ブロックの残数に変わりがない行動(a)に対しては0ポイントの第2の報酬(M)が関連付けられている。この定義によれば、ブラシ20を移動する行動(a)によりエリア31内で黒のブロックの残数が1減るごとに、第2の報酬(M)が3ポイントずつ付与される。
【0043】
本実施形態において、ID=02のサブタスクに対する第2の報酬(M)の定義は、ID=01のサブタスクと同じである。よって、ID=02のサブタスクに対する第2の報酬(M)のテーブルT32の構成は、テーブルT31と同じである。
【0044】
図6は、ID=03のサブタスクに対して定義された第2の報酬(M)を保持するテーブルT33の例を表す。
図6において、状態(s
t,m)及び(s
t+1,m)の項目は、サブタスクの状態を示す各要素のうち、エリア33内の黒のブロックの残数のみを示す。
テーブルT33において、エリア33内の黒のブロックの残数が1の状態(s
t,m)から0の状態(s
t+1,m)へ遷移する行動(a)に対しては、36ポイントの第2の報酬(M)が関連付けられる。それ以外の行動(a)に対しては、0ポイントの第2の報酬(M)が関連付けられる。
【0045】
この定義によれば、エリア33内の一部を白に変える行動(a)に対して付与される第2の報酬(M)は0ポイントである。最後の黒の1ブロックを白に変える行動(a)に対して、36ポイントの第2の報酬(M)が付与される。つまり、各ブロックの色が変わるごとに第2の報酬(M)が付与されるのではなく、全ブロックの色が変わるときにまとめて第2の報酬(M)が付与される。
【0046】
なお、
図5及び
図6は、第2の報酬(M)の定義の一例を示すのであって、第2の報酬(M)の定義方法はこれに限定されない。タスクの内容に応じて他の定義方法を採用することができる。
【0047】
サブタスク及び第2の報酬(M)の定義が終了すると、行動選択部111がゲームを初期化し、エピソードを開始する(ステップS3)。初期化により、環境は初期状態(s0)にリセットされる。つまり、全ブロックの色が白から黒へ変わり、黒のブロックの残数が36の状態にリセットされる。
【0048】
行動選択部111は、エージェントが現在の状態(st,m)においてとり得る行動(a)のなかから1つの行動(a)を選択する(ステップS4)。選択した行動(a)により、ゲームエリア30が状態(st,m)から状態(st+1,m)へと変化する。
【0049】
例えば、
図3に示すように、初期状態(s
0)において、ブロック(00)にブラシ20を配置する行動(a)が選択される。ブロック(00)の色が白に変わるため、環境は、黒のブロックの残数が36の状態(s
0,m)から、黒のブロックの残数が35の状態(s
1,m)へと変化する。
【0050】
本実施形態において、行動(a)の選択はε-greedy法により確率的に行われる。具体的には、行動選択部111が、一定の確率εで、状態(st,m)においてとり得る行動(a)のうちの1つをランダムに選択する。また、行動選択部111は、確率(1-ε)で、状態(st,m)においてとり得る行動(a)のうち、次の状態(st+1,m)における行動の価値(Q)が最も大きい行動(a)を選択する。つまり、maxQ(st+1,m,a)が得られる行動(a)が選択される。
【0051】
maxQ(st+1,m,a)が得られる行動(a)を常に選択すると、学習が停滞することがある。それは、価値(Q)が低い行動(a)を排除すると、その後のより価値(Q)が高い行動(a)を選択し損ねることがあるからである。ε-greedy法は、あえて価値(Q)が低い行動(a)を含むランダムな行動(a)を一定確率で選択する。これにより、行動の選択の可能性が広がり、学習を効率化することができる。
なお、行動(a)の選択手法としては、上記ε-greedy法に限らず、softmax法等の他の手法を目的に応じて採用することができる。
【0052】
行動(a)が選択されると、計算処理部112は、状態(st,m)において選択した行動(a)の価値(Q)を計算する(ステップS5)。
下記式(1)は、本実施形態において価値(Q)の計算に用いられる行動価値関数Qを示す。式(1)中のRは、状態(st,m)において選択された行動(a)に対して付与される報酬を表す。下記式(2)は、報酬(R)の計算に用いられる報酬関数を示す。
【0053】
【0054】
式(2)において、rt+1は、状態(st)における行動(a)に関連付けられた第1の報酬(r)を表す。M(st+1,m)は、状態(st)における行動(a)に関連付けられた第2の報酬(M)を表す。τは0≦τ≦1を満たす係数を表す。γ、α及びmaxの定義は、式(10)と同じである。
【0055】
まず、計算処理部112は、価値(Q)の計算に使用する第1の報酬(r)及び第2の報酬(M)を取得する。計算処理部112は、取得した第1の報酬(r)に第2の報酬(M)を加えることにより、報酬(R)を計算する。計算処理部112は、複数のサブタスクから第2の報酬(M)が付与される場合は、それらを合算して報酬(R)の計算に用いる。
【0056】
例えば、ブロック(00)からブロック(01)にブラシ20を移動する行動(a)により、環境から付与される第1の報酬(r)は0ポイントである。一方、この行動(a)によりエリア32における黒のブロックの残数は7から6へ変化し、テーブルT31から3ポイントの第2の報酬(M)が取得される。ブロックの色が変化しないエリア32及び33のサブタスクから得られる第2の報酬(M)は0ポイントである。よって、報酬(R)は3ポイントと計算される。
【0057】
次に、計算処理部112は、計算された報酬(R)を用いて、式(1)に示すように、価値(Q)を計算する。計算処理部112は、計算した価値(Q)を記憶部12に保存する。
【0058】
図7は、記憶部12において価値(Q)を保持するテーブルTqの例を示す。
テーブルTqにおいて、各行動(a)に計算された価値(Q)が関連付けられる。また、各行動(a)には、その行動(a)により遷移した後の状態(s
t+1)として、白に変化したブロック番号(ij)と、ゲームエリア30内の黒のブロックの残数nとが関連付けられる。これらは、各行動(a)が選択され、価値(Q)が計算されるごとに書き込まれていく。
【0059】
選択した行動(a)により環境が最終状態(se)に至っていない場合(ステップS6:NO)、行動選択部111は、行動(a)により遷移した状態(st+1,m)を現在の状態(st,m)に設定する(ステップS7)。その後、ステップS4及びS5の処理が繰り返される。つまり、最終状態(se)に至るまで、行動(a)の選択とその行動の価値(Q)の計算とが繰り返される。その結果、テーブルTqに計算された価値(Q)が順次保存されていく。
【0060】
選択した行動(a)により環境が最終状態(se)に至った場合(ステップS6:YES)、1エピソードが終了する。一定数のエピソードが実施された場合は(ステップS8:YES)、強化学習処理が終了する。一定数は任意に設定され得る。
【0061】
一方、一定数のエピソードが実施されていない場合(ステップS8:NO)、ステップS3の処理に戻り、新たなエピソードが開始される。つまり、一定数のエピソードを実施するまでステップS3~S7の処理が繰り返され、実施されたエピソード中の一連の行動によって価値(Q)が更新されていく。
【0062】
このように、サブタスクの達成度に応じて付与される第2の報酬(M)によって、報酬(R)が高くなり、計算される価値(Q)も高くなっていく。第1の報酬(r)によって価値(Q)が変化しない間も、第2の報酬(M)によって価値(Q)が変化し、行動(a)を評価できる。これにより試行錯誤が減り、タスクを達成できる行動(a)を効率的に学習することができる。
【0063】
報酬(R)を計算する際、計算処理部112は、係数τの値を変更することにより、第2の報酬(M)を加える割合(τ)を調整することができる。割合(τ)が大きいほど第1の報酬(r)に追加される第2の報酬(M)の割合が増える。計算処理部112は、第2の報酬(M)による学習の効率化を優先する場合は割合(τ)を増やし、試行錯誤による学習を優先する場合は割合(τ)を減らすことができる。
【0064】
計算処理部112は、エピソードの実施回数が増えるにつれて、割合(τ)を減らすことが好ましい。第2の報酬(M)の付与はサブタスクを達成するようにエージェントの行動(a)を誘導するが、新たな行動(a)の選択が減り、エージェントの行動(a)が第2の報酬(M)が付与される行動(a)に偏りやすい。よって、エピソード数が少ない間は第2の報酬(M)の割合(τ)を増やすことにより、学習を効率化することができる。エピソード数がある程度実施された後は第2の報酬(M)の割合(τ)を減らして、あえてランダムに行動することにより、より価値(Q)の高い行動(a)の学習が可能となり、学習の効率化を図ることができる。
【0065】
計算処理部112は、割合(τ)を最終的に0まで減らすことができる。これにより、通常のQ学習と同様の結果に収束させることができる。計算処理部112は、割合(τ)を単調減少させてもよいが、減らす過程において一時的に増やしてもよい。
【0066】
以上のように、本実施形態によれば、エピソードを繰り返し実施して、1エピソードにおけるエージェントの一連の行動の累積価値が最大化するように、エージェントの行動(a)を学習する。このような強化学習において、行動選択部111は、エージェントの行動(a)を繰り返し選択する。計算処理部112は、行動(a)が選択されるごとに、選択された行動(a)に対して付与される報酬(R)を用いて行動(a)の価値(Q)を計算する。
【0067】
通常のQ学習において価値(Q)の計算に使用される報酬(R)は、式(10)に示したように第1の報酬(r)のみである。第1の報酬(r)は、環境において予め定義される定数である。全ブロックの色が変化したときのみ高い第1の報酬(r)が付与されるような環境下では、それまでの間、行動(a)の指標となる第1の報酬(r)が得られない。全ブロックの色が変化するまで試行錯誤を繰り返す必要があるため、価値(Q)が最大化するまでに必要なエピソードの実施数が増え、学習に時間を要する。
【0068】
これに対し、本実施形態におけるタスク制御部113は、メインタスクからサブタスクとサブタスクの達成度に応じて付与される第2の報酬(M)とを定義する。計算処理部112は、第1の報酬(r)に第2の報酬(M)を加えることにより報酬(R)を得る。このような第2の報酬(M)の加算により重み付けられた報酬(R)は、サブタスクを達成する一連の行動の価値(Q)を高める。よって、サブタスクを達成しながら最終的にメインタスクを達成する行動(a)へとエージェントを誘導することができる。
【0069】
行動(a)の誘導により試行錯誤が減る。また、価値(Q)の最大化を加速させることができる。これにより、学習時間が短くなるため、強化学習の学習効率を高めることができる。
【0070】
強化学習装置10は、様々な方策の決定に用いることができ、その技術分野は特に限定されない。例えば、危険物を回避して車両の走行経路を決定する自動運転制御、モータの駆動制御、ゲームのキャラクタの制御等に強化学習装置10を利用可能である。
【0071】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されない。本発明の範囲内で種々の変形が可能であり、以下にいくつかの変形例を挙げる。各変形例は組み合わせてもよい。
【0072】
(変形例1)
タスク制御部113は、各サブタスクの有効化又は無効化を選択することができる。タスク制御部113は、サブタスクの有効化又は無効化をエピソードごとに切り替えることもできるし、1エピソードのなかでも環境の状態(s)に応じて切り替えることもできる。
【0073】
例えば、タスク制御部113は、1エピソードにおいてゲームエリア30の半分の色が変わるまで、IDが02のサブタスクを無効化し、IDが01及び03のサブタスクを有効化することを選択できる。この場合、ゲームの前半はエリア32のブロックよりもエリア31及び33の色を変える行動(a)が選択されやすくなる。エリア32の色が変化しても第2の報酬(M)が得られず、第2の報酬(M)が得られるエリア31及び33の色を変える行動(a)の方が、価値(Q)が高くなるためであるよって、先にエリア31及び33の色を変え、次にエリア32の色を変えるよう、行動(a)をスケジュールすることができる。
【0074】
サブタスクの有効化又は無効化が選択される場合、計算処理部112は、有効化された各サブタスクの第2の報酬(M)のすべてを合算して報酬(R)を計算し、当該報酬(R)を用いて価値(Q)を計算してもよい。
【0075】
あるいは、計算処理部112は、サブタスクごとの価値(Q)をまず計算し、有効化された各サブタスクの価値(Q)の平均値を、行動(a)の価値(Q)として計算してもよい。具体的には、計算処理部112は、ID=01のサブタスクのみが有効化された場合の価値(Q)、ID=02のサブタスクのみが有効化された場合の価値(Q)及びID=03のサブタスクのみが有効化された場合の価値(Q)をそれぞれ計算する。すなわち、各サブタスクから付与される第2の報酬(M)のみを用いて3つの価値(Q)を計算する。
【0076】
図8は、サブタスクごとに計算された価値(Q)のテーブルTq1~Tq3の例を示す。
テーブルTq1は、ID=01のサブタスクの第2の報酬(M)のみを用いて計算される価値(Q)を保持する。同様に、テーブルTq2は、ID=02のサブタスクの第2の報酬(M)のみを用いて計算される価値(Q)を保持する。テーブルTq3は、ID=03のサブタスクの第2の報酬(M)のみを用いて計算される価値(Q)を保持する。
【0077】
計算処理部112は、3つの価値(Q)のうち、有効化されたサブタスクの価値(Q)の平均値を計算する。例えば、IDが01及び02のサブタスクが有効化され、IDが03のサブタスクが無効化された場合、計算処理部112は、テーブルTq1及びTq2に保持された価値(Q)の平均値を計算する。この平均値が、選択された行動(a)に関連付けて、テーブルTqに保持される。
【0078】
(変形例2)
行動選択部111が、上記サブタスクの有効化又は無効化をエージェントの行動(a)の1つとして選択してもよい。これにより、サブタスクを達成する行動(a)のスケジュールも学習することができる。
【0079】
タスク制御部113は、各サブタスクの有効化又は無効化を選択する行動(a)に対し、第2の報酬(M)を定義することができる。第2の報酬(M)によって、行動(a)のスケジュールをより効率的に学習可能である。
【0080】
(変形例3)
タスク制御部113は、予め与えられた環境に関する情報に基づいて、第2の報酬(M)を定義することができる。
例えば、避けるべき環境の状態(s)や経由すべき状態(s)が事前に判明している場合、計算処理部112はその情報に基づいて第2の報酬(M)を定義することができる。
【0081】
ゲームエリア30のいくつかのブロック(ij)にトラップが配置される例を説明する。ブラシ20がトラップに到達すると、ゲームオーバーに至り、タスクは失敗する。このトラップの位置情報が予め与えられた場合、タスク制御部113は、このトラップが配置されたブロック(ij)にブラシ20を移動する行動(a)に対して-100ポイントのような、他の行動(a)よりも低い第2の報酬(M)を定義することができる。
【0082】
このような低い値の第2の報酬(M)が定義されると、その状態(s)に至る行動(a)を選択した場合に式(2)により計算される報酬(R)が小さくなり、結果として価値(Q)も小さくなる。これにより、トラップを避けるようにエージェントの行動(a)を誘導することができる。
【0083】
強化学習を用いる制御内容によっては、タスクを効率的に達成できる行動(a)であるだけではなく、リスクが低い行動(a)が求められる。例えば、最短経路でタスクを達成する行動(a)であっても、リスクの高い地点に近づく行動(a)は避けた方がよい。この場合は、上述のようにして第2の報酬(M)を定義することにより、学習する行動のリスクを減らすことができる。
【0084】
(変形例4)
上記実施形態における第2の報酬(M)は、サブタスクとともに定義される定数である。しかし、第2の報酬(M)は、これからの行動(a)により付与される報酬(R)の期待値に応じて、更新される変数であってもよい。
【0085】
下記式(3)は、更新後の第2の報酬(M)の計算に用いられる報酬関数M(s,m)の一例を示す。式(3)において、Reはサブタスクを達成した場合に付与される報酬(R)の期待値を表す。期待値(Re)は、式(4)により計算される。計算処理部112は、1又は複数の行動(a)が選択されるごとに、更新後の第2の報酬(M)を計算し、テーブルT31~T33を更新することができる。更新後の第2の報酬(M)が、報酬(R)の計算に用いられる。
【0086】
【数3】
式(3)において、λは0<λ≦1を満たす係数である。式(4)において、E[]は、[]内の期待値を出力する関数を示す。
【0087】
例えば、現在の環境が、エリア31の全ブロックの色が変わったが、エリア32及び33の色が変わっていない状態(s)にある。この状態(s)においてどのような行動(a)が選択されても得られる第1の報酬(r)は0ポイントである。また、IDが01のサブタスクはすでに達成されているため、その達成により今後得られる報酬(R)の期待値(Re)は0ポイントである。
【0088】
一方、IDが02及び03のサブタスクの達成により、各サブタスクに対して定義された第2の報酬(M)の累積値が報酬(R)として期待される。式(3)及び式(4)によれば、IDが01のサブタスクよりも、IDが02及び03のサブタスクを達成する行動(a)に対して付与される第2の報酬(M)が高くなる。その結果、その行動(a)の価値(Q)が高まるため、IDが02及び03のサブタスクを達成するように、エージェントの行動(a)を誘導することができる。
【0089】
更新後の第2の報酬(M)を計算する際、計算処理部112は、係数λの値を変更することにより、更新後の第2の報酬(M)における報酬(R)の期待値(Re)の割合(λ)を調整することができる。割合(λ)が大きいほど、元の第2の報酬(M)から報酬(R)の期待値(Re)へのシフトが加速化される。よって、計算処理部112は割合(λ)を増やすことにより、実際の行動(a)による結果をその後の行動(a)へより早く反映させることができる。
【0090】
(変形例5)
第2の報酬(M)は、式(3)に代えて、下記式(5)に示す報酬関数Mγ(s,m)により計算されてもよい。式(5)によれば、更新後の第2の報酬(M)は、1エピソードにおいて選択された各行動(a)に至るまでに得られる報酬(R)の期待値(E)であり、各報酬(R)を足し合わせることにより計算される。ここで、各行動(a)に付与される報酬(R)が係数γEによって割り引かれている。
【0091】
【数4】
式(5)において、E[]は、[]内の期待値を出力する関数を表す。
【0092】
γEは、各行動(a)に付与される報酬(R)の割引率を表し、0<γE≦1を満たす。割引率γEは(e-t)乗されるため、最終状態(se)から初期状態(s0)へ近づくほど、報酬(R)の割引率が小さくなる。この報酬関数Mγ(s,m)によれば、初期状態(s0)より最終状態(se)に近い過去の行動に誘導しやすくなる。よって、メインタスクを達成する最後の行動(a)に第1の報酬(r)が付与される環境に適している。また、γE
(e-t)が1より小さいと、少ない行動(a)で期待値(E)が高い行動(a)が選択されやすくなる。よって、累積報酬(Re)が得られるまでの時間平均を考慮してγEを設定することができる。
【0093】
例えば、状態(st,m)から状態(st+3,m)まで遷移した場合、各行動(a)に至るまでの各報酬(R)の期待値(E)は次のように計算される。
Mγ(s,m)=γE
3R(st,m)+γE
2R(st+1,m)
+γER(st+2,m)+R(st+3,m)
【0094】
(変形例6)
タスク制御部113は、各サブタスク間で第2の報酬(M)に差を設けてもよい。これにより、サブタスクが達成される順番の制御が容易となる。例えば、タスク制御部113は、IDが01のサブタスクの第2の報酬(M)が、IDが02及び03のサブタスクよりも大きくなるように、各サブタスクの第2の報酬(M)を定義することができる。この場合、IDが02及び03よりもIDが01のサブタスクを先に達成するように、行動(a)が誘導される。
【0095】
(変形例7)
タスク制御部113は、サブタスクのなかでも先に達成すべき一部があれば、この一部を他のサブタスクの一部と重なるように定義することができる。
例えば、
図4中のブロック(12)及び(13)のように、複数のサブタスクのエリアが重なるブロックの色が変わる場合、価値(Q)の計算に、各サブタスクの第2の報酬(Q)が用いられる。その結果、エリアが重なるブロックにブラシ20を移動する行動(a)の価値(Q)は、重なっていないブロックに移動する行動(a)よりも高くなりやすい。したがって、エリアが重なるブロックの色が先に変わるよう、行動(a)を誘導することが可能である。
【0096】
なお、上記実施形態では、記憶部12が各テーブルT31~T33、Tq及びTq1~Tq3を記憶したが、これらはサーバ等の外部装置に保存されていてもよい。通信部15によって外部装置と通信することにより、テーブルT31~T33、Tq及びTq1~Tq3のダウンロード又はアップロードを行うことができる。
【0097】
また、Q学習の例を説明したが、報酬を用いてエージェントの行動の価値を計算する強化学習であれば、本発明を適用することができる。例えば、SARSA、マルコフ決定過程(MDP : Markov decision process)、又はDQN(Deep Q-Network)等においても、本発明を適用可能である。
【0098】
また、本発明の強化学習方法をコンピュータに実行させるプログラムが記録された記録媒体が提供されてもよい。記録媒体としては、CPU等のコンピュータが読み取り可能な記録媒体であれば特に限定されず、半導体メモリ、磁気ディスク、光ディスク等を使用可能である。
【符号の説明】
【0099】
10・・・強化学習装置、11・・・CPU、111・・・行動選択部、112・・・計算処理部、113・・・タスク制御部、12・・・記憶部