特許法第30条第2項適用 ICLR2018のConferenceの公開レビューに伴い下記のとおりウェブサイト(https://openreview.net/revisions?id=BkfEzz-0-)に公開。 平成29年10月28日:https://openreview.net/references/pdf?id=Hk_pGM-CZ 平成29年10月28日:https://openreview.net/references/pdf?id=SkRq6fbCb 平成29年10月28日:https://openreview.net/references/pdf?id=rkakRM-Rb 平成29年10月28日:https://openreview.net/references/pdf?id=ryc7AM-0Z 平成29年12月3日:https://openreview.net/references/pdf?id=SyVjWO-Zz 平成29年12月3日:https://openreview.net/references/pdf?id=B1znzOZWz 平成29年12月4日:https://openreview.net/references/pdf?id=Sy0CZ9ZbM 平成30年1月6日:https://openreview.net/references/pdf?id=SJTJQDT7f 平成30年1月6日:https://openreview.net/references/pdf?id=HJQT7PamM 平成30年1月6日:https://openreview.net/references/pdf?id=H1YtCwpmz 平成30年1月6日:https://openreview.net/references/pdf?id=HkRZrdaQG 平成30年1月6日:https://openreview.net/references/pdf?id=H1k2Suamz 平成30年1月9日:https://openreview.net/references/pdf?id=ByzF1n-EG 平成30年1月9日:https://openreview.net/references/pdf?id=SkDBWnWVz
特許法第30条第2項適用 平成30年1月9日:https://openreview.net/references/pdf?id=Bk-iMnbNM 平成30年1月9日:https://openreview.net/references/pdf?id=Hya2SnWEz 平成30年1月9日:https://openreview.net/references/pdf?id=Sy6GY2WEf 平成30年1月26日:https://openreview.net/references/pdf?id=HkxNzMZCW ICLR2018のWorkshopの公開レビューに伴い下記のとおりウェブサイト(https://openreview.net/forum?id=SkcLNJJwf)に公開。 平成30年2月12日:https://openreview.net/pdf?id=SkcLNJJwf 東京大学松尾研究室のブログにて下記のとおり公開。 平成30年2月20日:https://www.wantedly.com/companies/weblab/post_articles/108679 東京大学松尾研究室のホームページにて下記のとおり公開。 平成30年3月22日:http://weblab.t.u-tokyo.ac.jp/en/iclr2018-workshop%E3%81%AB%E5%BD%93%E7%A0%94%E7%A9%B6%E5%AE%A4%E3%81%AE%E8%AB%96%E6%96%87%E3%81%8C5%E4%BB%B6%E6%8E%A1%E6%8A%9E%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82/ 東京大学松尾研究室のブログにて下記のとおり公開。 平成30年4月4日:https://www.wantedly.com/companies/weblab/post_articles/114692
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係るマルチエージェント環境10の構成を示す。マルチエージェント環境10は、1または複数の情報ソース100a~cと、1または複数の特徴抽出装置110a~cと、1または複数のエージェント120a~fと、1または複数の情報利用装置130a~bと、プラットフォーム140とを備える。マルチエージェント環境10は、各特徴抽出装置110a~c、各エージェント120a~d、および各情報利用装置130a~bが協調して情報処理を行いつつ、各々が独立して情報提供等に対する報酬を得て収益を最大化することが可能なフレームワークを提供する。
1または複数の情報ソース100a~c(「情報ソース100」と総称する。)は、マルチエージェント環境10における情報処理の大元となる情報を提供する。情報ソース100は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。また、情報ソース100は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、情報ソース100は、情報ソース100が実現すべき機能を実装すべく設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。また、情報ソース100は、温度センサ、湿度センサ、圧力センサ、加速度センサ、ガスセンサ、およびその他のセンサ等であってもよい。
このような情報ソース100は、例えば、株価、企業情報およびその他の各種金融商品に関する情報、様々なウェブサイト、SNS、掲示板、チャット、ツィート、動画または音声のストリームデータ、およびその他の、インターネット等のネットワークを介してアクセス可能な様々な情報、ならびに、天気、温度、湿度、圧力、加速度、ガスの成分、およびその他のセンサデータといった様々な情報を無料または有料で提供する。
ここで、各々の情報ソース100は、例えばある特定のウェブサイトが提供する情報といった特定の情報を提供するものであってもよい。多数の情報ソース100がマルチエージェント環境10の中に導入されることによって、マルチエージェント環境10内の複数の情報ソース100は、全体として世界中に存在する全てまたは大部分の情報をマルチエージェント環境10内で利用可能とすることも可能である。
1または複数の特徴抽出装置110a~c(「特徴抽出装置110」と総称する。)は、1または複数の情報ソース100の少なくとも1つに直接またはネットワークを介して接続され、情報ソース100により提供される情報の特徴を抽出して、後段のエージェント120a~f等で利用可能なデータ形式に変換する。特徴抽出装置110は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。また、特徴抽出装置110は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、特徴抽出装置110は、特徴抽出装置110が実現すべき機能を実装すべく設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。
一例として、特徴抽出装置110は、あるウェブサイトのテキストデータを解析して、そのテキストの特徴データを出力する。このようなテキストからの特徴抽出またはテキストマイニングの手法は多数提案され、実用化されている。また、各特徴抽出装置110は、テキストデータ以外の情報についても、様々なデータマイニング手法、画像処理手法、音声データ処理手法、統計処理手法、およびその他のデータ処理手法の中から各特徴抽出装置110の設計者等が選択した手法を用いて解析し、得られたデータを出力してよい。ここで、各特徴抽出装置110は、独立した事業者または個人によって運営されてよく、各々の事業者等が得意分野または興味等に応じて他の事業者等の動向を気にすることなく独自の情報、または他の特徴抽出装置110と大差ない情報を出力してよい。このような特徴抽出装置110が多数マルチエージェント環境10の中に導入されることによって、マルチエージェント環境10内の複数の特徴抽出装置110は、全体として世界中に存在する全てまたは大部分の情報を様々な面から着目した多くの種類の特徴データセットを提供することも可能である。
本実施形態に係る各特徴抽出装置110は、マルチエージェント環境10内のネットワークにおいて後段に位置するエージェント120a~fおよび情報利用装置130a~bの処理を規格化するべく、予め定められた共通データ形式の情報を出力する。この共通データ形式は、一例としてスカラ値、ベクトル値、またはテンソル値等であってよい。これに代えて、各特徴抽出装置110は、各々独自のデータ形式で情報を出力し、後段のエージェント120a~f等が、各々の特徴抽出装置110が出力する情報のデータ形式を考慮したプログラムを実行等することにより目的とする情報処理を行うようにしてもよい。
1または複数のエージェント120a~f(「エージェント120」と総称する。)のそれぞれは、1または複数の特徴抽出装置110a~cおよび/または他の1または複数のエージェント120に直接またはネットワークを介して接続され、上流側(情報供給側)の1または複数のエージェント(他のエージェント120に加え特徴抽出装置110を含む広義のエージェント)のそれぞれから受け取る情報を利用して情報処理を行う。そして、エージェント120は、情報処理によって生成した情報を下流側(情報消費側)の1または複数のエージェント(他のエージェント120に加え情報利用装置130を含む広義のエージェント)へと提供する。
エージェント120は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。また、エージェント120は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、エージェント120は、エージェント120が実現すべき機能を実装すべく機能を実現すべく設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。
ここで、各エージェント120は、独立した事業者または個人によって運営されてよく、各々の事業者等が得意分野または興味等に応じて他の事業者等の動向を気にすることなく独自に他のエージェントから情報を収集し、収集した情報を独自に加工等して、独自の情報、または他の特徴抽出装置110と大差ない情報を出力してよい。
1または複数の情報利用装置130a~b(「情報利用装置130」と総称する。)のそれぞれは、1または複数のエージェント120に直接またはネットワークを介して接続され、1または複数のエージェント120のそれぞれから受け取る情報を活用して収益を上げる。各情報利用装置130は、情報利用装置130を運用する事業者等自体で収益を上げてもよく、マルチエージェント環境10の外部の事業者または個人等に収益をもたらし、その収益に対する報酬を受け取ってもよい。
情報利用装置130は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。また、情報利用装置130は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、情報利用装置130は、情報利用装置130が実現すべき機能を実装すべく機能を実現すべく設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。
情報利用装置130は、例えば金融機関等によって運用されてもよく、上流側のエージェント120から受け取る情報に基づいて金融商品に投資して収益を上げてもよい。例えば情報利用装置130は、ヘッジファンドのファンド会社によって運用されてもよく、投資家によって投資を受けた資金を上流側のエージェント120から受け取る情報に基づいて運用して収益を上げ、その収益から報酬を除いて投資家に分配してもよい。
これに代えて、情報利用装置130は、例えば製造業の事業者等によって運用されてもよく、上流側のエージェント120から受け取る情報に基づいて製品の製造量、製造する製品の構成比率、製造国、およびその他のパラメータを変更することによって、収益の増加(コスト削減を含む)を図ってもよい。また、情報利用装置130は、例えば天気、農産物の生産量、およびその他の様々な環境に影響される事象を予測してもよく、予測データを販売することによって収益を上げてもよい。また、情報利用装置130は、テレビ事業者、新聞社、出版社、およびその他のマスコミュニケーション業者であってもよく、上流側のエージェント120から受け取る情報に基づいてメディアで提供する情報を生成または選別等をすることにより、収益を上げてもよい。
情報利用装置130は、収益を上げることによって得られる報酬をマルチエージェント環境10内のエージェントに分配する。具体的には、情報利用装置130は、収益を上げることによって得られる報酬の少なくとも一部を、情報利用装置130が利用した情報を提供したエージェントに分配する。情報利用装置130から報酬の分配を受けたエージェントも、更に上流側のエージェントへと受け取った報酬の少なくとも一部を分配してもよく、このような報酬分配の連鎖によって情報利用装置130が収益を上げるのに寄与した各エージェントが報酬の分配を受け取ることが可能となる。
プラットフォーム140は、1または複数の特徴抽出装置110、1または複数のエージェント120、および1または複数の情報利用装置130と通信可能に接続され、これらの広義のエージェントがマルチエージェント環境10内で動作するために利用可能な各種のライブラリ機能を提供する。プラットフォーム140は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。また、プラットフォーム140は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、プラットフォーム140は、プラットフォーム140が実現すべき機能を実装すべく機能を実現すべく設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。
例えば、プラットフォーム140は、マルチエージェント環境10内のエージェントの検索機能を、各エージェントの管理者に対して提供してもよい。例えばプラットフォーム140は、各エージェントの説明、紹介、および/または広告等の情報を記憶し、あるエージェントの管理者からの要求を受けて、これらの情報を検索してその管理者に提供してもよい。これにより、プラットフォーム140は、あるエージェントの管理者が、ある特定の情報(例えばグアテマラのウエウエテナンゴの天候予測情報)を提供する特徴抽出装置110またはエージェント120を検索した場合に、そのような情報または類似の情報を出力する特徴抽出装置110またはエージェント120に関する情報をその管理者に提供することができる。
また、プラットフォーム140は、一部または全てのエージェント間の通信を中継してもよい。ここで、プラットフォーム140は、マルチエージェントの情報処理に関する情報のやり取りについては中継せずにエージェント間で直接やり取りさせ、各エージェント間での報酬の分配処理に関するデータのやり取りついては各エージェントからプラットフォーム140が提供するAPI(アプリケーション・プログラム・インターフェイス)を呼び出すことによって実現可能としてもよい。
以上に示したとおり、マルチエージェント環境10内の複数のエージェント(特徴抽出装置110、エージェント120、および情報利用装置130)は、ニューラルネットワークのようなネットワーク構造の中で情報を入出力しつつも、それぞれが独立して報酬を受け取るノードとして機能する。このため、本実施形態において、各エージェントをニューロンと呼ぶこともある。なお、本図においては、マルチエージェント環境10は、複数の特徴抽出装置110のそれぞれを入力ノードとし、複数の情報利用装置130のそれぞれを出力ノードとし、複数のエージェント120のそれぞれを中間ノードとする多層ニューラルネットワークのようなネットワーク構造を有するが、マルチエージェント環境10はこれに限られず複数の特徴抽出装置110および複数の情報利用装置130の間が任意のエージェント120のネットワークによって結合されていてもよい。本実施形態において、このエージェント120のネットワークは、非循環ネットワークを前提に説明をするが、エージェント120のネットワークは循環ネットワークであっても実現可能である。
以下に、マルチエージェント環境10における報酬分配の前提を説明する。複数のエージェント間のネットワークを、有向グラフGraph=(Vertex,Edge)と表す。ここで集合Vertexは、全エージェントv1~Nの集合Vertex={v1,…,vN}である。集合Edgeは、エージェント間のエッジの集合Edge⊂Vertex2である。ここで、(vi,vj)∈Edgeの場合、viからvjへと情報を伝達する接続が存在することを示す。エージェントviが接続されるエージェント(すなわち1つのエッジを介してエージェントviの下流側に接続されるエージェント)の集合は、Ni
out={j|(vi,vj)∈Edge}と表される。エージェントviに接続されるエージェント(すなわち1つのエッジを介してエージェントviの上流側に接続されるエージェント)の集合は、Ni
in={j|(vj,vi)∈Edge}と表される。
エージェントviが時刻tに出力する情報は、xitと表される。本実施形態においては、説明を簡単にするためxitは実数のスカラデータであることとするが、xitは任意のデータ形式をとってもよい。
本実施形態においては、各エージェントの特性として以下の仮定をおく。なお、本実施形態に係るマルチエージェント環境10は、これらの仮定の一部を前提としない場合においても実現可能である。
(1)仮定1
各エージェントv
iは、自己の収益(累積報酬)を最大化する。ここで累積報酬は、将来価値を割引率γ(0<γ≦1)によってディスカウントした値であってよく、以下の式(1)により表される。ここで、Tは累積報酬を考慮すべき期間の最終時刻であり、時刻1からTの期間をエピソードという。
(2)仮定2
全エージェントの集合Vertexの内部で発生する内部報酬の合計は0である。したがって、全エージェントの集合Vertexが時刻tに受け取る報酬の合計は、全エージェントの外部から時刻tに受け取る外部報酬R
t
exと等しくなる。ここで、エージェントv
iが時刻tに受け取る報酬をR
it、外部報酬をR
it
exとすると、以下の式(2)が成立する。なお、情報利用装置130は、1または複数のエージェント120からの情報を受け取って最終的に使用する情報を生成し、その情報を利用して収益を上げる。なお、情報利用装置130は、情報利用装置130を運用する事業者等のコスト削減を行ってもよいが、このようなコスト削減による収益も複数のエージェントのネットワークの外部でのアクションによって得られる収益であることから、この収益による報酬も外部報酬とみなす。
なお、本実施形態において、情報利用装置130以外のエージェントは、他のエージェントに対する情報の出力以外に報酬を得る手段を有していない。そこで、本実施形態においては、各特徴抽出装置110および各エージェント120の外部報酬は0であるとする。なお、情報利用装置130以外のエージェントが情報の出力とは無関係に外部報酬を得ている場合においても、各エージェントは、その外部報酬を除いて以下に示すような処理を行うことで、自己の収益を最適化することができる。
(3)仮定3
エージェントviは、提供する情報xiに対する内部報酬ρjitを下流側のエージェントvjから受け取る。この場合、この内部報酬ρjitは、エージェントvjの報酬Rjtから差し引かれる。
(4)仮定4
エージェントviは、自己の収益がδ未満となる場合には、ノーオペレーション(NOOP)を選択し、情報の入出力を行わないことができる。このδは、一例として0を超える額(十分な収益とみなせない小さな額)であってもよい。
マルチエージェント環境10の社会的厚生関数(Social Welfare function)G
allは、仮定2から目的関数Gと等価であり、以下の式(3)で表される。
仮定3から、エージェントv
iの報酬R
itは、以下の式(4)のとおり表すことができる。
ここで正の項は、収入であり、以下の式(5)で表される。
式(4)の負の項は、コストであり、以下の式(6)で表される。
各エージェントv
iは、割引率を用いた累積報酬G
itを最大化する。累積報酬G
itは、以下の式(7)で表される。
ここで、累積報酬G
itは、エピソードの最後(最終時刻T)にならないと観測できないが、各エージェントv
iが最適なアクションを選択するためには現時点で得られる値が必要となる。そこで、累積報酬G
itは、以下の式(8)に示す価値関数V
i
πi(s
it)で近似される。ここで、s
itは、エージェントv
iの状態であり、本実施形態においてエージェントv
iの観測値(エージェントv
iが入力する情報の値)およびエージェントv
iの内部状態の少なくとも一部を含む値に応じた状態値を有してよい。このエージェントv
iの観測値は、一例として直前の時刻におけるエージェントv
iの観測値であってよい。π
iは、エージェントviが有するポリシーであり、状態s
itにおいてエージェントv
iがどのように振る舞うかによって価値関数の値が変わりうることを示す。記号Eは、期待値を示す。
式(9)から、各エージェントviは、収入ritを最大化し、コストcitを最小化し、価値関数Vi
πi(si,t+1)を高めるように構成される。ここで、報酬Rit>0(すなわちrit>cit)の場合、エージェントviは、入力される情報に対して付加価値を加えたとみなすことができる。ここで、各エージェントviは、全ての時刻tでRit≦0である場合、および、ある時刻tでRit≦0であり価値関数Vi
πi(sit)<δの場合等の収益が上げられない場合等の予め定められた条件が成立する場合には、NOOPを選択する。なお、各エージェントviは、エージェントviを運営する事業者独自の判断基準に応じて、どのような条件NOOPを選択するかを設定可能であってもよい。
ここで、式(9)を無思慮に最適化しようとすると、各エージェントは、コストcitを0に抑えることとなる。この場合、マルチエージェント環境10全体では、最終段以外のエージェントが報酬を受け取ることができなくなり、NOOPを選択して情報を提供しなくなってしまう。この結果情報利用装置130は、有用な情報を受け取って収益を上げることができなくなり、マルチエージェント環境10全体が受け取る外部報酬Rt
exも大きく減少してしまうこととなる。このような社会的ジレンマを回避するために、マルチエージェント環境10は、次に示すように、各エージェントが自己の収益を高めつつ、そのエージェントに情報を提供した情報供給エージェントに対して誠実に報酬を支払うことができるスキームを採用する。
図2は、本実施形態に係るエージェント120の構成を示す。エージェント120は、複数の上流側(情報供給側)のエージェントの少なくとも1つから受け取る情報に基づいて生成した情報を、1または複数の下流側(情報消費側)のエージェントに提供して報酬を得る。本実施形態において、各エージェント120は、オークションによってそのエージェント120の上流側(情報供給側)のエージェントの情報を入札し、下流側(情報消費側)のエージェントからの入札を受けて情報の価格を決定する。このような構成において、エージェント120は、複数の情報供給エージェントのうち一の情報供給エージェントへの入札が失敗したことに応じて、一の情報供給エージェントが提供する情報の少なくとも一部を利用せずに処理を行って報酬を得る。
エージェント120は、情報受信部200と、情報処理部210と、情報送信部220と、仮想収益推定部230と、価格判定部240とを備える。情報受信部200は、着目している対象エージェント120(vi)に対して直接情報を提供すべく接続されている1または複数の情報供給エージェントvjが出力する情報xjtを受け取る。ここで、情報供給エージェントvjは、対象エージェント120(vi)との間で、(vj,vi)∈Edgeの関係を有する特徴抽出装置110またはエージェント120である。
情報処理部210は、情報受信部200に接続され、情報受信部200が受け取った情報を用いて情報処理を行う。情報処理部210は、受け取った情報を対象エージェント120の設計者が有用と考える情報に変換する任意の情報処理を行ってよく、ニューラルネットワーク、サポートベクタマシーン、ランダムフォレスト、勾配ブースティング、ロジスティック回帰、およびその他の機械学習アルゴリズムを用いて受け取った情報から目標とする情報が得られるように学習された情報処理を行ってもよい。
情報送信部220は、対象エージェント120(vi)から直接情報を提供すべく接続されている1または複数の情報消費エージェントvjに対して、情報処理部210の情報処理によって生成された情報xitを送信する。ここで、情報消費エージェントvjは、対象エージェント120(vi)との間で、(vi,vj)∈Edgeの関係を有するエージェント120または情報利用装置130である。
仮想収益推定部230は、複数の情報供給エージェントのそれぞれから受け取る情報を利用して対象エージェント120が得た報酬に基づいて、複数の情報供給エージェントのそれぞれが提供する情報によって得られる仮想収益を推定する。仮想収益推定部230による仮想収益の推定方法については、後述する。
価格判定部240は、複数の情報供給エージェントのそれぞれに関する仮想収益に基づいて、複数の情報供給エージェントに対する情報の価格を判定する。これにより各エージェント120は、各情報供給エージェントが提供する情報の価値を妥当な価格に見積もって各情報供給エージェントへと支払うことができ、自エージェントの収益を上げながら継続的に必要な情報を得て自エージェントが出力する情報の価値を維持向上することが可能となる。単純なインプリメンテーションにおいては、各エージェント120は、仮想収益のある割合(例えば予め定められた割合)の部分を自己の収益として留保し、残りの部分を情報供給エージェントへの報酬としてもよい。
本実施形態においては、価格判定部240は、更に情報の価格を妥当に決定するべくオークションによる価格決定メカニズムを採用する。このような価格判定部240は、入札処理部250と、応札処理部260とを有してよい。
入札処理部250は、複数の情報供給エージェントのそれぞれに関する仮想収益に基づく入札額で、複数の情報供給エージェントのそれぞれの情報提供に対して入札を行う。入札処理部250は、情報供給エージェントが決定した落札額がその情報供給エージェントに対する入札額以下であったことに応じて、その情報供給エージェントが決定した価格をその情報供給エージェントに対する情報の価格として決定する。入札処理部250は、各情報供給エージェントに対する入札が成功したか否かを情報受信部200へと通知する。これを受けた情報受信部200は、入札が成功した情報供給エージェントから受け取った情報は情報処理部210へと供給し、入札が失敗した情報供給エージェントについては例えば過去の情報の平均または疑似平均等のダミー情報を情報処理部210へと供給するようにしてよい。
応札処理部260は、1または複数の情報消費エージェントからの入札に応じて対象エージェントが生成する情報の落札額を決定し、落札結果及び/又は落札額を各情報消費エージェントに通知する。ここで、応札処理部260は、1または複数の情報消費エージェントのうち入札に成功した情報消費エージェントから得られる対価の合計額が最大となる価格を、対象エージェントが生成する情報の落札額として決定してよい。応札処理部260は、各情報消費エージェントからの入札が成功したか否かを情報送信部220へと通知する。これを受けた情報送信部220は、入札に成功した情報消費エージェントに対しては情報処理部210が生成した情報を送信し、入札に失敗した情報消費エージェントに対しては情報処理部210が生成した情報を送らないようにする。これに代えて、応札処理部260は、入札に失敗した情報消費エージェントに対しても、情報送信部220が生成した情報の一部のみ、または過去の情報の平均または疑似平均等の精度を下げた情報を送るようにしてもよい。
以上に示したエージェント120によれば、情報供給エージェントからの情報の価格を適正な価格に決定することができ、エージェント120が収益を上げつつ各情報供給エージェントに報酬を分配することができる。
なお、他のインプリメンテーションにおいては、エージェント120は仮想収益推定部230および価格判定部240を内蔵せず、各エージェント120に対する仮想収益推定部230および価格判定部240の機能・構成をプラットフォーム140側に設けるようにしてもよい。
また、上記においてはエージェント120の構成を示したが、他のエージェント(特徴抽出装置110および情報利用装置130)も上記エージェント120の機能の少なくとも一部を有していてよい。例えば、特徴抽出装置110は、複数のエージェント120に情報を提供することから、エージェント120における出力側の構成、すなわち例えば情報送信部220および価格判定部240(特に応札処理部260に関する機能構成)を有してもよい。また、情報利用装置130は、複数のエージェント120から情報を受け取ることから、エージェント120における入力側の構成、すなわち例えば情報受信部200、仮想収益推定部230、および価格判定部240(特に入札処理部250に関する機能構成)を有してもよい。
図3は、本実施形態に係るエージェント120における情報の価格決定プロセスを示す。まず、複数のエージェントvj(図中j=1,2,3、「買い手」とも示す。)は、時刻tにおけるエージェントvi(「売り手」とも示す。)の情報提供(情報xitの提供)に対して、入札をする(図3左上の入札処理)。入札処理において、各買い手エージェントvj内の入札処理部250は、自エージェントvjの入札額bjit(図中、b1it~b3it)を決定し、買い手に通知して入札を行う。
売り手エージェントvi内の応札処理部260は、各買い手エージェントvjからの入札に応じて、売り手エージェントviが生成する情報の落札額qitを決定する。本実施形態においては、応札処理部260は、落札額を最適価格に決定するが、最適落札額であることを明示する場合には落札額qitの上に「^」の記号を付す。売り手エージェントvi内の応札処理部260は、決定した落札額qitを各買い手エージェントvj内の入札処理部250に通知する(図3右上の落札処理)。買い手エージェントvjは、入札額bjitが落札額qit以上の場合には情報xitを落札することができるが、入札額bjitが落札額qit未満の場合には情報xitを落札することができない。
ここで、割当g
jitを、買い手エージェントv
jが落札した場合に値1をとり、落札できなかった場合に値0をとる変数と定義する。割当g
jitは、ステップ関数H()(入力値が0以上の場合に1、0未満の場合に0となる関数)を用いて以下のとおり表すことができる。
本実施形態おいては、前述した仮定1~4に加えて、価格の決定について以下の仮定をおく。
(5)仮定5
同じ売り手エージェントv
iに対して買い手エージェントv
jおよびv
j'が支払う内部報酬をρ
jitおよびρ
j'itとすると、これらの対価の間には以下の関係(11)が成り立つ。
すなわち、2以上の買い手エージェントは、同じ売り手エージェントに対して、同じ情報の提供を受ける場合には、同じ内部報酬qit=ρjit=ρj'itを支払うものとする。
買い手エージェントv
j内の入札処理部250は、落札に成功した場合に落札額q^
itを売り手エージェントv
iに支払う処理を行い、落札に失敗した場合には売り手エージェントv
iに対して支払いを行わない(図3左下の支払処理)。売り手エージェントv
iに対価q^
itを支払った買い手エージェントv
jでは、収益が支払額q^
it分減少する。買い手エージェントv
jが売り手エージェントv
iに支払う内部報酬ρ
jitは、以下の式(12)で表すことができる。
対価の支払いを受けたことに応じて、売り手エージェントviは、買い手エージェントvjに対して情報xitを提供する。なお、各エージェントがある程度信用できる場合には、売り手エージェントviは、買い手エージェントvjから後払いで対価の支払いを受けるスキームを採用してもよく、ある程度の期間(例えば1ヶ月等)の間の対価を累積して支払いを受けるスキームとしてもよい。
エージェント120(vi)の収入およびコストは、本図に関連して説明したパラメータを用いて以下のように表すことができる。
(1)収入
エージェント120の収入は、式(5)および式(12)から、以下の式(13)で表すことができる。
ここで、d
itは、エージェント120の情報提供に対する需要であり、以下の式(14)に示すように、入札額b
jitが落札額q
it以上となった買い手エージェントv
jの数である。
外部報酬R
i
exは落札額q
itとは独立に決まることから、エージェント120の収入r
itを最大化する最適落札額q^
itは、需要d
it×落札額q
itを最大とするq
itであり、以下の式(15)で表すことができる。
図4は、式(15)による情報の落札額の決定方法を示すグラフである。本図の横軸は、式(15)における価格qを示し、縦軸は価格qにおける需要dit(q)および収入rit=qdit(q)の大きさを示す。一般的には、本図のように価格qが上昇するにつれて需要曲線dit(q)は漸減していく。このため、価格qを増やしていくと、ある程度まで収入ritは増加していくが、価格qを増やしすぎると収入ritは却って減少していく。したがって、ある価格において収入ritが最大となるポイントがある。エージェント120内の応札処理部260は、入札してきた全ての買い手エージェントvjの入札額bjitを受信するので需要曲線dit(q)を知ることができる。したがって、応札処理部260は、全ての買い手エージェントvjの入札額bjitから、収入ritが最大となる最適落札額q^itを決定することができる。
(2)コスト
エージェント120のコストは、エージェント120が情報供給エージェントに支払う内部報酬の合計であり、以下の式(16)によって表すことができる。
ここで、ベクトルg
itは、割当ベクトルであり、以下の式(17)に示すように定義される。
ベクトルq
tは、落札額ベクトルであり、以下の式(18)に示すように定義される。
(3)価値関数
エージェント120(vi)が生成する情報xitは、情報供給エージェントから入力される情報に依存し、情報消費エージェントの入札額に影響を与える。エージェント120の入札額bijtが最小化されると、情報供給エージェントから情報を買うことができなくなり、エージェント120が得ることができる報酬が将来的に減少してしまう。したがって、入札が成功する場合および失敗する場合の両方を考慮した価値関数を用いる。
本実施形態において、価値関数は、以下の式(19)に示すように、割当ベクトルg
itの線形関数として近似する。
ここで、ベクトルoitは、仮想収益(「反実仮想収益(counterfactual return)」とも示す。)のベクトルである。ベクトルoitの各要素は、各情報供給エージェントvjからの情報xjtを利用することによって得られる仮想収益である。また、Vit
0は、割当ベクトルgitによらない定数であり、エージェント120が情報x1、…、xNを用いずにアクションをした場合における価値関数である。
これにより、エージェント120における最適化問題は、以下の式(20)に示すエージェントv
iの状態行動価値関数Q
i(・,・)によって実現される。
式(20)の左辺は、状態s
itにおいてアクションaを最適化したときのQ
i(s
it,a)の最大値を意味する。アクションaは、各情報供給エージェントへの入札額を要素とするベクトルb、および対象エージェント120の落札額qを含み、a=(ベクトルb,q)と表される。式(20)の右辺は、式(9)の各項について、式(13)、式(16)、式(19)を参照して導くことができる。ここで、式(13)における外部報酬R
it
ex、および式(19)におけるV
it
0は、式(20)の定数項にまとめられる。なお、対象エージェント120にとって、落札額のベクトルq^
tは、自己の落札額q^
itおよび入札をした情報供給エージェントの落札額を除いて未知であるから、式(20)においてはE
q^t[・]を用いて期待値であることを示している。
ここで、エージェント120の報酬を最大化させる入札額b^
itについては、以下の式(21)に示す法則が成り立つ。この理由については後述する。
本実施形態において、各エージェントは、上記の式(21)を用いて入札額を決定する。これに代えて、各エージェントは、仮想収益に基づいて、式(21)とは異なる式を用いて入札額を決定してもある程度妥当な報酬分配を実現することができる。例えば、各エージェントは、入札額を、仮想収益にγ以外の係数を乗じた額としてもよく、仮想収益によらない定数を更に加えた額としてもよく、仮想収益に加えて他の変数を加味した額としてもよい。他の変数を加味する場合、各エージェントは、一例として前回入札に失敗した場合には今回の入札額を(損失が発生しないと予測される範囲で)増加させる等といった要素を採り入れてもよい。
式(21)から、各エージェントは、自己に対する仮想収益(情報消費エージェントにおける自エージェントに対する仮想収益)を増やすように情報を充実させることで、入札額を増加させ、収益を増やすことができる。このようなマルチエージェント環境10においては、各エージェントがとるアクションa=(ベクトルb,q)について、以下の結論を導くことができる。
(結論)
各エージェントがとるアクションは、以下の式(22)においてナッシュ均衡となる。
以上に示したマルチエージェント環境10は、各エージェントが自己に対する仮想収益(情報消費エージェントにおける自エージェントに対する仮想収益)を増やすように情報を充実させることで、入札額を増加させ、収益を増やすことができる環境を提供することができる。このようなマルチエージェント環境10においては、各エージェントを運用する事業者等は、情報供給エージェントに十分な支払をしつつ有用な情報を提供していかなければ淘汰されていく。これにより、マルチエージェント環境10は、複数のエージェントが協調して情報を生成し、全体の収益を高めていくことができる環境を実現することができる。
図5Aおよび図5Bは、本実施形態に係るマルチエージェント環境10の動作フローを示す。また、図6は、本実施形態に係るマルチエージェント環境10の動作アルゴリズムの一例を示す。
ステップS500(図6の1行目に対応)およびS580(図6の18行目に対応)において、マルチエージェント環境10は、時刻1からTまでの間S505~S575を繰り返すループ制御を行う。時刻1からTまでの期間は、マルチエージェント環境10による報酬等の学習の単位であり、「エピソード」と示される。図5~6においては、1エピソード分の動作を示しているが、マルチエージェント環境10は、時間の経過に伴って多数のエピソード(時刻1からTまでのエピソード)を実行していくことにより、学習を進めていく。例えば、時刻の1ステップが0.1秒、1エピソードが0.6分(T=360)である場合、マルチエージェント環境10は、1時間に100エピソード、1日に2400エピソード、1ヶ月(30日)に72000エピソードを実行してよい。このような強化学習を行うことによって、マルチエージェント環境10内の各エージェントは、推定する仮想収益の精度を高めていくことができ、より適切な落札額を提示することができるようになっていく。
S505(図6の2行目に対応)において、マルチエージェント環境10内の複数のエージェントのそれぞれは、対象エージェントviへの接続が存在する各情報供給エージェントvjに対して、各情報供給エージェントvjに関連づけられた仮想収益oijtに基づく入札額で入札を行う。本実施形態に係る各エージェント内の入札処理部250は、事業者等が各々収益を最大化する経営判断をした結果として、式(21)に示した最適入札額で入札を行うように設定されてよい。
S510(図6の3行目に対応)およびS540(図6の10行目に対応)において、入札を受けた各エージェント内の応札処理部260は、入札に成功する情報消費エージェトから得られる対価の合計額が最大となる最適落札額を決定する。ここで、応札処理部260は、式(15)により落札額を決定してよい。応札処理部260は、決定した落札額を接続先の各情報消費エージェントに通知する。
S515(図6の4行目に対応)において、マルチエージェント環境10内の各エージェントは、情報供給エージェントviから情報消費エージェントvjへの各接続について、S520からS535を行うループ処理を開始する。
S520(図6の5行目に対応)において、情報消費エージェントvj内の入札処理部250は、情報供給エージェントviから受け取った落札額q^itが自己の入札額bjit以上か否かを判定し、落札結果の一例として割当gjitを式(10)により算出する。情報供給エージェントvi内の応札処理部260は、同様にして各情報供給エージェントvjに対する落札結果(一例として割当gjit)を算出する。
S525(図6の6行目に対応)において、情報消費エージェントvj内の入札処理部250は、落札結果gjitおよび受け取った落札額q^itに基づいて、情報供給エージェントviに対して支払う対価を決定する。入札処理部250は、式(12)に基づいてこの対価を決定してよい。
S530(図6の7行目に対応)において、情報消費エージェントvj内の入札処理部250は、情報供給エージェントviに対して対価ρjitを支払う処理を行う。これにより、情報供給エージェントviの報酬Ritは対価分増加し、情報消費エージェントvjの報酬Rjtは対価分減少する。なお、入札処理部250は、仮想通貨を情報供給エージェントviへと送金するブロックチェーン上の処理を行うこと、API等を通じて銀行等の金融機関に送金トランザクションを送ること、または、電子マネーを送金する処理を行うこと等の価値の移転処理を行うことによって対価の支払処理を実現してよい。
S535(図6の8~9行目に対応)において、情報供給エージェントvi内の情報送信部220は、入札に成功した情報消費エージェントvjに対して、情報供給エージェントvi内の情報処理部210が生成した情報xitを発送する。ここで、情報送信部220は、入札が失敗した情報消費エージェントvjに対しては、図6の8行目に示すようにダミー情報x ̄ijtを発送してもよい。このダミー情報x ̄ijtは、例えば図6の9行目に示すように情報xitの平均(オンライン平均)等であってよい。
S545(図6の7行目に対応)およびS575(図6の17行目に対応)において、マルチエージェント環境10は、各エージェントviでS750~S775の処理を実行させるためのループ制御を行う。
S550(図6の12行目に対応)において、エージェントviは、外部状態を観測する。
S555(図6の13~14行目に対応)において、エージェントvi内の情報処理部210は、内部状態Sitを更新する。本実施形態に係る情報処理部210は、時刻tにおける外部状態Sit
ex、各情報供給エージェントから受信した情報(またはダミー情報)、およびエージェントviに設定されたパラメータの組を内部状態Sitとする。外部状態Sit
exは、エージェントviが情報供給エージェント以外の情報ソース等(例えば外部の環境等)から受け取る情報および/またはセンスデータ等に応じて変化する状態である。あるエージェントviが、情報供給エージェントからの情報以外に、マルチエージェント環境10の枠組を用いて報酬を支払う必要がない情報ソース等からの情報等を使用して自己が出力すべき情報を生成する場合、エージェントvi内の情報処理部210は、外部状態Sit
exを用いて内部状態Sitを更新してもよい。
本実施形態においては、説明の便宜上、外部状態、受信した情報、設定パラメータの組み合わせを内部状態としているが、どのような要素に応じてエージェントviの内部状態を決定するかは、エージェントviを運用する事業者等が任意に決定してよい。例えば、エージェントviは、外部状態、受信した情報、および設定されたパラメータのうちの一部のみに基づく内部状態を用いてもよい。また例えば、エージェントviは、外部状態、受信した情報、および設定されたパラメータのうちの少なくとも1つを非可逆変換により縮退した内部状態を用いてもよい。また、エージェントviは、例えば各情報供給エージェントに対する割当gjit等の他のパラメータを含めた内部状態を用いてもよい。
S560(図6の14行目に対応)において、エージェントvi内の情報処理部210は、情報供給エージェントから受信した情報に基づいて、アクションait
exを決定(サンプリング)する。エージェントvi内の情報処理部210は、図6の14行目に示したように、受信した情報に応じて更新された内部状態sitに基づいて、エージェントviが有するアクション決定ポリシーπi
exを用いてアクションait
exを決定してよい。情報処理部210は、予め定められたアルゴリズムを有するプログラムを実行することによりアクションait
exを決定してもよい。これに代えて、情報処理部210は、内部状態sitと事後的に最適であったと判明したアクションとの組を用いて強化学習により選択するアクションait
exの最適化を行ってもよい。この場合において、情報処理部210は、内部状態sitに応じて最適と推定されたアクションをより高い確率で選択する一方で、低い確率で準最適または他のアクションも選択しうるようにアクションait
exをサンプリングしてもよい。
S565(図6の15行目に対応)において、エージェントvi内の情報処理部210は、アクションait
exを実行する。エージェントvi内の価格判定部240は、アクションait
exを実行した結果得られた収益に応じて、外部報酬Rit
ex(ait
ex)を取得する。ここで、S760およびS770は、主に情報利用装置130によって実行されてよく、アクションait
exは金融商品への投資、製造業における各種の製造パラメータの変更、将来の予測、および情報の提供等であってよい。
S570(図6の16行目に対応)において、エージェントv
iの情報消費エージェントv
j内の仮想収益推定部230は、S730における内部報酬のやり取りおよびS765における外部報酬の取得の結果に基づいて、エージェントv
iが提供する情報によって得られるエージェントv
jの仮想収益o
jitを更新する。ここで、仮想収益o
jitは、以下の式(23)で表される。
ここで、x
j,[1:t]は、時刻1からtにおいてエージェントv
jが観測したエージェントv
iの情報の集合を示す。Qc(x
j,[1:t],g
jit=1)は時刻tにおいてエージェントv
iからの情報を観測した場合のエージェントv
jの収益の予測値、Q(x
j,[1:t],g
jit=0)は時刻tにおいてエージェントv
iからの情報を観測できなかった場合のエージェントv
jの収益の予測値を示し、以下の式(24)および式(25)を満たす。
式(24)のQをQ
jit
1、式(25)のQをQ
jit
0と略記すると、式(26)が成立する。
仮想収益推定部230は、複数の情報供給エージェントのうちある情報供給エージェントviからの情報を利用した場合に対象エージェントvjが得る報酬と、その情報供給エージェントviからの情報の少なくとも一部が利用できなかった場合に対象エージェントvjが得る報酬とに基づいて、その情報供給エージェントviに関する仮想収益を推定してよい。仮想収益ojitを推定する方法として、Qjit
1およびQjit
0をQラーニング、SARSA、Actor-Critic等の様々な方法を用いることができる。
非常に単純なインプリメンテーション(「第1インプリメンテーション」と示す。)においては、エージェントvjの内部状態を考慮せず、Qjit
1およびQjit
0をそれぞれ時刻によらない一定値に収束させる、すなわちQjit
1=Qji(t-1)
1およびQjit
0=Qji(t-1)
0を前提とするようにすることが考えられる。このインプリメンテーションにおいては、エージェントvj内の仮想収益推定部230は、複数の情報供給エージェントviのそれぞれについて、時刻によらないQji
1およびQji
0を記憶しておく。エピソードを1回も実行していない初期状態において、仮想収益推定部230は、これらの値を乱数を用いて定めてもよい。ある時刻tにおいて、S705からS765までの処理を行うと、エージェントvjにおける落札額q^t、割当ベクトルgt(式(17)参照)、収入rj、およびコストcjが確定する。
ここで、複数の情報供給エージェントviのそれぞれについて、gjitは1または0である。仮想収益推定部230は、gjit=1の場合にはQji
1を、gjit=0の場合にはQjit
0を式(20)に準じて更新する。すなわち、仮想収益推定部230は、情報供給エージェントviからの情報を利用した場合に対象エージェントvjが得た報酬を用いて、その情報供給エージェントviからの情報を利用した場合に得られると推定される第1仮想報酬Qji
1を更新する。また、仮想収益推定部230は、情報供給エージェントviからの情報の少なくとも一部が利用できなかった場合に対象エージェントvjが得た報酬を用いて、その情報供給エージェントviからの情報の少なくとも一部を利用できない場合に得られると推定される第2仮想報酬Qji
0を更新する。この際、仮想収益推定部230は、式(20)どおりにQji
1またはQji
0を更新してもよく、以前の値との間で加重平均等を取ることにより徐々に更新してもよい。そして、仮想収益推定部230は、更新後のQji
1およびQji
0を用いて式(26)により仮想収益ojitを更新してもよい。すなわち、仮想収益推定部230は、第1仮想報酬および第2仮想報酬の差に基づいて、第1情報供給エージェントに関する仮想収益を算出してよい。
以上において、第1仮想報酬Qji
1および第2仮想報酬Qji
0は、式(9)から導かれたものであるから、情報供給エージェントからの情報を利用した場合および利用しない場合において対象エージェントvjが得る、割引率を考慮した累積的な(反実)仮想収益(総収益)である。仮想収益推定部230は、情報供給エージェントからの情報を利用した場合および利用しない場合において対象エージェントvjが得る総収益(推定総収益)の差に基づいて、仮想収益を算出してもよい。
仮想収益推定部230は、上記の処理を時刻1からTまで、更には複数エピソードにおいて継続的に行っていくことにより、Qji
1およびQjit
0の値を好適な値に近づけることができ、好適な仮想収益ojitを得ることができる。
他のインプリメンテーション(「第2インプリメンテーション」と示す。)においては、仮想収益推定部230は、エージェントvjの内部状態を考慮するものの、各時刻における内部状態は独立であるという前提で仮想収益ojitの推定を行ってもよい。このインプリメンテーションにおいては、仮想収益推定部230は、Qjit
1およびQjit
0をそれぞれ時刻によらない一定値に収束させるようにするが、内部状態別のQji
1(sj)およびQji
0(sj)として記憶するようにする。エピソードを1回も実行していない初期状態において、仮想収益推定部230は、これらの値を乱数を用いて定めてもよい。ある時刻tにおいて、エージェントvjの内部状態がsjtである場合、仮想収益推定部230は、内部状態sjtに対応するQji
1(sjt)またはQji
0(sjt)のみを、第1インプリメーテーションと同様に更新する。この場合、仮想収益ojitも内部状態に応じて異なる値をとるので、入札処理部250は、内部状態に応じた仮想収益ojit(sjt)を用いて入札額bjitを決定してよい。
ここで、仮想収益推定部230は、第2インプリメンテーションまたは他のインプリメンテーションにおいて、外部状態、受信した情報、設定パラメータの全ての組み合わせについて個別に上記処理を行う代わりに、内部状態を例えば数個~数十個程度の状態値に写像して仮想収益の推定に用いる内部状態として用いてもよい。内部状態の状態数が多くなるほど学習の収束に時間がかかるものの、状況に応じてより高い精度で仮想収益を推定できるようになり、内部状態の状態数が少ないほど学習の収束が早くなるが仮想収益の推定精度が低くなりうる。
更に他のインプリメンテーション(「第3インプリメンテーション」と示す。)においては、仮想収益推定部230は、エージェントvjの内部状態の遷移を考慮して仮想収益ojitの推定を行ってもよい。このインプリメンテーションにおいては、Qラーニングの考え方を取り入れる。仮想収益推定部230は、複数の情報供給エージェントviのそれぞれについて、時刻1からTの各時刻に対応してQjit
1(sj)およびQjit
0(sj)を記憶しておく。エピソードを1回も実行していない初期状態において、仮想収益推定部230は、これらの値を乱数を用いて定めてもよい。
仮想収益推定部230は、gjit=1の場合にはQjit
1を、gjit=0の場合にはQjit
0を式(9)に準じて更新する。ここで、式(9)におけるVi
πi(si,t+1)として次の時刻t+1における状態sj,t+1に対応するQji,t+1
1(sj,t+1)またはQji,t+1
0(sj,t+1)を用いることから、仮想収益推定部230は、次の時刻t+1のS770において前の時刻tのQjit
1(sjt)またはQjit
0(sjt)を更新してもよい。そして、仮想収益推定部230は、更新後のQji
1およびQjit
0を用いて式(26)により仮想収益ojitを更新してもよい。
このインプリメンテーションにおいては、エージェントvjは、上記の処理を複数のエピソードにわたって繰り返し行うことで、Qjit
1(sj)およびQjit
0(sj)の値を好適な値に近づけることができ、さらに後に実行するエピソードにおいて好適な仮想収益ojitを使うことができる。
更に他のインプリメンテーション(「第4インプリメンテーション」と示す。)においては、仮想収益推定部230は、内部状態sjtからQ関数(Qjit
1(sjt)およびQjit
0(sjt))を予測するためにニューラルネットワーク等の機械学習を用いてもよい。時刻tのS770において、仮想収益推定部230は、内部状態sjt(時刻tまでの情報xj,[1:t]を含む状態)に基づいて、内部状態sj,t+1(時刻t+1までの情報xj,[1:t+1]を含む状態)におけるQjit+1
1(sj,t+1)およびQjit+1
0(sj,t+1)を予測し、時刻t+1における仮想収益ojit+1を予測する。
次の時刻t+1のS705において、入札処理部250は、予測された仮想収益ojit+1を用いて入札をすることができる。仮想収益推定部230は、時刻t+1のS765において、落札の成否に応じてQjit+1
1(sj,t+1)またはQjit+1
0(sj,t+1)の実績値が得られたことに応じて、ニューラルネットワーク等を更に学習させてよい。
このようなニューラルネットワークを用いた学習においては、非特許文献3に記載されたような二重化ネットワーク(dueling network)の手法を用いて状態関数とQ関数との差分を別々に予測するようにしてもよい。この際、非特許文献4に記載されたように差分の要素の総和が0になるように正規化してもよい。
より具体的には、エージェントv
jにおいて、エージェントv
iからの情報に関するQ関数は、以下の式(27)によって表される。
ここで、ε(s
t)はエージェントv
jに対する複数の情報供給エージェントv
iについてのQ関数の期待値であり、A
~
i(s
t,a
t)は各情報供給エージェントv
iについてのQ関数の期待値に対する正規化差分であり、以下の式(28)を満たすように決定される。
式(27)から、Q
i(s
t,a
t)の予測値A
i(s
t,a
t)を用いて以下の式(29)を導くことができる。
仮想収益推定部230は、各情報供給エージェントv
iについての正規化差分A
~
i(s
t,a
t)を、それぞれ別個のニューラルネットワーク等を用いて予測し、実績値に応じてこれらのニューラルネットワークを更新してよい。入札処理部250は、正規化差分A
~
i(s
t,a
t)を用いて以下の式(30)により最適な入札額b^
itを算出できる。
更に他のインプリメンテーション(「第5のインプリメンテーション」と示す。)においては、仮想収益推定部230は、仮想収益ojitを、式(26)のようにQjit
1およびQjit
0に分解せずに直接最適化してもよい。このインプリメンテーションにおいては、仮想収益推定部230は、仮想収益oji、時刻毎の仮想収益ojit、内部状態毎の仮想収益oji(sj)、または時刻および内部状態毎の仮想収益ojit(sj)と、式(19)におけるVi,t+1
0とを記憶する。各エージェントvjの仮想収益推定部230は、各時刻tにおける自エージェントの予測報酬を例えば式(19)により算出し、報酬の実績値との差分をマルチエージェント環境10の下流側のエージェントから上流側のエージェントへとバックプロパゲーションさせることにより、多層ニューラルネットワークと同様にして仮想収益およびVi,t+1
0を更新してもよい。
なお、図5~6においては、説明の便宜上マルチエージェント環境10全体の動作フローおよび動作アルゴリズムを示したが、マルチエージェント環境10内の複数のエージェントは、それぞれが上記の動作フローおよび動作アルゴリズムにおける各エージェントの担当部分を他のエージェントと並列または並行して実行してもよい。
本実施形態において、各入札処理部250は、式(21)により最適入札額b^ijtを決定する。以下に、式(21)の落札額が最適落札額であることを示す。
式(20)において、第1項は入札額と無関係であり、第3項は定数である。したがって、最適落札額b^
ijtは、式(
20)の第2項を最小化するb
ijtの値となり、以下の式(31)のように変形することができる。
最適落札額b^
ijtは、各エージェントv
jで独立であるから、式(31)は以下の式(32)に変形することができる。
したがって、最適落札額b^
ijtは、以下の式(33)の条件を満たす解を求めることにより得ることができる。
以下説明の便宜上、q=q
jt、o=o
ij,t+1とおくと、以下の式(34)および式(35)が成立する。
式(34)の(b-γo)p(q=b)が0となるのは、b=γoの場合、すなわちb^
ijt=γo
ijtの場合のみである。さらに、式(35)にb^
ijt=γo
ijtを代入すると、以下の式(36)のとおりとなる。
したがって、b^ijt=γoijtは、式(33)の条件を満たす唯一の解となる。以上により、マルチエージェント環境10は、入札額を式(21)のとおりとすることによって、各エージェントの報酬を最適化することができる。
図7は、本実施形態の変形例に係るマルチエージェント環境10におけるエージェント120の構成を示す。本変形例におけるマルチエージェント環境10は、図1~6に示したマルチエージェント環境10の一部を変形したものである。本変形例のマルチエージェント環境10における、図1~6に示したマルチエージェント環境10と同様の機能および構成を有する構成要素については、図1~6と同じ符号を付し、以下相違点を除いて説明を省略する。本変形例において、エージェント120は、複数の情報供給エージェントの少なくとも1つから受け取る情報を重み付けして生成した情報を、1または複数の情報消費エージェントに提供して報酬を得る。
エージェント120内の情報処理部210は、情報受信部200が受け取った情報を用いて情報処理を行う。本変形例において、エージェント120は、複数の情報供給エージェントのそれぞれから受け取る情報を重み付けして、エージェント120が出力する情報を生成する。ここで、複数の情報供給エージェントおよび対象エージェントを含む複数のエージェント(特徴抽出装置110、エージェント120、および情報利用装置130)は、エージェントネットワークを形成する。エージェント120(および情報処理部210を有する情報利用装置130)は、ニューラルネットワークにおけるニューロン単体またはニューラルネットワークの一部として含まれる部分ネットワークにおける情報処理を担当する。情報処理部210は、複数の情報供給エージェントのそれぞれとの間に定義された重み値を用いて各情報供給エージェントからの情報に重み付けをし、その重み付け和にバイアス値を加えた結果に基づいてエージェント120が出力する情報を生成する。
重み取得部735は、複数の情報供給エージェントのそれぞれから受け取る情報をエージェント120が重み付けしてエージェント120が出力する情報を生成するために用いる重みを情報処理部210から取得する。重み取得部735は、取得した重みを価格判定部240へと供給する。
価格判定部240は、複数の情報供給エージェントのそれぞれに対する重みに基づいて、複数の情報供給エージェントに対する情報の価格を決定する。本変形例においては、価格判定部240は、情報供給側および情報消費側のエージェントの間で情報の価格を妥当に決定するべくオークションによる価格決定メカニズムを採用してよい。価格判定部240内の入札処理部250は、複数の情報供給エージェントのそれぞれに対する重みに基づく入札額で、複数の情報供給エージェントのそれぞれの情報提供に対して入札を行う。
図8は、本実施形態の変形例に係るマルチエージェント環境10の動作フローを示す。図9は、本実施形態の変形例に係るマルチエージェント環境10の動作アルゴリズムの一例を示す。
ステップS700(図9の1行目に対応)およびS790(図9の12行目に対応)において、マルチエージェント環境10は、時刻1からTまでの間S710~S780を繰り返すループ制御を行う。図8~9においては、時刻1からTまでの1エピソード分の動作を示しているが、マルチエージェント環境10は、時間の経過に伴って多数のエピソードを実行していくことにより、学習を進めていく。
S710(図9の2行目に対応)において、マルチエージェント環境10内の複数のエージェントのそれぞれは、対象エージェントviへの接続が存在する各情報供給エージェントvjに対して、各情報供給エージェントvjとの間に対応づけられた重みwijtに基づく入札額で入札を行う。本実施形態に係る各エージェント内の入札処理部250は、図6の2行目に示したように、一例として重みの絶対値|wijt|による入札を行ってよい。
S720(図9の3行目に対応)において、入札を受けた各エージェント内の応札処理部260は、入札に成功する情報消費エージェトから得られる対価の合計額が最大となる最適落札額を決定する。ここで、応札処理部260は、式(15)により落札額を決定してよい。応札処理部260は、決定した落札額を接続先の各情報消費エージェントに通知する。
S730(図9の4行目に対応)において、情報消費エージェントvj内の入札処理部250は、情報供給エージェントviから受け取った落札額q^itが自己の入札額bjit以上か否かを判定し、落札結果の一例として割当gjitを式(10)により算出する。情報供給エージェントvi内の応札処理部260は、同様にして各情報供給エージェントvjに対する落札結果(一例として割当gjit)を算出する。
S732(図9の5行目に対応)において、情報消費エージェントvj内の入札処理部250は、落札結果gjitおよび受け取った落札額q^itに基づいて、情報供給エージェントviに対して支払う対価を決定する。入札処理部250は、式(12)に基づいてこの対価を決定してよい。
S737(図9の6行目に対応)において、情報消費エージェントvj内の入札処理部250は、情報供給エージェントviに対して対価ρjitを支払う処理を行う。これにより、情報供給エージェントviの報酬Ritは対価分増加し、情報消費エージェントvjの報酬Rjtは対価分減少する。
S740(図9の7行目に対応)において、複数のエージェントの情報処理部210は、スイッチングマトリックスUtのサンプリングを行う。各エージェントの情報処理部210は、スイッチングマトリックスUt全体のうち、情報供給エージェントから自エージェントへのリンクに対応する行列要素のサンプリングを担当してよい。本変形例におけるマルチエージェント環境10は、非特許文献5および6を応用して、エージェント間のリンクが確率的にマスクされるエージェントネットワークを採用する。スイッチングマトリックスUtは、各エージェントvjから各エージェントviへのリンクのそれぞれについて、S750で生成するランダムマスクを用いて確率的にマスクするか、リンクをマスクせず割当gijtに基づいて情報xjを利用可能とするかを選択する選択値を含む。複数のエージェントの情報処理部210は、各エージェントvjから各エージェントviへのリンクのそれぞれについて、乱数を生成し、確率ε(0<ε<1)でスイッチングマトリックスUtにおけるi行j列の要素を1とし、それ以外の場合にその要素を0とする。
S750(図9の8行目に対応)において、複数のエージェントの情報処理部210は、ランダムマスクマトリックスMtのサンプリングを行う。各エージェントの情報処理部210は、ランダムマスクマトリックスMt全体のうち、情報供給エージェントから自エージェントへのリンクに対応する行列要素のサンプリングを担当してよい。複数のエージェントの情報処理部210は、各エージェントvjから各エージェントviへのリンクのそれぞれについて、乱数を生成し、予め定められた確率(例えば1/2)でランダムマスクマトリックスMtにおけるi行j列の要素を1とし、それ以外の場合にその要素を0とする。
S760(図9の9行目に対応)において、複数のエージェントの情報処理部210は、アダプティブマスクマトリックスM'tを生成する。各エージェントの情報処理部210は、アダプティブマスクマトリックスM't全体のうち、情報供給エージェントから自エージェントへのリンクに対応する行列要素の生成を担当してよい。複数のエージェントの情報処理部210は、スイッチングマトリックスUtの各要素が1の場合にランダムマスクマトリックスMtの対応する要素を選択し(UtおよびMtの対応する要素毎の積)、0の場合に割当マトリックスGtの対応する要素((1-Ut)およびGtの対応する要素毎の積)を選択する。ここで、割当マトリックスGtは、i行j列の要素として割当gijtを有する。
S770(図9の10行目に対応)において、複数のエージェントの情報処理部210は、アダプティブマスクマトリックスM't、重み、およびバイアスを用いて、出力する情報を生成する。各エージェントの情報処理部210は、自エージェントが出力する情報の計算を担当してよい。複数のエージェントの情報処理部210は、アダプティブマスクマトリックスM'tと重みマトリックスWtとの要素毎の積に、複数の情報供給エージェントからの情報を含むベクトルxtを乗じて、複数のエージェントが有するバイアス値を含むバイアスベクトルbiastを加えることにより、複数のエージェントが出力する情報のベクトルhtを算出する。各エージェントの情報処理部210は、上記により算出した情報の値を出力する情報としてもよく、更にシグモイド関数、tanh関数等の出力関数により変換して出力する情報を生成してもよい。
情報供給エージェントvi内の情報送信部220は、入札に成功した情報消費エージェントvjに対して、情報供給エージェントvi内の情報処理部210が生成した情報を発送する。ここで、情報送信部220は、入札が失敗した情報消費エージェントvjに対しては、図6の8行目と同様にダミー情報を発送してもよい。
S780(図9の11行目に対応)において、複数のエージェントの情報処理部210は、エージェントネットワークの学習を行う。本変形例において、複数のエージェント内の情報処理部210は、ニューラルネットワークにおけるバックプロパゲーションと同様にして、エージェントネットワーク内で情報消費側のエージェントから情報供給側のエージェントへと情報の誤差を逆伝播させ、受け取った誤差に基づいて重み(重みマトリックスWt)およびバイアス(biast)を更新してよい。
なお、図8~9においては、説明の便宜上マルチエージェント環境10全体の動作フローおよび動作アルゴリズムを示したが、マルチエージェント環境10内の複数のエージェントは、それぞれが上記の動作フローおよび動作アルゴリズムにおける各エージェントの担当部分を他のエージェントと並列または並行して実行してもよい。
本変形例に係るマルチエージェント環境10によれば、複数の事業者が運営する複数のエージェントを組み合わせて、ニューラルネットワークのように機能するエージェントネットワークを実現することができる。そして、マルチエージェント環境10内の複数のエージェントのそれぞれは、各情報供給エージェントからの情報提供の対価として、各情報供給エージェントとの間に割り当てられた重みの大きさに応じた報酬(または重みの大きさに応じた入札額に基づいて決定された落札額の報酬)を支払う処理を行う。ここで、情報供給エージェントとの間の重みが大きいほど対象エージェントが出力する情報に与える影響度が高くなることから、重みが大きいほど対象エージェントが出力する情報における寄与度が高くなるといえる。したがって、重みに応じた報酬分配スキームは、複数のエージェントを運営する複数の事業者にとって、納得性が高くなる。
図9の2行目においては、重みの大きさ|Wijt|を入札額bijtとしているが、価格判定部240または入札処理部250は、重みに基づく情報の価格または入札額を、他の計算により決定してもよい。例えば、価格判定部240または入札処理部250は、重みの大きさに定数を乗じた値に応じて情報の価格等を決定してもよく、正規化した重みの大きさ(例えば(対象となる重みの大きさ)/(対象エージェントおよび各情報供給エージェントの間の全ての重みの大きさの和))に対象エージェントが受け取ると推定される仮想報酬を乗じた値に応じて情報の価格等を決定してもよい。また、価格判定部240または入札処理部250は、上記のようにして求めた額に予め定められた定額を加算または減算して情報の価格等を決定してもよい。
なお、図7~9は、マルチエージェント環境10における構成および動作を示したが、図7~9の構成および動作は、複数のエージェントのそれぞれを1つのニューロン等の構成部品とし全体が1つの事業者等によって運営されるシングルエージェント環境にも適用することができる。
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
図10は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インターフェイス2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
通信インターフェイス2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス2222に対し、通信処理を命令してよい。通信インターフェイス2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。