(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】動作規則決定装置、動作規則決定方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241022BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023543506
(86)(22)【出願日】2021-08-23
(86)【国際出願番号】 JP2021030873
(87)【国際公開番号】W WO2023026342
(87)【国際公開日】2023-03-02
【審査請求日】2024-02-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】平岡 拓也
(72)【発明者】
【氏名】大西 貴士
【審査官】今城 朋彬
(56)【参考文献】
【文献】VIEILLARD, N., et al.,Momentum in Reinforcement learning,arXiv [online],2020年03月31日,all 20 pages,[retrieved on 2024-09-10] Retrieved from the Internet: <URL: https://arxiv.org/pdf/1910.09322v2>
【文献】MOBAHI, H.,Training Recurrent Neural Networks by Diffusion,arXiv [online],2016年02月04日,[retrieved on 2021-10-28] Retrieved from the Internet: <URL: https://arxiv.org/abs/1601.04114v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
制御対象の動作に関する条件が反映された第一評価関数から、前記制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定する評価関数設定部と、
前記第二評価関数を用いて前記制御対象の動作規則の学習を行い、学習結果と、前記第一評価関数とを用いて前記制御対象の動作規則の学習を行う学習部と、
を備える動作規則決定装置。
【請求項2】
前記第一評価関数は、前記制御対象の一連の動作の時間ステップのうち最後の時間ステップにおいて、前記条件が反映されるように設定されており、
前記評価関数設定部は、前記第一評価関数から、前記最後の時間ステップにおける前記条件に基づく条件を、前記制御対象の一連の動作の時間ステップのうち、最後の時間ステップとは異なる時間ステップにおいて反映させる変更が行われた、前記第二評価関数を生成する、
請求項1に記載の動作規則決定装置。
【請求項3】
前記第一評価関数は、前記制御対象の動作に関する評価が閾値よりも低い評価である場合に、前記制御対象の動作に関する評価を低下させるように設定されており、
前記評価関数設定部は、前記第一評価関数から、前記制御対象の動作に関する評価が閾値以上に高い評価となり易いように前記閾値が変更された、前記第二評価関数を生成する、
請求項1または請求項2に記載の動作規則決定装置。
【請求項4】
前記学習部は、前記動作規則の学習中に設定した動作規則に対する評価が所定の条件よりも低い場合、過去に設定した動作規則を再度設定する、
請求項1から3の何れか一項に記載の動作規則決定装置。
【請求項5】
コンピュータが、
制御対象の動作に関する条件が反映された第一評価関数から、前記制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定し、
前記第二評価関数を用いて前記制御対象の動作規則の学習を行い、学習結果と、前記第一評価関数とを用いて前記制御対象の動作規則の学習を行う
ことを含む動作規則決定方法。
【請求項6】
コンピュータに、
制御対象の動作に関する条件が反映された第一評価関数から、前記制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定することと、
前記第二評価関数を用いて前記制御対象の動作規則の学習を行い、学習結果と、前記第一評価関数とを用いて前記制御対象の動作規則の学習を行うことと、
を実行させるためのプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作規則決定装置、動作規則決定方法およびプログラムに関する。
【背景技術】
【0002】
制御対象の動作規則の学習において、動作に関する条件が設定される場合がある。
例えば、特許文献1に記載の強化学習方法では、制御の対象の状態計測が行われる時間間隔と、対象への行動決定が行われる時間間隔とが異なる場合に、過去の状態を予測し、予測された状態について制約条件に対する危険度を算出する。そして、この強化学習方法では、算出した危険度と、危険度算出の対象となった状態に対する今回の行動の影響度とに応じて、制御の対象への今回の行動に関する探索範囲を特定して行動を決定する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
制御対象の動作規則の学習において、動作に関する条件が設定される場合、条件が設定されることで学習が比較的難しくなる場合がある。この場合に、学習が難しくなる度合いを緩和するための対策を講じられることが好ましい。
【0005】
本発明の目的の一例は、上述した課題を解決することのできる動作規則決定装置、動作規則決定方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第一の態様によれば、動作規則決定装置は、制御対象の動作に関する条件が反映された第一評価関数から、前記制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定する評価関数設定部と、前記第二評価関数を用いて前記制御対象の動作規則の学習を行い、学習結果と、前記第一評価関数とを用いて前記制御対象の動作規則の学習を行う学習部と、を備える。
【0007】
本発明の第二の態様によれば、動作規則決定方法は、コンピュータが、制御対象の動作に関する条件が反映された第一評価関数から、前記制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定し、前記第二評価関数を用いて前記制御対象の動作規則の学習を行い、学習結果と、前記第一評価関数とを用いて前記制御対象の動作規則の学習を行うことを含む。
【0008】
本発明の第三の態様によれば、プログラムは、コンピュータに、制御対象の動作に関する条件が反映された第一評価関数から、前記制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定することと、前記第二評価関数を用いて前記制御対象の動作規則の学習を行い、学習結果と、前記第一評価関数とを用いて前記制御対象の動作規則の学習を行うことと、を実行させるためのプログラムである。
【発明の効果】
【0009】
上記した動作規則決定装置、動作規則決定方法およびプログラムによれば、制御対象の動作規則の学習において、動作に関する条件が設定されることで学習が比較的難しくなる場合に、学習が難しくなる度合いを緩和するための対策を講じることができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る制御システム構成例を示す図である。
【
図2】実施形態に係る動作規則決定装置の構成例を示す図である。
【
図3】第1エピソードの第1ターンの例を示す図である。
【
図4】第1エピソードの第2ターンの例を示す図である。
【
図5】第1エピソードの第3ターンの例を示す図である。
【
図6】第2エピソードの第1ターンの例を示す図である。
【
図7】第2エピソードの第2ターンの例を示す図である。
【
図8】実施形態に係る履歴情報取得部が記憶する履歴情報の例を示す図である。
【
図9】実施形態に係る制御対象の動作に関する条件の例を示す図である。
【
図10】実施形態に係るリスク考慮型履歴情報の第1の例を示す図である。
【
図11】実施形態に係るリスク考慮型履歴情報の第2の例を示す図である。
【
図12】実施形態に係るリスク考慮型履歴情報の第3の例を示す図である。
【
図13】実施形態に係る動作規則決定装置が、制御対象の行動規則を学習によって決定する処理手順の例を示す図である。
【
図14】実施形態に係る履歴情報取得部がシミュレーションによって履歴情報を取得する場合の処理手順の例を示す図である。
【
図15】実施形態に係る学習部が動作規則評価処理を行う手順の例を示す図である。
【
図16】実施形態に係る動作規則決定装置の構成の例を示す図である。
【
図17】実施形態に係る動作規則決定方法における処理の手順の例を示す図である。
【
図18】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係る制御システム構成例を示す図である。
図1に示す構成で、制御システム1は、動作規則決定装置100と、制御装置200と、制御対象300とを備える。
【0012】
制御システム1は、制御対象300を制御する。具体的には、動作規則決定装置100が、強化学習にて制御対象300の動作規則を決定する。制御装置200は、動作規則決定装置100が決定した動作規則に基づいて制御対象300の動作を決定し、決定した動作を制御対象300に実行させる。
【0013】
ここでいう強化学習は、ある環境における制御対象の動作を決定する動作規則を、制御対象の動作と、環境および制御対象について観測される状態と、状態または制御対象の動作に対する評価を表す報酬とに基づいて学習する機械学習である。
【0014】
制御対象300の動作は、行動(Action)に該当する。以下では、制御対象300の動作を行動とも称する。動作規則は方策(Policy)に該当する。以下では、動作規則を方策とも称する。制御対象300の動作に関する評価は報酬(Reward)に該当する。
以下では、学習における評価関数として報酬を用いる場合を例に説明するが、これに限らない。例えば、学習における評価関数として、評価が高いほど値が小さくなる評価関数を用いるようにしてもよい。
【0015】
なお、動作規則決定装置100は、時間ステップ毎の状態および制御対象300の動作を示す情報を含む履歴情報を用いて学習を行う。したがって、動作規則決定装置100が学習を行う際に、制御装置200がリアルタイムで制御対象300を動作させる必要は無い。
【0016】
あるいは、動作規則決定装置100が、制御対象300の動作規則を制御装置200に出力し、制御装置200が動作規則に基づいて制御対象300を動作させて履歴情報を取得するようにしてもよい。そして、動作規則決定装置100が、得られた履歴情報を用いて学習を行い、学習結果として動作規則を算出する用にしてもよい。動作規則決定装置100が、得られた動作規則を制御装置200に出力し、制御装置200から取得した履歴情報を用いて動作規則の学習を行うことを繰り返すようにしてもよい。
【0017】
動作規則決定装置100は、例えばコンピュータを用いて構成される。あるいは、動作規則決定装置100が、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)を用いて構成されるなど、動作規則決定装置100専用のハードウェアを用いて構成されていてもよい。同様に、制御対象300は、例えばコンピュータを用いて構成される。あるいは、制御対象300が、ASICまたはFPGAを用いて構成されるなど、制御対象300専用のハードウェアを用いて構成されていてもよい。
【0018】
動作規則決定装置100が動作規則を学習する際、制御装置200および制御対象300は無くてもよい。また、制御装置200が制御対象300を動作させる際、動作規則決定装置100は無くてもよく、制御装置200が動作規則を取得していればよい。
あるいは、動作規則決定装置100と制御装置200とが一体的に構成されていてもよい。例えば、動作規則決定装置100と制御装置200とが同一のコンピュータに実装されていてもよい。
【0019】
制御対象300は、特定のものに限定されない。例えば、制御対象300は、自動車、飛行機、船舶などの移動体であってもよい。あるいは、制御対象300は、加工工場、または、製造工程など制御の対象となる設備または装置であってもよい。制御対象300は、制御装置200が制御可能であり、かつ、例えば特定の状態を避けるための制約条件が設定されるなど、制御対象300の動作に関する条件が設定される、いろいろなものとすることができる。
【0020】
図2は、動作規則決定装置100の構成例を示す図である。
図2に示す構成で、動作規則決定装置100は、通信部110と、記憶部180と、制御部190とを備える。記憶部180は、カリキュラム記憶部181と、方策パラメータ記憶部182と、履歴情報記憶部183とを備える。制御部190は、カリキュラム設定部191と、履歴情報取得部193と、履歴情報変換部194と、学習部195とを備える。カリキュラム設定部191は、評価関数設定部192を備える。
【0021】
通信部110は、他の装置と通信を行う。例えば、通信部110が、動作規則決定装置100が決定する動作規則を制御装置200へ送信するようにしてもよい。
記憶部180は、各種情報を記憶する。記憶部180は、動作規則決定装置100が備える記憶デバイスを用いて構成される。
【0022】
カリキュラム記憶部181は、カリキュラム情報を記憶する。カリキュラム情報は、動作規則決定装置100が行う動作規則の学習を、段階的に進めるための設定情報である。動作規則決定装置100は、動作規則の学習を、簡単な学習から難しい学習へと段階的に進めることで、効率的に学習を行う。
【0023】
ここでいう学習が難しいことは、仮に段階的な学習を行わず、ある設定での学習を直接行った場合に、方策最適化が不安定になることであってもよい。あるいは、学習が難しいことは、仮に段階的な学習を行わず、ある設定での学習を直接行った場合に、学習結果が指定されている条件を満たさないなど、学習結果に対する評価が低いか、あるいは、高い評価を得るまでに時間がかかることであってもよい。
【0024】
例えば、制御対象300の一連の動作が満たすべき制約条件が設けられている場合について考える。制御対象300の一連の動作をエピソード(Episode)とも称する。
制約条件を強化学習の枠組みに組み入れる方法として、制約条件が満たされない場合にエピソードの最後のターンにおける報酬値にペナルティを付加することを考える。報酬へのペナルティの付加は、例えば、報酬値が大きいほど高い評価を表すのに対し、報酬値にマイナスの所定値を加える、すなわち、報酬値から所定値を減算することで行われる。
ここでいうエピソードの1ターンは、時間ステップの1ステップである。時刻を時間ステップで表し、制御対象300および制御装置200が、状態の観測、行動の決定および行動を、1ターンに1回行うものとする。
【0025】
報酬値にペナルティが付加される場合、エピソードの最後のターンでのみ報酬値にペナルティが付加されることで、最後から1つ前のターンと、最後のターンとで、報酬値が大きく変化する。このような報酬値の大きな変化によって学習が難しくなることが考えられる。
【0026】
そこで、動作規則決定装置100は、報酬値のターン毎の差異による変動が小さくなるように、学習の枠組みを設定する。例えば、動作規則決定装置100が、エピソードの最後のターンとは異なるターンでも、報酬値に対してペナルティの付加に相当する計算を行うようにしてもよい。あるいは、動作規則決定装置100が、ペナルティ付加の判定閾値を小さくして、ペナルティ(罰則)の発生頻度を低減させるようにしてもよい。
【0027】
動作規則決定装置100は、比較的簡単な学習を行い、学習結果として得られる動作規則を、より難しい学習における動作規則の初期値に設定して学習を行う。これにより、動作規則決定装置100が、より難しい学習を効率的に行えると期待される。
この場合の、個々の学習の枠組みをカリキュラムと称する。
【0028】
方策パラメータ記憶部182は、方策パラメータ値を記憶する。方策パラメータは、動作規則の学習モデルである方策モデルにおける学習パラメータである。方策モデルに方策パラメータ値を設定することで、方策(動作規則)が得られる。方策の学習は、方策パラメータ値を更新することで行われる。
【0029】
動作規則決定装置100が用いる方策モデルの表現形式は、特定の表現形式に限定されない。例えば、方策モデルが、パラメータを含む数式として構成されていてもよい。あるいは、方策モデルが、ニューラルネットワークを用いて構成されていてもよい。
【0030】
履歴情報記憶部183は、制御対象300の動作の履歴情報を記憶する。この履歴情報は、動作規則の強化学習のための学習データとして用いられる。この履歴情報には、ターン毎に、エピソードの識別番号と、エピソード内でのターンの回数と、行動と、状態と、報酬とが示される。
【0031】
エピソードの識別番号は、例えば、エピソードの実行順による1からの通し番号であってもよい。エピソード内でのターンの回数も、1からの通し番号で示されていてもよい。行動として、例えば制御対象300のモータに対する指令値など、制御対象300に対する制御指令値が示されていてもよい。状態として、制御対象300または環境に関するセンサ測定値が示されていてもよい。報酬関数が知られており行動および状態から報酬値を計算可能な場合は、履歴情報に報酬値の情報が含まれていなくてもよい。
【0032】
制御部190は、動作規則決定装置100の各部を制御して各種処理を実行する。制御部190の機能は、例えば、動作規則決定装置100が備えるCPU(Central Processing Unit、中央処理装置)が、記憶部180からプログラムを読み出して実行することで実行される。
【0033】
カリキュラム設定部191は、カリキュラムを設定する。例えば、カリキュラム0、カリキュラム1、カリキュラム2の順で実行する場合、カリキュラム設定部191は、まず、カリキュラム0に設定する。カリキュラム0での学習が進み、カリキュラム0の終了条件が成立すると、カリキュラム設定部191は、カリキュラム1に設定する。このように、カリキュラム設定部191は、カリキュラムの設定および更新を行う。
カリキュラム設定部191が、カリキュラムの番号を記憶するカウンタの値を設定し更新することで、実行中のカリキュラムを示すようにしてもよい。
【0034】
また、カリキュラム設定部191は、カリキュラムの開始時に、そのカリキュラムを実行するための関数の設定など、カリキュラムを実行するための各種設定を行う。例えば、カリキュラムの設定が、報酬の書き換え規則の設定で行われる場合、カリキュラム設定部191の評価関数設定部192が、各カリキュラムの開始時に報酬の書き換え規則を設定する。
【0035】
評価関数設定部192は、カリキュラム毎に報酬関数を設定する。あるいは、履歴情報に報酬値が示されている場合、評価関数設定部192が、カリキュラム毎に報酬値の書き換え規則を設定するようにしてもよい。
特に、評価関数設定部192は、制御対象300の動作に関する条件が反映された第一評価関数から、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定する。
【0036】
ここでの第一評価関数は、制御対象300の動作に関する条件(制約条件)が満たされない場合のペナルティ付加規則が反映された報酬関数である。第二評価関数は、第一評価関数から、ターン間での報酬関数の相違が小さくなるように変更された報酬関数である。
【0037】
第二評価関数は、第一評価関数を用いる場合よりも学習が簡単になるように書き換えられた評価関数であり、最終的な学習結果としての動作規則を求めたい設定を示す。動作規則決定装置100は、動作規則の学習の最後のカリキュラムで、第一評価関数を用いた学習を行う。一方、動作規則決定装置100は、動作規則の学習の最後よりも前のカリキュラムで、第二評価関数を用いた学習を行う。
【0038】
第一評価関数が、制御対象300の一連の動作の時間ステップのうち最後の時間ステップにおいて、条件が反映されるように設定されていてもよい。例えば、上述したようにエピソードの最後のターンで条件が満たされていない場合に、報酬値にペナルティが付加されるようになっていてもよい。
【0039】
そして、評価関数設定部192が、第一評価関数から、最後の時間ステップにおける条件に基づく条件を、制御対象300の一連の動作の時間ステップのうち、最後の時間ステップとは異なる時間ステップにおいて反映させる変更が行われた、第二評価関数を生成するようにしてもよい。
【0040】
「第一評価関数から、最後の時間ステップにおける条件に基づく条件を、制御対象300の一連の動作の時間ステップのうち、最後の時間ステップとは異なる時間ステップにおいて反映させる変更が行われた、第二評価関数」は、「第一評価関数から、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数」の例に該当する。
【0041】
第一評価関数が、制御対象300の動作に関する評価が閾値よりも低い評価である場合に、制御対象300の動作に関する評価を低下させるように設定されていてもよい。そして、評価関数設定部192が、第一評価関数から、制御対象300の動作に関する評価が閾値以上に高い評価となり易いように閾値が変更された、第二評価関数を生成するようにしてもよい。
【0042】
「第一評価関数から、制御対象300の動作に関する評価が閾値以上に高い評価となり易いように閾値が変更された、第二評価関数」も、「第一評価関数から、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数」の例に該当する。
【0043】
履歴情報取得部193は、履歴情報を取得する。例えば、履歴情報取得部193は、制御対象300および環境を模擬するシミュレータを備え、シミュレーションを実行する。シミュレーションの際、履歴情報取得部193は、学習部195が設定する動作規則に従って制御対象300の動作を決定し、決定した動作を模擬する。
履歴情報取得部193は、シミュレーションの実行における時間ステップ毎に、状態を示す情報と制御対象300の動作を示す情報と報酬値とを含む履歴情報を生成し、履歴情報記憶部183に記憶させる。
【0044】
履歴情報変換部194は、履歴情報を変換する。特に、履歴情報変換部194は、履歴情報に含まれる報酬値に、制御対象300の動作に関する条件を反映させる変換、および、学習を比較的容易にするための補助報酬を反映させる変換を行う。
【0045】
学習部195は、第二評価関数を用いて制御対象300の動作規則の学習を行う。そして、学習部195は、第二評価関数を用いた学習の学習結果と、第一評価関数とを用いて、制御対象300の動作規則の学習を行う。
学習部195が、動作規則の学習中に設定した動作規則に対する評価を取得するようにしてもよい。そして、得られた評価が所定の条件よりも低い場合、学習部195が、過去に設定した動作規則を再度設定するようにしてもよい。
【0046】
以下に、制御対象300の動作の例および履歴情報の例を示し、履歴情報の書き換えの例を示す。Hopperと呼ばれるロボットを制御対象として、Hopperの動作の例、その動作の履歴情報の例を示す。そして、制約条件を反映させる履歴情報の書き換えの例、および、学習を簡単にするための履歴情報の書き換えの例を示す。
【0047】
図3は、第1エピソードの第1ターンの例を示す図である。したがって、
図3は、第1エピソードにおける初期状態を示している。
図3から
図7では、Hopper801と、目標位置802とが示されている。Hopper801は、制御対象300の例に該当する。目標位置802は、Hopper801の進行目標の位置に配置されている。
図3から
図7の例では、目標位置802は固定である。したがって、何れのエピソードの何れのターンでも、目標位置802は同じ位置に配置されている。
図4は、第1エピソードの第2ターンの例を示す図である。
図4の例では、
図3に示される第1ターンの場合よりも、Hopper801が目標位置802に近付いている。
【0048】
図5は、第1エピソードの第3ターンの例を示す図である。
図5の例では、
図4に示される第2ターンの場合よりも、Hopper801が目標位置802に近付いている。第1エピソードでは、
図5の例で最大ターン数の3回に達したため、エピソードが終了している。
【0049】
履歴情報取得部193は、第1エピソードにおける第1ターンから第3ターンまでの、2次元座標におけるHopper801の位置情報と、Hopper801を動作させるトルクの数値と、報酬との組み合わせの履歴情報を履歴情報記憶部183に格納する。
【0050】
図6は、第2エピソードの第1ターンの例を示す図である。したがって、
図6は、第2エピソードにおける初期状態を示している。
図7は、第2エピソードの第2ターンの例を示す図である。
図7の例では、Hopper801が転倒している。このため、エピソードが終了している。
【0051】
履歴情報取得部193は、第2エピソードにおける第1ターンから第2ターンまでの、2次元座標におけるHopper801の位置情報と、Hopper801の動作を制御するトルクの数値と、報酬との組み合わせの履歴情報を履歴情報記憶部183に格納する。
【0052】
図8は、履歴情報取得部193が記憶する履歴情報の例を示す図である。
図8の例では、履歴情報が表形式で示されており、1つの行が1つのターンにおけるHopper801の動作に関する履歴情報を示す。
図8で、mは、エピソードの識別番号を示す。tは、ターンの識別番号を示す。動作a
t,mは、第mエピソードの第tターンにおける、Hopper801の動作を制御するトルクの数値を示す。状態s
t,mは、第mエピソードの第tターンにおける、Hopper801の座標(位置情報)を示す。
【0053】
報酬rt,mは、第mエピソードの第tターンにおける、報酬を示す。
第1エピソードの第1ターンおよび第2エピソードの第1ターンでは、いずれもエピソードにおける初期状態のため、報酬は0となっている。第1エピソードの第2ターンおよび第3ターンでは、いずれも、Hopper801が目標位置802に向かって進んだ進み具合に応じて報酬が与えられている。一方、第2エピソードの第2ターンでは、Hopper801が転倒したため、-10の報酬が与えられている。
【0054】
図9は、制御対象300の動作に関する条件の例を示す図である。
図9は、エピソードで得られるリターンの確率分布の例を示している。ここでいうリターンは、報酬を1つのエピソードについて合計した値である。すなわち、リターンは、1エピソード分の累積報酬値である。
図9の横軸は、リターンを示す。縦軸は、横軸に示されるリターンを得られる確率を示す。
【0055】
領域A1は、リターンの分布の下位ε%(εは0<ε<100の実数)を示す。制御対象300の動作に関する条件として、例えば、リターンの分布の下側ε%の期待値が、特定の閾値以上になるといった制約条件が設定される。ここでの下側は、値が小さい側である。リターンの分布の下側ε%の期待値を、CVaR(Condition Value At Risk)とも称する。CVaRは、領域A1の重心に相当する。
ただし、制御対象300の動作に関する条件は、特定の条件に限定されない。
【0056】
図10は、リスク考慮型履歴情報の第1の例を示す図である。リスク考慮型履歴情報は、制御対象300の動作に関する条件が反映された履歴情報である。
図9に示す条件は、制御対象300が、リターンがある条件以下に小さくなるというリスクを避けるように動作する、という制約条件を示している。この条件が反映された履歴情報は、リスクを避けることを考慮して制御対象300の動作を決定する動作規則を学習するための学習データとなっている。
【0057】
図10の例で、履歴情報変換部194は、
図9の履歴情報の状態s
t,mがリスク考慮型状態情報s’
t,mに置き換えられ、報酬r
t,mがリスク考慮型報酬r’
t,mに置き換えられたリスク考慮型履歴情報を生成している。
履歴情報変換部194は、式(1)に基づいてリスク考慮型状態情報s’
t,mを生成する。
【0058】
【0059】
ここで、「||」は、ベクトルの要素を結合する演算を示す。すなわち、状態st,mが(xt,m,yt,m)と表されるのに対し、リスク考慮型状態情報s’t,mは、(xt,m,yt,m,v,Σt=0
Tm-1-rt,m)と表される。
ただし、xt,mは、第mエピソードの第tターンにおけるHopper801の位置のx座標を示す。yt,mは、第mエピソードの第tターンにおけるHopper801の位置のy座標を示す。すなわち、ベクトル(xt,m,yt,m)は、第mエピソードの第tターンにおける、2次元座標におけるHopper801の位置情報の例に該当する。
【0060】
vは、報酬に基づいてリスクを評価するための閾値を示す。T
mは、第mエピソードにおけるターン数を示す。
図10の例では、T
1=3、T
2=2である。
「Σ
t=0
Tm-1-r
t,m」は、第mエピソードにおけるタイミング「0」からタイミング「T
m-1」までの間の報酬の合計値に、「-1」を乗算した値を表す。すなわち、「Σ
t=0
Tm-1-r
t,m」は、第mエピソードにおけるタイミング「0」からタイミング「T
m-1」までの間のペナルティの合計値であるということもできる。
【0061】
リスク考慮型状態情報s’t,mのvおよびΣt=0
Tm-1-rt,mは、リスク考慮型報酬r’t,mを算出するために用いられる。ただし、これらの情報をリスク考慮型状態情報s’t,mに含めることは必須ではない。例えば、記憶部180が、リスク考慮型状態情報s’t,mとは別に閾値vを記憶しておくようにしてもよい。また、履歴情報変換部194が、リスク考慮型報酬r’t,mを算出する際に、履歴情報に示される状態の履歴を用いるようにすれば、リスク考慮型状態情報s’t,mに「Σt=0
Tm-1-rt,m」を含める必要はない。
【0062】
また、履歴情報変換部194は、式(2)に基づいてリスク考慮型報酬r’t,mを生成する。
【0063】
【0064】
ここで、式(2)の(1/ε)max(0,v+Σt=0
Tm-rt,m)がペナルティを表し、εは、どの程度ペナルティを重要視するかを決める係数である。説明の便宜上、εを実数の定数とする。
式(2)で、報酬rt,mに「-」が付されていることから、第mエピソードにおける報酬rt,mの合計が小さいほど、Σt=0
Tm-rt,mの値は大きくなる。Σt=0
Tm-rt,mの値が-v以下である場合、式(2)のmax関数で0が選択され、ペナルティ(1/ε)max(0,v+Σt=0
Tm-rt,m)は0になる。一方、Σt=0
Tm-rt,mの値が-vより大きい場合、式(2)のmax関数でv+Σt=0
Tm-rt,mが選ばれ、履歴情報変換部194は、ペナルティを(1/ε)(v+Σt=0
Tm-rt,m)と算出する。履歴情報変換部194は、このペナルティを報酬rt,mから減算した値を、リスク考慮型報酬r’t,mとして算出する。
【0065】
このように、式(2)によれば、第mエピソードに関するリターン(累積報酬値)が閾値vよりも小さい場合に、第mエピソードの最後のターンの報酬値にペナルティが付加される。ペナルティの付加によって報酬値が小さくなる。報酬値が小さい値に変更されることで、制御対象300が、リターンが閾値vよりも小さくなるような行動(動作)をとりにくくなるように、動作規則の学習が進むと期待される。
一方、エピソードの最後のターンの報酬値にペナルティが付加されることで、その前のターンの報酬値から急激に変化し、上述したように、学習が難しくなる可能性がある。
【0066】
図11は、リスク考慮型履歴情報の第2の例を示す図である。
図11に示すリスク考慮型履歴情報では、
図10に示すリスク考慮型履歴情報から、閾値(vの値)が1から0.5に変更されている。
【0067】
これにより、閾値の値が1の場合よりも、報酬にペナルティが付加されるエピソードの個数が少なくなる。この点で、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更されたといえる。これにより、報酬にペナルティが付加されることで報酬値が急変する頻度が低くなり、この点で、学習が難しくなる度合いが緩和されると期待される。
【0068】
図12は、リスク考慮型履歴情報の第3の例を示す図である。
図12に示すリスク考慮型履歴情報では、
図11に示すリスク考慮型履歴情報から、補助報酬を付加する変更が行われている。
図12の例で、m=1、t=1の場合のr*’
t,mの「-(1/0.1*max(0,0.5-0))」が、補助報酬の例に該当する。m=1、t=2の場合のr*’
t,mの「-(1/0.1*max(0,0.5-0-5))」も、補助報酬の例に該当する。m=2、t=1の場合のr*’
t,mの「-(1/0.1*max(0,0.5-0))」も、補助報酬の例に該当する。
図12の例における補助報酬の付加は、式(3)のように表される。
【0069】
【0070】
図10および式(2)に示される、制御対象300の動作に関する条件の報酬への反映では、エピソードにおける最終の時間ステップの報酬r
t,mに対して、条件を反映させるための項「-(1/ε)max(0,v+Σ
t=0
t-r
t,m)」が付加されている。
【0071】
図11に示されるリスク考慮型履歴情報でも、エピソードにおける最終の時間ステップの報酬r
t,mに対して、条件を反映させるための項「-(1/ε)max(0,v+Σ
t=0
Tm-r
t,m)」が付加されたままであり、閾値vの値が1から0.5に変更されている。
【0072】
これに対し、
図12および式(3)に示される補助報酬の付加では、エピソードにおける最終の時間ステップとは異なる時間ステップの報酬r
t,mに対して、補助報酬の項「-(1/ε)max(0,v+Σ
t=0
Tm-r
t,m)」が付加されている。
図12および式(3)に示される補助報酬の付加は、エピソードにおける最終の時間ステップの報酬に付加されている、条件を反映させるための項と同様の項を、エピソードにおける最終の時間ステップとは異なる時間ステップの報酬に付加するものと言える。
図12および式(3)に示される補助報酬の付加の例では、最終の時間ステップ以外の時間ステップについて補助報酬が付加されている。しかし、必ずしもすべての時間ステップについて補助報酬が付加されている必要はなく、最終の時間ステップ以外の時間ステップうち、一部の時刻ステップについて補助報酬が付加されていてもよい。
【0073】
このように、補助報酬の項の付加によって、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更されたといえる。時間ステップ間での評価関数の相違が小さくなることで、報酬値の変化の度合いが小さくなり、この点で、学習が難しくなる度合いが緩和されると期待される。
【0074】
図13は、動作規則決定装置100が、制御対象300の行動規則を学習によって決定する処理手順の例を示す図である。
図13の処理で、カリキュラム設定部191は、カリキュラムを設定する(ステップS11)。例えば、カリキュラム設定部191は、カリキュラム0、1、2の順に3段階のカリキュラムを設定する。
【0075】
例えば、カリキュラム設定部191は、カリキュラム0として、
図12に例示される、閾値が変更され、かつ、補助報酬が付加された報酬を用いる学習を設定する。また、カリキュラム設定部191は、カリキュラム1として、
図11に例示される、閾値が変更された報酬を用いる学習を設定する。また、カリキュラム設定部191は、カリキュラム2として、
図10に例示される、制御対象300に関する条件が反映された報酬を用いる学習を設定する。
【0076】
カリキュラム2における学習は、制御対象300の動作規則が満たすべき条件の下での学習と言える。すなわち、カリキュラム2における学習は、学習部195が最終的に求めたい動作規則を求めるための学習と言える。
カリキュラム設定部191が、比較的容易な学習から比較的難しい学習へと段階的にカリキュラムを設定することで、学習部195は、比較的容易な学習における学習結果を比較的難しい学習に利用することができ、学習を効率的に行えると期待される。例えば、学習部195は、比較的容易な学習で得られた動作規則(方策)を、比較的難しい学習における動作規則の初期値に設定することができる。
ステップS11でのカリキュラムの設定で、評価関数設定部192は、カリキュラムに応じた報酬関数を設定する。
【0077】
次に、学習部195は、カリキュラムにおける動作規則を初期設定する(ステップS12)。例えば、カリキュラム0(最初のカリキュラム)では、学習部195は、動作規則を所定の動作規則に設定する。カリキュラム1および2では、学習部195は、動作規則を、その前のカリキュラムで得られた動作規則に設定する。
【0078】
次に、履歴情報取得部193は、履歴情報を取得する(ステップS13)。履歴情報取得部193が、制御対象300の動作のシミュレーションを行って履歴情報を取得するようにしてもよい。あるいは、履歴情報取得部193が、制御装置200が制御対象300を制御して得られる履歴情報を取得するようにしてもよい。制御対象300は、取得した履歴情報を履歴情報記憶部183に記憶させる。
【0079】
次に、履歴情報変換部194は、カリキュラム設定部191が設定したカリキュラムに応じて履歴情報を変換する(ステップS14)。履歴情報変換部194は、変換後の履歴情報を履歴情報記憶部183に記憶させる。
次に、学習部195は、履歴情報変換部194による変換後の履歴情報を用いて動作規則を学習する(ステップS15)。例えば、学習部195が、式(4)を用いて方策勾配法によって動作規則のパラメータの値を更新するようにしてもよい。
【0080】
【0081】
ここで、Mは、エピソードの個数を示す。Tmは、第mエピソードにおけるターン数を示す。αは、行動規則のパラメータθを更新する大きさを調整するための係数である。
π(at,m|s’t,m,θ)は、状態s’t,mおよび行動規則のパラメータθのもとで動作at,mが選ばれる確率を示す。∇θlogπ(at,m|s’t,m,θ)は、θによるlogπ(at,m|s’t,m,θ)の微分を示す。∇θlogπ(at,m|s’t,m,θ)が示す傾きの方向に行動規則のパラメータθの値が変化することで、状態s’t,mおよび行動規則のパラメータθのもとで動作at,mが選ばれる確率が上昇する。
【0082】
リスク考慮型報酬r’の値が正の場合、学習部195は、∇θlogπ(at,m|s’t,m,θ)が示す傾きの方向に行動規則のパラメータθの値を更新する。これによって、状態s’t,mおよび行動規則のパラメータθのもとで動作at,mが選ばれる確率が上昇する。
【0083】
一方、リスク考慮型報酬r’の値が負の場合、学習部195は、∇θlogπ(at,m|s’t,m,θ)が示す傾きの方向と逆方向に行動規則のパラメータθの値を変化させる。これによって、状態s’t,mおよび行動規則のパラメータθのもとで動作at,mが選ばれる確率が低下する。
【0084】
学習部195は、式(4)を用いることで、リスク考慮型報酬r’の累積値を最大化するように行動規則のパラメータθの値を更新する。上記のように、履歴情報変換部194が、リスクを含むエピソードの報酬からペナルティを減算することで、リスクを含むエピソードの動作が選ばれる確率が低下する。
【0085】
ただし、学習部195が動作規則を学習する方法は、特定の方法に限定されない。例えば、学習部195が動作規則を学習する方法として、報酬に基づいて動作規則を更新する公知の方法を用いることができる。
学習部195は、学習で得られた動作規則のパラメータ値を方策パラメータ記憶部182に記憶させる(ステップS16)。
【0086】
次に、学習部195は、動作規則変換処理を行う(ステップS17)。
動作規則変換処理では、学習部195は、得られた動作規則の評価値を算出し、前回のステップS15の実行で得られた動作規則の評価値と比較する。前回のステップS15の実行で得られた動作規則のほうが評価値が大きい場合、学習部195は、今回のステップS15の実行を無かったものとして扱う。この場合、学習部195は、今回のステップS15の実行で得られた動作規則のパラメータ値を方策パラメータ記憶部182から削除し、仮採用するパラメータ値として、前回のステップS15の実行で得られた動作規則のパラメータ値を設定し直す。
ただし、動作規則変換処理は、必須ではない。したがって、動作規則決定装置100が、ステップS17の処理を行わず、ステップS16の後、ステップS18を実行するようにしてもよい。
【0087】
次に、カリキュラム設定部191は、1カリキュラム分の処理が終了したか否かを判定する(ステップS18)。
例えば、「平均リターン>1.0」、かつ、制約充足率90%が成り立つ場合に、カリキュラム設定部191が、1カリキュラム分の処理が終了したと判定するようにしてもよい。
あるいは、カリキュラム設定部191が、カリキュラム毎に異なる終了条件を用いるようにしてもよい。
【0088】
1カリキュラム分の処理が終了していないとカリキュラム設定部191が判定した場合(ステップS18:NO)、処理がステップS13に戻る。
一方、1カリキュラム分の処理が終了しているとカリキュラム設定部191が判定した場合(ステップS18:YES)、学習部195は、そのカリキュラムで得られた条件を満たす動作規則のうち、リターンの期待値が最も大きくなる動作規則を、学習結果として選択する(ステップS19)。
【0089】
次に、カリキュラム設定部191は、最後のカリキュラムを終了したか否かを判定する(ステップS20)。
最後のカリキュラムを終了してないとカリキュラム設定部191が判定した場合(ステップS20:NO)、処理がステップS11へ戻る。
一方、最後のカリキュラムを終了したとカリキュラム設定部191が判定した場合(ステップS20:YES)、動作規則決定装置100は、
図13の処理を終了する。
【0090】
図14は、履歴情報取得部193がシミュレーションによって履歴情報を取得する場合の処理手順の例を示す図である。履歴情報取得部193は、
図13のステップS13で
図14の処理を行う。
図14の処理で、履歴情報取得部193は、環境を設定する(ステップS111)。具体的には、履歴情報取得部193は、環境パラメータを有するシミュレーションモデルを備え、環境パラメータに値を設定することで環境の設定を行う。
図3から
図7の例の場合、環境パラメータの例として、床の摩擦抵抗値など床の滑り易さを挙げることができる。ただし、履歴情報取得部193が備えるシミュレーションモデルにおける環境パラメータは、特定のものに限定されない。
【0091】
次に、履歴情報取得部193は、シミュレーションを1ステップ分実行する(ステップS112)。ここでのシミュレーションの1ステップは、制御対象300の動作の計算、および、制御対象300の動作後の状態の計算を1回分行う処理である。
シミュレーションの1ステップは、時間ステップの1ステップ、および、エピソードの1ターンに該当する。
【0092】
次に、履歴情報取得部193は、ステップS112での制御対象300の動作、および、算出した状態を示す情報を、1ステップ分の履歴情報として履歴情報記憶部183に記憶させる(ステップS13)。履歴情報記憶部183が履歴情報を記憶している場合、履歴情報取得部193は、履歴情報記憶部183が記憶している履歴情報に、1ステップ分の履歴情報を追加する。
履歴情報取得部193が、報酬値も算出して履歴情報に含めるようにしてもよい。あるいは、履歴情報取得部193または学習部195が、制御対象300の動作および状態に基づいて、事後的に報酬値を算出するようにしてもよい。
【0093】
次に、履歴情報取得部193は、1エピソード分のシミュレーションが終了したか否かを判定する(ステップS114)。具体的には、履歴情報取得部193は、エピソードの終了条件が成立しているか否かを判定する。
図3から
図7の例の場合、エピソードの終了条件として、エピソードにおけるターン数が所定の数だけ進んだ、あるいは、Hopper801が転倒した、という条件を挙げることができる。ただし、エピソードの終了条件は、特定の条件に限定されない。
【0094】
1エピソード分のシミュレーションが終了していないと履歴情報取得部193が判定した場合(ステップS114:NO)、処理がステップS112へ戻る。
一方、1エピソード分のシミュレーションが終了したと判定した場合(ステップS114:YES)、履歴情報取得部193は、シミュレーションを行うべき環境の設定を全て実行したか否かを判定する(ステップS115)。例えば、履歴情報取得部193は、複数通り定められている環境パラメータ値の設定を全て実行したか否かを判定する。
【0095】
実行していない環境の設定があると履歴情報取得部193が判定した場合(ステップS115:NO)、処理がステップS111へ戻る。
一方、シミュレーションを行うべき環境の設定を全て実行したと判定した場合(ステップS115:YES)、履歴情報取得部193は、
図14の処理を終了する。
【0096】
図15は、学習部195が動作規則評価処理を行う手順の例を示す図である。学習部195は、
図13のステップS17で
図15の処理を行う。
図15の処理で、学習部195は、
図13のステップS15の今回の実行で得られた動作規則を評価する(ステップS211)。
【0097】
学習部195が、ステップS211で動作規則を評価する方法は特定の方法に限定されない。例えば、ステップS211が、動作規則を履歴情報取得部193に出力して制御対象300の動作のシミュレーションを実行させ、制御対象300の動作の結果として得られる状態情報に対する評価指標値を算出するようにしてもよい。
【0098】
次に、学習部195は、ステップS15の今回の実行で得られた動作規則が、ステップS15の前回の実行で得られた動作規則以上に高評価か否かを判定する(ステップS212)。例えば、学習部195が、ステップS15の今回の実行で得られた動作規則と、ステップS15の前回の実行で得られた動作規則とについて、ステップS211で算出した評価指標値を比較するようにしてもよい。
【0099】
ステップS15の今回の実行で得られた動作規則が、ステップS15の前回の実行で得られた動作規則以上に高評価であると判定した場合(ステップS212:YES)、学習部195は、
図15の処理を終了する。
一方、ステップS15の前回の実行で得られた動作規則のほうが高評価であると判定した場合(ステップS212:NO)、学習部195は、今回のステップS15の実行を無かったものとして扱う。この場合、学習部195は、今回のステップS15の実行で得られた動作規則のパラメータ値を方策パラメータ記憶部182から削除し、仮採用するパラメータ値として、前回のステップS15の実行で得られた動作規則のパラメータ値を設定し直す。
ステップS213の後、学習部195は、
図15の処理を終了する。
【0100】
以上のように、評価関数設定部192は、制御対象300の動作に関する条件が反映された第一評価関数から、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定する。学習部195は、第二評価関数を用いて制御対象300の動作規則の学習を行う。そして、学習部195は、第二評価関数を用いた学習における学習結果と、第一評価関数とを用いて制御対象300の動作規則の学習を行う。
【0101】
第二評価関数を用いる学習のほうが、第一評価関数を用いる学習よりも、時間ステップ間での評価関数の相違が小さいことで評価値の変化量が小さく、学習が容易であることが期待される。学習部195が、第二評価関数を用いた学習における学習結果を用いることで、第一評価関数を用いる学習を比較的容易に行えると期待される。このように、動作規則決定装置100によれば、制御対象300の動作規則の学習において、動作に関する条件が設定されることで学習が比較的難しくなる場合に、学習が難しくなる度合いを緩和するための対策を講じることができる。
【0102】
また、第一評価関数は、制御対象の一連の動作の時間ステップのうち最後の時間ステップにおいて、制御対象300の動作に関する条件が反映されるように設定されている。評価関数設定部192は、第一評価関数から、最後の時間ステップにおける制御対象300の動作に関する条件に基づく条件を、制御対象300の一連の動作の時間ステップのうち、最後の時間ステップとは異なる時間ステップにおいて反映させる変更が行われた、前記第二評価関数を生成する。
【0103】
これにより、第二評価関数を用いた学習では、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなる。動作規則決定装置100によれば、時間ステップ間での評価関数の相違が小さくなることで、報酬値の変化の度合いが小さくなり、この点で、学習が難しくなる度合いが緩和されると期待される。
【0104】
また、第一評価関数は、制御対象300の動作に関する評価が閾値よりも低い評価である場合に、制御対象300の動作に関する評価を低下させるように設定されている。評価関数設定部192は、第一評価関数から、制御対象300の動作に関する評価が閾値以上に高い評価となり易いように閾値が変更された、第二評価関数を生成する。
【0105】
第二評価関数を用いた学習では、第一評価関数を用いた学習の場合よりも、評価が低下する頻度が低くなる。この点で、評価関数設定部192によって、制御対象300の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更されたといえる。動作規則決定装置100によれば、評価が低下して時間ステップ間で評価値が急変する頻度が低くなり、この点で、学習が難しくなる度合いが緩和されると期待される。
【0106】
また、学習部195は、動作規則の学習中に設定した動作規則に対する評価が所定の条件よりも低い場合、過去に設定した動作規則を再度設定する。
動作規則決定装置100によれば、学習に失敗した場合に学習結果を学習に失敗する前の状態に戻すことができ、これによって学習を効率的に行えると期待される。
【0107】
図16は、実施形態に係る動作規則決定装置の構成の例を示す図である。
図16に示す構成で、動作規則決定装置600は、評価関数設定部601と、学習部602とを備える。
かかる構成で、評価関数設定部601は、制御対象の動作に関する条件が反映された第一評価関数から、制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定する。学習部602は、第二評価関数を用いて制御対象の動作規則の学習を行い、学習結果と、第一評価関数とを用いて制御対象の動作規則の学習を行う。
【0108】
第二評価関数を用いる学習のほうが、第一評価関数を用いる学習よりも、時間ステップ間での評価関数の相違が小さいことで評価値の変化量が小さく、学習が容易であることが期待される。学習部602が、第二評価関数を用いた学習における学習結果を用いることで、第一評価関数を用いる学習を比較的容易に行えると期待される。このように、動作規則決定装置600によれば、制御対象の動作規則の学習において、動作に関する条件が設定されることで学習が比較的難しくなる場合に、学習が難しくなる度合いを緩和するための対策を講じることができる。
評価関数設定部601は、例えば、
図2に示される評価関数設定部192等の機能を用いて実現することができる。学習部602は、例えば、
図2に示され学習部195等の機能を用いて実現することができる。
【0109】
図17は、実施形態に係る動作規則決定方法における処理の手順の例を示す図である。
図17に示す処理は、評価関数を設定すること(ステップS601)と、学習を行うこと(ステップS602)とを含む。
評価関数を設定すること(ステップS601)では、コンピュータが、制御対象の動作に関する条件が反映された第一評価関数から、制御対象の動作に関する評価の時間ステップ間での評価関数の相違が小さくなるように変更された第二評価関数を設定する。
学習を行うこと(ステップS602)では、コンピュータが、第二評価関数を用いて制御対象の動作規則の学習を行い、学習結果と、第一評価関数とを用いて制御対象の動作規則の学習を行う。
【0110】
第二評価関数を用いる学習のほうが、第一評価関数を用いる学習よりも、時間ステップ間での評価関数の相違が小さいことで評価値の変化量が小さく、学習が容易であることが期待される。ステップS602の処理で、第二評価関数を用いた学習における学習結果を用いることで、第一評価関数を用いる学習を比較的容易に行えると期待される。このように、
図17に示す処理によれば、制御対象の動作規則の学習において、動作に関する条件が設定されることで学習が比較的難しくなる場合に、学習が難しくなる度合いを緩和するための対策を講じることができる。
【0111】
図18は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図18に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0112】
上記の動作規則決定装置100、制御装置200、および動作規則決定装置600のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0113】
動作規則決定装置100がコンピュータ700に実装される場合、制御部190およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0114】
また、CPU710は、プログラムに従って、記憶部180およびその各部に対応する記憶領域を主記憶装置720に確保する。通信部110が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
動作規則決定装置100とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0115】
制御装置200がコンピュータ700に実装される場合、その動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0116】
また、CPU710は、プログラムに従って、制御装置200が処理を行うための記憶領域を主記憶装置720に確保する。制御装置200と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
制御装置200とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0117】
動作規則決定装置600がコンピュータ700に実装される場合、評価関数設定部601および学習部602の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0118】
また、CPU710は、プログラムに従って、動作規則決定装置600が処理を行うための記憶領域を主記憶装置720に確保する。動作規則決定装置600と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
動作規則決定装置600とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0119】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0120】
なお、動作規則決定装置100、制御装置200、および動作規則決定装置600が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0121】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0122】
本発明は、動作規則決定装置、動作規則決定方法および記録媒体に適用してもよい。
【符号の説明】
【0123】
1 制御システム
100、600 動作規則決定装置
110 通信部
180 記憶部
181 カリキュラム記憶部
182 方策パラメータ記憶部
183 履歴情報記憶部
190 制御部
191 カリキュラム設定部
192、601 評価関数設定部
193 履歴情報取得部
194 履歴情報変換部
195、602 学習部
200 制御装置
300 制御対象