(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024067890
(43)【公開日】2024-05-17
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G09B 19/00 20060101AFI20240510BHJP
G09B 19/24 20060101ALI20240510BHJP
G06N 20/00 20190101ALI20240510BHJP
【FI】
G09B19/00 Z
G09B19/24 Z
G06N20/00
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022178288
(22)【出願日】2022-11-07
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】ガイアー アンドレアス
(57)【要約】
【課題】ExpertのPolicyを学習するための人間のApprenticeを対象としたトレーニングを効率的かつ定量的に実現できるようにする。
【解決手段】本技術の一側面の情報処理装置は、人間のApprenticeによる所定のタスクの動作を観測し、Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、所定のタスクの動作を行っているApprenticeに対して出力する。本技術は、Apprenticeの動作を検出する各種のセンサと、Apprenticeに対してフィードバックを与えるデバイスが接続されたコンピュータに適用することができる。
【選択図】
図7
【特許請求の範囲】
【請求項1】
人間のApprenticeによる所定のタスクの動作を観測し、
前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する
情報処理部を備える
情報処理装置。
【請求項2】
前記情報処理部は、前記Apprenticeが前記所定のタスクの動作を行っている間、前記フィードバックを繰り返し出力する
請求項1に記載の情報処理装置。
【請求項3】
前記情報処理部は、センサによる検出結果に基づいて、前記Apprenticeの動作を表すとともに、前記Apprenticeが動作を行う環境の状態を表す観測値を取得する
請求項1に記載の情報処理装置。
【請求項4】
前記情報処理部は、前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習する
請求項3に記載の情報処理装置。
【請求項5】
前記情報処理部は、前記ApprenticeのPolicyが所定の条件を満たす場合に、前記Apprenticeを対象としたトレーニングを終了させる
請求項4に記載の情報処理装置。
【請求項6】
前記情報処理部は、さらに、前記Apprenticeの動作と前記Expertの動作との差に応じた評価値を、前記Apprenticeに対して、または、前記Apprenticeと人間の前記Expertに対して提示する
請求項1に記載の情報処理装置。
【請求項7】
前記情報処理部は、
前記Apprenticeの動作とともに、人間の前記Expertによる前記所定のタスクの動作を観測し、
模倣学習としてのBehavior Cloningのフレームワークを用いて、前記Apprenticeの動作と前記Expertの動作との差に応じた前記フィードバックを生成する
請求項1に記載の情報処理装置。
【請求項8】
前記情報処理部は、センサによる検出結果に基づいて、前記Apprenticeと前記Expertのそれぞれの動作を表すとともに、前記Apprenticeと前記Expertが動作を行う環境の状態を表す観測値を取得する
請求項7に記載の情報処理装置。
【請求項9】
前記情報処理部は、
前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習し、
前記Expertの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ExpertのPolicyを学習する
請求項8に記載の情報処理装置。
【請求項10】
前記情報処理部は、模倣学習によって獲得された前記所定のタスクに関する前記ExpertのPolicyを、前記Apprenticeを対象としたトレーニングの開始前に取得する
請求項3に記載の情報処理装置。
【請求項11】
前記情報処理部は、模倣学習としてのDirect Policy Learningのフレームワークを用いて、前記Apprenticeの動作と、前記ExpertのPolicyに前記観測値を適用して求められる前記Expertの動作との差に応じた前記フィードバックを生成する
請求項10に記載の情報処理装置。
【請求項12】
前記情報処理部は、
前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習し、
前記ApprenticeのPolicyと前記ExpertのPolicyに基づいて評価値を算出し、前記Apprenticeに対して、または、前記Apprenticeと人間の前記Expertに対して提示する
請求項11に記載の情報処理装置。
【請求項13】
前記情報処理部は、
模倣学習としてのInverse Reinforcement Learningのフレームワークを用いて、前記ExpertのPolicyと前記Expertの動作とに基づいて報酬関数を推定し、
前記報酬関数に前記Apprenticeの動作と前記観測値とを適用して求められる報酬に応じた前記フィードバックを生成する
請求項10に記載の情報処理装置。
【請求項14】
前記情報処理部は、
前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習し、
前記ApprenticeのPolicyと前記ExpertのPolicyに基づいて評価値を算出し、前記Apprenticeに対して、または、前記Apprenticeと人間の前記Expertに対して提示する
請求項13に記載の情報処理装置。
【請求項15】
前記情報処理部は、前記Apprenticeが装着する第1のデバイスと、前記Apprenticeが前記所定のタスクの動作を行う環境に設置された第2のデバイスとのうちの少なくともいずれかを制御することによって前記フィードバックを出力する
請求項1に記載の情報処理装置。
【請求項16】
前記Apprenticeの触覚に対して刺激を与える構成を有するデバイスが前記第1のデバイスと前記第2のデバイスのうちの少なくともいずれかに含まれる
請求項15に記載の情報処理装置。
【請求項17】
情報処理装置が、
人間のApprenticeによる所定のタスクの動作を観測し、
前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する
情報処理方法。
【請求項18】
コンピュータに、
人間のApprenticeによる所定のタスクの動作を観測し、
前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、特に、ExpertのPolicyを学習するための人間のApprenticeを対象としたトレーニングを効率的かつ定量的に実現できるようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
料理のスキル、競技のスキル、ゲームのスキルなどの、Expert(専門家)の人が有するあるタスクに関するスキルをApprentice(見習い)の人が身に付けるためには、通常、Expertの人が、自分のやり方を言葉や身振りを用いてApprenticeの人に直接教える必要がある。
【0003】
スキルを身に付けるための学習は、Apprenticeの人のスキルをExpertの人が評価し、主観的な評価結果に応じた助言や指導をフィードバックとしてApprenticeの人に与えることによって進められる。定量的な評価が難しいために、学習の品質の善し悪しがExpertの人の力量に大きく影響してしまう。
【0004】
また、通常、1人のExpertは、2人、3人などの少人数のApprenticeにしか同時に教えることができない。さらに、学習中、Expertの人は、Apprenticeの人に対するフィードバックをその都度与える必要があることから、リアルタイムでのコーチングを継続的に行うことが難しい。
【0005】
ところで、近年、模倣学習(Imitation Learning)の研究開発が進められている。模倣学習は、Expertの人の動作などを観測した動作時系列(Trajectory)に基づいて、Expertの人の動作と同じ動作を再現できるようなPolicyを獲得するようにして、ロボットやエージェントのPolicyを学習する方法である。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Imitation Learning: Progress, Taxonomies and Opportunities. Zheng et al. 2021.
【非特許文献2】Imitation Learning as f-Divergence Minimization. Ke et al. 2020.
【非特許文献3】Learning by Cheating. Chen et al. 2019.
【非特許文献4】Global Overview of Imitation Learning. Attia et al. 2018.
【非特許文献5】A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning. Ross et al. 2011.
【非特許文献6】Alvinn: An Autonomous Land Vehicle in a Neural Network. Pomerleau. 1988.
【発明の概要】
【発明が解決しようとする課題】
【0007】
ロボットやエージェントを対象とした従来の模倣学習を、実際の人間のApprenticeを対象とした学習に適用するとした場合、Apprenticeの人のPolicyをコンピュータなどで観測することができないことから、当然、そのまま適用することはできない。
【0008】
すなわち、Apprenticeの人の動作は、その人の脳内での意思決定や身体の動かし方によって表現されるものであるから、従来の模倣学習を適用するためには、動作生成の元になる脳や身体にアクセスしてPolicyを観測したり、Policyを構成するパラメータを調整したりする必要があることになる。
【0009】
本技術はこのような状況に鑑みてなされたものであり、ExpertのPolicyを学習するための人間のApprenticeを対象としたトレーニングを効率的かつ定量的に実現できるようにするものである。
【課題を解決するための手段】
【0010】
本技術の一側面の情報処理装置は、人間のApprenticeによる所定のタスクの動作を観測し、前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する情報処理部を備える。
【0011】
本技術の一側面においては、人間のApprenticeによる所定のタスクの動作が観測され、前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックが模倣学習のフレームワークを用いて生成され、前記所定のタスクの動作を行っている前記Apprenticeに対して出力される。
【図面の簡単な説明】
【0012】
【
図2】
図1の模倣学習をモデル化して示す図である。
【
図3】Apprenticeのトレーニングの例を示す図である。
【
図4】
図3の模倣学習をモデル化して示す図である。
【
図6】フィードバックデバイスの例を示す図である。
【
図7】Apprenticeを対象とした第1の学習例を示す図である。
【
図8】Apprenticeを対象とした第2の学習例を示す図である。
【
図9】Apprenticeを対象とした第3の学習例を示す図である。
【
図10】DPLのアルゴリズムの例を示す図である。
【
図11】DPLを用いた学習の適用例を示す図である。
【
図13】TQAシステムの他の構成例を示す図である。
【
図14】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
1.本技術の概要
2.AgentによるPolicy πφ
*の学習
3.人間のApprenticeによるPolicy πφ
*の学習
4.TQAシステムの構成
5.第1の学習例(BCを適用した例)
6.第2の学習例(DPLを適用した例)
7.第3の学習例(IRLを適用した例)
8.フィードバック生成の詳細について
9.学習アルゴリズムの具体例について
10.DPLを用いた学習の適用例
【0014】
<本技術の概要>
・TQAシステム
本技術を適用したTQA(Training and Quality Assurance)システム(トレーニング品質保証システム)は、模倣学習のフレームワークを使用した、人間参加型のシステムである。TQAシステムにおいては、あるタスクに関する動作をExpertの動作に近付けることができるようにするためのトレーニングが人間のApprenticeを対象として行われる。
【0015】
このように、トレーニングを行うApprenticeは人間である。一方、Expertは、人間である場合もあるし、エージェントである場合もある。エージェントは、所定のプログラムを実行することによってコンピュータにおいて実現される。
【0016】
TQAシステムにおいては、Apprenticeの動作を観測し続けるための複数のセンサが用いられる。センサには、カメラなどの物理的に用意されるセンサだけでなく、バーチャルセンサも含まれる。バーチャルセンサは、例えば、コンピュータによる計算によって生成された状態や動作を観測する、コンピュータ内部のモジュールによって実現される。
【0017】
また、TQAシステムにおいては、Apprenticeに対してフィードバックを与えるためのフィードバックデバイスが用いられる。フィードバックは、Apprenticeの動作を修正するために与えられる。Expertが人間である場合、適宜、Expertに対してもフィードバックが与えられる。
【0018】
TQAシステムにより、Expertが有する所定のタスクについてのスキルをExpertからApprenticeに伝達するための閉ループ方式のシステムが実現される。ExpertのスキルをApprenticeが獲得したと判断された場合にトレーニングの終了となる。
【0019】
Apprenticeによるスキルの習熟度は、TQAシステムにおいて定義された評価値であるTQA評価値に基づいて判断される。ここでいうスキルには、人が有する知識、状況判断能力、知識と状況判断の結果に基づく意思決定、意思決定に応じた身体の動かし方などの、動作に影響を与える人の各種の能力が含まれる。動作を伴うタスクに関するスキルは、模倣学習においてはPolicy(方策)として表現される。
【0020】
このように、TQAシステムにおいては、主観的な言葉などの抽象的な評価ではなく、センサによる検出結果などを総合的に用いることによって定量化された値であるTQA評価値が定義される。
【0021】
センサによる検出は、ExpertとApprenticeのうちの少なくともいずれかの動作時系列(trajectory)の記録時などに行われる。
【0022】
Apprenticeの動作時系列は下式(1)のように表される。また、Expertの動作時系列は下式(2)のように表される。“a”は動作(action)を示し、“o”は、動作が行われている環境の状態の観測値(observation)を示す。
【数1】
【数2】
【0023】
TQAシステムにおいては、ApprenticeのPolicyであるπθ(o)と、ExpertのPolicyであるπφ
*(o)が求められる。Policy πθ(o)とPolicy πφ
*(o)により、決定論的または統計的な距離のクエリ、分析、計算が可能となる。以下においては、適宜、ApprenticeのPolicyをπθとして示し、ExpertのPolicyをπφ
*として示す。
【0024】
TQAシステムにおいては、Apprenticeなどの人の感覚に対する刺激となるフィードバックが時刻t毎に生成される。各時刻tのフィードバックの内容を表すフィードバックftは、例えば、Expertの動作である動作at
*と、Apprenticeの動作である動作atとの差に基づいて求められる。以下、適宜、時刻を表すインデックスtを省略して各情報について説明する。
【0025】
フィードバックfは、動作a
*と動作aとを用いて例えば下式(3)により求められる。π
θ(o)は、観測値oによって表される環境における動作aを表す。
【数3】
【0026】
また、Policy π
θ(o)とPolicy π
φ
*(o)を測定手法Dに適用することにより、定量的な距離の評価値であるTQA評価値dが求められる。測定手法Dは、下記(4)の関数として表される。
【数4】
【0027】
決定論的または統計的な距離の測定手法Dとして、例えば、KL(Kullback-Leibler) divergenceやJS(Jensen-Shannon) divergenceが用いられる。“Q”は、Policyに応じた確率分布関数などの、ユーザによって任意に選択された関数である。
【0028】
なお、動作空間Aにおける動作aは、観測空間Oにおける観測値oの一部を構成する情報として観測される。センサによる検出結果に基づいて、ExpertやApprenticeの動作aが、観測値oとともに観測される。動作aの観測用のセンサと観測値oの観測用のセンサとがそれぞれ用意され、動作aと環境の状態を表す観測値oがそれぞれ別のセンサによる検出結果に基づいて取得されるようにしてもよい。
【0029】
このように、ExpertとApprenticeの動作を複数のセンサを用いて観測し、それぞれの距離を計算する模倣学習のフレームワークは、フィードバックを生成するために使用することができ、これにより、人間のApprenticeを対象としたトレーニングを実現することが可能となる。Apprenticeの動作aをExpertの動作a*に近付けるようなフィードバックがトレーニング中に継続的に与えられることにより、ApprenticeのPolicyが、ExpertのPolicyに近付くように改善していくことになる。
【0030】
また、Apprenticeを対象としたトレーニングの詳細なパフォーマンスを、動作時系列yなどに基づいてExpertに理解させることが可能となる。
【0031】
・センサについて
ExpertとApprenticeが動作を行う環境には、ExpertとApprenticeのそれぞれの動作と、環境の状態の観測に用いられる複数のセンサが設置される。それらのセンサには、カメラ、マイクロフォンの他に、マルチモーダルセンサなどの各種のセンサが含まれる。
【0032】
例えば、センサは、ExpertとApprenticeがいる部屋の所定の位置に設置される。また、ウェアラブルセンサがExpertやApprenticeの体に装着され、動作などの観測に用いられる。
【0033】
物理的なセンサではなく、バーチャルセンサが用いられるようにすることも可能である。バーチャルセンサは、例えば、ゲームエンジンや物理シミュレーター内に設けられる検出モジュールにより構成される。ゲームエンジンや物理シミュレーターによる演算によって生成された各種の動作と状態がバーチャルセンサによって観測される。
【0034】
・フィードバックデバイスについて
ExpertとApprenticeが動作を行う環境にはフィードバックデバイスが用意される。フィードバックデバイスは、TQA評価値の観点からは最適とはいえない動作をApprenticeがとっている場合に、そのことをApprenticeに対して認識させるために用いられる。フィードバックデバイスによるフィードバックを受けることにより、Apprenticeは、最適な動作に近付けるように自分の動作を調整することになる。
【0035】
フィードバックは、適宜、ApprenticeとExpertの両方に対して与えられる。人間のExpertに対するフィードバックは、例えば、Apprenticeが受けているフィードバックの内容をExpertが確認できるようにするために与えられる。Apprenticeが受けているフィードバックと同じ内容のフィードバックがExpertに与えられるようにしてもよいし、異なるフィードバックがExpertに与えられるようにしてもよい。
【0036】
フィードバックデバイスには、直接的なフィードバックデバイスと間接的なフィードバックデバイスが含まれる。
【0037】
直接的なフィードバックデバイスは、例えば、ApprenticeやExpertの身体に対して物理的な刺激、電気的な刺激を与える構成を有するデバイスである。人の触覚に対して情報を与える構成を有するデバイスが直接的なフィードバックデバイスとなる。味覚に対して情報を与える構成を有するデバイスが直接的なフィードバックデバイスとして用意されるようにしてもよい。
【0038】
直接的なフィードバックデバイスには、振動を発生させるデバイス、微弱な電気を発生させて人の筋肉を任意の方向に動かす構成を有するデバイスが含まれる。例えば、手に装着するグローブ型のデバイス、手首に装着するリストバンド型のデバイス、頭部に装着する帽子型のデバイス、上半身に装着するベスト型のデバイスなどが直接的なフィードバックデバイスとして用意される。
【0039】
一方、間接的なフィードバックデバイスは、身体に物理的な刺激を与えることなく、人の視覚、聴覚、嗅覚に対して情報を与える構成を有するデバイスである。
【0040】
間接的なフィードバックデバイスには、画像や文字を表示することによって視覚に対する情報を与えるためのディスプレイ、音を出力することによって聴覚に対する情報を与えるためのスピーカ、香りを発生することによって嗅覚に対する情報を与えるための香り生成デバイスが含まれる。間接的なフィードバックデバイスが部屋などの環境の所定の位置に設置されるようにしてもよいし、ゴーグル型のデバイス、イヤホンなどのように、ウエアラブルデバイスとして用意されるようにしてもよい。
【0041】
フィードバックデバイスには、体に装着するウェアラブルデバイス(第1のデバイス)と、トレーニングを行う空間などに設置されたデバイス(第2のデバイス)が含まれる。例えば、人の触覚に対して情報を与える構成を有する直接的なフィードバックデバイスが、第1のデバイスと第2のデバイスのうちの少なくともいずれかに含まれる。
【0042】
このように、模倣学習のフレームワークを活用したTQAシステムにより、定量的な評価を用いたトレーニングを受けることができるシステムが実現される。定量的な評価が用いられ、それに応じたフィードバックが与えられることから、Apprenticeは、属人的ではなく、標準化されたトレーニングを受けることが可能となる。
【0043】
すなわち、本技術を適用したTQAシステムは、ExpertのPolicyを学習するための人間のApprenticeを対象としたトレーニングの品質を保証することが可能なシステムである。
【0044】
また、人数の制限なく、複数人のApprenticeがトレーニングを受けることができる。そのトレーニングは、リアルタイムで、かつ、継続的に行われるようにすることが可能となる。
【0045】
<AgentによるPolicy π
φ
*の学習>
図1は、Agentの学習の例を示す図である。
【0046】
図1の例においては、Expertとして人間のシェフが示されている。Agentに学習させようとするPolicyは、ある料理を完成させるシェフのPolicyである。シェフのPolicyは、
図1の吹き出しに示すようにπ
φ
*として表される。タスクは、ある料理を完成させるための調理動作となる。
【0047】
Expertが有する所定のタスクに関するPolicy πφ
*をAgentに獲得させるための学習が、人間のApprenticeを対象としたトレーニングの前に行われる。
【0048】
以下においては、Expertがシェフ(調理人)である場合について主に説明するが、動作を伴うタスクに関するスキルを有する様々な人をExpertとすることが可能である。例えば、野球やサッカーなどの競技の選手、画家や彫刻家などのアーティスト、楽器を演奏する音楽家、陶芸家などの職人をExpertとすることも可能である。また、車などの移動体の運転のプロフェッショナル、掃除のプロフェッショナル、介護のプロフェッショナルなどの、様々なプロフェッショナルをExpertとすることが可能である。
【0049】
後述するように、模範となるゲームのプレイを行うAIエージェントをExpertとすることも可能である。すなわち、実際の空間において観測される人の動作だけではなく、コンピュータによる計算によって生成された動作に関するスキルを学習する場合にもTQAシステムは適用可能である。Expertが1人であってもよいし、複数人であってもよい。
【0050】
図1の例においては、タブレット端末である情報処理装置1に実装されたAgent1Aが学習者(Learner)として示されている。Expertが調理を行っている空間と同じ空間に情報処理装置1が用意されるようにしてもよいし、異なる空間に用意されるようにしてもよい。
【0051】
デモンストレーションとなる調理動作をExpertのシェフが行っている場合、Expertが調理を行っている環境の状態を表す観測値oと、Expertの動作a*が観測される。観測値oと動作a*の情報が矢印#1に示すように情報処理装置1に供給され、Agent1AのPolicy πθをExpertのPolicy πφ
*に近付けるための模倣学習が行われる。
【0052】
なお、Expertが調理を行っている環境には、カメラ、マイクロフォンなどの各種のセンサが設置されている。センサにより検出されたセンサデータに各種の信号処理を施すことによって観測値o、動作a*が観測され、その内容を表す情報が情報処理装置1に供給される。
【0053】
図2は、
図1の模倣学習をモデル化して示す図である。
【0054】
図2の左側の円はExpertを表し、中央の円は、Expertが調理を行っている環境を表す。右側の円は、LeanerであるAgent1Aを表す。
【0055】
矢印#11で示すように提供される環境の中でExpertが調理を行うことに応じて、Expertの動作a*と観測値oが、矢印#12で示すように観測される。Expertの動作a*は、Policy πφ
*に基づいて、観測値oが示す環境で行われる動作となる。動作a*と観測値oの観測が繰り返し行われることにより、動作a*と観測値oのペアの時系列データがExpertの動作時系列として取得され、記録される。
【0056】
同様に、矢印#13で示すように提供される環境の中でAgent1Aは動作を生成する。Agent1Aの動作aの生成は、Agent1Aが獲得している現在のPolicy πθに基づいて、観測値oが示す環境における動作を生成するようにして行われる。動作aは、コンピュータによって計算された仮想的な動作である。Agent1Aの動作aと観測値oが、矢印#14で示すように観測される。動作aと観測値oの観測が繰り返し行われることにより、動作aと観測値oのペアの時系列データがAgent1Aの動作時系列として取得され、記録される。
【0057】
学習アルゴリズムに応じて、動作a*と動作aの差がロスlとして求められる。また、所定の報酬関数に動作aを適用するなどして報酬rが求められる。矢印#15の先に示すように、ロスlまたは報酬rに基づく学習が行われ、Policy πθが更新される。
【0058】
模倣学習の学習アルゴリズムとして、例えば以下のアルゴリズムがある。
・BC(Behavior Cloning)
・DPL(Direct Policy Learning)
・IRL(Inverse Reinforcement Learning)
【0059】
BCは、Expertの動作時系列を利用した教師あり学習のアルゴリズムである。BCにおいては、Expertの動作時系列とApprenticeの動作時系列に基づいてそれぞれのPolicyが構築される。例えば、ExpertのPolicy πφ
*と、ApprenticeのPolicy πθとの差をロスとして求め、ロスを最小化するようにPolicy πθの調整が行われる。
【0060】
DPLは、Expertの動作時系列を参照しながら、Policy πθを更新していくアルゴリズムである。DPLの1つであるDAggerにおいては、Policy πφ
*とPolicy πθとを融合し、新たなPolicy πの構築が行われる。新たなPolicy πに基づいて動作時系列が生成され、Policy πθの学習が行われる。
【0061】
IRLは、Policy πφ
*を使用して報酬関数Rを推定する学習アルゴリズムである。推定された報酬関数Rを用いて、強化学習が再度行われる。
【0062】
GAIL(Generative Adversarial Imitation Learning)などの他の学習アルゴリズムが用いられるようにしてもよい。環境のモデルを学習に使用するモデルベースの学習が行われるようにしてもよいし、環境のモデルを使用せずに、環境において実際に観測された情報を使用して学習を行うモデルフリーの学習が行われるようにしてもよい。
【0063】
このような模倣学習が行われることによって、ExpertのPolicy πφ
*がAgent1Aによって獲得される。
【0064】
<人間のApprenticeによるPolicy π
φ
*の学習>
図3は、Apprenticeのトレーニングの例を示す図である。
【0065】
図3の左側に示すように、情報処理装置1には、Policy π
φ
*を獲得したAgent1Aが実装される。Policy π
φ
*を獲得したAgent1Aは、TQAシステムにおけるExpertとして機能する。
【0066】
ExpertとしてのAgent1Aが生成する動作は、
図1のシェフが生成する動作と基本的に同じ動作となる。Agent1Aを模倣学習におけるExpertとして、ExpertのPolicy π
φ
*を学習するためのトレーニングがApprenticeによって行われる。
【0067】
この例においては、Policy π
φ
*を獲得するための学習に用いられた装置と同じ装置である情報処理装置1にExpertとしてのAgent1Aが実装されるものとしたが、それぞれ異なる装置に実装されるようにしてもよい。すなわち、Policy π
φ
*を獲得するための学習に用いられた
図1の情報処理装置1とは異なる装置にExpertとしてのAgent1Aが実装されるようにすることが可能である。
【0068】
例えば、シェフと同じ調理動作を行うことが可能なロボットにExpertとしてのAgent1Aが実装されるようにしてもよい。ロボットアームなどが設けられたロボットにAgent1Aが実装されている場合、Apprenticeは、ロボットの調理動作を見ながらトレーニングを行うことが可能となる。
【0069】
Apprenticeが調理動作を行う空間と同じ空間に情報処理装置1が用意されるようにしてもよいし、異なる空間に用意されるようにしてもよい。Apprenticeが調理動作を行う空間に用意されたセンサとフィードバックデバイスが、有線または無線の通信を介して情報処理装置1に接続される。
【0070】
図3の右側に示すApprenticeは、
図1のシェフとは異なる人物である。Apprenticeが1人であってもよいし、複数人であってもよい。TQAシステムにおいては、複数のApprenticeが同時にトレーニングを行うことができる。
【0071】
ある料理を完成させるシェフのPolicyを学習する場合、
図3のApprenticeは、
図1のシェフの動作を真似した調理動作を行うことになる。Apprenticeの動作は、Apprenticeの現在のPolicy π
θに基づく動作となる。Apprenticeが調理を行っている環境の状態を表す観測値oと、Apprenticeの動作aが観測される。
【0072】
観測値oと動作aの情報が矢印#21に示すように情報処理装置1に供給され、模倣学習のフレームワークに従って、例えばAgent1Aの動作a*との差が求められる。
【0073】
また、動作a*と動作aとの差に応じて生成されたフィードバックが、矢印#22に示すようにApprenticeに対して与えられる。フィードバックとして、Apprenticeの動作aを動作a*に近付けるための刺激が与えられる。
【0074】
フィードバックが与えられることに応じてApprenticeが自分の動作aを修正し、動作a
*を覚えることにより、ApprenticeのPolicy π
θが、Agent1AのPolicy π
φ
*、すなわち、
図1のシェフのPolicy π
φ
*に近付くように更新されていくことになる。
【0075】
図4は、
図3の模倣学習をモデル化して示す図である。
【0076】
図4の左側の円はExpert(Agent1A)を表し、中央の円は、Apprenticeが調理を行っている環境を表す。右側の円は、LeanerであるApprenticeを表す。
【0077】
矢印#31で示すように提供される環境の中でApprenticeが調理を行うことに応じて、Apprenticeの動作aと観測値oが、矢印#32で示すように観測される。Apprenticeの動作aは、Policy πθに基づいて、観測値oが示す環境で行われる動作となる。動作aと観測値oの観測が繰り返し行われることにより、動作aと観測値oのペアの時系列データがApprenticeの動作時系列として取得され、記録される。
【0078】
同様に、矢印#33で示すように提供される環境の中でAgent1Aは動作を生成する。Agent1Aの動作a*の生成は、Policy πφ
*に基づいて、観測値oが示す環境における動作を生成するようにして行われる。Agent1Aの動作a*と観測値oが、矢印#34で示すように観測される。動作a*と観測値oの観測が繰り返し行われることにより、動作a*と観測値oのペアの時系列データがAgent1Aの動作時系列として取得され、記録される。
【0079】
学習アルゴリズムに応じて、動作a*と動作aの差がロスlとして求められる。また、所定の報酬関数に動作aを適用するなどして報酬rが求められる。矢印#35の先に示すように、ロスlまたは報酬rに応じたフィードバックが生成され、Apprenticeに対して与えられる。
【0080】
フィードバックが与えられることに応じてApprenticeが動作a*を覚えることにより、矢印#36に示すように、ApprenticeのPolicy πθが、Policy πφ
*に近付くように更新される。
【0081】
このように、本技術を適用したTQAシステムにおいては、ExpertのPolicy πφ
*を学習するためのトレーニングが、模倣学習のフレームワークを用いて実現される。Apprenticeの動作などがセンサを用いて観測され、Apprenticeに対するフィードバックが与えられるため、定量的なトレーニングが可能となる。
【0082】
<TQAシステムの構成>
ここで、以上のようなトレーニングを実現するTQAシステムの構成要素について説明する。
【0083】
・環境について
Expertがタスクの動作を行ったり、ApprenticeがExpertの動作を真似した動作を行ったりする環境においては、学習プロセスに関連のある全ての状態がセンサを用いて検出される。検出対象には、ExpertやApprenticeによる環境への干渉の内容が含まれる。
【0084】
例えば、学習プロセスによって異なる物理量がセンサにより検出される。また、RGBカメラなどのセンサによる検出結果に基づいて、TQAシステムにおいて定義された指標であるTQA評価値が求められる。
【0085】
・センサについて
TQAシステムにおける上記一連の処理は、環境の状態の検出結果を用いて実現される。センサによる検出結果に基づいて観測値oが求められる。
【0086】
【0087】
図5に示すように、ビジョンセンサ11A、触覚センサ11B、香りセンサ11C、味覚センサ11D、サウンドセンサ11E、温度センサ11F、距離センサ11G、生体センサ11H、バーチャルセンサ11Iなどの各種のセンサを含むセンサ群11が用いられる。各センサによる検出結果に対して所定の信号処理が施され、観測値oが求められる。
【0088】
ビジョンセンサ11Aは、例えば、RGBカメラやステレオカメラなどのカメラにより構成される。ビジョンセンサ11Aにより撮影された画像に基づいて例えば空間認識が行われ、空間認識の結果を含む観測値oが求められる。また、ビジョンセンサ11Aにより撮影された画像に基づいて、ExpertやApprenticeの動作が認識される。
【0089】
触覚センサ11Bは、圧力センサ、タッチパネルなどにより構成される。触覚センサ11Bは、ExpertやApprenticeによる手などでの操作を検出する。
【0090】
香りセンサ11Cは、例えばApprenticeが調理動作を行っている場合、調理中の食材の香りを検出する。
【0091】
味覚センサ11Dは、例えばApprenticeが調理動作を行っている場合、調理中の食材の味を検出する。甘味・塩味・酸味・苦味・うま味のそれぞれの成分を検出するセンサによって味覚センサ11Dが構成される。
【0092】
サウンドセンサ11Eは、例えばマイクロフォンにより構成され、ExpertやApprenticeがいる環境の音を検出する。
【0093】
温度センサ11Fは、ExpertやApprenticeがいる環境の温度を検出する。
【0094】
距離センサ11Gは、ApprenticeとExpertの体の各部までの距離を検出するとともに、ExpertやApprenticeがいる環境にある各物体までの距離を検出する。
【0095】
生体センサ11Hは、心拍、体温、血圧などの、ApprenticeとExpertの生体反応を検出する。
【0096】
ビジョンセンサ11Aなどの物理的なセンサ以外にもバーチャルセンサ11Iが設けられる。例えば、Apprenticeのトレーニングが、ゲーム空間やシミュレーター空間で行われる動作のトレーニングである場合などにバーチャルセンサ11Iが用いられる。
【0097】
このように、人間の感覚を真似した機能、または、人間の感覚の能力を超えた機能を有する各種のセンサが、環境などの状態を定量的に表現した観測値oの観測に用いられる。観測値oは例えばベクトル情報である。
【0098】
それぞれのセンサには、観測値oの生成に用いられる情報を抽出したり算出したりするための信号処理モジュールが設けられる。例えば、ビジョンセンサ11Aには、画像を解析することによって対象物体のトラッキングを行い、トラッキング結果を出力するための信号処理モジュールが設けられる。各センサ用の信号処理モジュールがセンサの筐体の内部に設けられるようにしてもよいし、外部に設けられるようにしてもよい。信号処理モジュールが情報処理装置1に設けられるようにしてもよい。
【0099】
・フィードバックデバイスについて
図6は、フィードバックデバイスの例を示す図である。
【0100】
図6に示すように、ビジョンデバイス12A、触覚デバイス12B、香り生成デバイス12C、味覚生成デバイス12D、サウンドデバイス12E、温度制御デバイス12F、生体デバイス12Gなどの各種のデバイスを含むフィードバックデバイス群12が用いられる。後述するフィードバック生成部から供給された制御情報に基づいて、ExpertやApprenticeに対するフィードバックが与えられる。ExpertとApprenticeに与えられるフィードバックがそれぞれ異なるフィードバックであってもよいし、同じフィードバックであってもよい。
【0101】
ビジョンデバイス12Aは、LCDなどのディスプレイ、HMD(Head Mounted Display)、プロジェクタなどの、視覚を通じて情報を提示するデバイスにより構成される。例えば、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる情報がビジョンデバイス12Aによって表示される。
【0102】
触覚デバイス12Bは、例えば振動発生デバイスにより構成される。触覚デバイス12Bは、例えばApprenticeの体に装着され、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる振動が触覚デバイス12Bによって提示される。
【0103】
香り生成デバイス12Cは、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる香りを発生させる。
【0104】
味覚生成デバイス12Dは、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる味を発生させる。
【0105】
サウンドデバイス12Eは、スピーカやイヤホンなどにより構成される。サウンドデバイス12Eは、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる音を出力する。サウンドデバイス12Eが出力する音には、音声、音楽、効果音などの各種の音が含まれる。
【0106】
温度制御デバイス12Fは、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる温度を発生させる。温度制御デバイス12Fの人は例えばApprenticeの体に装着して用いられる。
【0107】
生体デバイス12Gは、例えば、Apprenticeの体に電気信号を与え、筋肉を強制的に動かすことによって、Apprenticeの動作をExpertの動作に近付けるためのガイドとなる情報を提示する。
【0108】
このように、人間の感覚を刺激する各種のデバイスがフィードバックデバイスとして用いられる。
【0109】
それぞれのフィードバックデバイスには、図示せぬフィードバック生成部から供給された制御情報に基づいて、フィードバックを生成するための信号処理モジュールが設けられる。各フィードバックデバイスの信号処理モジュールがデバイスの筐体の内部に設けられるようにしてもよいし、外部に設けられるようにしてもよい。信号処理モジュールが情報処理装置1に設けられるようにしてもよい。
【0110】
<第1の学習例(BCを適用した例)>
模倣学習のフレームワークを用いたTQAシステムにおける学習の具体例について説明する。
【0111】
図7は、Apprenticeを対象とした第1の学習例を示す図である。
【0112】
図7の例においては、Expertが人間であり、人間のExpertと人間のApprenticeが例えば同じ環境にいるものとする。Apprenticeによるトレーニングは、例えば、所定のタスクに関するExpertの動作をApprenticeが直接見て、Expertの動作の真似をしながら進められる。
図7の例においては、小さな壺を形成する手先を使った動作を含むタスクが示されている。
【0113】
ここでは、Expertの動作a*を観測値oとともに観測できるものとする。動作a*は、壺を形成する最適な動作である。また、ExpertとApprenticeが同じ環境にいることから、Apprenticeがいる環境における観測値o(観測値ベクトル[o]θ)と、Expertがいる環境における観測値o(観測値ベクトル[o]φ)が一致する。
【0114】
図7に示すトレーニングは、模倣学習におけるBCを用いたトレーニングに相当する。
図7の例においては、
図1、
図2を参照して説明したような、Policy π
φ
*を獲得するための事前の学習は不要となる。
【0115】
図7に示すように、ExpertとApprenticeがいる環境にはセンサ群11とフィードバックデバイス群12が設けられる。情報処理装置1においては、所定のプログラムが実行されることによって情報処理部21が実現される。情報処理部21は、学習部31とフィードバック生成部32により構成される。
【0116】
タスクの動作の開始後、Expertの動作at
*が観測され、矢印#51に示すように情報処理部21に供給される。また、Apprenticeの動作atが観測され、矢印#52に示すように情報処理部21に供給される。
【0117】
環境の状態s
tがセンサ群11により検出され、矢印#53,#54に示すように観測値o
tとして情報処理部21に供給される。Expertの動作a
t
*とApprenticeの動作a
tの情報は、例えば観測値o
tを構成する一部の情報として情報処理部21に供給される。例えばApprenticeの動作a
tは、Apprenticeが動作を行う前後の観測値o
tを比較することによって観測される。動作a
tは、Policy π
θ(o
t)の関数を用いることにより下式(5)により表される。
【数5】
【0118】
情報処理部21においては、人間であるExpertとApprenticeのそれぞれの動作を表す情報が観測値の情報とともに取得される。
【0119】
情報処理部21の学習部31は、動作at
*と観測値otとのペアの時系列データをExpertの動作時系列として記録する。また、学習部31は、動作atと観測値otとのペアの時系列データをApprenticeの動作時系列として記録する。
【0120】
学習部31は、動作a
t
*と動作a
tをロス関数Lに適用することによってロスl
tを算出する。ロスl
tは下式(6)により表される。ロス関数Lは任意に設定可能である。
【数6】
【0121】
学習部31は、Policy πθをロスltなどに基づいて更新し、更新後のPolicy πθを記録する。
【0122】
フィードバック生成部32は、動作a
t
*と動作a
tをフィードバック関数Fに適用することによってフィードバックf
tを生成し、フィードバックf
tを表す制御情報を矢印#55に示すようにフィードバックデバイス群12に出力する。フィードバックf
tは下式(7)により表される。フィードバック関数Fは、ロスl
tに応じたフィードバックf
tを求めるための関数である。
【数7】
【0123】
フィードバックデバイス群12を構成するそれぞれのフィードバックデバイスは、フィードバックftに応じて動作し、動作atを動作at
*に近付けるためのフィードバックを矢印#56に示すようにApprenticeに出力する。適宜、フィードバックftに応じたフィードバックがExpertに対しても出力される。
【0124】
このように、
図7の例においては、模倣学習であるBCのフレームワークを用いてフィードバックが生成され、Apprenticeに対して出力される。自身の動作aをExpertの動作a
*に近付けるようなフィードバックがトレーニング中に継続的に与えられることにより、Apprenticeは、Policy π
φ
*を自分のPolicyとして獲得することができる。
【0125】
BCを用いた
図7の例においては、例えば、TQA評価値d
tがロスl
tに基づいて算出され、ビジョンデバイス12Aを用いて提示される。TQA評価値を見たApprenticeは、Expertの動作a
*と自分の動作aの差を定量的に確認することができる。TQA評価値d
tの提示がビジョンデバイス12A以外のフィードバックデバイスを用いて行われるようにしてもよい。
【0126】
ロスltがそのままTQA評価値dtとして提示されるようにしてもよいし、ロスltを用いた所定の計算を行うことによって求められた値がTQA評価値dtとして提示されるようにしてもよい。Expertの動作時系列に基づいてPolicy πφ
*の学習が行われ、Policy πφ
*とPolicy πθとの差に基づいてTQA評価値dtが求められるようにしてもよい。Expertの動作a*がPolicy πφ
*に基づいて生成され、Apprenticeの動作aがPolicy πθに基づいて生成されるから、Policy πφ
*とPolicy πθの差は、動作a*と動作aの差を表すともいえる。
【0127】
TQA評価値dtがExpertにも提示されるようにしてもよい。Expertは、Apprenticeのトレーニングがどの程度進んでいるのかを確認することができる。すなわち、Apprenticeに対して、または、ApprenticeとExpertの2人に対してTQA評価値dtが提示されるようにすることが可能である。
【0128】
Policy πφ
*の学習が行われている場合、Apprenticeのトレーニングは、例えば、Policy πφ
*とPolicy πφの差が所定の差より小さくなるなどの所定の条件を満たすようになるまで続けられる。Policy πφ
*とPolicy πφの差が所定の条件を満たした場合、Apprenticeのトレーニングは終了となる。
【0129】
<第2の学習例(DPLを適用した例)>
図8は、Apprenticeを対象とした第2の学習例を示す図である。
図8に示す構成のうち、
図7を参照して説明した構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。後述する
図9においても同様である。
【0130】
図8の例においては、Apprenticeがいる環境にExpertがいないものとする。Apprenticeによるトレーニングは、例えば、所定のタスクに関するデモンストレーションとなる動作のガイドを見て、ApprenticeがExpertの動作の真似をしながら進められる。
【0131】
図8の例においては、
図1、
図2を参照して説明したようなPolicy π
φ
*を獲得するための学習が行われており、矢印#61に示すようにPolicy π
φ
*が学習部31にあらかじめ用意される。模倣学習によって獲得された所定のタスクに関するPolicy π
φ
*の情報が、Apprenticeを対象としたトレーニングの開始前に情報処理部21により取得されることになる。
図8に示すトレーニングは、模倣学習におけるDPLを用いたトレーニングに相当する。
【0132】
タスクの動作の開始後、Apprenticeの動作atが観測され、矢印#62に示すように情報処理部21に供給される。また、環境の状態stがセンサ群11により検出され、矢印#63,#64に示すように観測値otとして情報処理部21に供給される。Apprenticeの動作atの情報は、例えば観測値otを構成する一部の情報として情報処理部21に供給される。
【0133】
情報処理部21の学習部31は、動作a
tと観測値o
tとのペアの時系列データをApprenticeの動作時系列として記録する。動作a
tが、それまでに獲得されているPolicy π
θに観測値o
tを適用することによってπ
θ(o
t)として計算によって求められ、動作時系列の記録に用いられるようにしてもよい。また、学習部31は、Policy π
φ
*に観測値o
tを適用することによって動作a
t
*を求め、Expertの動作時系列を生成して記録する。ApprenticeとExpertのそれぞれの動作時系列は下式(8)、(9)として表される。
【数8】
【数9】
【0134】
学習部31は、動作a
t
*と動作a
tをロス関数Lに適用することによってロスl
tを算出する。ロスl
tは下式(10)により表される。
【数10】
【0135】
学習部31は、Policy πθをロスltなどに基づいて更新し、更新後のPolicy πθを記録する。
【0136】
フィードバック生成部32は、動作a
t
*と動作a
tをフィードバック関数Fに適用することによってフィードバックf
tを生成し、フィードバックf
tを表す制御情報を矢印#65に示すようにフィードバックデバイス群12に出力する。フィードバックf
tは下式(11)により表される。
【数11】
【0137】
フィードバックデバイス群12を構成するそれぞれのフィードバックデバイスは、フィードバックftに応じて動作し、動作atを動作at
*に近付けるためのフィードバックを矢印#66に示すようにApprenticeに出力する。
【0138】
このように、
図8の例においては、模倣学習であるDPLのフレームワークを用いてフィードバックが生成され、Apprenticeに対して出力される。動作aをExpertの動作a
*に近付けるようなフィードバックがトレーニング中に継続的に与えられることにより、Apprenticeは、Policy π
φ
*を自分のPolicyとして獲得することができる。
【0139】
<第3の学習例(IRLを適用した例)>
図9は、Apprenticeを対象とした第3の学習例を示す図である。
【0140】
図9の例においても、Apprenticeがいる環境にExpertがいないものとする。Apprenticeによるトレーニングは、例えば、所定のタスクに関するデモンストレーションとなる動作のガイドを見て、ApprenticeがExpertの動作の真似をしながら進められる。
【0141】
図9の例においては、
図1、
図2を参照して説明したようなPolicy π
φ
*を獲得するための学習が行われており、矢印#71に示すようにPolicy π
φ
*が学習部31にあらかじめ用意される。模倣学習によって獲得された所定のタスクに関するPolicy π
φ
*の情報が、Apprenticeを対象としたトレーニングの開始前に情報処理部21により取得されることになる。
図9に示すトレーニングは、模倣学習におけるIRLを用いたトレーニングに相当する。
【0142】
タスクの動作の開始後、Apprenticeの動作atが観測され、矢印#72に示すように情報処理部21に供給される。また、環境の状態stがセンサ群11により検出され、矢印#73,#74に示すように観測値otとして情報処理部21に供給される。Apprenticeの動作atの情報は、例えば観測値otを構成する一部の情報として情報処理部21に供給される。
【0143】
情報処理部21の学習部31は、動作atと観測値otとのペアの時系列データをApprenticeの動作時系列として記録する。また、学習部31は、Policy πφ
*に観測値otを適用することによって動作at
*を求め、Expertの動作時系列を生成して記録する。
【0144】
学習部31は、Apprenticeの動作時系列に基づいてPolicy π
θの学習を行い、Policy π
φ
*とPolicy π
θとの距離(差)をTQA評価値d
tとして算出する。Policy π
φ
*とPolicy π
θの距離は、KL divergence(D
KL)やJS divergence(D
JS)などを用いて、下式(12)により求められる。
【数12】
【0145】
学習部31は、例えば、Expertの動作時系列とPolicy πφ
*とに基づいてIRLを行い、報酬関数Rφ
*を推定する。学習部31は、報酬関数Rφ
*の情報をフィードバック生成部32に出力する。報酬関数Rφ
*を用いて推定された報酬rに基づいてTQA評価値dtが求められるようにしてもよい。
【0146】
フィードバック生成部32は、報酬関数R
φ
*、動作a
t、観測値o
tをフィードバック関数Fに適用することによってフィードバックf
tを生成し、フィードバックf
tを表す制御情報を矢印#75に示すようにフィードバックデバイス群12に出力する。フィードバックf
tは下式(13)により表される。動作a
tが、それまでに獲得されているPolicy π
θに観測値o
tを適用することによってπ
θ(o
t)として計算によって求められ、動作時系列の記録に用いられるようにしてもよい。
【数13】
【0147】
フィードバックデバイス群12を構成するそれぞれのフィードバックデバイスは、フィードバックftに応じて動作し、動作atを動作at
*に近付けるためのフィードバックを矢印#76に示すようにApprenticeに出力する。
【0148】
このように、
図9の例においては、模倣学習であるIRLのフレームワークを用いてフィードバックが生成され、Apprenticeに対して出力される。動作aをExpertの動作a
*に近付けるようなフィードバックがトレーニング中に継続的に与えられることにより、Apprenticeは、Policy π
φ
*を自分のPolicyとして獲得することができる。
【0149】
<フィードバック生成の詳細について>
TQAシステムにおいては、Agentを対象とした学習とは異なり、人間のApprenticeを対象としたトレーニングが行われる。トレーニングの対象が人間であるために、人間の感覚に対するフィードバックが与えられる。
【0150】
フィードバックは、タスクに応じた計画能力、決定能力、実行能力に関するパフォーマンスを向上させるために与えられる必要がある。パフォーマンスはTQA評価値によって表される。TQAシステムの利点は、Apprenticeの学習プロセスとフィードバックの仕組みを形式化することができるために、分析と最適化が可能となる点にある。
【0151】
TQAシステムにおいては、ライブフィードバック(live feedback)であるフィードバックfと、TQA評価値dとの2種類のフィードバックが用いられる。ライブフィードバックは、動作を行っているApprenticeに対してフィードバックデバイスを用いて与えられるフィードバックである。なお、TQA評価値dも、Apprenticeが動作を行うことによって算出され、Apprenticeに提示されるという点でフィードバックといえる。
【0152】
フィードバック関数Fは、例えば、Expertの動作とApprenticeの動作の差に応じたフィードバックfを生成するための関数となる。Apprenticeの感覚を刺激するためのフィードバックfとして、所定のパターンの振動を発生させたり、ディスプレイに各種の情報を表示させたりするための制御情報がフィードバック関数Fに基づいて生成される。
【0153】
例えば、レーシングゲームの運転に関するタスクにおいて、コントローラとして用意されたステアリングホイールを回転させる動作がApprenticeによって行われ、所定の回転量が検出されたものとする。回転量は例えば[-1,1]のように正規化された値として検出される。
【0154】
この場合、Expertの動作とApprenticeの動作の差に比例する強度の振動をステアリングホイールに発生させるためのフィードバックfが生成され、ステアリングホイールを握っているApprenticeに与えられる。この場合、ステアリングホイールに搭載された振動発生デバイスがフィードバックデバイスとして用いられる。
【0155】
また、Expertによるステアリングホイールの回転動作を表す映像が生成され、視覚的なフィードバックとして、Apprenticeが見ているレーシングゲームの画面上に表示される。この場合、レーシングゲームの画面を表示するディスプレイがフィードバックデバイスとして用いられる。
【0156】
ExpertのPolicy πφ
*とApprenticeのPolicy πθとの差を表すTQA評価値dは、学習プロセスにおけるApprenticeのパフォーマンスの分析に用いられる定量的な値として定義される。また、Apprenticeのパフォーマンスレベルなどの、スキルの質を表す値として定義される。
【0157】
各時刻tにおいて取得される観測値o
tを用いた場合、TQA評価値d
tは下式(14)のようにも表される。TQA評価値d
tは、Apprenticeの動作時系列の分析結果ともいえる。
【数14】
【0158】
<学習アルゴリズムの具体例について>
ここで、DPLを適用した学習(第2の学習例)の具体例について説明する。
【0159】
図10は、DAggerを用いた場合のDPLのアルゴリズムの例を示す図である。各ステップの処理を
図10の左端に示す行番号を用いて説明する。ここでは、模倣学習によって獲得されたExpertのPolicy π
φ
*が、シェフなどのExpertのPolicyを適切に表しているものとする。
【0160】
ステップS1において、Apprenticeの動作時系列が初期化される。Apprenticeの動作時系列の初期化は下式(15)により表される。
【数15】
【0161】
ステップS2において、ApprenticeのPolicy π
θが所定のPolicyを用いて初期化される。Policy π
θの初期化は下式(16)により表される。添え字の0は、Policy π
θの学習のトライアル回数kを表す。
【数16】
【0162】
Apprenticeの動作時系列とPolicy πθが初期化された後、ステップS3として示すように以下の処理がK回繰り返される。
【0163】
ステップS4において、ApprenticeのPolicy π
θが更新される。Policy π
θの更新は、Policy π
φ
*を用いて下式(17)により表される。式(17)のαは、例えば、TQA評価値dの初期値に基づいて決定される。
【数17】
【0164】
ステップS5以降の処理が、時刻t毎に動作時系列ytを収集し、Apprenticeに対してフィードバックを与えるためのループ処理となる。
【0165】
ステップS6において、動作a
tと観測値o
tがセンサ群11の検出結果に基づいて観測される。動作a
tと観測値o
tのペアが、Apprenticeの動作時系列を構成するサンプルy
tとして取得される。y
tは下式(18)により表される。
【数18】
【0166】
ステップS7において、動作a
tと観測値o
tに基づいてフィードバックf
tが求められ、フィードバックデバイス群12によってフィードバックがApprenticeに与えられる。フィードバックf
tは下式(19)により表される。
【数19】
【0167】
式(19)のフィードバック関数Fは、Policy πφ
*に観測値otを適用して求められる動作at
*と、動作atとの差に応じたフィードバックを生成する関数である。
【0168】
ステップS8において、サンプルy
tが動作時系列〔Y〕
θに追加され、動作時系列[Y]
θが更新される。動作時系列[Y]
θの更新は下式(20)により表される。
【数20】
【0169】
時刻t毎に行われるステップS6乃至S8の処理が、例えば所定の時間である時間Tの間、繰り返される(ステップS5)。
【0170】
ステップS6乃至S8の処理が時間Tの間に繰り返し行われた後、ステップS10において、それまでに取得されたデータセットである動作時系列[Y]θに基づいてPolicy πθ([π~k+1]θ)の学習が行われる。動作時系列[Y]θは、Apprenticeの現在のスキルレベルを最もよく表しているデータである。動作時系列[Y]θには、継続的に与えられたフィードバックに応じてApprenticeがとった適応的な動作の情報が含まれる。
【0171】
ステップS11において、TQA評価値d
kが求められ、提示される。TQA評価値d
kは下式(21)により表される。
【数21】
【0172】
ステップS4乃至S11の処理がK回繰り返された後(ステップS3)、ステップS13において、例えば、TQA評価値dkが最も高いPolicy[π~k+1]θが記録される。その後、一連の学習処理は終了となる。
【0173】
このように、人間のApprenticeを対象とした学習プロセスと、動作時系列を集約してPolicy πθを学習するDPLの学習プロセスとは同様のプロセスとなる。DPLによる学習プロセスを人間のApprenticeを対象とした学習プロセスに適用することが可能となる。
【0174】
なお、以上の処理のうち、ステップS7の処理はフィードバック生成部32が実行する処理である。ステップS7以外の処理は学習部31が実行する処理である。
【0175】
<DPLを用いた学習の適用例>
ここで、ビデオゲームについてのExpertのPolicy πφ
*を人間のApprenticeが学習する場合のトレーニングについて説明する。
【0176】
TQAシステムには、例えばレーシングゲームのExpertのPolicy πφ
*を学習したAIエージェントが用意される。このようなAIエージェントには、例えばGran Turismo Sophy(商標)がある(https://www.gran-turismo.com/jp/gran-turismo-sophy/)。トレーニング中、Policy πφ
*に基づいて生成された、レースで勝利するためのフィードバックがApprenticeに対して与えられる。
【0177】
図11は、DPLを用いた学習の流れを示す図である。
【0178】
図11の上方に示すように、Apprenticeがレーシングゲームを行う環境における状態sを観測するセンサとしてバーチャルセンサ11Iが用いられる。バーチャルセンサ11Iは、Game Engine111により構成される。Game Engine111は、レーシングゲームの進行に応じた状態s
tを生成するとともに、それを検出するバーチャルセンサとして機能する。Game Engine111が生成する状態s
tが、観測値o
tに相当する。
【0179】
Game Engine111が生成する状態stに基づいて、矢印#101の先に示すようにレーシングゲームの画面Ptが表示される。LearnerであるApprenticeは、ディスプレイに表示される画面Ptを見て動作atを行う(矢印#102)。
【0180】
動作atには、ステアリングホイールを回転させて自分の車体を動かす動作、アクセルペダルを踏む動作、ブレーキペダルを踏む動作などの複数の動作が含まれる。これらの動作が、シミュレーション用のコントローラデバイスとして物理的に用意されたステアリングホイール、アクセルペダル、ブレーキペダルを用いて行われるようにしてもよいし、十字キーやボタンが設けられたコントローラを用いて行われるようにしてもよい。
【0181】
動作atの情報は、情報処理部21に供給されるとともに、Apprenticeの動作時系列[Y]θの記録に用いられる(矢印#103)。動作時系列[Y]θの記録には、Game Engine111が生成する状態stの情報も用いられる(矢印#104)。
【0182】
一方、Game Engine111が生成する状態stを適用することにより、Policy πφ
*を有するAIエージェントにより動作at
*が生成される。動作at
*にも、ステアリングホイールを回転させて車体を動かす動作、アクセルペダルを踏む動作、ブレーキペダルを踏む動作などの複数の動作が含まれる。動作at
*の情報は情報処理部21に供給される(矢印#105)。
【0183】
情報処理部21においては、動作at
*と動作atに基づいて、それぞれの動作の差分Δaiに応じたライブフィードバックであるフィードバックftが生成される。
【0184】
図11の例においては、アクセルペダルを踏む動作に関するフィードバックf
tとしてフィードバックF
1(Δa
1)が生成され、ブレーキペダルを踏む動作に関するフィードバックf
tとしてフィードバックF
2(Δa
2)が生成される。また、ステアリングホイールの回転に関するフィードバックf
tとしてフィードバックF
3(Δa
3)が生成される。
【0185】
矢印#106乃至#108の先に示すように、フィードバックF1(Δa1),F2(Δa2),F3(Δa3)に基づいて、アクセルペダルを踏む動作、ブレーキペダルを踏む動作、ステアリングホイールの回転動作のそれぞれのガイドとなる情報が、時刻t+1の画面である画面Pt+1に配置される。画面Pt+1は、Game Engine112によって動作at
*に応じて生成された状態st+1を表す画面である(矢印#109)。
【0186】
【0187】
画面Pt+1の略中央に色を付して示すように操作対象となる車体121が表示される。画面Pt+1の右側には、アクセルペダルを示すアイコン131とブレーキペダルを示すアイコン132が配置される。また、画面Pt+1の左側には、ステアリングホイールを示すアイコン133が配置される。アイコン131乃至133は、例えばレーシングゲームの映像に重ねて配置される。
【0188】
アクセルペダルの補正量が、フィードバックF1(Δa1)に基づいてアイコン131によって提示され、ブレーキペダルの補正量が、フィードバックF2(Δa2)に基づいてアイコン132によって提示される。また、ステアリングホイールの補正量が、フィードバックF3(Δa3)に基づいてアイコン133によって提示される。例えば、アイコン131の表示は、AIエージェントのアクセルペダルの動作(操作)に近付けるための動作を示す表示となる。
【0189】
図11の説明に戻り、矢印#110の先に示すように、画面P
t+1を画面P
tに重ねた画面が表示され、これにより、ビジョンデバイス12Aを用いたフィードバックが行われる。画面P
t+1の車体121は、1時刻だけ先の時刻における動作a
t
*に応じた車体の状態を示すいわゆるゴーストカーとして画面P
t上に表示される。
【0190】
状態st+1の情報を画面Pt上に重ねて表示させることにより、最適なレース戦略についての詳細な洞察をApprenticeに提供し、1時刻先の計画を事前に立てさせることが可能となる。
【0191】
矢印#111の先に示すように、
図11の例においては、触覚デバイス12Bを用いたフィードバックがフィードバックF
3(Δa
3)として与えられる。Apprenticeは、例えば、ステアリングホイールを握っている手に与えられた振動によって、ステアリングホイールの回転補正量を認識することができる。このように、Apprenticeに対するフィードバックの出力が複数種類のフィードバックデバイスを用いて行われる。
【0192】
このような一連の処理が時刻t毎に反復して行われる。反復処理の間(時間T)に蓄積された動作時系列[Y]
θに基づいて、
図11の下方に示すようにPolicy π
Θの学習が行われる。また、矢印#112の先に示すように、Policy π
φ
*と学習済みのPolicy π
Θとに基づいてTQA評価値dが求められ、Apprenticeに提示される。
【0193】
TQA評価値が提示されることにより、Apprenticeは、AIエージェントとのスキルの差を認識することができる。
【0194】
TQAシステムにおける以上のようなトレーニングは、レーシングゲーム以外のビデオゲームについてのPolicy πφ
*を学習する場合のトレーニングにも適用可能である。ビデオゲーム以外にも、バーチャル空間上で動作を伴って行われる各種のタスクについてのPolicy πφ
*を学習する場合のトレーニングにも適用可能である。
【0195】
<変形例>
図13は、TQAシステムの他の構成例を示す図である。
【0196】
図13の例においては、所定のタスクに関するExpertのPolicy π
φ
*を獲得済みの情報処理装置1がネットワーク201上のサーバとして用意される。情報処理装置1により、複数人のApprenticeを対象としたトレーニングがインターネットなどのネットワーク201を介して提供される。
【0197】
図13にはApprentice1とApprentice2の2人のApprenticeが示されているが、さらに多くのApprenticeがトレーニングを行うことも可能である。同じタスクについてのトレーニングを複数人のApprenticeが同時に行うようにしてもよいし、それぞれ異なるタイミングで行うようにしてもよい。
【0198】
図13に示すように、Apprentice1が学習に使う端末として情報処理端末211-1が用意され、Apprentice2が学習に使う端末として情報処理端末211-2が用意される。情報処理端末211-1と情報処理端末211-2には、それぞれセンサ群11とフィードバックデバイス群12が接続される。
【0199】
情報処理装置1は、情報処理端末211-1と情報処理端末211-2を含む、それぞれのApprenticeが使用する情報処理端末との間で通信を行う。例えば、情報処理装置1は、情報処理端末211-1から送信されてきたApprentice1の人の動作atの情報と観測値otの情報を受信し、上述したようにしてApprentice1の人に対するフィードバックを生成する。情報処理装置1は、フィードバックの内容を表す制御情報を情報処理端末211-1に送信する。
【0200】
情報処理装置1から送信されてきた制御情報を受信した情報処理端末211-1は、フィードバックデバイス群12を駆動させ、Apprentice1に対してフィードバックを出力する。以上の処理と同様の処理が、情報処理装置1と情報処理端末211-2の間においても行われる。
【0201】
このように、複数人のApprenticeを対象としたトレーニングがTQAシステムにおいて行われるようにすることが可能である。
【0202】
・コンピュータの構成例
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0203】
図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。情報処理装置1は、
図14に示す構成と同様の構成を有する。
【0204】
CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。
【0205】
バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、キーボード、マウスなどよりなる入力部1006、ディスプレイ、スピーカなどよりなる出力部1007が接続される。また、入出力インタフェース1005には、ハードディスクや不揮発性のメモリなどよりなる記憶部1008、ネットワークインタフェースなどよりなる通信部1009、リムーバブルメディア1011を駆動するドライブ1010が接続される。
【0206】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを入出力インタフェース1005及びバス1004を介してRAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0207】
CPU1001が実行するプログラムは、例えばリムーバブルメディア1011に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部1008にインストールされる。
【0208】
コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0209】
本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0210】
本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【0211】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0212】
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0213】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0214】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0215】
・構成の組み合わせ例
本技術は、以下のような構成をとることもできる。
【0216】
(1)
人間のApprenticeによる所定のタスクの動作を観測し、
前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する
情報処理部を備える
情報処理装置。
(2)
前記情報処理部は、前記Apprenticeが前記所定のタスクの動作を行っている間、前記フィードバックを繰り返し出力する
前記(1)に記載の情報処理装置。
(3)
前記情報処理部は、センサによる検出結果に基づいて、前記Apprenticeの動作を表すとともに、前記Apprenticeが動作を行う環境の状態を表す観測値を取得する
前記(1)または(2)に記載の情報処理装置。
(4)
前記情報処理部は、前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習する
前記(3)に記載の情報処理装置。
(5)
前記情報処理部は、前記ApprenticeのPolicyが所定の条件を満たす場合に、前記Apprenticeを対象としたトレーニングを終了させる
前記(4)に記載の情報処理装置。
(6)
前記情報処理部は、さらに、前記Apprenticeの動作と前記Expertの動作との差に応じた評価値を、前記Apprenticeに対して、または、前記Apprenticeと人間の前記Expertに対して提示する
前記(1)乃至(5)のいずれかに記載の情報処理装置。
(7)
前記情報処理部は、
前記Apprenticeの動作とともに、人間の前記Expertによる前記所定のタスクの動作を観測し、
模倣学習としてのBehavior Cloningのフレームワークを用いて、前記Apprenticeの動作と前記Expertの動作との差に応じた前記フィードバックを生成する
前記(1)に記載の情報処理装置。
(8)
前記情報処理部は、センサによる検出結果に基づいて、前記Apprenticeと前記Expertのそれぞれの動作を表すとともに、前記Apprenticeと前記Expertが動作を行う環境の状態を表す観測値を取得する
前記(7)に記載の情報処理装置。
(9)
前記情報処理部は、
前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習し、
前記Expertの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ExpertのPolicyを学習する
前記(8)に記載の情報処理装置。
(10)
前記情報処理部は、模倣学習によって獲得された前記所定のタスクに関する前記ExpertのPolicyを、前記Apprenticeを対象としたトレーニングの開始前に取得する
前記(3)に記載の情報処理装置。
(11)
前記情報処理部は、模倣学習としてのDirect Policy Learningのフレームワークを用いて、前記Apprenticeの動作と、前記ExpertのPolicyに前記観測値を適用して求められる前記Expertの動作との差に応じた前記フィードバックを生成する
前記(10)に記載の情報処理装置。
(12)
前記情報処理部は、
前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習し、
前記ApprenticeのPolicyと前記ExpertのPolicyに基づいて評価値を算出し、前記Apprenticeに対して、または、前記Apprenticeと人間の前記Expertに対して提示する
前記(11)に記載の情報処理装置。
(13)
前記情報処理部は、
模倣学習としてのInverse Reinforcement Learningのフレームワークを用いて、前記ExpertのPolicyと前記Expertの動作とに基づいて報酬関数を推定し、
前記報酬関数に前記Apprenticeの動作と前記観測値とを適用して求められる報酬に応じた前記フィードバックを生成する
前記(10)に記載の情報処理装置。
(14)
前記情報処理部は、
前記Apprenticeの動作と前記観測値の時系列データに基づいて、前記所定のタスクに関する前記ApprenticeのPolicyを学習し、
前記ApprenticeのPolicyと前記ExpertのPolicyに基づいて評価値を算出し、前記Apprenticeに対して、または、前記Apprenticeと人間の前記Expertに対して提示する
前記(13)に記載の情報処理装置。
(15)
前記情報処理部は、前記Apprenticeが装着する第1のデバイスと、前記Apprenticeが前記所定のタスクの動作を行う環境に設置された第2のデバイスとのうちの少なくともいずれかを制御することによって前記フィードバックを出力する
前記(1)乃至(14)のいずれかに記載の情報処理装置。
(16)
前記Apprenticeの触覚に対して刺激を与える構成を有するデバイスが前記第1のデバイスと前記第2のデバイスのうちの少なくともいずれかに含まれる
前記(15)に記載の情報処理装置。
(17)
情報処理装置が、
人間のApprenticeによる所定のタスクの動作を観測し、
前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する
情報処理方法。
(18)
コンピュータに、
人間のApprenticeによる所定のタスクの動作を観測し、
前記Apprenticeの動作をExpertの動作に近付けるためのフィードバックを模倣学習のフレームワークを用いて生成し、前記所定のタスクの動作を行っている前記Apprenticeに対して出力する
処理を実行させるプログラム。
【符号の説明】
【0217】
1 情報処理装置, 11 センサ群, 12 フィードバックデバイス群, 21 情報処理部, 31 学習部, 32 フィードバック生成部, 111 Game Engine