以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態による強化学習システムの機能構成例を示すブロック図である。図1に示すように、本実施形態の強化学習システム100は、その機能構成として、状況検出部10、第1の動作選択部11、第2の動作選択部12、動作提示部13、反応検出部14および報酬決定部15を備えている。
上記各機能ブロック10〜15は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック10〜15は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
なお、上記各機能ブロック10〜15は、その全てが1つの装置(例えば、パーソナルコンピュータ、スマートフォン、タブレット端末、車載域、ロボット、ゲーム装置、AIスピーカ(スマートスピーカ)、サーバ装置など)内に実装される構成であってもよいし、複数の装置(例えば、クライアント端末とサーバ装置)に分散して実装される構成であってもよい。
また、本実施形態の強化学習システム100には、動作実行装置200が接続されている。動作実行装置200は、本実施形態の強化学習システム100が選択した動作を実行するための装置であり、ユーザが五感のうち何れか1つまたは複数によって認知できる動作を実行する。なお、ここでは強化学習システム100と動作実行装置200とが別体である構成を示しているが、動作実行装置200が強化学習システム100を搭載する構成であってもよい。
例えば、動作実行装置200は、画像表示という動作を実行するディスプレイ、音声出力という動作を実行するスピーカなどである。動作実行装置200は、様々な動きをするロボットであってもよい。なお、ここに示したものは例示であって、動作実行装置200がこれらに限定されるものではない。
状況検出部10は、動作実行装置200による動作実行結果を受け取るユーザの状況を検出するものである。例えば、動作実行装置200がディスプレイの場合、状況検出部10は、ディスプレイに表示される画像を見るユーザの状況を検出する。動作実行装置200がスピーカの場合、状況検出部10は、スピーカから出力される音声を聞くユーザの状況を検出する。動作実行装置200がロボットの場合、状況検出部10は、ロボットの動きを通じて様々な情報を受け取るユーザの状況を検出する。
状況検出部10が検出するユーザの状況は、ユーザの外観から得られる種々の属性(例えば、ユーザが着ている服装のタイプ、ユーザの性別や年代など)、ユーザの行動(例えば、歩行速度、姿勢、顔の表情、移動方向、身体の動きなど)、ユーザの身体的特徴(例えば、身長、体型、体温、心拍、呼吸速度など)、ユーザが居る環境(例えば、ユーザが現在居る場所、屋内/屋外の別、同伴者の有無など)などである。また、状況検出部10は、ユーザから提示された情報(例えば、タッチパネル等の入力デバイスを通じてユーザから入力された情報や、ユーザからあらかじめ登録されている情報など)に基づいて、ユーザの状況(例えば、ユーザの対象物に対する興味の有無や程度)を検出することも可能である。
これらのユーザの状況の中のいくつかは、例えば、ユーザをカメラにより撮影した撮影画像に対して公知の画像認識処理を行うことにより検出することが可能である。また、いくつかの状況は、動作実行装置200の近傍に設置した所定のセンサから出力される信号を処理することにより検出することが可能である。また、いくつかの状況は、動作実行装置200が備える入力デバイスまたは動作実行装置200に接続された入力デバイスから入力される情報を処理したり、動作実行装置200が備える記憶装置または動作実行装置200に接続された記憶装置に記憶された情報を読み出したりすることにより検出することが可能である。
なお、ここに示したユーザの状況およびその検出方法は例示であって、これらに限定されるものではない。
第1の動作選択部11は、第1の方策に基づいて、動作実行装置200がとるべき第1の動作を選択する。本実施形態では、第1の動作選択部11は、第1の方策に基づいて、状況検出部10により検出されたユーザの様々な状況を分析することにより、動作実行装置200がとるべき第1の動作を選択する。ここで、方策とは、動作実行装置200の動作を決定する際のアルゴリズムをいう。具体的には、状況検出部10により検出される様々なユーザの状況のうち、何を用いて、何を優先して、どのように動作を選択するかのポリシーを特定した論理モデル、およびこれに適用する関数やパラメータ、ライブラリなどをいう。後述するように、第1の動作選択部11が動作を選択する際のアルゴリズムは強化学習によって改変されていくが、学習開始前の初期段階では、第1の方策として所定の内容のアルゴリズムが第1の動作選択部11に設定される。
第2の動作選択部12は、第1の方策とは異なる第2の方策に基づいて、動作実行装置200がとるべき第2の動作を選択する。本実施形態では、第2の動作選択部12は、第2の方策に基づいて、状況検出部10により検出されたユーザの様々な状況を分析することにより、動作実行装置200がとるべき第2の動作を選択する。後述するように、第2の動作選択部12が動作を選択する際のアルゴリズムも強化学習によって改変されていく。強化学習が進むにつれて、第2の方策の内容が第1の方策の内容に近づいたり、第1の方策の内容が第2の方策の内容に近づいたりすることはあり得るが、学習開始前の初期段階では、第1の方策とは異なる第2の方策として所定の内容のアルゴリズムが第2の動作選択部12に設定される。
動作提示部13は、第1の動作選択部11により選択された第1の動作および第2の動作選択部12により選択された第2の動作をそれぞれ動作実行装置200を通じてユーザに提示する。ここで、動作提示部13は、第1の動作と第2の動作とを動作実行装置200に同時に実行させるようにしてもよいし、順番に実行させるようにしてもよい。すなわち、動作実行装置200による第1の動作および第2の動作の実行結果を一人のユーザに対して同時に提示するようにしてもよいし、一人あるいは別のユーザに対して順番に提示するようにしてもよい。
上述したように、第1の動作は、第1の動作選択部11によって第1の方策に基づいて選択される。一方、第2の動作は、第2の方策に基づいて第2の動作選択部12により選択される。第1の方策と第2の方策とは互いに異なるため、両者に基づいて選択される第1の動作と第2の動作は、基本的に異なるものとなる。よって、動作提示部13は、状況検出部10により検出されたユーザの同じ状況から選択された異なる2つの動作をユーザに提示することになる。
反応検出部14は、動作実行装置200を通じてユーザに提示された第1の動作および第2の動作に対するユーザの反応をそれぞれ、当該反応を表す所定の指標値として検出する。ユーザの反応とは、ユーザが第1の動作および第2の動作に対してどのような行動をとったかということである。反応を表す所定の指標値とは、ユーザのとった行動がどの程度、第1の動作および第2の動作に対して興味を示すものであるかを定量的な情報として表したものである。
例えば、動作実行装置200がディスプレイの場合で、動作提示部13により提示される動作が画像表示である場合、反応検出部14は、ディスプレイに表示された画像をユーザがどの程度興味を持って見たかという反応を、その反応を表す所定の指標値として検出する。この場合の指標値としては、例えば、画像に対する注視時間や、ディスプレイがデジタルサイネージである場合のユーザの接近距離などを用いることが可能である。注視時間が長いほど、ユーザの接近距離が短いほど、ユーザの興味度は大きいと推定することが可能である。
これらの指標値は、例えば、ユーザをカメラにより撮影した撮影画像に対して公知の画像認識処理を行うことにより検出することが可能である。接近距離に関しては、動作実行装置200の近傍に設置した距離センサから出力される信号を処理することにより検出することも可能である。
あるいは、反応検出部14は、撮影画像に対して画像認識処理を行うことにより、ディスプレイに表示された画像を見ているときのユーザの表情を検出し、表情の内容に応じてあらかじめ設定されたスコア値を、ディスプレイに表示された画像に対するユーザの興味度を表す指標値として検出するようにしてもよい。この場合のスコア値は、例えば、ユーザの表情が柔らかいほど大きくなるような値に設定しておく。
別の例として、ディスプレイに表示された画像に対して、タッチパネルやキーボードなどの入力デバイスを介してユーザが何らかの応答入力を行うことができるようにしておく。そして、反応検出部14は、応答入力の有無または内容に応じてあらかじめ設定されたスコア値を、ディスプレイに表示された画像に対するユーザの興味度を表す指標値として検出するようにしてもよい。例えば、それぞれのスコア値が設定された複数の操作ボタンをディスプレイに表示させ、操作されたボタンのスコア値を、ディスプレイに表示された画像に対するユーザの興味度を表す指標値として検出することが可能である。
さらに別の例として、動作実行装置200の近傍にマイクを設置しておく。そして、反応検出部14は、ディスプレイに表示された画像を見ているユーザが発した音声の有無または内容に応じてあらかじめ設定されたスコア値を、ディスプレイに表示された画像に対するユーザの興味度を表す指標値として検出するようにしてもよい。例えば、それぞれのスコア値が設定された複数のキーワードを音声認識辞書にあらかじめ登録しておき、発話音声として音声認識されたキーワードに対応するスコア値を、ディスプレイに表示された画像に対するユーザの興味度を表す指標値として検出することが可能である。
動作実行装置200がスピーカで、動作提示部13により提示される動作が音声出力である場合も、反応検出部14は、スピーカに出力された音声をユーザがどの程度興味を持って聞いたかという反応を、その反応を表す所定の指標値(例えば、音声の聴取時間、スピーカへのユーザの接近距離、音声を聞いているときのユーザの表情に応じたスコア値、タッチパネルやキーボードなどの入力デバイスに対する応答入力の有無または内容に応じてあらかじめ設定されたスコア値、マイクに対するユーザの発話音声の入力の有無または内容に応じてあらかじめ設定されたスコア値など)として検出する。
また、動作実行装置200がロボットで、動作提示部13により提示される動作がロボットの動きである場合、反応検出部14は、ロボットの動きに対してユーザがどの程度興味を示したかという反応を、その反応を表す所定の指標値(例えば、ロボットに対するユーザの接近距離、ロボットの動きを見ているときのユーザの表情に応じたスコア値、ロボットに対する接触の有無または接触の仕方に応じてあらかじめ設定されたスコア値、ロボットまたはその近傍に設置したマイクに対するユーザの発話音声の入力の有無または内容に応じてあらかじめ設定されたスコア値など)として検出する。
なお、ここに示したユーザの反応およびその指標値の検出方法は例示であって、これらに限定されるものではない。
報酬決定部15は、反応検出部14により検出された第1の動作に対する反応の指標値および第2の動作に対する反応の指標値を対比し、その対比結果に応じて、第1の動作選択部11および第2の動作選択部12に与える報酬を決定する。例えば、報酬決定部15は、第1の動作に対する指標値と第2の動作に対する指標値とを比較してどちらが大きいかを判定し、第1の動作選択部11および第2の動作選択部12のうち、指標値が大きい方に対して報酬を与え、指標値が小さい方には報酬を与えないように決定する。この場合、与える報酬の大きさは固定値としてもよいし、指標値の差の大きさに応じて可変の値としてもよい。なお、指標値が小さい方に対して無報酬とする代わりに、マイナスの報酬を与えるようにしてもよい。
第1の動作選択部11および第2の動作選択部12はそれぞれ、報酬決定部15により決定された報酬に応じて、第1の方策(第1の動作選択部11が動作実行装置200の動作を選択する際のアルゴリズム)および第2の方策(第2の動作選択部12が動作実行装置200の動作を選択する際のアルゴリズム)をそれぞれ改変する。このアルゴリズムの改変は、公知の強化学習に基づいて行うものである。
すなわち、各動作選択部11,12は、ある状況下である動作を選択したときにプラスの報酬が与えられた場合は、同じ状況下でその動作がその後も選択されやすくなるようにアルゴリズムを改変する。逆に、ある状況下である動作を選択したときに無報酬またはマイナスの報酬が与えられた場合は、同じ状況下でその動作がその後は選択されにくくなるようにアルゴリズムを改変する。
この場合における「同じ状況下」というのは、状況検出部10により検出される状況が完全に同一である場合のみとしてもよいが、同じとみなせる状況も含むものとしてもよい。例えば、状況検出部10により検出されるユーザの状況に対して、その内容に応じて分類を与え、同じ分類に属する状況は「同じ状況」とみなして強化学習を行うようにしてもよい。分類の付与については公知の技術を用いることが可能である。以下の説明において「同じ状況」というときは、同じとみなせる状況も含む概念であるものとする。
上記のように構成した本実施形態によれば、単独の動作選択部だけで強化学習を行う従来技術とは異なり、2つの動作選択部11,12が選択した異なる動作に対するユーザの反応に応じた指標値を用いて、当該2つの動作選択部11,12が協調して強化学習を行うことができる。これにより、動作実行装置200がユーザの状況に応じて動作を選択する際の方策を強化学習によって更新していく場合において、動作実行装置200が的確な動作をとれるようになるまでの学習のスピードを向上させることができる。
なお、報酬決定部15は、次のように報酬を決定するようにしてもよい。すなわち、報酬決定部15は、反応検出部14により前回検出された第1の動作に対する指標値と今回検出された第1の動作(前回と同じ状況下で選択されたものであるが、前回と同じ内容の動作とは限らない)に対する指標値とを更に対比するとともに、反応検出部14により前回検出された第2の動作に対する指標値と今回検出された第2の動作(前回と同じ状況下で選択されたものであるが、前回と同じ内容の動作とは限らない)に対する指標値とを更に対比する。そして、第1の動作に対して今回検出された指標値と第2の動作に対して今回検出された指標値との対比結果に加え、第1の動作および第2の動作のそれぞれに関して前回検出された指標値と今回検出された指標値との対比結果に応じて、第1の動作選択部11および第2の動作選択部12に与える報酬を決定する。
例えば、今回検出された第1の動作に対する指標値が、今回検出された第2の動作に対する指標値より大きい場合であっても、前回検出された第1の動作に対する指標値より小さい場合があり得る。この場合、報酬決定部15は、例えば、第1の動作選択部11に与える報酬を無報酬またはマイナスの報酬として決定する。今回検出された第2の動作に対する指標値が、今回検出された第1の動作に対する指標値より大きい場合で、かつ、前回検出された第2の動作に対する指標値より小さい場合も同様、報酬決定部15は、例えば、第2の動作選択部12に与える報酬を無報酬またはマイナスの報酬として決定する。
また、今回検出された第1の動作に対する指標値が、今回検出された第2の動作に対する指標値より小さい場合であっても、前回検出された第1の動作に対する指標値より大きい場合があり得る。この場合、報酬決定部15は、例えば、第1の動作選択部11に与える報酬を、第2の動作選択部12に与える報酬よりも小さい報酬として決定する。今回検出された第2の動作に対する指標値が、今回検出された第1の動作に対する指標値より小さい場合で、かつ、前回検出された第2の動作に対する指標値より大きい場合も同様、報酬決定部15は、例えば、第2の動作選択部12に与える報酬を、第1の動作選択部11に与える報酬よりも小さい報酬として決定する。
このようにすれば、2つの動作選択部11,12が今回選択した異なる動作に対するユーザの反応に応じた指標値に加え、第1の動作選択部11が前回と今回で選択した異なる動作に対するユーザの反応に応じた指標値や、第2の動作選択部12が前回と今回で選択した異なる動作に対するユーザの反応に応じた指標値を更に用いて強化学習を行うことができる。これにより、動作実行装置200が的確な動作をとれるようになるまでの学習のスピードを更に向上させることができる。
以下に、上記のように構成した本実施形態による強化学習システム100の応用例を説明する。
<第1の応用例>
第1の応用例は、広告を選択してデジタルサイネージ200Aに表示するシステムにおいて、選択のアルゴリズムを学習することにより、的確な広告を選択して表示できるようにするものである。
図2は、第1の応用例に係る強化学習システム100Aの機能構成例を示すブロック図である。図2に示すように、第1の応用例に係る強化学習システム100Aは、その機能構成として、状況検出部10A、第1の動作選択部11A、第2の動作選択部12A、動作提示部13A、反応検出部14Aおよび報酬決定部15Aを備えている。
また、強化学習システム100Aには、動作実行装置200の一例としてデジタルサイネージ200Aが接続されるとともに、デジタルサイネージ200Aに表示する広告データを記憶した広告データ記憶部300Aが接続されている。また、強化学習システム100Aには、状況検出部10Aがユーザの状況を検出する際、および、反応検出部14Aがユーザの反応を検出する際に使用するデバイスであるカメラ400Aおよびセンサ500Aが接続されている。
なお、カメラ400Aおよびセンサ500Aは、デジタルサイネージ200Aの近傍位置に設置される。これに対し、強化学習システム100Aおよび広告データ記憶部300Aは、デジタルサイネージ200Aの近傍位置に設置されることは必須でない。例えば、強化学習システム100Aは、LANを介して接続されたパーソナルコンピュータまたはサーバ装置であってよい。また、広告データ記憶部300Aは、強化学習システム100Aが搭載するものであってもよい。
状況検出部10Aは、デジタルサイネージ200Aの付近に居るユーザ(デジタルサイネージ200Aに表示される広告を見る可能性のあるユーザ)の状況を検出する。すなわち、状況検出部10Aは、カメラ400Aにより撮影されるユーザの撮影画像に対して画像認識処理を行うとともに、センサ500Aから出力される信号を処理することにより、ユーザの外観から得られる種々の属性、ユーザの行動、ユーザの身体的特徴、ユーザが居る環境などを検出する。
第1の動作選択部11Aは、第1の方策に基づいて、状況検出部10Aにより検出されたユーザの様々な状況を分析することにより、広告データ記憶部300Aに記憶されている複数の広告データ(以下、単に広告という)の中から、デジタルサイネージ200Aに表示すべき第1の広告を選択する。表示すべき広告とは、状況検出部10Aにより検出されたユーザの状況をもとに、そのユーザが興味を持つであろうと推測される広告を意味する。
第2の動作選択部12Aは、第1の方策とは異なる第2の方策に基づいて、状況検出部10Aにより検出されたユーザの様々な状況を分析することにより、広告データ記憶部300Aに記憶されている複数の広告の中から、デジタルサイネージ200Aに表示すべき第2の広告を選択する。
動作提示部13Aは、第1の動作選択部11Aにより選択された第1の広告および第2の動作選択部12Aにより選択された第2の広告をそれぞれデジタルサイネージ200Aに表示してユーザに提示する。ここで、動作提示部13Aは、第1の広告および第2の広告を順番に数秒ずつ切り替えてデジタルサイネージ200Aに表示する。
反応検出部14Aは、カメラ400Aにより撮影されるユーザの撮影画像に対して画像認識処理を行うとともに、センサ500Aから出力される信号を処理することにより、デジタルサイネージ200Aに表示された第1の広告および第2の広告に対するユーザの反応をそれぞれ、当該反応を表す所定の指標値として検出する。例えば、反応検出部14は、画像に対する注視時間、デジタルサイネージ200Aに対するユーザの接近距離、画像を見ているときのユーザの表情の内容に応じてあらかじめ設定されたスコア値、デジタルサイネージ200A上のタッチパネルなどの入力デバイスを介してユーザから入力される応答入力の有無または内容に応じてあらかじめ設定されたスコア値、画像を見ているユーザによる発話音声のマイク入力の有無または発話音声の内容に応じてあらかじめ設定されたスコア値の少なくとも1つを指標値として検出する。
報酬決定部15Aは、反応検出部14Aにより第1の広告の表示に対して検出された反応の指標値と第2の広告の表示に対して検出された反応の指標値とを対比し、その対比結果に応じて、第1の動作選択部11Aおよび第2の動作選択部12Aに与える報酬を決定する。
第1の動作選択部11Aおよび第2の動作選択部12Aはそれぞれ、報酬決定部15Aにより決定された報酬に応じて、第1の方策(第1の動作選択部11Aが広告を選択する際のアルゴリズム)および第2の方策(第2の動作選択部12Aが広告を選択する際のアルゴリズム)をそれぞれ改変する。
すなわち、各動作選択部11A,12Aは、ある状況下である広告を選択したときにプラスの報酬が与えられた場合は、同じ状況下でその広告がその後も選択されやすくなるようにアルゴリズムを改変する。逆に、ある状況下である広告を選択したときに無報酬またはマイナスの報酬が与えられた場合は、同じ状況下でその広告がその後は選択されにくくなるようにアルゴリズムを改変する。
このように構成した第1の応用例によれば、2つの動作選択部11A,12Aが異なる方策に基づいて選択してデジタルサイネージ200Aに表示した異なる広告に対するユーザの反応に応じた指標値を用いて、当該2つの動作選択部11A,12Aが協調して広告選択に関するアルゴリズムの強化学習を行うことができる。これにより、デジタルサイネージ200Aに表示する広告をユーザの状況に応じて選択する際の方策を強化学習によって更新していく場合において、デジタルサイネージ200Aに対してユーザの状況に応じた的確な広告を表示できるようになるまでの学習のスピードを向上させることができる。
なお、ここではデジタルサイネージ200Aに広告を表示する例について説明したが、広告以外のコンテンツを表示するようにしてもよい。デジタルサイネージ200Aに表示するコンテンツは任意である。
図3は、図2に示した強化学習システム100Aを更に応用した変形例を示す図である。図3に示す変形例では、デジタルサイネージ200Aを複数の場所に設置し、それぞれのデジタルサイネージ200A毎に強化学習システム100Aを設ける。そして、インターネットや携帯電話網等の通信ネットワークを介して複数の強化学習システム100Aをサーバ600に接続し、双方向に通信ができる状態とする。
複数の強化学習システム100Aはそれぞれ、一人のユーザに対して広告(広告以外のコンテンツでもよい)を選択してデジタルサイネージ200Aに表示し、ユーザの反応に応じて各動作選択部11A,12Aのアルゴリズムの学習を行う都度、その学習の内容をサーバ600に送信する。送信する学習の内容とは、状況検出部10Aにより検出されたユーザの状況を示す情報、各動作選択部11A,12Aにより選択された広告を示す情報、および、報酬決定部15により決定された各動作選択部11A,12Aに対する報酬の情報である。
サーバ600は、ある強化学習システム100Aから受信した学習の内容を、他の強化学習システム100Aに送信する。例えば、N個の強化学習システム100A(第1〜第Nの強化学習システム100Aと表記するものとする)がある場合において、サーバ600は、第1の強化学習システム100Aから受信した学習の内容を、第2〜第Nの強化学習システム100Aに送信する。また、サーバ600は、第2の強化学習システム100Aから受信した学習の内容を、第1および第3〜第Nの強化学習システム100Aに送信する。他も同様である。つまり、サーバ600は、第i(i=1〜Nの何れか)の強化学習システム100Aから受信した学習の内容を、第iの強化学習システム100Aを除く他のN−1個の強化学習システム100Aに送信する。
第iの強化学習システム100Aにおける各動作選択部11A,12Aは、第iの強化学習システム100A自身における報酬決定部15Aにより決定された報酬に従ってアルゴリズムの学習を行うことに加え、他のN−1個の強化学習システム100Aから送られてくる学習の内容に基づいて、各動作選択部11A,12Aのアルゴリズムの学習も行う。このように、図3に示す構成によれば、複数の場所に分散して設けた複数の強化学習システム100Aが協調して各動作選択部11A,12Aのアルゴリズムを学習することができるので、デジタルサイネージ200Aに対してユーザの状況に応じた的確な広告を表示できるようになるまでの学習のスピードを更に向上させることができる。
なお、ここでは、第iの強化学習システム100Aから受信した学習の内容を他のN−1個の強化学習システム100Aに送信する機能のみをサーバ600が有する例について説明したが、強化学習システム100Aの有する機能の一部をサーバ600に持たせるようにしてもよい。例えば、第1の動作選択部11Aおよび第2の動作選択部12Aをサーバ600が備え、状況検出部10Aにより検出されたユーザの状況を示す情報をサーバ600に送信し、これに基づいてサーバ600において選択した第1の広告および第2の広告を強化学習システム100Aに送信してデジタルサイネージ200Aに表示させるようにしてもよい。
また、報酬決定部15Aをサーバ600が備え、反応検出部14Aにより検出されたユーザの反応に応じた指標値を示す情報をサーバ600に送信し、これに基づいてサーバ600において決定した各動作選択部11A,12Aに対する報酬を強化学習システム100Aに送信して各動作選択部11A,12Aのアルゴリズムを改変するようにしてもよい。なお、上記のように第1の動作選択部11Aおよび第2の動作選択部12Aをサーバ600が備える場合は、サーバ600が備える報酬決定部15Aにより決定された報酬に基づいて、サーバ600が備える各動作選択部11A,12Aのアルゴリズムを改変すればよい。
<第2の応用例>
第2の応用例は、パーソナルコンピュータやスマートフォンなどのユーザ端末に複数のコンテンツを順番に並べて表示するシステムにおいて、順番選択のアルゴリズムを学習することにより、的確な順番で複数のコンテンツを並べて表示できるようにするものである。
図4は、第2の応用例に係る強化学習システム100Bの機能構成例を示すブロック図である。なお、この図4において、図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図4に示すように、第2の応用例に係る強化学習システム100Bは、その機能構成として、状況検出部10B、第1の動作選択部11B、第2の動作選択部12B、動作提示部13B、反応検出部14Bおよび報酬決定部15Bを備えている。
また、強化学習システム100Bには、動作実行装置200の一例としてディスプレイ200Bが接続されるとともに、ディスプレイ200Bに表示する複数のコンテンツを記憶したコンテンツ記憶部300Bが接続されている。また、強化学習システム100Bには、カメラ400Aおよびセンサ500Aが接続されている。さらに、強化学習システム100Bには、ユーザが種々の入力操作を行うためのタッチパネルやキーボード等の入力デバイス700Bも接続されている。なお、強化学習システム100B、ディスプレイ200B、コンテンツ記憶部300B、カメラ400A、センサ500Aおよび入力デバイス700Bは、何れもスマートフォンやパーソナルコンピュータ等のユーザ端末が搭載するものであってもよい。
状況検出部10Bは、ユーザ端末を使用するユーザ(ディスプレイ200Bに表示されるコンテンツを見る可能性のあるユーザ)の状況を検出する。すなわち、状況検出部10Bは、カメラ400Aにより撮影されるユーザの撮影画像に対して画像認識処理を行うとともに、センサ500Aから出力される信号を処理することにより、ユーザの外観から得られる種々の属性(例えば、ユーザの性別や年代など)、ユーザの行動(例えば、顔の表情など)、ユーザが居る環境(例えば、ユーザが現在居る場所など)などを検出する。また、状況検出部10Bは、ユーザ端末に記憶されているウェブページへのアクセス履歴などの情報をもとに、各種コンテンツに対するユーザの興味をユーザの状況として検出(推定)するようにしてもよい。
第1の動作選択部11Bは、第1の方策に基づいて、状況検出部10Bにより検出されたユーザの様々な状況を分析することにより、コンテンツ記憶部300Bに記憶されている複数のコンテンツをディスプレイ200Bに順番に並べて表示する際の表示順(第1の表示順)を選択する。ここで、複数のコンテンツを順番に並べて表示するとは、例えば、複数のコンテンツをタイムライン上に並べて表示すること言う。この場合、ディスプレイ200Bに表示する複数のコンテンツは、例えば、ユーザが入力デバイス700Bを操作して指定したタイムラインに含まれるコンテンツである。また、ここで言う表示順の選択とは、ユーザが興味を持つであろうと推測されるコンテンツほど上位に表示するように順番を選択するという意味である。
第2の動作選択部12Bは、第1の方策とは異なる第2の方策に基づいて、状況検出部10Bにより検出されたユーザの様々な状況を分析することにより、コンテンツ記憶部300Bに記憶されている複数のコンテンツをディスプレイ200Bに順番に並べて表示する際の表示順(第2の表示順)を選択する。
動作提示部13Bは、第1の動作選択部11Bにより選択された第1の表示順および第2の動作選択部12Bにより選択された第2の表示順で、複数のコンテンツをタイムライン上に並べてディスプレイ200Bに表示する。なお、動作提示部13Bは、1回のタイムライン表示について、第1の動作選択部11Bにより選択された第1の表示順または第2の動作選択部12Bにより選択された第2の表示順の何れか一方を選択して複数のコンテンツを表示させる。そして、ユーザの同じ状況下で次にタイムライン表示が指示されたときに、動作提示部13Bは、前回と異なる方の表示順を選択して複数のコンテンツを表示させる。
反応検出部14Bは、カメラ400Aにより撮影されるユーザの撮影画像に対して画像認識処理を行うとともに、入力デバイス700Bから入力されるユーザ操作の内容を分析することにより、ディスプレイ200Bに表示された複数のコンテンツに対するユーザの反応を、当該反応を表す所定の指標値としてコンテンツ毎に検出する。
例えば、反応検出部14Bは、ディスプレイ200Bに表示された複数のコンテンツ毎に、コンテンツに対する注視時間、コンテンツを見ているときのユーザの表情の内容に応じてあらかじめ設定されたスコア値などを指標値として検出する。ここで、注視時間は、入力デバイス700Bに対するユーザ操作に基づいてスクロール速度が下がったときあるいはスクロールが停止したときに表示されていたコンテンツをユーザが注視していたものと推定し、当該コンテンツがディスプレイ200Bに表示されていた時間を注視時間として検出する。
報酬決定部15Bは、第1の表示順で複数のコンテンツを表示したときに反応検出部14Bにより検出されたコンテンツ毎の指標値と、第2の表示順で複数のコンテンツを表示したときに反応検出部14Bにより検出されたコンテンツ毎の指標値とを対比し、その対比結果に応じて、第1の動作選択部11Bおよび第2の動作選択部12Bに与える報酬を決定する。
例えば、報酬決定部15Bは、第1の表示順に従って最上位に表示したコンテンツの指標値と、第2の表示順に従って最上位に表示したコンテンツの指標値とを比較してどちらが大きいかを判定し、第1の動作選択部11Bおよび第2の動作選択部12Bのうち、指標値が大きい方に対してプラスの報酬を与え、指標値が小さい方には報酬を与えないかマイナスの報酬を与えるように決定する。この場合、与える報酬の大きさは固定値としてもよいし、指標値の差の大きさに応じて可変の値としてもよい。
あるいは、報酬決定部15Bは、第1の表示順で複数のコンテンツを表示したときに反応検出部14Bにより検出されたコンテンツ毎の指標値の中で最も大きな指標値が得られたコンテンツの表示順と、第2の表示順で複数のコンテンツを表示したときに反応検出部14Bにより検出されたコンテンツ毎の指標値の中で最も大きな指標値が得られたコンテンツの表示順とを比較してどちらの表示順の方が上位かを判定し、第1の動作選択部11Bおよび第2の動作選択部12Bのうち、最も大きな指標値が得られたコンテンツの表示順が上位の方に対してプラスの報酬を与え、そうでない方には報酬を与えないかマイナスの報酬を与えるように決定する。この場合、与える報酬の大きさは固定値としてもよいし、最大の指標値の差の大きさや、最大の指標値が得られているコンテンツの表示順の差の大きさに応じて可変の値としてもよい。
第1の動作選択部11Bおよび第2の動作選択部12Bはそれぞれ、報酬決定部15Bにより決定された報酬に応じて、第1の方策(第1の動作選択部11Bが複数のコンテンツの表示順を選択する際のアルゴリズム)および第2の方策(第2の動作選択部12Bが複数のコンテンツの表示順を選択する際のアルゴリズム)をそれぞれ改変する。
すなわち、各動作選択部11B,12Bは、ある状況下で選択した表示順に従って複数のコンテンツを表示したときにプラスの報酬が与えられた場合は、同じ状況下でその表示順がその後も選択されやすくなるようにアルゴリズムを改変する。あるいは、最大の指標値が得られたコンテンツの表示順がより上位となるようにアルゴリズムを改変するようにしてもよい。逆に、ある状況下で選択した表示順に従って複数のコンテンツを表示したときに無報酬またはマイナスの報酬が与えられた場合は、同じ状況下でその表示順がその後は選択されにくくなるようにアルゴリズムを改変する。あるいは、最小の指標値が得られたコンテンツの表示順がより下位となるようにアルゴリズムを改変するようにしてもよい。
このように構成した第2の応用例によれば、2つの動作選択部11B,12Bが異なる方策に基づいて選択した異なる表示順に従って複数のコンテンツをディスプレイ200Bに表示した場合におけるユーザの反応に応じた指標値を用いて、当該2つの動作選択部11B,12Bが協調してコンテンツ表示順の選択に関するアルゴリズムの強化学習を行うことができる。これにより、ディスプレイ200Bに表示するコンテンツの表示順をユーザの状況に応じて選択する際の方策を強化学習によって更新していく場合において、ユーザの状況に応じた的確な表示順で複数のコンテンツをディスプレイ200Bに表示できるようになるまでの学習のスピードを向上させることができる。
なお、上記実施形態では、第1の表示順に基づくコンテンツの表示と、第2の表示順に基づくコンテンツの表示とを、タイムラインの2回の表示に分けて順番に行う例について説明した。この場合、一方の表示順によるコンテンツの表示が終わってユーザの反応を検出しても、その後に他方の表示順によるコンテンツの表示が終わってユーザの反応を検出するまでは、報酬決定部15による報酬の決定を行うことができない。つまり、1回目と同じ状況下で2回目のタイムライン表示が行われるまで、比較的長い時間がかかることもあり得るが、その間は報酬の決定を行うことができず、アルゴリズムの学習が進まない。
そこで、図3と同様に、複数の強化学習システム100Bをサーバ600に接続する構成としてもよい。この場合、一人のユーザに対して1回のタイムライン表示を行う都度、状況検出部10Bにより検出されたユーザの状況を示す情報と、各動作選択部11B,12Bのうちコンテンツ表示を行った方により選択された表示順を示す情報(第1の表示順か第2の表示順かを識別する情報を含む)とをサーバ600に送信する。サーバ600は、N個の強化学習システム100Bから送られてくる情報を確認し、同じ状況下で選択された異なる表示順の組があることを検出した場合は、その組の一方の情報を、その表示順を選択していない方の強化学習システム100Bに送信する。
例えば、第iの強化学習システム100Bからサーバ600に送信された表示順の情報と、第jの強化学習システム100Bからサーバ600に送信された表示順の情報とが、それぞれ同じ状況下で選択された表示順であって、一方が第1の表示順で他方が第2の表示順であることをサーバ600が検出したとする。この場合、サーバ600は、第iの強化学習システム100Bから受信した情報(ユーザの状況を示す情報およびコンテンツの表示順を示す情報)を第jの強化学習システム100Bに送信するとともに、第jの強化学習システム100Bから受信した情報を第iの強化学習システム100Bに送信する。
このようにすれば、第iの強化学習システム100Bおよび第jの強化学習システム100Bでは、それぞれが自身において選択した一方の表示順によりコンテンツを表示してユーザの反応を検出した後、自身が選択した他方の表示順によるコンテンツの表示に応じたユーザの反応を検出するまで待たなくても、他方の強化学習システム100Bからサーバ600を介して送られてくる情報を用いて報酬決定部15による報酬の決定を行うことができるようになる。これにより、1回目と同じ状況下で2回目のタイムライン表示が行われるまでの間、報酬の決定を行うことができないという状況を抑止することができる。
<第3の応用例>
第3の応用例は、パーソナルコンピュータやスマートフォンなどのユーザ端末においてチャットを行うシステムにおいて、チャットを行う相手を選択する際のアルゴリズムを学習することにより、的確なチャット相手を選択して提案できるようにするものである。
図5は、第3の応用例に係る強化学習システム100Cの機能構成例を示すブロック図である。図5に示すように、第3の応用例に係る強化学習システム100Cは、その機能構成として、状況検出部10C、第1の動作選択部11C、第2の動作選択部12C、動作提示部13C、反応検出部14Cおよび報酬決定部15Cを備えている。また、強化学習システム100Cには、チャットに関するコンテンツ(以下、チャットコンテンツという)を記憶したチャットコンテンツ記憶部300Cが接続されている。なお、強化学習システム100Cおよびチャットコンテンツ記憶部300Cは、チャットの運用を管理するチャットサーバが搭載するものである。
また、強化学習システム100C(チャットサーバ)には、通信ネットワークを介してユーザ端末800Cが接続されている。ユーザ端末800Cは、動作実行装置200の一例として、チャットコンテンツを表示するためのディスプレイ200Cを備えている。ユーザ端末800Cは、通信ネットワークを介してチャットサーバにアクセスし、チャットコンテンツを取得してディスプレイ200Cに表示可能に構成されている。
ここで、チャットコンテンツは、複数のユーザ端末から提供された話題の情報と、1つの話題について複数のユーザ間でやり取りされたコミュニケーション(チャット)の情報とを含むものである。ユーザは、ディスプレイ200Cに表示された複数の話題の中から興味のある話題を選択し、その話題の提供者や、同じ話題に興味を持つ他のユーザとの間でチャットを行うことができるようになっている。
状況検出部10Cは、チャットサーバが提供するチャットを利用しているユーザ(ディスプレイ200Cに表示されるチャットコンテンツを見ているまたは見る可能性のあるユーザ)の状況を検出する。すなわち、状況検出部10Cは、ユーザによるチャットコンテンツの閲覧状況を検出する。閲覧状況とは、チャットサーバが提供するサイトのどのページを現在見ているか、ブックマーク、お気に入り、賛同などのサインがどの話題に付けられているか、チャットサーバへのアクセス頻度、チャットへの参加頻度、チャットへの参加履歴などの状況を言う。
第1の動作選択部11Cは、第1の方策に基づいて、状況検出部10Cにより検出されたユーザのチャットコンテンツ閲覧状況を分析することにより、チャット相手として提案するユーザの組(第1のチャット相手)を選択する。ここでは、チャット相手として気に入られる可能性がありそうなユーザの組を分析して選択する。
選択するユーザは、チャットサーバにユーザ登録しているユーザや、未登録ではあるが現在チャットサーバにアクセス中のユーザの中の何れかである。ユーザ登録しているユーザは、チャットサーバに登録されたプロファイル情報によりユーザを特定することが可能である。未登録のユーザは、チャットサーバへのアクセス時に使用されている仮のニックネームや、IPアドレス、クッキー情報などによりユーザを特定することが可能である。
第2の動作選択部12Cは、第1の方策とは異なる第2の方策に基づいて、状況検出部10Cにより検出されたユーザの様々な状況を分析することにより、チャット相手として提案するユーザの組(第2のチャット相手)を選択する。ここで、第1のチャット相手として選択するユーザの組に含まれる一方のユーザと、第2のチャット相手として選択するユーザの組に含まれる一方のユーザとが同一のユーザとなるように、第1の動作選択部11Cによるユーザの選択と第2の動作選択部12によるユーザの選択とを実行する。
例えば、第1の動作選択部11CがユーザXとユーザYとの組を第1のチャット相手として選択するとともに、第2の動作選択部12CがユーザXとユーザZとの組を第2のチャット相手として選択するといったように、各動作選択部11C,12Cが選択するユーザの一方は共通し、他方は共通しないように、ユーザの選択を行う。例えば、最初に共通のユーザXを決定し、この共通ユーザXに対する相手ユーザY,Zを各動作選択部11C,12Cが選択するようにする。第1の方策と第2の方策とは互いに異なるため、同じ共通ユーザXに対して各動作選択部11C,12Cにより選択される相手ユーザY,Zは基本的に異なるものとなる。
動作提示部13Cは、第1の動作選択部11Cにより選択された第1のチャット相手および第2の動作選択部12Cにより選択された第2のチャット相手を各ユーザのユーザ端末800Cのディスプレイ200Cに表示することにより、チャットの開始をユーザに提案する。
図6は、上述のユーザX,Y,Zの例に即してディスプレイ200Cに表示される提案内容の一例を示す図である。図6(a)に示すように、動作提示部13Cは、共通ユーザXが使用するユーザ端末800Cのディスプレイ200Cに対し、第1の動作選択部11Cにより選択された相手ユーザYおよび第2の動作選択部12Cにより選択された相手ユーザZをチャット相手の候補として表示する。共通ユーザXのディスプレイ200Cに表示される画面には、相手ユーザYとの間でチャットを開始することに同意するためのボタンB11と、相手ユーザZとの間でチャットを開始することに同意するためのボタンB12とが含まれている。
また、図6(b)に示すように、動作提示部13Cは、相手ユーザYが使用するユーザ端末800Cのディスプレイ200Cに対し、共通ユーザXをチャット相手の候補として表示する。相手ユーザYのディスプレイ200Cに表示される画面には、共通ユーザXとの間でチャットを開始することに同意するためのボタンB21が含まれている。さらに、図6(c)に示すように、動作提示部13Cは、相手ユーザZが使用するユーザ端末800Cのディスプレイ200Cに対し、共通ユーザXをチャット相手の候補として表示する。相手ユーザZのディスプレイ200Cに表示される画面には、共通ユーザXとの間でチャットを開始することに同意するためのボタンB31が含まれている。
ここで、共通ユーザXがボタンB11を操作するとともに、相手ユーザYがボタンB21を操作した場合には、双方のユーザがチャット開始に同意したことになるので、ユーザX,Y間でのチャットが開始される。また、共通ユーザXがボタンB12を操作するとともに、相手ユーザZがボタンB31を操作した場合には、双方のユーザがチャット開始に同意したことになるので、ユーザX,Z間でのチャットが開始される。
反応検出部14Cは、共通ユーザXのディスプレイCに表示されたボタンB11,B12、相手ユーザYのディスプレイ200Cに表示されたボタンB21、および、相手ユーザZのディスプレイ200Cに表示されたボタンB31の操作状況を分析することにより、第1のチャット相手および第2のチャット相手として選択されたユーザX,Y,Zのそれぞれの反応を、当該反応を表す所定の指標値として検出する。この場合の指標値は、ボタンB11,B12、ボタンB21、ボタンB31の操作の有無を示す値であり、例えば操作された場合は“1”、操作されていない場合は“0”の値を指標値とする。
報酬決定部15Cは、第1のチャット相手(ユーザX,Yの組)を選択した場合に反応検出部14Cにより検出された指標値と、第2のチャット相手(ユーザX,Zの組)を選択した場合に反応検出部14Cにより検出された指標値とを対比し、その対比結果に応じて、第1の動作選択部11Cおよび第2の動作選択部12Cに与える報酬を決定する。
例えば、報酬決定部15Cは、第1のチャット相手(ユーザX,Yの組)を選択した場合に反応検出部14Cにより検出された指標値と、第2のチャット相手(ユーザX,Zの組)を選択した場合に反応検出部14Cにより検出された指標値とを比較してどちらが大きいかを判定し、第1の動作選択部11Cおよび第2の動作選択部12Cのうち、指標値が大きい方に対してプラスの報酬を与え、指標値が小さい方には報酬を与えないかマイナスの報酬を与えるように決定する。
ここで、チャット相手の双方が同意してチャットを開始した場合、指標値は“2”となる。チャット相手の片方のみが同意してチャットが開始されなかった場合、指標値は“1”となる。また、チャット相手の双方が同意せずにチャットが開始されなかった場合、指標値は“0”となる。第1のチャット相手または第2のチャット相手の何れかの指標値が“2”となる場合は、報酬決定部15Cは、第1の動作選択部11Cおよび第2の動作選択部12Cのうち、指標値が“2”となったチャット相手を選択した方に対してプラスの報酬を与え、そうでない方には報酬を与えないかマイナスの報酬を与えるように決定する。ここで、指標値が“1”となったチャット相手を選択した動作選択部は無報酬、指標値が“0”となったチャット相手を選択した動作選択部にはマイナスの報酬を与えるようにしてもよい。
指標値が“2”となるチャット相手が選択されていな場合、例えば、第1のチャット相手または第2のチャット相手の一方の指標値が“1”で、他方の指標値が“0”となる場合は、報酬決定部15Cは、例えば、第1の動作選択部11Cおよび第2の動作選択部12Cのうち、指標値が“1”となったチャット相手を選択した方に対してプラスの報酬を与え、そうでない方には報酬を与えないかマイナスの報酬を与えるように決定してもよい。ただし、指標値が“1”の場合はチャット開始の同意が成立していないので、指標値が“2”となる場合に与える報酬の値よりは小さいものとする。あるいは、指標値が“1”の場合はチャット開始の同意が成立していないことを根拠として、指標値が“1”となったチャット相手を選択した方の動作選択部を無報酬とし、指標値が“0”となったチャット相手を選択した方の動作選択部をマイナスの報酬としてもよい。
また、第1のチャット相手に対する指標値および第2のチャット相手に対する指標値が何れも“1”の場合は、報酬決定部15Cは、第1の動作選択部11Cおよび第2の動作選択部12Cの両方について無報酬と決定する。また、第1のチャット相手に対する指標値および第2のチャット相手に対する指標値が何れも“0”の場合は、報酬決定部15Cは、第1の動作選択部11Cおよび第2の動作選択部12Cの両方に対してマイナスの報酬を与えるものと決定する。
なお、以上説明した報酬決定のルールは単なる例示であり、これに限定されるものではない。
第1の動作選択部11Cおよび第2の動作選択部12Cはそれぞれ、報酬決定部15Cにより決定された報酬に応じて、第1の方策(第1の動作選択部11Cが第1のチャット相手を選択する際のアルゴリズム)および第2の方策(第2の動作選択部12Cが第2のチャット相手を選択する際のアルゴリズム)をそれぞれ改変する。
すなわち、各動作選択部11C,12Cは、ある状況下で選択したチャット相手に対してプラスの報酬が与えられた場合は、同じ状況下にあるユーザの組がその後もチャット相手として選択されやすくなるようにアルゴリズムを改変する。逆に、ある状況下で選択したチャット相手に対する報酬が無報酬またはマイナスであった場合は、同じ状況下にあるユーザの組がその後はチャット相手として選択されにくくなるようにアルゴリズムを改変する。
このように構成した第3の応用例によれば、2つの動作選択部11C,12Cが異なる方策に基づいて異なるチャット相手を選択して提案(ユーザ端末800Cのディスプレイ200Cに表示)した場合におけるユーザの反応に応じた指標値を用いて、当該2つの動作選択部11C,12Cが協調してチャット相手の選択に関するアルゴリズムの強化学習を行うことができる。これにより、チャット相手の選択(提案)をユーザのチャットコンテンツ閲覧状況に応じて選択する際の方策を強化学習によって更新していく場合において、ユーザの状況に応じた的確なチャット相手(双方の同意が得られやすいチャット相手)を提案できるようになるまでの学習のスピードを向上させることができる。
<他の実施形態>
次に、本発明の他の実施形態を図面に基づいて説明する。以下に述べる他の実施形態は、第1の動作選択部11および第2の動作選択部12が協調してアルゴリズムを学習する際の協調度を更に高めるようにしたものである。
図7は、他の実施形態による強化学習システム100’の機能構成例を示すブロック図である。なお、この図7において、図1に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図1に示すように、他の実施形態による強化学習システム100’は、第1の動作選択部11および第2の動作選択部12に代えて、第1の動作選択部11’および第2の動作選択部12’を備えている。
第1の動作選択部11’は、第1の方策に基づいて第1の動作を選択する際に、第2の動作選択部12’から改変前の第2の方策に基づいて選択された第2の動作に関する情報を取得し、当該取得した第2の動作が選択候補のより上位となるように第1の方策を改変した上で、改変後の第1の方策に基づいて第1の動作を選択する。第2の動作に関する情報とは、どのような動作が選択されたかを示す動作内容の情報である。また、第2の動作が選択候補のより上位となるように第1の方策を改変するとは、必ずしも第2の動作が選択されるように第1の方策を改変するという意味ではなく、第1の方策を改変しない場合と比べて、第2の動作が選択候補のより上位となるようにするという意味である。よって、第1の方策が改変される前に選択される第1の動作が第2の動作より依然として上位となる場合もあれば、その逆になる場合もある。
第2の動作選択部12’は、第2の方策に基づいて第2の動作を選択する際に、第1の動作選択部11’から改変前の第1の方策に基づいて選択された第1の動作に関する情報を取得し、当該取得した第1の動作が選択候補のより上位となるように第2の方策を改変した上で、改変後の第2の方策に基づいて第2の動作を選択する。第1の動作に関する情報とは、どのような動作が選択されたかを示す動作内容の情報である。また、第1の動作が選択候補のより上位となるように第2の方策を改変することの意味は、第2の動作が選択候補のより上位となるように第1の方策を改変することの意味と同様である。
例えば、第1の動作選択部11’および第2の動作選択部12’は、まず、それぞれ第1の方策および第2の方策を改変することなく第1の動作および第2の動作を選択する。この動作は、図1に示した第1の動作選択部11および第2の動作選択部12の動作と同じである。
次いで、第1の動作選択部11’は、第2の動作選択部12’から改変前の第2の方策に基づいて選択された第2の動作に関する情報を取得し、当該取得した第2の動作が選択候補のより上位となるように第1の方策を改変した上で、改変後の第1の方策に基づいて第1の動作を再度選択する。
同様に、第2の動作選択部12’は、第1の動作選択部11’から改変前の第1の方策に基づいて選択された第1の動作に関する情報を取得し、当該取得した第1の動作が選択候補のより上位となるように第2の方策を改変した上で、改変後の第2の方策に基づいて第2の動作を再度選択する。
このように、第1の動作選択部11’および第2の動作選択部12’は、互いに相手の方策を取り入れながら第1の動作および第2の動作を選択する。このため、第1の動作選択部11’および第2の動作選択部12’が協調して動作選択のアルゴリズムを学習する際の協調度を高めることができ、学習のスピードを更に向上させることができる。
なお、ここでは動作の再選択を1回のみ行うようにしたが、2回以上繰り返し行うようにしてもよい。例えば、再選択を2回繰り返す場合、第1の動作選択部11’は、第2の動作選択部12’から2回目の改変前(=1回目の改変後)の第2の方策に基づいて選択された第2の動作に関する情報を取得し、当該取得した第2の動作が選択候補のより上位となるように第1の方策を再度改変した上で、再度改変後の第1の方策に基づいて第1の動作を再度選択する。
同様に、第2の動作選択部12’は、第1の動作選択部11’から2回目の改変前(=1回目の改変後)の第1の方策に基づいて選択された第1の動作に関する情報を取得し、当該取得した第1の動作が選択候補のより上位となるように第2の方策を再度改変した上で、再度改変後の第2の方策に基づいて第2の動作を再度選択する。
なお、第1の動作選択部11’および第2の動作選択部12’は、所定の条件を満たす場合にのみ、互いに相手の方策を取り入れながら第1の動作および第2の動作を選択するようにしてもよい。取り入れる相手の方策が必ずしも的確なものとは限らないからである。すなわち、第1の動作選択部11’および第2の動作選択部12’は、相手の方策が、取り入れるものとして妥当性を有するものか否かを所定の条件に基づき判定し、所定の条件を満たす場合にのみ、相手の方策を取り入れて自身の方策の改変を行うようにしてもよい。
例えば、報酬決定部15は、第1の動作選択部11’および第2の動作選択部12’に与えるものとして決定した報酬の履歴を管理する。そして、第1の動作選択部11’は、第2の動作選択部12’に与えるものとして報酬決定部15により決定された報酬の履歴が所定の条件を満たしている場合に限り、第2の動作選択部12’から取得した第2の動作が選択候補のより上位となるように第1の方策を改変する。この場合における所定の条件とは、例えば、無報酬またはマイナスの報酬が与えられている頻度が所定頻度以下という条件である。あるいは、プラスの報酬が与えられている頻度が所定頻度以上という条件としてもよい。
また、第2の動作選択部12’は、第1の動作選択部11’に与えるものとして報酬決定部15により決定された報酬の履歴が所定の条件を満たしている場合に限り、第1の動作選択部11’から取得した第1の動作が選択候補のより上位となるように第2の方策を改変する。この場合における所定の条件も、例えば、無報酬またはマイナスの報酬が与えられている頻度が所定頻度以下という条件である。あるいは、プラスの報酬が与えられている頻度が所定頻度以上という条件としてもよい。
このようにすれば、第1の動作選択部11’および第2の動作選択部12’が互いに相手の方策を取り入れながら自身の方策を改変する際に、自身の方策が改悪されてしまうことを防止することができる。
なお、第1の動作選択部11’は、第2の動作選択部12’に与えるものとして報酬決定部15により決定された報酬の履歴が、無報酬またはマイナスの報酬が与えられている頻度が所定頻度以上であることを示している場合に、第2の動作選択部12’から取得した第2の動作が選択候補のより下位となるように第1の方策を改変するようにしてもよい。
同様に、第1の動作選択部12’は、第1の動作選択部11’に与えるものとして報酬決定部15により決定された報酬の履歴が、無報酬またはマイナスの報酬が与えられている頻度が所定頻度以上であることを示している場合に、第1の動作選択部11’から取得した第1の動作が選択候補のより下位となるように第2の方策を改変するようにしてもよい。
図7に示す強化学習システム100’では、第1の動作選択部11’および第2の動作選択部12’の協調動作として、以下のような動作も実行する。上述の例では、第1の動作選択部11’および第2の動作選択部12’がそれぞれ第1の動作および第2の動作を選択する際に協調動作するものであった(以下、これを提示前協調動作という)。これ対し、以下に説明する動作は、第1の動作選択部11’および第2の動作選択部12’がそれぞれ第1の動作および第2の動作を選択してユーザに提示し、それに対するユーザの反応に応じて報酬が決定された後に、その報酬を利用して協調動作するものである(以下、これを提示後協調動作という)。
提示後協調動作に関して、第1の動作選択部11’は、第1の方策に基づいて選択した第1の動作に対して報酬決定部15により決定された報酬と、第2の動作選択部12’により第2の方策に基づいて選択された第2の動作に関する情報および当該第2の動作に対して報酬決定部15により決定された報酬とを取得する。そして、第1の動作選択部11’は、自ら選択した第1の動作に関して報酬決定部15により第1の動作選択部11’に与えるものとして決定された報酬と、第2の動作選択部12’により選択された第2の動作に関して報酬決定部15により第2の動作選択部12’に与えるものとして決定された報酬とに応じて、第1の方策を改変する。
例えば、第1の動作選択部11’は、自ら選択した第1の動作に関してプラスの報酬が与えられ、第2の動作選択部12’により選択された第2の動作に関して与えられる報酬が無報酬またはマイナスの報酬であった場合、同じ状況下で第1の動作がその後も選択されやすくなり、かつ、第2の動作がその後は選択されにくくなるように第1の方策を改変する。逆に、第2の動作選択部12’により選択された第2の動作に関してプラスの報酬が与えられ、自ら選択した第1の動作に関して与えられる報酬が無報酬またはマイナスの報酬であった場合、同じ状況下で第2の動作がその後も選択されやすくなり、かつ、第1の動作がその後は選択されにくくなるように第1の方策を改変する。
同様に、第2の動作選択部12’は、第2の方策に基づいて選択した第2の動作に対して報酬決定部15により決定された報酬と、第1の動作選択部11’により第1の方策に基づいて選択された第1の動作に関する情報および当該第1の動作に対して報酬決定部15により決定された報酬とを取得する。そして、第2の動作選択部12’は、自ら選択した第2の動作に関して報酬決定部15により第2の動作選択部12’に与えるものとして決定された報酬と、第1の動作選択部11’により選択された第1の動作に関して報酬決定部15により第1の動作選択部11’に与えるものとして決定された報酬とに応じて、第2の方策を改変する。
例えば、第2の動作選択部12’は、自ら選択した第2の動作に関してプラスの報酬が与えられ、第1の動作選択部11’により選択された第1の動作に関して与えられる報酬が無報酬またはマイナスの報酬であった場合、同じ状況下で第2の動作がその後も選択されやすくなり、かつ、第1の動作がその後は選択されにくくなるように第2の方策を改変する。逆に、第1の動作選択部11’により選択された第1の動作に関してプラスの報酬が与えられ、自ら選択した第2の動作に関して与えられる報酬が無報酬またはマイナスの報酬であった場合、同じ状況下で第1の動作がその後も選択されやすくなり、かつ、第2の動作がその後は選択されにくくなるように第2の方策を改変する。
このように、第1の動作選択部11’および第2の動作選択部12’は、互いに相手に対して与えられた報酬の結果を取り入れながら第1の方策および第2の方策を改変する。このため、第1の動作選択部11’および第2の動作選択部12’が協調して動作選択のアルゴリズムを学習する際の協調度を高めることができ、学習のスピードを更に向上させることができる。
なお、以上に説明した提示前協調動作と提示後協調動作は、両方を行うようにしてもよいし、何れか一方のみを行うようにしてもよい。
以上、2つの実施形態および3つの応用例を説明したが、これらは何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
例えば、上記3つの応用例では、動作実行装置200の一例として、何れも画像表示という動作を実行するディスプレイを挙げて説明したが、音声出力という動作を実行するスピーカや、様々な動きをするロボットを動作実行装置200として用いる場合にも応用できることは言うまでもない。また、動作実行装置200は、これ以外の装置であってもよい。例えば、振動出力という動作を実行するバイブレータ、香り成分を含んだ液体等の噴霧という動作を実行する噴霧装置などであってもよい。
また、上記実施形態では、2つの動作選択部11,12(11’,12’)が協調して動作実行装置200の動作を選択する際のアルゴリズムを学習する例について説明したが、3つ以上の動作選択部が協調して動作選択のアルゴリズムの学習を行うようにしてもよい。