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
JP6911946B2 - 情報処理装置、制御方法、及びプログラム - Google Patents
[go: Go Back, main page]

JP6911946B2 - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP6911946B2
JP6911946B2 JP2019568445A JP2019568445A JP6911946B2 JP 6911946 B2 JP6911946 B2 JP 6911946B2 JP 2019568445 A JP2019568445 A JP 2019568445A JP 2019568445 A JP2019568445 A JP 2019568445A JP 6911946 B2 JP6911946 B2 JP 6911946B2
Authority
JP
Japan
Prior art keywords
function
reward
action
policy
learning
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
JP2019568445A
Other languages
English (en)
Other versions
JPWO2019150452A1 (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 JPWO2019150452A1 publication Critical patent/JPWO2019150452A1/ja
Application granted granted Critical
Publication of JP6911946B2 publication Critical patent/JP6911946B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Feedback Control In General (AREA)

Description

本発明は機械学習に関する。
強化学習では、状態が変化しうる環境において行動をするエージェント(人やコンピュータ)について、環境の状態に応じた適切な行動を学習していく。ここで、環境の状態に応じた行動を出力する関数をポリシー(方策)関数と呼ぶ。ポリシー関数の学習を行うことにより、ポリシー関数が環境の状態に応じた適切な行動を出力するようになる。
強化学習についての先行技術文献としては、例えば特許文献1が挙げられる。特許文献1は、学習が行われた環境と学習後の環境との間に外乱による差異が生じる場合に、その外乱を考慮して適切な行動を選択する技術を開示している。
特開2006−320997号公報
強化学習では、前提として、エージェントの行動や、エージェントの行動によって遷移した環境の状態に対して与えられる報酬を出力する報酬関数が与えられる。報酬はエージェントの行動を評価する基準であり、報酬に基づいて評価値が定められる。例えば評価値は、エージェントが一連の行動を行う間に得られる報酬の合計である。評価値は、エージェントの行動の目的を決めるための指標である。例えばポリシー関数の学習は、「評価値を最大化する」という目的を達成するように行われる。なお、評価値は報酬に基づいて定まることから、ポリシー関数の学習は報酬関数に基づいて行われるともいえる。
上述の方法でポリシー関数を適切に学習するためには、報酬関数や評価関数(評価値を出力する関数)を適切に設計する必要がある。すなわち、エージェントの行動をどのように評価するかや、エージェントの行動の目的などが、適切に設計される必要がある。しかしながら、これらを適切に設計するが難しいことも多く、そのような場合には、ポリシー関数を適切に学習することが難しい。
本発明は、上記の課題に鑑みてなされたものである。本発明の目的の一つは、エージェントの行動のポリシーを学習する新たな技術を提供することである。
本発明の情報処理装置は、1)環境の状態を表す状態ベクトルと、状態ベクトルで表される状態において行う行動とを対応づけたデータである行動データを1つ以上取得する取得部と、2)取得した行動データを用いた模倣学習により、ポリシー関数 P 及び報酬関数 r を生成する学習部と、を有する。報酬関数 r は、状態ベクトル S を入力することで、状態ベクトル S で表される状態において得られる報酬 r(S) を出力する。ポリシー関数は、状態ベクトル S を入力した際の報酬関数の出力 r(S) を入力とし、状態ベクトル S で表される状態において行うべき行動 a=P(r(S)) を出力する。
本発明の制御方法は、コンピュータによって実行される制御方法である。当該制御方法は、1)環境の状態を表す状態ベクトルと、状態ベクトルで表される状態において行う行動とを対応づけたデータである行動データを1つ以上取得する取得ステップと、2)取得した行動データを用いた模倣学習により、ポリシー関数 P 及び報酬関数 r を生成する学習ステップと、を有する。報酬関数 r は、状態ベクトル S を入力することで、状態ベクトル S で表される状態において得られる報酬 r(S) を出力する。ポリシー関数は、状態ベクトル S を入力した際の報酬関数の出力 r(S) を入力とし、状態ベクトル S で表される状態において行うべき行動 a=P(r(S)) を出力する。
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
本発明によれば、エージェントの行動のポリシーを学習する新たな技術が提供される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施形態1の情報処理装置が想定する状況を例示する図である。 実施形態1の情報処理装置の機能構成を例示する図である。 情報処理装置を実現するための計算機を例示する図である。 実施形態1の情報処理装置によって実行される処理の流れを例示するフローチャートである。 ポリシー関数と報酬関数を生成する処理の流れを例示するフローチャートである。 実施形態2の情報処理装置の機能構成を例示する図である。 実施形態2の情報処理装置によって実行される処理の流れを例示するフローチャートである。 実施形態3の情報処理装置の機能構成を例示する図である。 実施形態3の情報処理装置によって実行される処理の流れを例示するフローチャートである。 実施形態4の情報処理装置によって実行される処理の流れを例示するフローチャートである。 一般的な強化学習において想定される状況を例示する図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
[実施形態1]
<概要>
図1は、実施形態1の情報処理装置2000(図2における情報処理装置2000)が想定する状況を例示する図である。情報処理装置2000では、とりうる状態が複数ある環境(以下、対象環境)、及びその環境において複数の行動を行いうる者(以下、エージェント)を想定する。対象環境の状態は状態ベクトル S = (s1, s2, ...) で表される。
エージェントの例としては、自動運転車が挙げられる。この場合の対象環境は、自動運転車の状態及びその周囲の状態(周囲の地図、他車両の位置や速度、及び道路の状態など)などの集合として表される。
エージェントが行うべき行動は、対象環境の状態に応じて異なる。上述の自動運転車の例であれば、前方に障害物が存在しなければ車両はそのまま進行してよいが、前方に障害物があればその障害物を回避するように進行する必要がある。また、前方の路面の状態や前方の車両との車間距離などに応じ、車両の走行速度を変更する必要がある。
対象環境の状態に応じてエージェントが行うべき行動を出力する関数を、ポリシー関数と呼ぶ。情報処理装置2000は、模倣学習によってポリシー関数の生成を行う。ポリシー関数が理想的なものに学習されれば、ポリシー関数は、対象環境の状態に応じ、エージェントが行うべき最適な行動を出力するものとなる。
模倣学習は、状態ベクトル s と行動 a とを対応づけたデータ(以下、行動データ)を利用して行われる。模倣学習によって得られるポリシー関数は、与えた行動データを模倣するものとなる。なお、模倣学習のアルゴリズムには、既存のものを利用することができる。
さらに本実施形態の情報処理装置2000では、ポリシー関数の模倣学習を通じ、報酬関数の学習も行う。そのために、ポリシー関数 P が、状態ベクトル s を報酬関数 r に入力することで得られる報酬 r(s) を入力としてとる関数として定められる。具体的には、以下の数式(1)のようにポリシー関数を定める。a はポリシー関数から得られる行動である。
Figure 0006911946
・・・(1)
すなわち、本実施形態の情報処理装置2000では、ポリシー関数を報酬関数の汎関数として定式化する。このような定式化をしたポリシー関数を定めた上で模倣学習を行うことにより、情報処理装置2000は、ポリシー関数の学習を行いつつ、報酬関数の学習も行うことで、ポリシー関数及び報酬関数を生成する。
<作用効果>
上述のように複数の状態をとりうる環境においてエージェントが行うべき行動を特定するための学習として、強化学習がある。強化学習では、前提として、エージェントの行動(その結果として表れる対象環境の状態)に対して与えられる報酬を出力する報酬関数 r が与えられる(図11参照)。また、報酬 r(s) に基づいて評価値が定められる。ポリシー関数は、例えば「評価値を最大にする」といった目的に基づいて学習される。
報酬関数や評価関数は、適切に設計することが難しいことも多い。例えば、ヒューマンライクな行動を実現するための報酬関数や評価関数は定式化が難しい。例えば、自動運転車の行動を定めるポリシー関数を生成するとする。自動運転車の適切な動作の一つとして、「搭乗者が快適に思う走行」というものが考えられる。しかしながら、搭乗者が快適に思う走行というものを定式化することは難しい。その他にも例えば、テレビゲームにおいて、人間の対戦相手とするコンピュータの行動を定めるポリシー関数を生成するとする。テレビゲームのコンピュータの適切な動作の一つとして、「人が楽しく感じる動作」というものが考えられる。しかしながら、人が楽しく感じる動作というものを定式化することは難しい。
この点、本実施形態の情報処理装置2000は、模倣学習を通じてポリシー関数の学習を行う。そのため、報酬関数や評価関数を定式化することが難しい状況でも、適切な行動を実現するポリシー関数を生成することができる。例えば、運転スキルが高い人が搭乗者を快適にさせるように自動車を運転し、その結果得られる運転のデータを用いて模倣学習を行うことで、「搭乗者が快適に思う走行」を実現するポリシー関数を生成することができる。同様に、人が実際にテレビゲームで遊び、その結果得られる操作のデータを用いて保網学習を行うことで、「人が楽しく感じる動作」を実現するポリシー関数を生成することができる。
さらに情報処理装置2000では、模倣学習によるポリシー関数の学習を通じて、報酬関数の学習を行う。そのため、学習で得られる報酬関数は、模倣する行動(例えば熟練者等の行動)に基づくものとなる。よって、学習された報酬関数において、環境の状態を定める各要素がどのように扱われているかは、熟練者等が環境の状態をどのように扱っているかを表すことになる。すなわち、学習された報酬関数を利用することで、熟練者等がどのような要素を重要と考えて行動しているかという、熟練者等の行動のコツとも言える情報を把握することができる。このように、本実施形態の情報処理装置2000によれば、エージェントが行うべき行動を表すためのポリシー関数を模倣によって学習できるだけでなく、その学習を通じて、環境の状態の各要素の重要性等について把握することができる。
以下、本実施形態の情報処理装置2000についてさらに詳細に説明する。
<情報処理装置2000の機能構成の例>
図2は、実施形態1の情報処理装置2000の機能構成を例示する図である。情報処理装置2000は取得部2020及び学習部2040を有する。取得部2020は1つ以上の行動データを取得する。行動データは、対象環境の状態を表す状態ベクトルと、その状態ベクトルで表される状態において行う行動とを対応づけたデータである。
学習部2040は、模倣学習を利用して、ポリシー関数 P 及び報酬関数 r を生成する。ここで、報酬関数 r は、状態ベクトル S を入力することで、状態ベクトル S で表される状態において得られる報酬 r(S) を出力する。また、ポリシー関数 P は、状態ベクトル S を入力した際の報酬関数の出力 r(S) を入力することで、状態ベクトル S で表される状態において行うべき行動 a を出力する。
<情報処理装置2000のハードウエア構成>
情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
図3は、情報処理装置2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機1000は、情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などのプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスクドライブ、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。ただし、ストレージデバイス1080は、RAM など、主記憶装置を構成するハードウエアと同様のハードウエアで構成されてもよい。
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
ストレージデバイス1080は、情報処理装置2000の機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
<処理の流れ>
図4は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は、行動データを取得する(S102)。学習部2040は、行動データを利用した模倣学習により、ポリシー関数と報酬関数を生成する(S104)。
<エージェント及び対象環境について>
エージェント及び対象環境としては、様々なものを扱うことができる。例えば前述したように、自動運転車両をエージェントとして扱うことができる。この場合、前述したように、自動運転車両の状態や周囲の状態の集合によって対象環境が定まる。その他にも例えば、発電装置をエージェントとして扱うことができる。この場合、発電装置の現在の発電量や発電装置の内部状態、及び要求されている発電量などの集合によって対象環境が定まる。発電装置は、これらの状態に応じて発電量の変更等を行う必要がある。その他にも例えば、ゲームのプレイヤーをエージェントとして扱うことができる。この場合、ゲームの状態(例えば将棋であれば、盤面の状態や各プレイヤーの持ち駒など)によって対象環境が定まる。ゲームのプレイヤーは、対戦相手に勝つために、ゲームの状態に応じた適切な行動を行う必要がある。
ここで、エージェントはコンピュータであってもよいし、人であってもよい。エージェントがコンピュータである場合、学習済みのポリシー関数から得られる行動を行うようにそのコンピュータを構成することで、そのコンピュータが適切に動作できるようになる。例えばこのコンピュータには、自動運転車両や発電装置を制御する制御装置などが挙げられる。
一方、エージェントが人である場合、学習済みのポリシー関数から得られる行動をその人が行うようにすることで、その人が適切な行動を行うことができるようになる。例えば、車両の運転手がポリシー関数から得られる行動を参照して車両を運転することで、安全な運転を実現できる。また、発電装置の操作者がポリシー関数から得られる行動を参照して発電装置を操作することで、無駄の少ない発電を実現できる。
<行動データについて>
ポリシー関数と報酬関数の学習は、行動データを利用して行われる。行動データとしては、様々なデータを利用することができる。例えば行動データは、対象環境において過去に行われた行動の履歴(どの状態においてどの行動が行われたかの履歴)を表す。この行動は、対象環境の扱いを熟知している熟練者によって行われたものであることが好適である。しかしながら、この行動は必ずしも熟練者によって行われたものに限定される必要はない。
その他にも例えば、行動データは、対象環境以外の環境において過去に行われた行動の履歴を表してもよい。この環境は、対象環境に類似する環境であることが好適である。例えば対象環境が発電装置などの設備であり、行動が設備の制御である場合、新たに設置する設備についてポリシー関数及び報酬関数の学習を行うために、その設備と類似している稼働済みの設備で行われた行動の履歴を利用することが考えられる。
行動データは、実際に行われた行動の履歴以外であってもよい。例えば、行動データは人手で生成されてもよい。その他にも例えば、行動データは、ランダムに生成されたデータであってもよい。すなわち、対象環境における各状態に対し、行いうる行動の中からランダムに選択したものを対応づけることで、行動データを生成する。その他にも例えば、行動データは、他の環境で利用されているポリシー関数を使って生成されてもよい。すなわち、対象環境における各状態に対し、他の環境で利用されているポリシー関数にその状態を入力することで得られる行動を対応付けることで、行動データを生成する。この場合、この「他の環境」は、対象環境と類似する環境であることが好適である。
行動データの生成は、情報処理装置2000で行われてもよいし、情報処理装置2000以外の装置で行われてもよい。
<行動データの取得:S102>
取得部2020は、1つ以上の行動データを取得する。ここで、行動データを取得する方法は任意である。例えば取得部2020は、情報処理装置2000の内部又は外部に設けられている記憶装置から行動データを取得する。その他にも例えば、取得部2020は、外部の装置(例えば、行動データを生成した装置)から送信される行動データを受信することで、行動データを取得する。
<ポリシー関数について>
ポリシー関数には、少なくとも、報酬関数 r に状態ベクトル S を入力することで得られる報酬 r(S) が、入力として与えられる。例えばポリシー関数では、報酬の取り得る値の範囲が複数の部分範囲に区切られ、各部分範囲に行動が対応づけられる。この場合、ポリシー関数は、報酬が入力されたら、その報酬が含まれる部分範囲を特定し、その部分範囲に対応づけられている行動を出力する。そして、ポリシー関数の学習では、報酬が取り得る範囲の区切り方、及び各部分範囲に対応づける行動が決定される。
<報酬関数について>
報酬関数は、入力された状態ベクトルに対応する報酬を出力する。例えば報酬関数は線形関数として定義される。線形関数として定義される報酬関数は、例えば以下の数式(2)のように、状態ベクトル S を構成する要素 si の重み付き加算にバイアス b を加える関数として定義される。
Figure 0006911946
・・・(2)
ここで、wi は状態ベクトル S のi番目の要素 si に付される重みである。b は実数の定数である。
報酬関数が上述のように定義される場合、報酬関数の学習では、各重み wi とバイアス b の決定が行われる。ただし、報酬関数は必ずしも一次式で定義される必要はなく、非線形な関数として定義されてもよい。
<ポリシー関数と報酬関数の生成:S104>
学習部2040は、模倣学習を利用して、ポリシー関数及び報酬関数を生成する(S104)。図5は、ポリシー関数と報酬関数を生成する処理の流れを例示するフローチャートである。
学習部2040は、ポリシー関数と報酬関数を初期化する(S202)。例えばこの初期化は、ポリシー関数と報酬関数のパラメータをランダムな値で初期化することで行われる。他にも例えば、ポリシー関数と報酬関数は、対象環境以外の環境(対象環境と類似する環境であることが好ましい)で利用されているポリシー関数と報酬関数と同じものに初期化されてもよい。ここで、ポリシー関数のパラメータは、例えば前述した、報酬のとりうる範囲の区切り、及び各部分範囲に対応づける行動である。また、報酬関数のパラメータは、例えば前述した、重み wi やバイアス b である。
S204からS210は、1つ以上の行動データそれぞれを対象に実行されるループ処理Aである。S204において、学習部2040は、全ての行動データを対象としてループ処理Aを実行したかどうかを判定する。既に全ての行動データについてループ処理Aが実行された場合、図5の処理は終了する。一方、まだループ処理Aの対象としていない行動データが存在する場合、学習部2040がそのうちの一つを選択し、図5の処理はS206に進む。ここで選択される行動データを行動データdと呼ぶ。
学習部2040は、行動データdを利用して報酬関数の学習を行う(S206)。具体的には、学習部2040は、行動データdが示す状態ベクトル Sd を利用し、ポリシー関数から行動 P(r(Sd)) を得る。この行動は、状態ベクトル Sd を報酬関数 r に入力することで得られる報酬 r(Sd) を、ポリシー関数 P に入力することで得られるものである。
学習部2040は、行動データdが示す行動 ad と、ポリシー関数から得られた行動 P(r(Sd)) に基づいて、報酬関数 r の学習を行う。この学習は、行動データdを正例データとする教師あり学習である。そのため、この学習には、教師あり学習を実現する任意のアルゴリズムを利用することができる。
学習部2040は、行動データdを利用してポリシー関数の学習を行う(S208)。具体的には、学習部2040は、報酬関数を利用して得られる行動 P(r(Sd)) と、行動データdが示す行動 ad とに基づいて、ポリシー関数の学習を行う。この学習も、行動データdを正例データとする教師あり学習である。そのため、報酬関数の学習と同様に、ポリシー関数の学習にも、教師あり学習を実現する任意のアルゴリズムを利用することができる。なお、このポリシー関数の学習には、直前のS206で更新した報酬関数を用いてもよいし、更新前の報酬関数を用いてもよい。
S210はループ処理Aの終端であるため、図5の処理はS204に戻る。
以上の様に、1つ以上の行動データそれぞれについてループ処理Aを行っていくことで、報酬関数とポリシー関数の学習が行われていく。そして、ループ処理Aが完了した後の報酬関数とポリシー関数を、学習部2040によって生成された報酬関数及びポリシー関数とする。
ここで、図5に示す流れはあくまで例示であり、ポリシー関数と報酬関数を生成する処理の流れは図5に示した流れに限定されない。例えば、報酬関数とポリシー関数の学習の順序を逆にしてもよい。すなわち、S206でポリシー関数の学習を行い、S208で報酬関数の学習を行うようにする。この場合、S208において報酬関数の学習に利用するポリシー関数は、直前のS206で更新されたポリシー関数であってもよいし、S206で更新される前のポリシー関数であってもよい。
なお、ポリシー関数の学習に更新前の報酬関数を利用する場合や、報酬関数の学習に更新前のポリシー関数を利用するケースでは、行動データ1つにつき、ポリシー関数と報酬関数の更新が独立して行われる。そのためこの場合、ループ処理Aの中においてS206とS208は並行して実行することができる。
[実施形態2]
<概要>
図6は、実施形態2の情報処理装置2000の機能構成を例示する図である。以下で説明する点を除き、実施形態2の情報処理装置2000は、実施形態1の情報処理装置2000と同様の機能を有する。
実施形態2の情報処理装置2000は学習結果出力部2060を有する。学習結果出力部2060は報酬関数を表す情報を出力する。例えば学習結果出力部2060は、報酬関数そのものを出力する。その他にも例えば、学習結果出力部2060は、状態ベクトルの各要素と重みとの対応付けを表す情報(対応表など)を出力してもよい。
なお、報酬関数を表す情報は、文字列、画像、又は音声などの任意の形式で出力することができる。例えば文字列や画像によって報酬関数を表す情報は、報酬関数に関する情報を得たい人(情報処理装置2000のユーザ)が閲覧可能なディスプレイ装置に表示される。また、音声によって報酬関数を表す情報は、報酬関数に関する情報を得たい人の付近に設けられたスピーカから出力される。
<ハードウエア構成の例>
実施形態2の情報処理装置2000を実現する計算機のハードウエア構成は、実施形態1と同様に、例えば図3によって表される。ただし、本実施形態の情報処理装置2000を実現する計算機1000のストレージデバイス1080には、本実施形態の情報処理装置2000の機能を実現するプログラムモジュールがさらに記憶される。
<処理の流れ>
図7は、実施形態2の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。なお、S102及びS104については、図4のものと同様である。学習結果出力部2060は、S104が行われた後、報酬関数を表す情報を出力する(S302)。
<作用効果>
本実施形態の情報処理装置2000によれば、学習部2040によって学習された報酬関数を把握することができる。ここで、報酬関数は、状態ベクトル S の各要素に付されている重みを含む。そのため、報酬関数についての情報を得ることにより、環境の状態を定める要素のうち、どの要素がエージェントの行動を定める際に重要であるのかを把握できるようになる。
なお、学習結果出力部2060は、報酬関数を表す情報に加え、ポリシー関数を表す情報をさらに出力してもよい。例えば前述したように、ポリシー関数が、報酬のとりうる値の範囲(部分範囲)に対し、エージェントが行うべき行動を対応づけたものであるとする。この場合、ポリシー関数を表す情報は、部分範囲と行動とを対応づけた情報(例えば対応表)などである。
報酬関数やポリシー関数を出力する方法は、前述したようにディスプレイ装置に表示させたり、スピーカから出力させたりする方法に限定されない。例えば学習結果出力部2060は、情報処理装置2000の内部又は外部に設けられた記憶装置に、報酬関数やポリシー関数を記憶させてもよい。また、情報処理装置2000には、記憶装置に記憶させた報酬関数やポリシー関数を必要に応じて読み出す機能も設ける。
[実施形態3]
<概要>
図8は、実施形態3の情報処理装置2000の機能構成を例示する図である。以下で説明する点を除き、実施形態3の情報処理装置2000は、実施形態1の情報処理装置2000又は実施形態2の情報処理装置2000と同様の機能を有する。
実施形態2の情報処理装置2000は行動出力部2080を有する。行動出力部2080は、現在の対象環境の状態を表す状態ベクトルを取得し、その状態ベクトル、報酬関数、及びポリシー関数を用いて、エージェントが行うべき行動を特定する。より具体的には、行動出力部2080は、取得した状態ベクトル S を報酬関数 r に入力することで得られる報酬 r(S) を、ポリシー関数 P に入力する。そして行動出力部2080は、その結果としてポリシー関数から得られる行動 P(r(S)) を表す情報を、エージェントが行うべき行動を表す情報として出力する。
<ハードウエア構成の例>
実施形態3の情報処理装置2000を実現する計算機のハードウエア構成は、実施形態1と同様に、例えば図3によって表される。ただし、本実施形態の情報処理装置2000を実現する計算機1000のストレージデバイス1080には、本実施形態の情報処理装置2000の機能を実現するプログラムモジュールがさらに記憶される。
<処理の流れ>
図9は、実施形態3の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。行動出力部2080は、現在の環境の状態を表す状態ベクトルを取得する(S402)。行動出力部2080は、取得した状態ベクトルと、報酬関数及びポリシー関数とを用いて、エージェントが行うべき行動 P(r(S)) を特定する(404)。行動出力部2080は、特定した行動 P(r(S)) を表す情報を出力する(S406)。
<状態ベクトルの取得:S402>
行動出力部2080は、現在の環境の状態を表す状態ベクトルを取得する。ここで、環境の状態に応じてエージェントが行うべき行動を特定する際に、現在の状態を表す情報(例えば自動運転車の制御において、車両の状態、路面の状態、及び障害物の有無などを表す情報)を得る方法には、既存の技術を利用することができる。
<行動の決定:S404>
行動出力部2080は、エージェントが行うべき行動を特定する(S404)。この行動は、状態ベクトル S、報酬関数 r、及びポリシー関数 P により、P(r(S)) として特定できる。
<特定された行動の出力:S406>
行動出力部2080は、S404で特定された行動を出力する(S406)。ここで前述したように、エージェントはコンピュータであってもよいし、人であってもよい。
エージェントがコンピュータである場合、行動出力部2080は、S404で特定された行動を表す情報を、コンピュータが認識可能な態様で出力する。例えば行動出力部2080は、特定された行動をエージェントに行わせるための制御信号を、エージェントに出力する。
例えばエージェントが、自動運転車であるとする。この場合、例えば行動出力部2080は、自動運転車に設けられている ECU(Electronic Control Unit)などの制御装置に対して種々の制御信号(例えば、ステアリング角度やスロットル開度などを示す信号)を出力することで、ポリシー関数で特定された行動を自動運転車に行わせる。
エージェントが人である場合、行動出力部2080は、S404で特定された行動を、人が認識可能な態様で出力する。例えば行動出力部2080は、特定された行動の名称などを、文字列、画像、又は音声などの態様で出力する。行動の名称などを表す文字列や画像は、例えば、エージェントが閲覧可能なディスプレイ装置に表示される。行動の名称などを表す音声は、例えば、エージェントの付近に存在するスピーカから出力される。
例えば、ポリシー関数によって特定される行動を参照して、運転手が車両を運転するとする。この場合、行動出力部2080によって特定された行動の名称などが、車両に設けられたディスプレイ装置やスピーカから出力される。運転手がこの出力に従って運転操作を行うことにより、ポリシー関数に基づく適切な動作で、車両を走行させることができる。
[実施形態4]
実施形態4の情報処理装置2000は以下で説明する事項を除き、実施形態1から実施形態3の情報処理装置2000のいずれかと同様の機能を有する。
本実施形態の情報処理装置2000では、前述した学習によって生成されたポリシー関数と報酬関数について、その後に対象環境において実際に行われた行動に基づいてさらに学習を行うことで、ポリシー関数及び報酬関数が更新される。具体的には、取得部2020が、行動データをさらに取得する。そして学習部2040が、この行動データを用いてポリシー関数及び報酬関数の学習を行うことで、ポリシー関数及び報酬関数を更新する。
ここで取得部2020によって取得される行動データは、対象環境において実際に行われた行動の履歴である。この行動データは、熟練者が行った行動の履歴であることが好ましい。しかしながら、必ずしも熟練者が行った行動の履歴を取得する必要はない。
実施形態4の情報処理装置2000は、「行動データを取得し、その行動データを用いてポリシー関数と報酬関数を更新する」という動作を、繰り返し実行することが好適である。例えば情報処理装置2000は、更新を定期的に実行する。すなわち情報処理装置2000は、定期的に行動データを取得し、取得した行動データを用いてポリシー関数と報酬関数の学習を行う。ただし、情報処理装置2000によるポリシー関数等の更新は、必ずしも定期的に行われる必要はない。例えば情報処理装置2000は、外部の装置から送信された行動データを受信したことを契機とし、受信した行動データを用いた更新を行ってもよい。
学習部2040は、実施形態1で説明した方法により、取得した行動データを用いてポリシー関数と報酬関数の学習を行う。これにより、ポリシー関数及び報酬関数が更新される。更新されたポリシー関数及び報酬関数の組みは、その後にエージェントが行うべき行動の特定(行動出力部2080によって実行される処理)や、学習結果の出力(学習結果出力部2060によって実行される処理)に用いる。
ただし学習部2040は、必ずしも、新たに取得した行動データを用いた学習で得られたポリシー関数及び報酬関数の組みで、以前のポリシー関数及び報酬関数の組みを更新しなくてもよい。
具体的には、学習部2040は、過去の学習で得られたポリシー関数及び報酬関数の組みと、新たに得られたポリシー関数及び報酬関数の組みとを比較し、より適切な組みを更新後のポリシー関数及び報酬関数とする。ここで、n 番目に行われた学習で得られるポリシー関数及び報酬関数をそれぞれ、Pn 及び rn と表記する。学習部2040が n 回学習を行うと、ポリシー関数と報酬関数の組みの履歴 (P1, r1), (P2, r2),..., (Pn, rn) が得られる。
例えば学習部2040は、これらの履歴の中から、学習結果として採用するポリシー関数及び報酬関数の組みを決定する。概念としては、学習部2040は、これまでに生成されたポリシー関数及び報酬関数の組みのうち、行動データを最もよく模倣できるポリシー関数及び報酬関数の組みを採用する。
例えば学習部2040が、n 回目の学習(n-1 回目の更新)において行動データの集合 Dn を取得し、Dn に含まれる行動データを用いた学習を行うことで、ポリシー関数 Pn 及び報酬関数 rn を得たとする。この場合、ポリシー関数と報酬関数の各組み (Pi, ri) が行動データを模倣できている度合いは、例えば以下の数式(3)で表される。
Figure 0006911946
・・・(3)
Ui は、ポリシー関数と報酬関数の組み (Pi, ri) が行動データを模倣できている度合いを表す指標値である。(Sk, ak) は、行動データの集合 Dn に含まれる状態ベクトルと行動の組みである。
学習部2040は、Ui が最大となるポリシー関数と報酬関数の組みを特定し、特定された組みを n 回目の学習の結果として採用する。すなわち、n-1 回目の更新の結果は、Ui が最大となるポリシー関数及び報酬関数となる。
なお、学習部2040は、比較対象として、過去に生成されたポリシー関数及び報酬関数の組みの全てを利用する必要はない。例えば学習部2040は、ポリシー関数及び報酬関数の組みの履歴のうち、過去所定個の履歴のみを利用してもよい。
なお、上述したように、新たに得られたポリシー関数及び報酬関数を過去に得られたポリシー関数及び報酬関数と比較できるようにするため、学習で得られるポリシー関数及び報酬関数は、履歴として記憶装置に記憶させておく。ただし、比較に用いる履歴が過去所定個に限定される場合、比較に利用されなくなった古いポリシー関数及び報酬関数については、記憶装置から削除するようにしてもよい。
<処理の流れ>
図10は、実施形態4の情報処理装置2000によって実行される処理の流れを例示する図である。なお、S102及びS104については、図4と同じステップである。
取得部2020は行動データを取得する(S502)。学習部2040は、取得した行動データを用いて、ポリシー関数及び報酬関数の学習を行う(S504)。学習部2040は、S504で得られたポリシー関数及び報酬関数の組みと、過去に生成した1つ以上のポリシー関数及び報酬関数の組みの中から、更新結果として採用する組みを決定する(S506)。S506で決定した組みで、ポリシー関数及び報酬関数を更新する(S508)。
図10に示すフローチャートには処理の終了が記載されていない。しかしながら、情報処理装置2000は、所定の条件に基づいて、図10に示す処理を終了してもよい。例えば情報処理装置2000は、処理の終了を指示するユーザ操作に応じて、処理を終了する。
<作用効果>
本実施形態の情報処理装置2000によれば、ポリシー関数及び報酬関数の生成後にさらに得られる行動データを用いて、ポリシー関数及び報酬関数が更新される。そのため、ポリシー関数及び報酬関数の精度を高めていくことができる。
また前述したように、情報処理装置2000は、新たに得られた行動データを用いて学習されたポリシー関数及び報酬関数を必ずしも採用する必要はなく、これまでに得られたポリシー関数及び報酬関数の中から、適切なものを選択するようにしてもよい。このようにすることで、より適切なポリシー関数及び報酬関数を得ることができるようになる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。

Claims (10)

  1. 環境の状態を表す状態ベクトルと、前記状態ベクトルで表される状態において行う行動とを対応づけたデータである行動データを1つ以上取得する取得部と、
    前記取得した行動データを用いた模倣学習により、ポリシー関数 P 及び報酬関数 r を生成する学習部と、を有し、
    前記報酬関数 r は、状態ベクトル S を入力することで、状態ベクトル S で表される状態において得られる報酬 r(S) を出力し、
    前記ポリシー関数は、状態ベクトル S を入力した際の前記報酬関数の出力 r(S) を入力とし、状態ベクトル S で表される状態において行うべき行動 a=P(r(S)) を出力する、情報処理装置。
  2. 前記学習部は、前記取得した行動データが示す状態ベクトルを前記報酬関数に入力して得られる報酬を前記ポリシー関数に入力し、その結果として得られる行動と前記行動データにおいて前記状態ベクトルと対応づけられている行動とを比較することで、前記報酬関数の学習を行う、請求項1に記載の情報処理装置。
  3. 前記行動データは、前記環境についての熟練者が行った行動の履歴を表す、請求項1又は2に記載の情報処理装置。
  4. 前記学習部によって生成された報酬関数を表す情報を出力する学習結果出力部を有する、請求項1乃至3いずれか一項に記載の情報処理装置。
  5. 前記環境の状態を表す状態ベクトルを取得し、前記取得した状態ベクトル、並び前記学習部によって生成されたポリシー関数及び報酬関数を用い、前記状態ベクトルによって表される状態の環境において行うべき行動を表す情報を出力する行動出力部を有する、請求項1乃至4いずれか一項に記載の情報処理装置。
  6. 前記学習部は、前記ポリシー関数及び報酬関数を生成した後、前記環境においてエージェントが実際に行った行動を表す第2行動データを取得し、前記第2行動データを用いた模倣学習により、前記ポリシー関数及び前記報酬関数の更新を行う、請求項1乃至5いずれか一項に記載の情報処理装置。
  7. 前記学習部は、前記第2行動データを用いて得られたポリシー関数及び報酬関数の組み合わせ、及びこれまでに得られたポリシー関数及び報酬関数の1つ以上の組み合わせの中から1つを選択し、前記選択した組み合わせのポリシー関数及び報酬関数を、更新後のポリシー関数及び報酬関数とする、請求項6に記載の情報処理装置。
  8. コンピュータによって実行される制御方法であって、
    環境の状態を表す状態ベクトルと、前記状態ベクトルで表される状態において行う行動とを対応づけたデータである行動データを1つ以上取得する取得ステップと、
    前記取得した行動データを用いた模倣学習により、ポリシー関数 P 及び報酬関数 r を生成する学習ステップと、を有し、
    前記報酬関数 r は、状態ベクトル S を入力することで、状態ベクトル S で表される状態において得られる報酬 r(S) を出力し、
    前記ポリシー関数は、状態ベクトル S を入力した際の前記報酬関数の出力 r(S) を入力とし、状態ベクトル S で表される状態において行うべき行動 a=P(r(S)) を出力する、制御方法。
  9. 前記学習ステップにおいて、前記取得した行動データが示す状態ベクトルを前記報酬関数に入力して得られる報酬を前記ポリシー関数に入力し、その結果として得られる行動と前記行動データにおいて前記状態ベクトルと対応づけられている行動とを比較することで、前記報酬関数の学習を行う、請求項8に記載の制御方法。
  10. 請求項8または9に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
JP2019568445A 2018-01-30 2018-01-30 情報処理装置、制御方法、及びプログラム Active JP6911946B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/003043 WO2019150452A1 (ja) 2018-01-30 2018-01-30 情報処理装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019150452A1 JPWO2019150452A1 (ja) 2021-01-07
JP6911946B2 true JP6911946B2 (ja) 2021-07-28

Family

ID=67478634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019568445A Active JP6911946B2 (ja) 2018-01-30 2018-01-30 情報処理装置、制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US20210042584A1 (ja)
JP (1) JP6911946B2 (ja)
WO (1) WO2019150452A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3837641B1 (en) * 2018-09-14 2024-11-06 Google LLC Deep reinforcement learning-based techniques for end to end robot navigation
US20220328152A1 (en) * 2019-09-05 2022-10-13 Nippon Telegraph And Telephone Corporation Information presentation device, learning device, information presentation method, learning method, information presentation program, and learning program
US11645498B2 (en) * 2019-09-25 2023-05-09 International Business Machines Corporation Semi-supervised reinforcement learning
US20240083441A1 (en) * 2020-12-25 2024-03-14 Nec Corporation Driving evaluation system, learning device, evaluation result output device, method, and program
CN116415651A (zh) * 2023-04-24 2023-07-11 京东科技信息技术有限公司 安全强化学习和安全控制方法和装置、智能体和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5879899B2 (ja) * 2011-10-12 2016-03-08 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP5815458B2 (ja) * 2012-04-20 2015-11-17 日本電信電話株式会社 報酬関数推定装置、報酬関数推定方法、およびプログラム
US10460600B2 (en) * 2016-01-11 2019-10-29 NetraDyne, Inc. Driver behavior monitoring
US10902347B2 (en) * 2017-04-11 2021-01-26 International Business Machines Corporation Rule creation using MDP and inverse reinforcement learning
CN107357838B (zh) * 2017-06-23 2020-09-01 上海交大知识产权管理有限公司 基于多任务学习的对话策略在线实现方法

Also Published As

Publication number Publication date
JPWO2019150452A1 (ja) 2021-01-07
US20210042584A1 (en) 2021-02-11
WO2019150452A1 (ja) 2019-08-08

Similar Documents

Publication Publication Date Title
JP6911946B2 (ja) 情報処理装置、制御方法、及びプログラム
US12572803B2 (en) Multi-agent reinforcement learning with matchmaking policies
US12533800B2 (en) Training reinforcement learning agents to learn farsighted behaviors by predicting in latent space
JP6648352B2 (ja) 汎用学習済モデルの生成方法
CN110692066B (zh) 使用多模态输入选择动作
JP7674599B2 (ja) マルチモーダル入力を使用するインタラクティブエージェントの制御
JP6728496B2 (ja) 強化学習を使用した環境ナビゲーション
CN110546653B (zh) 使用管理者和工作者神经网络的用于强化学习的动作选择
JP7128152B2 (ja) 学習方法及びプログラム
CN108027897B (zh) 利用深度强化学习的连续控制
CN110114784B (zh) 递归环境预测器及其方法
US20220036186A1 (en) Accelerated deep reinforcement learning of agent control policies
WO2019229125A1 (en) Deep reinforcement learning with fast updating recurrent neural networks and slow updating recurrent neural networks
KR20220134627A (ko) 하드웨어-최적화된 신경 아키텍처 검색
WO2020065024A1 (en) Stacked convolutional long short-term memory for model-free reinforcement learning
CN112334914A (zh) 使用生成式前导神经网络的模仿学习
JP2022523484A (ja) 観測値の尤度を使用して環境を探索するためのエージェントを制御すること
CA3167197A1 (en) Learning environment representations for agent control using predictions of bootstrapped latents
CN112930541B (zh) 通过最小化妄想影响来确定控制策略
AU2023267975B2 (en) Selection-inference neural network systems
CN113384875B (zh) 模型训练方法、装置、存储介质及电子设备
CN120917457A (zh) 减轻训练神经网络时的可塑性损失
CN118843869A (zh) 选择推断神经网络系统
JP3523325B2 (ja) ニューラルネットワーク及びこれを用いた信号処理装置、自律システム、自律型ロボット並びに移動システム
CN116957055B (zh) 使用多模态输入选择动作

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200727

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: 20210608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6911946

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150