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

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

Info

Publication number
JP2009134394A
JP2009134394A JP2007308361A JP2007308361A JP2009134394A JP 2009134394 A JP2009134394 A JP 2009134394A JP 2007308361 A JP2007308361 A JP 2007308361A JP 2007308361 A JP2007308361 A JP 2007308361A JP 2009134394 A JP2009134394 A JP 2009134394A
Authority
JP
Japan
Prior art keywords
agent
artificial
teacher
virtual space
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007308361A
Other languages
English (en)
Inventor
Kuniaki Noda
邦昭 野田
Masato Ito
真人 伊藤
Hirotaka Suzuki
洋貴 鈴木
Tomohisa Morihira
智久 森平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007308361A priority Critical patent/JP2009134394A/ja
Publication of JP2009134394A publication Critical patent/JP2009134394A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】仮想空間の娯楽性を向上させる。
【解決手段】教師エージェント選択部101は、仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択し、学習部103は、教師エージェントの状況を表す状況情報の時系列を用いて、状況情報の予測値を求める予測モデルの学習を行う。一方、予測部106は、予測モデルを用いて、状況情報の予測値を求め、行動制御部107は、状況情報の予測値に従って、人工エージェントAA#jの行動を制御する。
【選択図】図5

Description

本発明は、情報処理装置、情報処理方法、及びプログラムに関し、特に、仮想空間の娯楽性を向上させることができるようにする情報処理装置、情報処理方法、及びプログラムに関する。
コンピュータネットワークであるインターネットでは、例えば、WWW(World Wide Web)や電子メール等の、オンラインでコミュニケーションを図るためのオンラインコミュニケーション手段が構築され、遠隔地にいるユーザどうしが、画像や文字情報等の情報をやりとりし、コミュニケーションを図ることができる。
WWW等の他、インターネット上のオンラインコミュニケーション手段としては、仮想空間を利用した技術がある(例えば、特許文献1を参照)。
仮想空間を利用した技術としては、例えば、MMORPG(Massively Multiplayer Online Role-Playing Game)等のオンラインゲームや、コミュニケーションを図るための仮想空間を提供するサービスがある。
ここで、コミュニケーションを図るための仮想空間を提供するサービスとしては、例えば、近年急速に発達しているリンデンラボ(Linden Lab)社のセカンドライフ(Second Life)や、今後サービスの提供が予定されているソニー・コンピュータエンタテインメント社のホーム(Home)がある。
いま、オンラインゲームや、仮想空間を提供するサービス等の、仮想空間を利用するオンラインコミュニケーション手段を、オンラインユーザコミュニティということとすると、オンラインユーザコミュニティでは、2次元又は3次元の仮想空間において、ユーザが自由に移動可能なエージェントを操作することによって、実世界では遠隔地にいるユーザどうしが、あたかも近接した実空間に存在しているかのようにコミュニケーションをとることができる。
なお、エージェントとは、仮想空間において、ユーザその他を代理する(模した)キャラクタであり、ユーザを代理するエージェントは、特に、アバタと呼ばれる。
コンピュータの高速化、及び高機能化により、オンラインユーザコミュニティでは、ユーザの外見をリアルに表現するエージェントや、エージェントのジェスチャ、エージェントが存在する環境の変化等を、リアルタイムで共有することができるようになっている。このため、オンラインユーザコミュニティによれば、ユーザは、電子メール等に比較して、より親密なコミュニケーションを図ることができる。
しかしながら、オンラインユーザコミュニティは、ユーザがインターネット上に構築された仮想空間にログインし、エージェント(アバタ)を操作して参加することを前提とするため、仮想空間にログインしているユーザの数が少ない場合には、仮想空間が閑散とした空間になり、コミュニケーションをする相手が少なくなるために、娯楽性が低下し、オンラインユーザコミュニティの持続的な発展を阻害する要因となることがある。
一方、MMORPGなどの、複数のプレイヤ(ユーザ)が同時にログインしてプレイすることができるオンラインゲームにおいて、プレイヤの数を補うためや、オフラインであたかも人間のプレイヤを相手にしているかのようにプレイするため、プレイヤが本来行うべき単純作業や繰り返し作業等を、プレイヤに代わって自動的にコンピュータに行わせる、いわゆる人工エージェントとして、仮想空間の中で自律的に行動をする、ボットと呼ばれるAI(Artificial Intelligence)プレイヤがある。
特開2003-150978号公報
仮想空間が閑散とした空間となるのを防止する方法として、人工エージェントとしてのボットを、仮想空間に登場させる方法が考えられる。
しかしながら、従来のオンラインゲームにおけるボットは、そのプログラムが、あらかじめ想定された環境からの入力(状況)に対応するようにルールベースで記述されており、作り込まれた単純な行動(例えば、戦闘や、アイテム収集等)パターンを出力する(行動をとる)ことを繰り返す。このため、ボットでは、相手からの入力のパターンが非常に多様で、あらかじめ全てのパターンを想定することが不可能な、人間とのインタラクションを自然な形で実現することは困難である。
また、ボットでは、限られた入力のパターンについて、人間とのインタラクションを実現したとしても、あらかじめルールベースで作り込んだ行動パターンを出力するだけで、行動の多様性に限界があるため、ユーザは短時間で飽きてしまい、ユーザの興味を持続的に惹きつけることは難しい。
さらに、近年のオンラインユーザコミュニティは、ユーザの活動に応じて、仮想空間内に新規の建造物その他のアイテム(オブジェクト)が生み出され、仮想空間の環境(状況)が変化し続けるが、従来のルールベースの行動パターンを出力する行動モデル(を利用したボット)では、新規な状況に対応することが困難である。
したがって、オンラインユーザコミュニティでは、あたかも実際のユーザが操作しているかのように自律的に振る舞い、ユーザとインタラクションをとることが可能な人工エージェントを実現することによって、実際のユーザが操作するエージェントの参加が少ない状況下において、仮想空間を賑わせ、仮想空間の娯楽性を向上させることが要請されている。
本発明は、このような状況に鑑みてなされたものであり、仮想空間の娯楽性を向上させることができるようにするものである。
本発明の一側面の情報処理装置、又は、プログラムは、仮想空間上のエージェントの行動を制御する情報処理装置であり、仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択する選択手段と、前記教師エージェントの状況を表す状況情報の時系列を取得する取得手段と、前記教師エージェントの時系列の状況情報を用いて、注目している注目エージェントの状況情報の予測値を求める予測モデルの学習を行う学習手段と、前記注目エージェントの予測モデルを用いて、状況情報の予測値を求める予測手段と、前記状況情報の予測値に従って、前記注目エージェントの行動を制御する行動制御手段とを備える情報処理装置、又は、情報処理装置として、コンピュータを機能させるプログラムである。
本発明の一側面の情報処理方法は、仮想空間上のエージェントの行動を制御する情報処理装置の情報処理方法であり、仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択し、前記教師エージェントの状況を表す状況情報の時系列を取得し、前記教師エージェントの時系列の状況情報を用いて、注目している注目エージェントの状況情報の予測値を求める予測モデルの学習を行い、前記注目エージェントの予測モデルを用いて、状況情報の予測値を求め、前記状況情報の予測値に従って、前記注目エージェントの行動を制御するステップを含む情報処理方法である。
以上のような一側面においては、仮想空間内のエージェントから、行動を学習する対象である教師エージェントが選択され、前記教師エージェントの状況を表す状況情報の時系列が取得される。さらに、前記教師エージェントの時系列の状況情報を用いて、注目エージェントの状況情報の予測値を求める予測モデルの学習が行われ、前記注目エージェントの予測モデルを用いて、状況情報の予測値が求められる。そして、前記状況情報の予測値に従って、前記注目エージェントの行動が制御される。
なお、プログラムは、伝送媒体を介して伝送し、又は、記録媒体に記録して、提供することができる。
また、情報処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
本発明の一側面によれば、仮想空間の娯楽性を向上させることができる。
図1は、本発明を適用したネットワークシステム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは、問わない)の一実施の形態の構成例を示している。
図1において、ネットワークシステムは、サーバ装置11、人工エージェント記憶データベース12、エージェント行動履歴データベース13、端末装置211,212、及び213、コントローラ221,222、及び223、並びにネットワーク31から構成されている。
サーバ装置11は、例えば、LAN(Local Area Network)やインターネット等のネットワーク31と接続されており、同じく、ネットワーク31に接続されている端末装置21i(ここでは、i=1,2,3)を操作するユーザusr#iに対して、オンラインユーザコミュニティとしての仮想空間を提供する。
すなわち、サーバ装置11は、2次元、又は、3次元の仮想空間を構成する建造物その他のオブジェクトの位置等のオブジェクトに関するオブジェクト情報を記憶している。
また、サーバ装置11は、端末装置21iのユーザusr#iがコントローラ22iによって操作する、そのユーザusr#iを代理するエージェント(以下、適宜、ユーザエージェントともいう)UA#iの位置等の、ユーザエージェントUA#iの状況を表す状況情報を、ネットワーク31を介して、端末装置21iから受信し、その情報に基づいて、仮想空間上のユーザエージェントUA#iの位置等の状況情報や、仮想空間のオブジェクトの位置等のオブジェクト情報を更新する。
そして、サーバ装置11は、更新後の状況情報やオブジェクト情報、その他、仮想空間においてユーザusr#1ないしusr#3が共有すべき仮想空間情報を、ネットワーク31に接続している端末装置211ないし213のすべてに送信する。
これにより、端末装置211ないし213のユーザusr#1ないしusr#3すべてにおいて、端末装置21iのユーザusr#iのユーザエージェントUA#iが、仮想空間とともに共有される。
サーバ装置11は、その他、あたかも実際のユーザが操作しているかのように自律的に振る舞い、ユーザusr#iとインタラクションをとることが可能なエージェント(以下、人工エージェントともいう)AA#1、及びAA#2を管理、制御する。
すなわち、人工エージェント記憶データベース12には、仮想空間における人工エージェントAA#j(ここでは、j=1,2)の状況を表す状況情報の予測値を求める予測モデル(のパラメータ)が記憶され、サーバ装置11は、人工エージェント記憶データベース12に記憶された予測モデルを用いて、人工エージェントAA#jの状況情報の予測値を求める。
さらに、サーバ装置11は、人工エージェントAA#jの状況情報の予測値に従って、その人工エージェントAA#jの行動の制御、すなわち、仮想空間上のユーザエージェントUA#iの位置等の状況情報の更新を行い、その更新後の状況情報を、仮想空間情報として、ネットワーク31に接続している端末装置211ないし213のすべてに送信する。
これにより、端末装置211ないし213のユーザusr#1ないしusr#3すべてにおいて、人工エージェントAA#jが、仮想空間とともに共有される。
また、サーバ装置11は、端末装置21iから受信したユーザエージェントUA#iの状況情報や、サーバ装置11が制御する人工エージェントAA#jの状況情報の時系列を、エージェント行動履歴データベース13に供給し、行動履歴データとして記憶させる。
すなわち、エージェント行動履歴データベース13は、サーバ装置11から供給されるユーザエージェントUA#iや人工エージェントAA#jの状況情報の時系列を、行動履歴データとして記憶する。
さらに、サーバ装置11は、エージェント行動履歴データベース13に記憶された行動履歴データを用いて、人工エージェント記憶データベース12に記憶された人工エージェントAA#jの予測モデルの学習(予測モデルのパラメータの更新)を行う。
端末装置21iは、ネットワーク31を介して、サーバ装置11から、ユーザエージェントUA#1ないしUA#3、並びに人工エージェントAA#1及びAA#2の状況情報や、仮想空間のオブジェクト情報、その他の仮想空間情報を受信し、その仮想空間情報にしたがって、画面の描画を行う。これにより、端末装置21iでは、ユーザエージェントUA#iや、人工エージェントAA#j等が存在する仮想空間が表示される。
また、端末装置21iには、ユーザusr#iによって操作されるコントローラ22iが接続されており、ユーザusr#iは、コントローラ22iを操作することにより、ユーザusr#iのユーザエージェントUA#iの姿勢の変化や移動の指示や、テキストメッセージの入力を行うことができる。
端末装置21iは、コントローラ22iが操作されることによって、ユーザエージェントUA#iの姿勢の変化や移動の指示や、テキストメッセージの入力等があると、その指示やテキストメッセージを、状況情報として、ネットワーク31を介して、サーバ装置11に送信する。
なお、図1では、3つの端末装置211ないし213が、ネットワーク31を介して、サーバ装置11に接続しているが、サーバ装置11に接続する端末装置21iの数は、3つに限定されるものではない。
また、図1では、サーバ装置11において、2つの人工オブジェクトAA#1及びAA#2を制御することとしているが、サーバ装置11において制御する人工オブジェクトの数も、2つに限定されるものではない。
図2は、図1の端末装置21iで表示される仮想空間の例を示している。
図2では、仮想空間に形成されたサッカー場において、複数のエージェント(ユーザエージェント及び人工エージェント)が、サッカーの試合を行っている。
図3は、図1のサーバ装置11のハードウェアの構成例を示している。
サーバ装置11は、コンピュータであり、CPU(Central Processing Unit)42を内蔵している。
CPU42には、バス41を介して、ROM(Read Only Memory)43,RAM(Random Access Memory)44、ハードディスク45、及び入出力インタフェース50が接続されている。
CPU42は、ROM43に記憶されているプログラムや、ハードディスク45に記憶されているプログラムを、RAM44にロードして実行し、これにより、後述するフローチャートにしたがった処理、及び後述するブロック図の構成により行われる処理を行う。
ROM43は、CPU42が実行するプログラム(必要なデータを含む)を記憶している。RAM44は、CPU42が実行するプログラムや、CPU42の動作上必要なデータを一時記憶する。
ハードディスク45は、CPU42が実行するプログラムや、必要なデータを記憶する。
出力部46は、LCD(Liquid Crystal Display)やスピーカ等で構成され、CPU42の制御に従い、画像の表示、及び音声の出力を行う。
入力部47は、キーボードや、マウス、マイク等で構成される。入力部47は、サーバ装置11のオペレータ等によって操作され、これにより、CPU42に対して、必要な指令が、入力部47から、入出力インタフェース50、及びバス41を介して供給される。
通信部48は、ネットワークインタフェース等で構成され、ネットワーク31を介しての通信を制御する。
ドライブ49は、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体51を駆動し、そのリムーバブル記録媒体51に対するデータ等の記録及び再生(読み出し)の制御を行う。
入出力インタフェース50は、出力部46、入力部47、通信部48、及びドライブ49、その他の周辺装置と、バス41とを接続するインタフェースとして機能する。
なお、CPU42が実行するプログラムは、コンピュータであるサーバ装置11に内蔵されている記録媒体としてのハードディスク45やROM43に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体51に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体51は、いわゆるパッケージソフトウエアとして提供することができる。
プログラムは、リムーバブル記録媒体51からコンピュータであるサーバ装置11にインストールすることができる。また、プログラムは、ネットワーク31を介して、サーバ装置11に転送し、サーバ装置11では、そのようにして転送されてくるプログラムを、通信部48で受信し、内蔵するハードディスク45にインストールすることができる。
次に、図4は、図1の端末装置21iのハードウェアの構成例を示している。
端末装置21iも、サーバ装置11と同様に、コンピュータであり、バス61、CPU62、ROM63,RAM64、ハードディスク65、出力部66、入力部67、通信部68、ドライブ69、入出力インタフェース70、及びリムーバブル記録媒体71から構成される。
バス61ないしリムーバブル記録媒体71は、図3のバス41ないしリムーバブル記録媒体51とそれぞれ同様に構成されるため、その説明は省略する。
なお、端末装置21iにおいて、コントローラ22i(図1)は、入出力インタフェース70に接続される。
図5は、図1のサーバ装置11の機能的な構成例を示すブロック図である。
サーバ装置11において、図5の機能的な構成は、CPU42(図3)がプログラムを実行することで等価的に実現される。
図5において、サーバ装置11は、エージェント行動履歴記録部91、人工エージェント制御部92j、及び人工エージェント管理部93から構成される。
エージェント行動履歴記録部91は、ユーザエージェントUA#i等の状況情報を取得し、すなわち、端末装置21iから、ネットワーク31を介して送信されてくるユーザエージェントUA#i等の状況情報を受信し、その状況情報の時系列を、エージェント行動履歴データベース13に供給して、行動履歴データとして記憶させる(記録する)。
また、エージェント行動履歴記録部91は、人工エージェントAA#jの状況情報を取得し、その状況情報の時系列を、エージェント行動履歴データベース13に供給して、行動履歴データとして記憶させる。
したがって、例えば、図1に示したように、仮想空間上に、ユーザエージェントUA#1ないしUA#3、並びに、人工エージェントAA#1及びAA#2が存在する場合には、エージェント行動履歴データベース13では、それらのユーザエージェントUA#1ないしUA#3、並びに、人工エージェントAA#1及びAA#2の行動履歴データが記憶される。
人工エージェント制御部92jは、教師エージェント選択部101、教師データ取得部102、学習部103、状況取得部105、予測部106、及び行動制御部107から構成され、仮想空間上の人工エージェントAA#jの行動を制御する。
ここで、1つの人工エージェント制御部92jは、仮想空間上の1つの人工エージェントAA#jの行動を制御する。したがって、例えば、図1に示したように、仮想空間上に、2つの人工エージェントAA#1及びAA#2が存在する場合には、サーバ装置11は、その2つの人工エージェントAA#1及びAA#2の行動をそれぞれ制御する2つの人工エージェント制御部921及び922を有する。
人工エージェント制御部92jにおいて、教師エージェント選択部101には、エージェント行動履歴記録部91に供給されるのと同一の状況情報が供給される。
教師エージェント選択部101は、例えば、そこに供給される状況情報や、エージェント行動履歴データベース13に記憶された行動履歴データ、人工エージェント記憶データベース12に記憶された予測モデルに基づいて、仮想空間内のエージェント(ユーザエージェント及び人工エージェント)から、行動を学習する対象である教師エージェントを選択し、その教師エージェントを特定するエージェント情報を、教師データ取得部102に供給する。
教師データ取得部102は、教師エージェント選択部101からのエージェント情報によって特定される教師エージェントの状況情報の時系列としての行動履歴データを、エージェント行動履歴データベース13から読み出すことにより取得し、予測モデルの学習を行うのに用いる教師データ(学習データ)として、学習部103に供給する。
学習部103は、教師データ取得部102からの教師データ、つまり、教師エージェントの行動履歴データを用いて、人工エージェント記憶データベース12に記憶された人工エージェントAA#jの予測モデルの学習を行う。
すなわち、学習部103は、教師エージェントの行動履歴データを用いて、人工エージェント記憶データベース12に記憶された人工エージェントAA#jの予測モデルのパラメータを更新する。
状況取得部105は、人工エージェント制御部92jが制御する人工エージェントAA#jの(現在)時刻tの状況情報s(t)を取得し、予測部106に供給する。
予測部106は、人工エージェント記憶データベース12に記憶された人工エージェントAA#jの予測モデルを用い、状況取得部105からの状況情報s(t)を入力として、人工エージェントAA#jの次の時刻t+1の状況情報s(t+1)の予測値s'(t+1)を求めて、行動制御部107に供給する。
行動制御部107は、予測部106からの状況情報(の予測値)s'(t+1)に従って、人工エージェントAA#jを行動させる(行動を制御する)。
人工エージェント管理部93は、仮想空間における人工エージェントAA#jの発生と消滅とを管理する。
すなわち、人工エージェント管理部93は、必要に応じて、仮想空間上に、新たな人工エージェントAA#jを発生させる。そして、人工エージェント管理部93は、新たな人工エージェントAA#jを発生させるとき、その人工エージェントAA#jを制御する人工エージェント制御部92jを生成する。つまり、図3のコンピュータを、人工エージェント制御部92jとして機能させるために必要な記憶領域がRAM44(図3)上に確保等される。
また、人工エージェント管理部93は、仮想空間上に存在する人工エージェントAA#jが、その役目を果たしたとき等に、その役目を果たした人工エージェントAA#jを消滅させる。そして、人工エージェント管理部93は、仮想空間上の人工エージェントAA#jを消滅させるとき、その人工エージェントAA#jを制御する人工エージェント制御部92jを削除する。つまり、図3のコンピュータを、人工エージェント制御部92jとして機能させるために確保されたRAM44(図3)上の記憶領域の解放等がされる。
ここで、上述したように、学習部103は、教師データを構成する状況情報のうちの、ある時刻の状況情報を、予測モデルに入力し、未来の時刻の状況情報の予測値を求める。さらに、学習部103は、未来の時刻の状況情報の予測値の、教師データにおける真値(未来の時刻の状況情報の真値)に対する予測誤差を求め、その予測誤差が小さくなるように、予測モデルのパラメータを更新する。
一方、予測部106は、ある時刻の状況情報を、予測モデルに入力し、未来の時刻の状況情報の予測値を求める。
したがって、予測部106は、学習部103の一部として構成することができる。
次に、図6を参照して、図5の教師エージェント選択部101が、仮想空間内のエージェントから、教師エージェントを選択する選択方法について説明する。
図6は、仮想空間内に存在するユーザエージェントUA#1ないしUA#3、並びに、人工エージェントAA#1及びAA#2を示している。
教師エージェント選択部101は、例えば、人工エージェント制御部92jが制御する人工エージェントAA#jから一定距離以内に存在する他のエージェントを、教師エージェントとして選択する。
すなわち、教師エージェント選択部101は、人工エージェント制御部92jが制御する人工エージェントAA#jの位置を中心とする所定の半径の円(球)の範囲を、教師エージェントを選択する選択範囲として、その選択範囲内に存在する自分自身(人工エージェントAA#j自身)以外のエージェント(以下、近傍エージェントともいう)を、教師エージェントとして選択する。
具体的には、教師エージェント選択部101は、そこに供給される状況情報から、人工エージェント制御部92jが制御する人工エージェントAA#jの位置を認識し、さらに、その位置を中心とする選択範囲を認識する。
そして、教師エージェント選択部101は、そこに供給される状況情報から、人工エージェントAA#jの選択範囲内に存在するエージェントを、近傍エージェントとして認識する。
ここで、図6では、人工エージェントAA#1の選択範囲内には、ユーザエージェントUA#1及びUA#2が存在し、人工エージェントAA#2の選択範囲内には、ユーザエージェントUA#1及びUA#3が存在する。
したがって、人工エージェントAA#1については、ユーザエージェントUA#1及びUA#2が、近傍エージェントとして認識され、人工エージェントAA#2については、ユーザエージェントUA#1及びUA#3が、近傍エージェントとして認識される。
教師エージェント選択部101は、近傍エージェントの行動履歴データを、エージェント行動履歴データベース13から読み出し、その行動履歴データ、つまり、近傍エージェントの時系列の状況情報のうちの各時刻の状況情報を、人工エージェン記憶データベース12に記憶された人工エージェントAA#jの予測モデルの入力として与え、これにより、学習部103と同様にして、人工エージェントAA#jの予測モデルが出力する状況情報の予測値、さらには、その予測値の予測誤差を求める。
さらに、教師エージェント選択部101は、近傍エージェントが1つのエージェントである場合には、その1つの近傍エージェントを、教師エージェントの候補である候補エージェントとし、近傍エージェントが複数のエージェントである場合には、その複数の近傍エージェントのうちの、人工エージェントAA#jの予測モデルから求められる予測誤差が最大の近傍エージェントを、候補エージェントとし、候補エージェントの状況情報から求められた予測誤差と、所定の閾値とを比較する。
そして、候補エージェントの状況情報から求められた予測誤差が、所定の閾値以上である場合、つまり、人工エージェントAA#jが、候補エージェントが行うことができる行動を行うことができない場合、教師エージェント選択部101は、その候補エージェント、すなわち、予測誤差が所定の閾値以上となる状況情報の時系列を行動履歴データとして有する候補エージェントを、教師エージェントとして選択する。
以上のように、予測誤差が所定の閾値以上となる状況情報の時系列を行動履歴データとして有する候補エージェントを、教師エージェントとして選択する場合には、そのような予測誤差が所定の閾値以上となる状況情報を用いて、人工エージェントAA#jの予測モデルの学習が行われることで、人工エージェントAA#jは、それまで行うことができなかった新規の行動をとることができるようになる。
さらに、他のエージェントを、自律的に、教師エージェントとして選択し、その教師エージェントの行動を観察して学習しているかのような人工エージェントAA#jを実現することができる。
なお、人工エージェントAA#jが、教師エージェントの行動を学習した後に(教師エージェントの行動履歴データを用いた予測モデルの学習の後に)、教師エージェントと同様の行動をとるには、教師エージェントとして選択する他のエージェントは、人工エージェントAA#jと身体的構造が類似しているエージェントである必要がある。
すなわち、人工エージェントAA#jが、例えば、脚のない蛇等の動物を模したキャラクタである場合において、教師エージェントが、例えば、脚がある熊等の動物を模したキャラクタであるときには、脚のない人工エージェントAA#jは、教師エージェントの脚を使った行動を学習しても、脚を使った行動をとることはできない。
このため、人工エージェントAA#jが、教師エージェントとして選択する他のエージェントは、人工エージェントAA#jと身体的構造が類似しているエージェントであることが望ましい。
人工エージェントAA#jと身体的構造が類似しているエージェントを、人工エージェントAA#jの教師エージェントとして選択する方法としては、例えば、仮想空間内に存在するすべてのエージェントに、その身体的構造を表す構造情報を付しておき、人工エージェントAA#jと同一の構造情報が付されたエージェントだけを、教師エージェントの対象とする方法がある。
なお、上述のように、選択範囲内に存在する近傍エージェントの中から、人工エージェントAA#jの予測モデルから求められる予測誤差が所定の閾値以上となる状況情報の時系列を行動履歴データとして有する近傍エージェントを、教師エージェントとして選択する場合には、近傍エージェントが存在しないとき(人工エージェントAA#jの選択範囲内にエージェントが存在しないとき)や、近傍エージェントが存在しても、その近傍エージェントの行動履歴データ(時系列の状況情報)を、人工エージェントAA#jの予測モデルの入力として得られる状況情報の予測値の予測誤差が大きくないときには、教師エージェントが選択されず、したがって、人工エージェントAA#jの予測モデルの学習は、行われない。
但し、教師エージェントの選択は、選択範囲に関係なく行うこともできる。
すなわち、教師エージェント選択部101では、例えば、人工エージェント制御部92jが制御する人工エージェント(以下、注目エージェントともいう)AA#jからの位置が近い順に、他のエージェントを、候補エージェントとし、注目エージェントAA#jの予測モデルを用いて、候補エージェントの状況情報の予測値を求め、その予測値の予測誤差が所定の閾値以上である場合、その予測誤差が得られた候補エージェント(他のエージェント)を、教師エージェントとして選択することができる。
この場合、注目エージェントAA#jの予測モデルから求められる予測誤差が所定の閾値以上となる状況情報の時系列を行動履歴データとして有するエージェントであり、かつ、注目エージェントAA#jから最も近い位置に存在するエージェントが、教師エージェントとして選択される。したがって、選択範囲外に存在するエージェントであっても、教師エージェントとして選択され得る。
さらに、上述の場合には、注目エージェントAA#jが、教師エージェントを、自律的に選択するようにしたが、教師エージェントの選択は、その他、例えば、ユーザusr#iの指示に応じて行うことができる。
すなわち、教師エージェント選択部101では、例えば、ユーザusr#iの指示に応じて、そのユーザusr#iが操作するユーザエージェントUA#iを、教師エージェントとして選択することができる。
具体的には、例えば、ユーザusr#iのユーザエージェントUA#iが、人工エージェントAA#jの近くにいる状況で、ユーザusr#iが、ユーザエージェントUA#iを教師エージェントとすることを指示するように、コントローラ22iを操作すると、教師エージェント選択部101は、ユーザエージェントUA#iを教師エージェントとして選択する。
その後、ユーザusr#iが、人工エージェントAA#jにとらせたい行動を、ユーザエージェントUA#iがとるように、コントローラ22i(図1)を操作すると、その操作に応じて、ユーザエージェントUA#iの状況情報の時系列が、端末装置21i(図1)からサーバ装置11(図5)に送信され、エージェント行動履歴記録部91を介して、エージェント行動履歴データベース13に供給されて、行動履歴データとして記憶される。
教師データ取得部102では、以上のようにして、エージェント行動履歴データベース13に記憶されたユーザエージェントUA#iの行動履歴データが、教師データとして取得され、学習部103では、その行動履歴データを用いて、人工エージェントAA#jの予測モデルの学習が行われる。
その結果、人工エージェントAA#jは、ユーザusr#iが、コントローラ22iを操作して、ユーザエージェントUA#iにとらせた行動と同様の行動をとることが可能となる。
その他、教師エージェント選択部101では、例えば、ユーザusr#iの指示に応じて、人工エージェントAA#j自身を、教師エージェントとして選択することができる。
この場合、ユーザusr#iは、人工エージェントAA#jにとらせたい行動を、人工エージェントAA#jがとるように、コントローラ22iを操作する。端末装置21i(図1)は、コントローラ22iの操作に応じて、人工エージェントAA#iの状況情報の時系列を、サーバ装置11(図5)に送信する。サーバ装置11(図5)では、端末装置21iからの人工エージェントAA#jの状況情報が、エージェント行動履歴記録部91を介して、エージェント行動履歴データベース13に供給され、行動履歴データとして記憶される。
教師データ取得部102では、以上のようにして、エージェント行動履歴データベース13に記憶された人工エージェントAA#iの行動履歴データが、教師データとして取得され、学習部103では、その行動履歴データを用いて、人工エージェントAA#jの予測モデルの学習が行われる。
その結果、人工エージェントAA#jは、ユーザusr#iが、コントローラ22iを操作して、人工エージェントAA#iにとらせた行動と同様の行動をとることが可能となる。
次に、図7を参照して、状況情報について説明する。
図7は、仮想空間上に存在する人工エージェントAA#jを示している。
人工エージェントAA#jの状況を表す状況情報には、人工エージェントAA#j自体の状態を表す情報と、その人工エージェントAA#jの近傍に存在し得る仮想空間内のオブジェクト(エージェントを含む)である周囲オブジェクトの状態を表す情報を含む。
人工エージェントAA#j自体の状態を表す情報としては、例えば、人工エージェントAA#jの仮想空間上の位置の座標や、人工エージェントAA#jの腕や脚その他の関節部分の角度、胴体部分や頭部が向いている方向等がある。
周囲オブジェクトの状態を表す情報としては、例えば、その周囲オブジェクトの、人工エージェントAA#jの位置を原点とする3次元座標系上の位置の座標等がある。
ここで、図7では、周囲オブジェクトとして、1つのサッカーボールが存在している。なお、周囲オブジェクトは、1つのオブジェクトに限定されるものではなく、複数のオブジェクトを採用することができる。
いま、説明を簡単にするために、人工エージェントAA#j自体の状態を表す情報として、例えば、人工エージェントAA#jのM個の関節部分の角度(以下、関節角度ともいう)θ1,θ2,・・・,θMを採用するとともに、周囲オブジェクトの状態を表す情報として、1つのサッカーボールの、人工エージェントAA#jの位置を原点とする3次元座標系上の位置の座標(以下、相対座標ともいう)(xobj,yobj,zobj)を採用することとする。
そして、時刻tの関節角度θ1,θ2,・・・,θMを、それぞれ、θ1(t),θ2(t),・・・,θM(t)と表すとともに、時刻tの相対座標(xobj,yobj,zobj)のx座標、y座標、及びz座標を、それぞれ、xobj(t),yobj(t)、及びzobj(t)と表すこととする。
この場合、時刻tの状況情報s(t)は、例えば、M+3次元のベクトル(θ1(t),θ2(t),・・・,θM(t),xobj(t),yobj(t)、及びzobj(t))で表すことができる。
ここで、周囲オブジェクトの状態を表す情報を、上述したように、その周囲オブジェクトの相対座標とする場合において、周囲オブジェクトとして、複数のオブジェクトを採用するときには、その複数のオブジェクトの相対座標それぞれが、時刻tの状況情報s(t)のコンポーネントとして含まれる。
そして、周囲オブジェクトが、人工エージェントAA#jの近傍に存在しない場合(人工エージェントAA#jから離れた位置に存在する場合)、状況情報s(t)のコンポーネントのうちの、人工エージェントAA#jの近傍に存在しない周囲オブジェクトの相対座標は、例えば、人工エージェントAA#jの近傍に存在する周囲オブジェクトが取り得ない固定の値とされる。
予測モデルは、以上のような時刻tの状況情報s(t)=(θ1(t),θ2(t),・・・,θM(t),xobj(t),yobj(t)、及びzobj(t))を入力として、例えば、次の時刻t+1の状況情報s(t+1)=(θ1(t+1),θ2(t+1),・・・,θM(t+1),xobj(t+1),yobj(t+1)、及びzobj(t+1))の予測値s'(t+1)=(θ1'(t+1),θ2'(t+1),・・・,θM'(t+1),xobj'(t+1),yobj'(t+1)、及びzobj'(t+1))を出力する。
いま、時刻t+1の状況情報s(t+1)の予測値s'(t+1)のコンポーネントのうちの、関節角度θ1'(t+1),θ2'(t+1),・・・,θM'(t+1)を、アクション情報a'(t+1)ということとすると、図5の行動制御部107は、予測部106で得られる時刻t+1の状況情報s(t+1)の予測値s'(t+1)から、アクション情報a'(t+1)=(θ1'(t+1),θ2'(t+1),・・・,θM'(t+1))を抽出し、人工エージェントAA#jのM個の関節部分それぞれの角度が、アクション情報a'(t+1)が表す角度θ1'(t+1),θ2'(t+1),・・・,θM'(t+1)となるように、人工エージェントAA#jの状態を変化させる。
次に、図8を参照して、人工エージェントAA#jによる行動の学習、すなわち、教師エージェントの状況情報の時系列(行動履歴データ)を用いた、人工エージェントAA#jの予測モデルの学習について説明する。
図8は、仮想空間において、サッカーボールを蹴ってパスをする行動をしているユーザエージェントUA#1及びUA#2と、そのユーザエージェントUA#1及びUA#2の近傍に位置している人工エージェントAA#1とを示している。
図8では、ユーザエージェントUA#1が、サッカーボールを蹴って、ユーザエージェントUA#2にパスをする行動をし、その後、ユーザエージェントUA#2が、サッカーボールを蹴り返して、ユーザエージェントUA#1にパスをする行動をしている。また、それらの行動が、時刻t=0から時刻t=Tにかけて実行されている。
この場合、サーバ装置11(図5)では、ユーザエージェントUA#1の時刻t=0から時刻t=Tにかけての各時刻tの状況情報の時系列が、行動履歴データとして、エージェント行動履歴データベース13に記憶されるとともに、ユーザエージェントUA#2の時刻t=0から時刻t=Tにかけての各時刻tの状況情報の時系列が、行動履歴データとして、エージェント行動履歴データベース13に記憶される。
いま、人工エージェントAA#1を制御する人工エージェント制御部921(図5)において、教師エージェント選択部101が、例えば、ユーザエージェントUA#2を教師エージェントとして選択すると、教師データ取得部102は、教師エージェントであるユーザエージェントUA#2の行動履歴データ、つまり、ユーザエージェントUA#2の時刻t=0の状況情報s(0)=(θ1(0),θ2(0),・・・,θM(0),xobj(0),yobj(0)、及びzobj(0))、時刻t=1の状況情報s(1)=(θ1(1),θ2(1),・・・,θM(1),xobj(1),yobj(1)、及びzobj(1))、・・・、時刻t=Tの状況情報s(T)=(θ1(T),θ2(T),・・・,θM(T),xobj(T),yobj(T)、及びzobj(T))の時系列を、教師データとして、エージェント行動履歴データベース13から読み出し、学習部103に供給する。
そして、学習部103では、教師データ取得部102からの状況情報s(0),s(1),・・・,s(T)を用いて、人工エージェントAA#1の予測モデルの学習(予測モデルのパラメータの更新)が行われる。
ユーザエージェントUA#2がサッカーボールのパスをする行動を行っている時刻t=0から時刻t=Tにかけての状況情報s(0),s(1),・・・,s(T)を用いた人工エージェントAA#1の予測モデルの学習が収束すると、その予測モデルによれば、サッカーボールのパスをする行動をとるときの状況情報の予測値を求めることが可能となり、その状況情報の予測値に従って、人工エージェントAA#1を制御することにより、人工エージェントAA#1は、図9に示すように、ユーザエージェントUA#2が行っていたのと同様の、サッカーボールのパスをする行動をとることが可能となる。
すなわち、図9は、仮想空間において、ユーザエージェントUA#2に代わって、ユーザエージェントUA#1とサッカーボールのパスをする行動をしている人工エージェントAA#1を示している。
いま、人工エージェント#AA1の、図8で説明した学習が収束した後の予測モデルを、関数f()で表すこととすると、人工エージェント#AA1を制御する人工エージェント制御部921(図5)では、予測部106が、(現在)時刻tにおける人工エージェントAA#1の関節角度θ1(t),θ2(t),・・・,θM(t)と、サッカーボールの相対座標(xobj(t),yobj(t)、及びzobj(t))からなる状況情報s(t)=(θ1(t),θ2(t),・・・,θM(t),xobj(t),yobj(t)、及びzobj(t))を入力として、予測モデルとしての関数f(s(t))を計算し、人工エージェントAA#1の次の時刻t+1の状況情報s(t+1)の予測値s'(t+1)を求め、行動制御部107に供給する。
行動制御部107は、予測部106からの時刻t+1の状況情報s(t+1)の予測値s'(t+1)=(θ1'(t+1),θ2'(t+1),・・・,θM'(t+1),xobj'(t+1),yobj'(t+1)、及びzobj'(t+1))のうちの、アクション情報a'(t+1)=(θ1'(t+1),θ2'(t+1),・・・,θM'(t+1))を抽出し、人工エージェントAA#1のM個の関節部分それぞれの角度が、アクション情報a'(t+1)が表す角度θ1'(t+1),θ2'(t+1),・・・,θM'(t+1)となるように、人工エージェントAA#1の状態を変化させる。
そして、各時刻tにおいて、同様の処理が繰り返されることにより、人工エージェントAA#1は、ユーザエージェントUA#1からパスされたサッカーボールを蹴り返すという行動をとる。
ここで、予測モデルを用いて、将来の状況情報の予測値を求めることを、以下、適宜、単に、予測ともいう。
図8及び図9では、人工エージェントAA#1にサッカーボールが近づいてきたときに、ボールを蹴るという、比較的短い時間で終了する行動の学習及び予測について説明したが、行動の学習及び予測は、より長い時間がかかる行動を対象として行うことが可能である。
すなわち、エージェント行動履歴データベース13において、教師エージェントが、仮想空間に登場してからのすべての状況情報を、その教師エージェントの行動履歴データとして記憶し、人工エージェントAA#1の予測モデルの学習は、その行動履歴データすべてを教師データとして行うことが可能である。
この場合、教師エージェントの行動履歴データが、例えば、その教師エージェントが仮想空間を歩き回ったときの軌跡や、立ち寄った場所等の情報を含んでいれば、学習後の人工エージェントAA#1は、仮想空間を、自律的に歩き回り、あたかも目的を持って移動しているかのような行動をとることになる。
次に、図10は、予測モデルの例を示している。
予測モデルとしては、図10に示したようなRNN(Recurrent Neural Network)を採用することができる。
RNNは、内部状態を保持することができるNN(Neural Network)であり、その詳細については、例えば、特開2005-56340号公報等に記載されている。
図10では、RNNは、3層型NNに、その出力層から入力層への回帰ループを持たせたものとなっており、その回帰ループによって、内部状態が保持される。
すなわち、図10において、RNNは、入力層、隠れ層(中間層)、及び出力層の3層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成される。
図10において、入力層は、入力ユニット、及びコンテキストユニットを有する。
入力ユニットには、時刻tの入力データ(状態ベクトル)としての状況情報s(t)が入力される。
コンテキストユニットには、例えば、出力層の一部のユニットが出力するデータが、内部状態であるコンテキストc(t)としてフィードバックされる。すなわち、図10のRNNでは、コンテキストユニットと、出力層の一部のユニットとが、回帰ループ(コンテキストループ)によって接続されており、コンテキストユニットには、出力層の一部のユニットが出力するデータが、回帰ループを介して、コンテキストc(t)として入力される。
ここで、時刻tの状況情報s(t)が入力ユニットに入力されるときに、コンテキストユニットに入力される時刻tのコンテキストc(t)は、1時刻前の時刻t-1の入力データである状況情報s(t-1)に対して、出力層の一部のユニットが出力したデータである。したがって、時刻tの状況情報s(t)の入力に対して出力層の一部のユニットが出力したデータは、次の時刻t+1のコンテキストc(t+1)となる。
隠れ層のユニットは、入力層に入力された状況情報s(t)、及びコンテキストc(t)を対象として、ニューロンとしてのユニットどうしを結合する結合重み(結合荷重)を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
出力層のユニットは、隠れ層のユニットの出力を対象として、隠れ層のユニットで行われるのと同様の演算を行う。そして、出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストc(t+1)となる演算結果が出力され、入力層のコンテキストユニットにフィードバックされる。また、出力層の残りのユニットからは、例えば、時刻tの入力データに対する出力データとして、その入力データである状況情報s(t)の次の時刻t+1の状況情報s(t+1)の予測値s'(t+1)が出力される。
なお、RNNを、関数f()で表すこととすると、RNNによる状況情報s(t+1)の予測値s'(t+1)の演算は、式(s'(t+1),c(t+1))=f(s(t),c(t))で表される。すなわち、RNNでは、時刻tの状況情報s(t)と、コンテキストc(t)とを入力として、次の時刻t+1の状況情報s(t+1)の予測値s'(t+1)と、コンテキストc(t+1)とが求められる。
また、予測モデルとして、RNNを採用する場合、RNNのユニットどうしを結合する結合重みが、予測モデルのパラメータであり、教師データを用いたRNNの学習では、RNNの結合重みが、予測誤差、すなわち、状況情報s(t+1)の予測値s'(t+1)の、真値である状況情報s(t+1)に対する誤差を小さくするように更新される。
ここで、RNNの学習の方法としては、例えば、BPTT(Back-Propagation Through Time)法がある。BPTT法については、例えば、D. E. Rumelhart, G. E. Hinton & R. E. Williams, 1986 "Learning internal representations by error propagation", In D. E. Rumelhart & J. McClelland, "Parallel distributed processing, pp. 318-364, Cambridge, MA: MIT Pressや、R. J. Williams and D. Zipser, "A learning algorithm for continually running fully recurrent neural networks", Neural Computation, 1:270-280, 1989等に記載されている。
RNNには、記憶の汎化の機能があり、したがって、例えば、図8及び図9で説明したサッカーボールのパスを例にすれば、無数に存在するサッカーボールの軌道に対する身体の動作(関節角度)に対応する状況情報を、教師データとして与えなくても、何通りかのサッカーボールの軌道に対する身体の動作に対応する状況情報を、教師データとして与えて、RNNの学習を行うことにより、RNNでは、それらの教師データの、いわば共通点が記憶される。その結果、何通りかのサッカーボールの軌道に対する身体の動作に対応する状況情報を、教師データとして学習を行ったRNNによれば、学習をしていないサッカーボールの軌道に対してであっても、そのサッカーボールを蹴り返すための状況情報の予測値が求められる。
なお、予測モデルとしては、RNNの他、上述した式(s'(t+1),c(t+1))=f(s(t),c(t))で表される写像を実現する計算モデルを採用することができる。
また、過去の時間発展を加味しないで予測を行うことが許されるならば、予測モデルとしては、コンテキストその他の内部状態を有しない計算モデルを採用することが可能である。
内部状態を有しない計算モデルとしては、例えば、関数近似器があり、関数近似器によれば、状況情報の予測値の時系列が、関数によって関数近似される。関数近似には、例えば、最小自乗法を利用した近似、直交多項式を利用したルジャンドル近似、チェビシェフ近似、エルミート近似、区間多項式を利用したスプライン近似などがある。
次に、図11ないし図14を参照して、図5の人工エージェント制御部92jの処理について説明する。
まず、図11のフローチャートを参照して、人工エージェント制御部92jが制御する人工エージェント(注目エージェント)AA#jの予測モデルの学習を行う学習処理について説明する。
ステップS11において、教師エージェント選択部101は、注目エージェントAA#jの予測モデルの学習を行うときに満たされるべき学習条件が満たされているかどうかを判定する学習条件の判定処理を行う。
学習条件が満たされている場合、処理は、ステップS11からステップS12に進み、注目エージェントAA#jの予測モデルを学習する予測モデル学習処理が行われる。その後、処理は、ステップS12からステップS11に戻り、以下、同様の処理が繰り返される。
次に、図12のフローチャートを参照して、図11のステップS11における学習条件の判定処理について説明する。
ステップS11では、教師エージェント選択部101(図5)は、予測モデルの学習を行う学習モードを判定する。
ここで、学習モードには、直接学習モード、間接学習モード、及び自律学習モードがある。
すなわち、上述したように、教師エージェント選択部101では、ユーザusr#iの指示に応じて、注目エージェントAA#j自身を、教師エージェントとして選択することができる。
直接学習モードは、注目エージェントAA#j自身を、教師エージェントとする学習モードであり、ユーザusr#iが、注目エージェントAA#j自身を、教師エージェントとして選択することを指示するように、コントローラ22iを操作した場合、教師エージェント選択部101は、学習モードを、直接学習モードとする。
また、教師エージェント選択部101では、上述したように、ユーザusr#iの指示に応じて、そのユーザusr#iが操作するユーザエージェントUA#iを、教師エージェントとして選択することができる。
間接学習モードは、ユーザusr#iが操作するユーザエージェントUA#iを、教師エージェントとする学習モードであり、ユーザusr#iが、ユーザエージェントUA#iを教師エージェントとすることを指示するように、コントローラ22iを操作した場合、教師エージェント選択部101は、学習モードを、間接学習モードとする。
その他の場合(学習モードが、直接学習モード、及び間接学習モードのいずれでもない場合)、教師エージェント選択部101は、学習モードを、注目エージェントAA#jが、教師エージェントを、自律的に選択する自律学習モードとする。
ステップS31において、学習モードが、直接学習モードであると判定された場合、処理は、ステップS32に進み、教師エージェント選択部101は、学習条件が満たされるとして、注目エージェントAA#j自身を、教師エージェントとして選択し、学習条件の判定処理を終了する。
また、ステップS31において、学習モードが、間接学習モードであると判定された場合、処理は、ステップS33に進み、教師エージェント選択部101は、学習条件が満たされるとして、ユーザusr#iから教師エージェントとするように指示があった、そのユーザusr#iが操作するユーザエージェントUA#iを教師エージェントとして選択し、学習条件の判定処理を終了する。
一方、ステップS31において、学習モードが、自律学習モードであると判定された場合、処理は、ステップS34に進み、以下、注目エージェントAA#jの選択範囲(図6)に、他のエージェントが存在することや、そのエージェントの行動履歴データとしての状況情報の予測を、注目エージェントAA#jの予測モデルを用いて行ったときの予測誤差が所定の閾値以上であること等の学習条件を満たすかどうかの判定が行われ、さらに、学習条件が満たされる場合には、教師エージェントの選択が行われる。
すなわち、ステップS34では、教師エージェント選択部101は、そこに供給される状況情報から、注目エージェントAA#jの仮想空間内の位置を認識し、さらに、その位置を中心とする選択範囲内に存在するエージェントを、近傍エージェントとして認識し、処理は、ステップS35に進む。
なお、近傍エージェントが存在しない場合、学習条件が満たされないとして、処理は、ステップS34からステップS31に戻る。
ステップS35では、教師エージェント選択部101は、近傍エージェントの行動履歴データを、エージェント行動履歴データベース13(図5)から取得し、処理は、ステップS36に進む。
ステップS36では、教師エージェント選択部101は、エージェント行動履歴データベース13から取得した行動履歴データ、つまり、近傍エージェントの時系列の状況情報の各時刻の状況情報を、人工エージェン記憶データベース12に記憶された注目エージェントAA#jの予測モデルの入力として与え、これにより、人工エージェントAA#jの予測モデルが出力する状況情報の予測値、さらには、その予測値の予測誤差を求めて、処理は、ステップS37に進む。
ステップS37では、教師エージェント選択部101は、ステップS36で求めた予測誤差が最大の近傍エージェントを、教師エージェントの候補である候補エージェントとして選択し、処理は、ステップS38に進む。
すなわち、教師エージェント選択部101は、近傍エージェントが1つのエージェントである場合には、その1つの近傍エージェントを、候補エージェントとして選択し、近傍エージェントが複数のエージェントである場合には、その複数の近傍エージェントのうちの、注目エージェントAA#jの予測モデルから求められた予測値の予測誤差が最大の近傍エージェントを、候補エージェントとして選択する。
ステップS38では、教師エージェント選択部101は、候補エージェントの状況情報から求められた予測誤差が、所定の閾値以上(又は、より大)であるかどうかを判定する。
ステップS38において、候補エージェントの状況情報から求められた予測誤差が、所定の閾値以上でないと判定された場合、すなわち、注目エージェントAA#jの予測モデルにおいて、候補エージェントの状況情報を比較的精度良く予測することができ、したがって、注目エージェントAA#jが、候補エージェントと同様の行動をとることができる場合、学習条件が満たされないとして、処理は、ステップS31に戻る。
また、ステップS38において、候補エージェントの状況情報から求められた予測誤差が、所定の閾値以上であると判定された場合、すなわち、注目エージェントAA#jの予測モデルにおいて、候補エージェントの状況情報を精度良く予測することができず、したがって、注目エージェントAA#jが、候補エージェントと同様の行動をとることができない場合、学習条件が満たされるとして、処理は、ステップS39に進み、教師エージェント選択部101は、その候補エージェント、すなわち、予測誤差が所定の閾値以上となる状況情報の時系列を行動履歴データとして有する候補エージェントを、教師エージェントとして選択して、学習条件の判定処理を終了する。
なお、教師エージェント選択部101は、ステップS32,S33、又はS39において、教師エージェントを選択すると、その教師エージェントを特定するエージェント情報を、教師データ取得部102(図5)に供給する。
次に、図13のフローチャートを参照して、図11のステップS12における予測モデル学習処理について説明する。
ステップS51において、教師データ取得部102は、教師エージェント選択部101が図12の学習条件の判定処理を行うことにより供給してくるエージェント情報によって特定される教師エージェントの状況情報の時系列としての行動履歴データを、エージェント行動履歴データベース13から取得し、教師データとして、学習部103に供給して、処理は、ステップS52に進む。
ステップS52では、学習部103は、教師データ取得部102からの教師データを用いて、人工エージェント記憶データベース12に記憶された注目エージェントAA#jの予測モデルの学習、すなわち、予測モデルのパラメータの更新を行って、処理は、ステップS53に進む。
ステップS53では、学習部103は、ステップS52での更新後のパラメータを、人工エージェント記憶データベース12に記憶された注目エージェントAA#jの予測モデルのパラメータに上書きの形で記憶させ、予測モデル学習処理を終了する。
次に、図14のフローチャートを参照して、状況情報の予測値を求め、その予測値に従って注目エージェントAA#jを行動させる予測処理について説明する。
ステップS61において、状況取得部105は、注目エージェントAA#jの現在時刻tの状況情報s(t)を取得し、予測部106に供給して、処理は、ステップS62に進む。
ステップS62では、予測部106は、人工エージェント記憶データベース12に記憶された注目エージェントAA#jの予測モデルを用い、状況取得部105からの状況情報s(t)を入力として、注目エージェントAA#jの次の時刻t+1の状況情報s(t+1)の予測値s'(t+1)を求めて、行動制御部107に供給し、処理は、ステップS63に進む。
ステップS63では、行動制御部107は、予測部106からの状況情報(の予測値)s'(t+1)に従って、注目エージェントAA#jを行動させる。その後、処理は、ステップS63からステップS61に戻り、以下、同様の処理が繰り返される。
以上のように、サーバ装置11では、仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択し、教師エージェントの状況を表す状況情報の時系列を取得する。さらに、サーバ装置11では、教師エージェントの時系列の状況情報を用いて、注目エージェントAA#jの予測モデルの学習を行い、その予測モデルを用いて、状況情報の予測値を求める。そして、サーバ装置11では、状況情報の予測値に従って、注目エージェントAA#jの行動を制御する。
したがって、注目エージェントAA#jは、いわば、教師エージェントの行動パターンを記憶し、その記憶内容に基づき、環境の変化に応じて行動をとるので、人工エージェントの行動パターンをルールベースで作り込まなくても、変化に富む多様な環境下において、自律的に行動をとる、ユーザを飽きさせないインタラクションを実現する人工エージェントを提供することができ、その結果、仮想空間の娯楽性を向上させることができる。
また、例えば、オンラインユーザコミュニティにおいて、ログインしているユーザの数が少ない場合に、人工エージェントが、実際のユーザが操作しているかのように、自律的に振る舞うことで、環境を賑わせ、オンラインユーザコミュニティの持続的な発展を促すことができる。
さらに、予測モデルの学習を行い、その予測モデルを用いて、状況情報の予測値を求め、状況情報の予測値に従って、人工エージェントの行動を制御するので、あらかじめ行動パターンをルールベースで作り込むことでは対応できないような、複雑で変化に富む多様な環境下でも、人工エージェントは、環境の変化に自律的に対応した行動をとる。
したがって、人工エージェントは、多様で、自然に感じられる行動をとることができるので、ユーザの興味を、持続的に惹きつけ続けることが可能となる。
また、状況情報の予測値の予測誤差が大となるエージェントや、人工エージェントから一定距離以内に存在するエージェントが、教師エージェントとして選択され、その教師エージェントの行動が、いわば自律的に学習されるので、人工エージェントに行動を明示的に教示する教示者が不要となる。あるいは、教示者の負担を軽減することができる。
なお、予測モデルとして、例えば、RNNを採用する場合には、その予測モデルとしてのRNNは、1つ、又は複数とすることができる。
予測モデルとして、1つのRNNを採用する場合において、新たな行動履歴データを用いて、RNNの学習を行うときには、その新たな行動履歴データの他、例えば、それまでに行われたRNNの学習で用いられたすべての行動履歴データを用いて、RNNの学習がし直される。
また、予測モデルとして、複数のRNNを採用する場合において、新たな行動履歴データを用いて、RNNの学習を行うときには、例えば、新たな行動履歴データに対する予測誤差が最も小さいRNNを学習の対象として、そのRNNの学習が、新たな行動履歴データを用いて行われる。この場合、予測処理(図14)時には、例えば、複数のRNNのうちの、1時刻前に予測された現在時刻の状況情報の予測値の、現在時刻の状況情報に対する予測誤差が最も小さいRNNの出力が、次の時刻の状況情報の予測値として採用される。
次に、サーバ装置11(図5)において、人工エージェント管理部93は、仮想空間における人工エージェントAA#jの発生と消滅とを管理する発生/消滅処理を行う。
以下、人工エージェント管理部93が行う発生/消滅処理について説明する。
図15は、仮想空間の地図を、模式的に示している。
人工エージェント管理部93は、仮想空間の領域を区分した区分領域に理想的な、エージェントの人口密度に基づいて、人工エージェントを発生、又は消滅させる。
具体的には、人工エージェント管理部93は、仮想空間の、1以上の区分領域からなる領域を、注目領域に決定し、その注目領域の単位で、人工エージェントを発生、又は消滅させる。
なお、区分領域のサイズや形状等、及び、注目領域を、幾つの区分領域で構成するかは、例えば、仮想空間を提供する提供者や、サーバ装置11を管理する管理者等が決定することができる。
ここで、図15では、注目領域は、N個の区分領域で構成されている。
人工エージェント管理部93は、注目領域とする仮想空間内の領域を移動させていき、仮想空間の領域すべてを注目領域として、人工エージェントを発生、又は消滅させる。
なお、注目領域は、既に注目領域となった区分領域を含まないように決定することもできるし、含むように決定することもできる。
人工エージェント管理部93は、注目領域を決定すると、その注目領域を構成する各区分領域に理想的な人口密度を求める。
ここで、図15に示したように、注目領域は、N個の区分領域で構成されるとし、そのN個の区分領域のうちのi番目(i=1,2,・・・,N)の区分領域を、piと表す。また、区分領域piに理想的な人口密度(以下、人口密度基準ともいう)を、d(pi)と表し、注目領域の面積を、Sと表す。
なお、人口密度基準d(pi)の求め方については、後述する。
人工エージェント管理部93は、注目領域を構成する各区分領域piの人口密度基準d(pi)を求めると、式HC=S/N(d(p1)+d(p2)+・・・+d(pN))に従い、N個の区分領域p1ないしpNで構成される注目領域に理想的なエージェントの数(以下、理想総人口ともいう)HCを求める。
さらに、人工エージェント管理部93は、注目領域において、理想総人口HCに不足するエージェントの数(以下、人口不足値ともいう)HDを、式HD=HC-HRに従って求める。
ここで、HRは、注目領域に実際に存在するエージェントの数を表す。
人工エージェント管理部93は、人口不足値HDが正である場合、すなわち、注目領域に実際に存在するエージェントの数HRが、理想総人口HCより少ない場合、人口不足値HDの数だけの人工エージェントを、注目領域に発生させる。
また、人工エージェント管理部93は、人口不足値HDが負である場合、すなわち、注目領域に実際に存在するエージェントの数HRが、理想総人口HCより多い場合、注目領域に存在する人工エージェントから、-HD(HD<0)の数だけの人工エージェントをランダムに選択し、注目領域から消滅させる。
ここで、人工エージェント管理部93は、人工エージェントを発生させる場合には、例えば、注目領域を構成するN個の区分領域p1ないしpNのうちの、HD個の区分領域をランダムに選択し、そのHD個の区分領域を、HD個の人工エージェントに対し、人工エージェントを発生させる発生領域として、それぞれ割り当てて、HD個の人工エージェントそれぞれを、その人工エージェントに割り当てられた区分領域に発生させる。
なお、人口不足値HDが、注目領域を構成する区分領域p1ないしpNの数Nより大である場合には、ある区分領域piは、複数の人工エージェントに対し、発生領域として重複して割り当てられる。
また、人工エージェントが、ユーザエージェントを教師エージェントとして効果的な学習を行うには、注目領域における人工エージェントの数が、注目領域に存在するエージェントすべての数(以下、全人口ともいう)に占める割合を、一定値未満(又は、以下)にすることが望ましい。
そこで、人工エージェント管理部93は、注目領域における人工エージェントの数が、注目領域の全人口に占める割合が、一定値未満である場合にのみ、人工エージェントを発生させる。
すなわち、注目領域に実際に存在するHR個のエージェントのうちの、人工エージェントの数を、HAと表すとともに、人工エージェントを発生させるかどうかの閾値としての、上述の一定値を、λ(0<λ<1)と表すこととすると、人工エージェント管理部93は、式HA/HR<λが満たさせる場合のみ、人工エージェントを発生させる。
なお、人工エージェント管理部93は、人工エージェントを発生させる場合、その発生させる人工エージェント(以下、新エージェントともいう)に対して、エージェント行動履歴データベース13に記憶された行動履歴データのいずれかを、ランダムに選択して割り当てる。
そして、新エージェントの予測モデルの学習が、その新エージェントに割り当てられた行動履歴データを用いて行われる。
したがって、複数の新エージェントに対して、同一の行動履歴データが割り当てられた場合、その複数の新エージェントは、その後、新たな行動履歴データを用いた学習が行われない限り、同様の行動をとる。
また、新エージェントが仮想空間内で得た経験、つまり、新エージェントの状況情報の時系列は、その新エージェントの行動履歴データとして、エージェント行動履歴データベース13に記憶される。
なお、新エージェントの状況情報の時系列は、新エージェントの発生時に、その新エージェントに割り当てられた行動履歴データに追加する形で、エージェント行動履歴データベース13に記憶することができる。
この場合、複数の新エージェントに割り当てられた行動履歴データには、その複数の新エージェントが仮想空間内で得た経験、つまり、新エージェントの状況情報の時系列が含められていく。
次に、区分領域piの人口密度基準d(pi)の求め方について説明する。
人口密度基準d(pi)は、例えば、区分領域piのすべてについて、同一の値とすることが可能であるが、それでは、現実世界に即した仮想空間を構成することは困難である。
そこで、人工エージェント管理部93は、仮想空間の土地の状態や利用目的等の土地の特性に応じて、土地としての区分領域piに固有の人口密度基準d(pi)を求める。
すなわち、人工エージェント管理部93は、例えば、静かな浜辺となっている区分領域piについては、小さい値の人口密度基準d(pi)を求める。また、人工エージェント管理部93は、例えば、賑やかな歓楽街となっている区分領域piについては、大きい値の人口密度基準d(pi)を求める。
これにより、静かな浜辺となっている区分領域piでは、人工エージェントの発生が抑制され、閑静さが保たれる。また、歓楽街となっている区分領域piでは、多数のエージェントの存在が維持され、賑やかさが保たれる。
その結果、現実世界と同様の仮想空間が実現され、仮想空間の娯楽性を向上させることができる。
以上のように、土地の特性に応じて、土地としての区分領域piに固有の人口密度基準d(pi)を求める方法としては、例えば、仮想空間の自然物や人工物等の仮想空間を構成するオブジェクトの分布に基づいて、人口密度基準d(pi)を求める第1の方法、仮想空間の提供者(設計者)が、仮想空間の各土地の利用目的に基づいて、人口密度基準d(pi)をあらかじめ決定しておく第2の方法、並びに、第1及び第2の方法を組み合わせた第3の方法がある。
第1の方法では、仮想空間において、ユーザ(エージェント)によって、植物の伐採や、建造物の建設等の活動が行われることで時々刻々と変化していく仮想空間の変化にあわせて、人口密度基準d(pi)が求められる。したがって、第1の方法では、人口密度基準d(pi)は、仮想空間の変化に応じて変化する。
一方、第2の方法では、ユーザ(エージェント)の活動とは関係なく、仮想空間の提供者が画一的に決めた土地の利用目的に従って、人口密度基準d(pi)が決定される。したがて、第2の方法では、人口密度基準d(pi)は、仮想空間の提供者が変更しない限り、固定の値となる。
ここで、第1の方法により求められる人口密度基準d(pi)を、以下、適宜、適応的密度基準dA(pi)ともいい、第2の方法により求められる人口密度基準d(pi)を、以下、適宜、固定的密度基準dS(pi)ともいう。
次に、図16を参照して、適応的密度基準dA(pi)の求め方について説明する。
ここで、サーバ装置11の人工エージェント管理部93では、仮想空間の地図上において、仮想空間を構成するオブジェクト(自然物や人工物)の分布をすべて把握することができるようになっている。
また、仮想空間を構成するオブジェクトには、そのオブジェクトが存在する場所に対して適した人口密度に対応する情報である密度要素値が割り当てられていることとする。
すなわち、例えば、植物や川等の自然物がある場所は、人口密度が小さくなるべきであり、このため、自然物のオブジェクトには、小さい人口密度に対応する小さい値の密度要素値が割り当てられる。
また、例えば、建物や、車、道路等の人工物がある場所は、人口密度が大きくなるべきであり、このため、人工物のオブジェクトには、大きい人口密度に対応する大きい値の密度要素値が割り当てられる。
なお、密度要素値の割り当ては、例えば、仮想空間の提供者によって行われる。
図16は、適応的密度基準dA(pi)の求め方を示している。
すなわち、図16Aは、区分領域の密度要素値の分布を表した仮想空間の地図を示している。
区分領域の密度要素値は、その区分領域に存在するオブジェクトの密度要素値から求められる。
すなわち、区分領域に存在するオブジェクトの密度要素値の、例えば、平均値、最大値、又は最小値等が、その区分領域の密度要素値とされる。
ここで、図16Aにおいて、模様が付されていない四角形は、密度要素値が0の区分領域を示している。
また、右上がりの斜線が付された丸印を有する四角形は、密度要素値が-1の区分領域を、左上がりの斜線が付された丸印を有する四角形は、密度要素値が-2の区分領域を、横線が付された丸印を有する四角形は、密度要素値が-3の区分領域を、黒で塗りつぶされた丸印を有する四角形は、密度要素値が-4の区分領域を、それぞれ示している。
さらに、右上がりの斜線が付された四角形は、密度要素値が+1の区分領域を、左上がりの斜線が付された四角形は、密度要素値が+2の区分領域を、横線が付された四角形は、密度要素値が+3の区分領域を、黒で塗りつぶされた四角形は、密度要素値が+4の区分領域を、それぞれ示している。
いま、適応的密度基準dA(pi)を求めようとする対象の区分領域piを、対象領域piということとすると、人工エージェント管理部93は、例えば、その対象領域piを中心とする横×縦が3×3個の区分領域を、適応的密度基準dA(pi)を求めるのに用いる適応的密度基準算出用領域として、その適応的密度基準算出用領域を構成する3×3個の区分領域それぞれの密度要素値を用いて、対象領域piの適応的密度基準dA(pi)を求める。
すなわち、図16Bは、適応的密度基準算出用領域を示している。
適応的密度基準算出用領域において、図16Bに示すように、対象領域piの左上、上、右上、左、右、左下、下、及び右下に隣接する区分領域の密度要素値を、それぞれ、a1,a2,a3,a4,a6,a7,a8、及びa9と表すとともに、対象領域piの密度要素値を、a5と表すこととする。
この場合、人工エージェント管理部93は、例えば、式dA(pi)=1/NDA(a1+a2+・・・aL)に従い、適応的密度基準産出量領域を構成する区分領域の密度要素値の平均値を、対象領域piの適応的密度基準dA(pi)として求める。
ここで、式dA(pi)=1/NDA(a1+a2+・・・aL)におけるLは、適応的密度基準算出用領域を構成する区分領域の数を表し、いまの場合、L=9である。なお、適応的密度基準算出用領域を構成する区分領域の数Lは、9に限定されるものではなく、その他、例えば、対象領域piを中心とする横×縦が、例えば、5×5個の区分領域を、適応的密度基準算出用領域とすることができる。
図16Cは、図16Aの区分領域pが、対象領域である場合の適応的密度基準算出用領域を示している。
図16Cでは、適応的密度基準算出用領域を構成する区分領域の密度要素値a1,a2,a3,a4,a5,a6,a7,a8、及びa9は、それぞれ、-4,+2,+1,+2,+4,+3,-1,+1、及び0であり、したがって、対象領域pの適応的密度基準dA(pi)は、8/9(=(-4+2+1+2+4+3-1+1+0)/9)となる。
次に、図17を参照して、固定的密度基準dS(pi)について説明する。
図17は、区分領域piの固定的密度基準dS(pi)の分布を表した仮想空間の地図を示している。
ここで、図17において、模様が付されていない四角形は、固定的密度基準が0の区分領域を示している。また、右上がりの斜線が付された四角形は、固定的密度基準が+1の区分領域を、左上がりの斜線が付された四角形は、固定的密度基準が+1.5の区分領域を、横線が付された四角形は、固定的密度基準が+2の区分領域を、黒で塗りつぶされた四角形は、固定的密度基準が+2.5の区分領域を、それぞれ示している。
上述したように、区分領域piの固定的密度基準dS(pi)は、仮想空間の提供者が画一的に決めた土地(区分領域pi)の利用目的に従って決定される。
すなわち、仮想空間の提供者は、仮想空間において、特定の地域を、商業地域として市街化することや、公園にして緑化地帯として植物を残すこと等の、土地(陸地は、勿論、海上や、海(川)の中等であってもよい)の利用目的を、区分領域ごとに定める。
この利用目的の定め(指針)は、仮想空間における都市開発の目安となるものであり、仮想空間の提供者は、さらに、利用目的ごとに、適切な(理想的な)人口密度を割り当てる。
区分領域piの固定的密度基準dS(pi)は、その区分領域piの利用目的に割り当てられた人口密度に決定される。
以上のように、区分領域の利用目的を定め、さらに、利用目的ごとに、適切な人口密度を割り当て、区分領域piの固定的密度基準dS(pi)を、その区分領域piの利用目的に割り当てられた人口密度に決定することにより、例えば、賑やかさが求められる商業地域の人口密度基準d(pi)は大きな値にし、人の数が多すぎない方がムードを楽しむことのできる公園などの緑化地帯の人口密度基準d(pi)は小さい値にすることができる。
次に、図18のフローチャートを参照して、人工エージェント管理部93(図5)が行う発生/消滅処理について説明する。
ステップS81において、人工エージェント管理部93は、人工エージェントを発生、又は消滅させる注目領域を決定し、処理は、ステップS82に進む。
ステップS82では、人工エージェント管理部93は、注目領域を構成するN個の区分領域piの人口密度基準d(pi)それぞれを求めて、処理は、ステップS82に進む。
すなわち、例えば、人工エージェント管理部93は、第1の方法により、区分領域piの適応的密度基準dA(pi)を求め、その適応的密度基準dA(pi)を、そのまま、人口密度基準d(pi)とする。
また、例えば、人工エージェント管理部93は、第2の方法により、区分領域piの固定的密度基準dS(pi)を求め、その固定的密度基準dS(pi)を、そのまま、人口密度基準d(pi)とする。
あるいは、例えば、人工エージェント管理部93は、区分領域piの適応的密度基準dA(pi)と、固定的密度基準dS(pi)とを求め、さらに、式d(pi)=(dA(pi)+dS(pi))/2に従い、適応的密度基準dA(pi)と固定的密度基準dS(pi)との平均値を、人口密度基準d(pi)として求める。
ステップS83では、人工エージェント管理部93は、上述したように、人口密度基準d(pi)を用いた式HC=S/N(d(p1)+d(p2)+・・・+d(pN))に従い(Sは注目領域の面積であり、Nは注目領域を構成する区分領域の数)、注目領域に理想的なエージェントの数(理想総人口)HCを求め、処理は、ステップS84に進む。
ステップS84では、人工エージェント管理部93は、注目領域において、理想総人口HCに不足するエージェントの数(人口不足値)HDを、式HD=HC-HRに従って求め(HRは、注目領域に実際に存在するエージェントの数)、処理は、ステップS85に進む。
ステップS85では、人工エージェント管理部93は、人口不足値HDが正であるかどうかを判定する。
ステップS85において、人口不足値HDが正であると判定された場合、すなわち、注目領域に実際に存在するエージェントの数HRが、理想総人口HCより少ない場合、処理は、ステップS86に進み、人工エージェント管理部93は、注目領域における人工エージェントの数HAが、注目領域の全人口HRに占める割合HA/HRが、一定値λ未満であるかどうかを判定する。
ステップS86において、注目領域における人工エージェントの数HAが、注目領域の全人口HRに占める割合HA/HRが、一定値λ未満でないと判定された場合、注目領域に人工エージェントを新たに発生させることは、人工エージェントの数が多くなりすぎるため、人工エージェント管理部93は、注目領域に人工エージェントを新たに発生させずに、処理は、ステップS81に戻る。
そして、ステップS81では、新たな注目領域が決定され、以下、同様の処理が繰り返される。
また、ステップS86において、注目領域における人工エージェントの数HAが注目領域の全人口HRに占める割合HA/HRが、一定値λ未満であると判定された場合、処理は、ステップS87に進み、以下、人工エージェント管理部93は、人口不足値HDの数だけの人工エージェントを、注目領域に発生させる。
すなわち、人工エージェント管理部93は、ステップS87において、注目領域に発生させる人口不足値HDの数の人工エージェント(新エージェント)それぞれに、注目領域を構成するN個の区分領域p1ないしpNのうちのいずれかを、新エージェントを発生させる発生領域として割り当て、処理は、ステップS88に進む。
ステップS88では、人工エージェント管理部93は、人口不足値HDの数の新エージェントそれぞれに、エージェント行動履歴データベース13に記憶された行動履歴データのいずれかを割り当て、処理は、ステップS89に進む。
ステップS89では、人工エージェント管理部93は、人口不足値HDの数の新エージェントそれぞれを制御する、人工エージェント制御部92j(図5)と同様の人工エージェント制御部(以下、新エージェント制御部ともいう)を生成し、各新エージェント制御部に、その新エージェント制御部が制御する新エージェントに割り当てられた行動履歴データを用いた、その新エージェントの予測モデルの学習を行わせて、処理は、ステップS90に進む。
ステップS90では、人工エージェント管理部93は、人口不足値HDの数の新エージェントそれぞれを、その新エージェントに発生領域として割り当てられた区分領域に発生(登場)させ、処理は、ステップS81に戻る。
以上のようにして、区分領域に発生した新エージェントの行動は、その新エージェントを制御する新エージェント制御部によって制御される。
一方、ステップS85において、人口不足値HDが正でないと判定された場合、すなわち、注目領域に実際に存在するエージェントの数HRが、理想総人口HCより多い場合(又は、注目領域に実際に存在するエージェントの数HRが、理想総人口HCに一致する場合)、処理は、ステップS91に進み、人工エージェント管理部93は、注目領域の人工エージェントの数について、式HA>0が成り立つかどうか、すなわち、注目領域に、人工エージェントが存在するかどうかを判定する。
ステップS91において、注目領域に、人口エージェントが存在しないと判定された場合(式HA>0が成り立たない場合)、消滅させる人工エージェントがないため、処理は、ステップS81に戻る。
また、ステップS91において、注目領域に、人口エージェントが存在すると判定された場合(式HA>0が成り立つ場合)、処理は、ステップS92に進み、人工エージェント管理部93は、注目領域に実際に存在するエージェントの数HR以内であり、かつ、1以上-HD(HD<0)以内のランダムに選んだ数の人工エージェントを、消滅対象として、注目領域の人工エージェントの中からランダムに選択し、処理は、ステップS93に進む。
ステップS93では、人工エージェント管理部93は、消滅対象とした人工エージェントを、注目領域から消滅させる(消去する)とともに、その人工エージェントを制御する人工エージェント制御部(新エージェント制御部)を削除して、処理は、ステップS81に戻る。
ここで、ユーザエージェントの近くにいる人工エージェントが突然消滅すると、ユーザに違和感を感じさせることがあるので、人工エージェントの消滅は、その人工エージェントの周囲に、ユーザエージェントが存在しない状態になってから行うことができる。
以上のように、人口密度基準d(pi)、つまり、区分領域に理想的な、エージェントの人口密度に基づいて、エージェントを発生、又は消滅させる発生/消滅処理を行うことで、例えば、静かな浜辺となっている区分領域piでは、人工エージェントの発生が抑制され、閑静さが保たれる。また、歓楽街となっている区分領域piでは、多数のエージェントの存在が維持され、賑やかさが保たれる。その結果、現実世界と同様の仮想空間が実現され、仮想空間の娯楽性を向上させることができる。
さらに、仮想空間において、現実世界と同様に、土地の価値に格差が生じ、例えば、それを利用した経済活動を行うことが可能となる。
なお、仮想空間における人工エージェントの数の上限は、特に定める必要がないが、現実的には、仮想空間における人工エージェントの数は、人工エージェント記憶データベース12の記憶容量や、サーバ装置11としての図3のコンピュータの性能(いわゆるスペック)等によって制限される。
また、図18の発生/消滅処理において、人工エージェントを発生させるときに、複数の人工エージェントに、同一の行動履歴データが割り当てられた場合には、その複数の人工エージェントは、同様の行動をとることになり、そのような複数の人工エージェントが、直接的に接触する(インタラクションする)ことができる範囲に存在することは、好ましくない。そこで、複数の人工エージェントに、同一の行動履歴データが割り当てられた場合には、その複数の人工エージェントは、直接的に接触することがないように、ある程度離れた区分領域に発生させることが望ましい。
なお、エージェント行動履歴データベース13の記憶容量を十分確保し、エージェント行動履歴データベース13に、十分な数の(多くの)行動履歴データが記憶されることで、上述したような、複数の人工エージェントに、同一の行動履歴データが割り当てられることは、ほぼ回避することができる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明を適用したネットワークシステムの一実施の形態の構成例を示す図である。 端末装置21iで表示される仮想空間を示す図である。 サーバ装置11のハードウェアの構成例を示すブロック図である。 端末装置21iのハードウェアの構成例を示すブロック図である。 サーバ装置11の機能的な構成例を示すブロック図である。 仮想空間内に存在するユーザエージェントUA#1ないしUA#3、並びに、人工エージェントAA#1及びAA#2を示す図である。 仮想空間上に存在する人工エージェントAA#jを示す図である。 仮想空間において、サッカーボールのパスをするユーザエージェントUA#1及びUA#2と、その近傍の人工エージェントAA#1とを示す図である。 仮想空間において、ユーザエージェントUA#1とサッカーボールのパスをする人工エージェントAA#1を示す図である。 予測モデルとしてのRNNを示す図である。 学習処理を説明するフローチャートである。 学習条件の判定処理を説明するフローチャートである。 予測モデル学習処理を説明するフローチャートである。 予測処理を説明するフローチャートである。 仮想空間の地図を示す図である。 適応的密度基準dA(pi)の求め方を説明する図である。 固定的密度基準dS(pi)を説明する図である。 発生/消滅処理を説明するフローチャートである。
符号の説明
11 サーバ装置, 12 人工エージェント記憶データベース, 13 エージェント行動履歴データベース, 211ないし213 端末装置, 221ないし223 コントローラ, 31 ネットワーク, 41 バス, 42 CPU, 43 ROM, 44 RAM, 45 ハードディスク, 46 出力部, 47 入力部, 48 通信部, 49 ドライブ, 50 入出力インタフェース, 51 リムーバブル記録媒体, 61 バス, 62 CPU, 63 ROM, 64 RAM, 65 ハードディスク, 66 出力部, 67 入力部, 68 通信部, 69 ドライブ, 70 入出力インタフェース, 71 リムーバブル記録媒体, 91 エージェント行動履歴記録部, 921,922 人工エージェント制御部, 93 人工エージェント管理部, 101 教師エージェント選択部, 102 教師データ取得部, 103 学習部, 105 状況取得部, 106 予測部, 107 行動制御部

Claims (7)

  1. 仮想空間上のエージェントの行動を制御する情報処理装置において、
    仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択する選択手段と、
    前記教師エージェントの状況を表す状況情報の時系列を取得する取得手段と、
    前記教師エージェントの時系列の状況情報を用いて、注目している注目エージェントの状況情報の予測値を求める予測モデルの学習を行う学習手段と、
    前記注目エージェントの予測モデルを用いて、状況情報の予測値を求める予測手段と、
    前記状況情報の予測値に従って、前記注目エージェントの行動を制御する行動制御手段と
    を備える情報処理装置。
  2. 前記選択手段は、前記注目エージェントの予測モデルを用いて、他のエージェントの状況情報の予測値を求め、その予測値の予測誤差が所定の閾値以上である場合、前記他のエージェントを、前記教師エージェントとして選択する
    請求項1に記載の情報処理装置。
  3. 前記選択手段は、前記注目エージェントから一定距離以内に存在する他のエージェントを、前記教師エージェントとして選択する
    請求項1に記載の情報処理装置。
  4. 前記仮想空間におけるエージェントの発生と消滅とを管理する管理手段をさらに備える
    請求項1に記載の情報処理装置。
  5. 前記管理手段は、前記仮想空間を区分した区分領域に理想的な、エージェントの人口密度に基づいて、前記エージェントを発生、又は消滅させる
    請求項4に記載の情報処理装置。
  6. 仮想空間上のエージェントの行動を制御する情報処理装置の情報処理方法において、
    仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択し、
    前記教師エージェントの状況を表す状況情報の時系列を取得し、
    前記教師エージェントの時系列の状況情報を用いて、注目している注目エージェントの状況情報の予測値を求める予測モデルの学習を行い、
    前記注目エージェントの予測モデルを用いて、状況情報の予測値を求め、
    前記状況情報の予測値に従って、前記注目エージェントの行動を制御する
    ステップを含む情報処理方法。
  7. 仮想空間上のエージェントの行動を制御する情報処理装置として、コンピュータを機能させるプログラムにおいて、
    仮想空間内のエージェントから、行動を学習する対象である教師エージェントを選択する選択手段と、
    前記教師エージェントの状況を表す状況情報の時系列を取得する取得手段と、
    前記教師エージェントの時系列の状況情報を用いて、注目している注目エージェントの状況情報の予測値を求める予測モデルの学習を行う学習手段と、
    前記注目エージェントの予測モデルを用いて、状況情報の予測値を求める予測手段と、
    前記状況情報の予測値に従って、前記注目エージェントの行動を制御する行動制御手段と
    して、コンピュータを機能させるプログラム。
JP2007308361A 2007-11-29 2007-11-29 情報処理装置、情報処理方法、及びプログラム Withdrawn JP2009134394A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007308361A JP2009134394A (ja) 2007-11-29 2007-11-29 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007308361A JP2009134394A (ja) 2007-11-29 2007-11-29 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2009134394A true JP2009134394A (ja) 2009-06-18

Family

ID=40866233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007308361A Withdrawn JP2009134394A (ja) 2007-11-29 2007-11-29 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2009134394A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012172877A1 (ja) * 2011-06-14 2012-12-20 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、プログラム、及び情報記憶媒体
WO2013051341A1 (ja) * 2011-10-03 2013-04-11 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、プログラム、及び情報記憶媒体
CN106371603A (zh) * 2016-09-18 2017-02-01 成都动鱼数码科技有限公司 基于位置服务和增强现实技术的角色定位捕捉方法
JP6081638B1 (ja) * 2016-04-11 2017-02-15 株式会社コロプラ ゲーム制御方法、および、ゲームプログラム
WO2017090273A1 (ja) * 2015-11-27 2017-06-01 株式会社アースビート ゲーム用オブジェクト制御システム及びプログラム
WO2018059540A1 (zh) * 2016-09-30 2018-04-05 腾讯科技(深圳)有限公司 游戏中角色行为的生成方法、装置和存储介质
WO2020075647A1 (ja) * 2018-10-12 2020-04-16 株式会社豊崎会計事務所 情報処理装置
CN111450534A (zh) * 2020-03-31 2020-07-28 腾讯科技(深圳)有限公司 一种标签预测模型的训练方法、标签预测的方法及装置
WO2024047899A1 (ja) * 2022-08-29 2024-03-07 有限会社アドリブ 疑似プレイヤキャラクタ制御装置、疑似プレイヤキャラクタ制御方法、及びコンピュータプログラム
US12008702B2 (en) 2019-04-22 2024-06-11 Sony Group Corporation Information processing device, information processing method, and program
WO2024150327A1 (ja) * 2023-01-11 2024-07-18 日本電信電話株式会社 予測装置、学習装置、予測システム、予測方法、及びプログラム

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013000247A (ja) * 2011-06-14 2013-01-07 Konami Digital Entertainment Co Ltd ゲーム装置、ゲーム装置の制御方法、及びプログラム
US9039505B2 (en) 2011-06-14 2015-05-26 Konami Digital Entertainment Co., Ltd. Game device, method for controlling game device, and information storage medium
WO2012172877A1 (ja) * 2011-06-14 2012-12-20 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、プログラム、及び情報記憶媒体
WO2013051341A1 (ja) * 2011-10-03 2013-04-11 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、プログラム、及び情報記憶媒体
JP2013078426A (ja) * 2011-10-03 2013-05-02 Konami Digital Entertainment Co Ltd ゲーム装置、ゲーム装置の制御方法、及びプログラム
JPWO2017090273A1 (ja) * 2015-11-27 2018-08-16 株式会社アースビート ゲーム用オブジェクト制御システム及びプログラム
WO2017090273A1 (ja) * 2015-11-27 2017-06-01 株式会社アースビート ゲーム用オブジェクト制御システム及びプログラム
US10188949B2 (en) 2015-11-27 2019-01-29 Earthbeat, Inc. Game object control system and program
JP6081638B1 (ja) * 2016-04-11 2017-02-15 株式会社コロプラ ゲーム制御方法、および、ゲームプログラム
JP2017189229A (ja) * 2016-04-11 2017-10-19 株式会社コロプラ ゲーム制御方法、および、ゲームプログラム
CN106371603A (zh) * 2016-09-18 2017-02-01 成都动鱼数码科技有限公司 基于位置服务和增强现实技术的角色定位捕捉方法
WO2018059540A1 (zh) * 2016-09-30 2018-04-05 腾讯科技(深圳)有限公司 游戏中角色行为的生成方法、装置和存储介质
WO2020075647A1 (ja) * 2018-10-12 2020-04-16 株式会社豊崎会計事務所 情報処理装置
JPWO2020075647A1 (ja) * 2018-10-12 2021-02-15 株式会社豊崎会計事務所 情報処理装置
JP7002085B2 (ja) 2018-10-12 2022-01-20 株式会社豊崎会計事務所 情報処理装置
JP2022027940A (ja) * 2018-10-12 2022-02-14 株式会社豊崎会計事務所 情報処理装置
JP7468850B2 (ja) 2018-10-12 2024-04-16 株式会社豊崎会計事務所 情報処理装置
US12008702B2 (en) 2019-04-22 2024-06-11 Sony Group Corporation Information processing device, information processing method, and program
CN111450534A (zh) * 2020-03-31 2020-07-28 腾讯科技(深圳)有限公司 一种标签预测模型的训练方法、标签预测的方法及装置
CN111450534B (zh) * 2020-03-31 2021-08-13 腾讯科技(深圳)有限公司 一种标签预测模型的训练方法、标签预测的方法及装置
WO2024047899A1 (ja) * 2022-08-29 2024-03-07 有限会社アドリブ 疑似プレイヤキャラクタ制御装置、疑似プレイヤキャラクタ制御方法、及びコンピュータプログラム
WO2024150327A1 (ja) * 2023-01-11 2024-07-18 日本電信電話株式会社 予測装置、学習装置、予測システム、予測方法、及びプログラム

Similar Documents

Publication Publication Date Title
JP2009134394A (ja) 情報処理装置、情報処理方法、及びプログラム
JP7399932B2 (ja) クラウドゲーミングネットワークを使用した人工知能(ai)モデルの訓練
US11666830B2 (en) Local game execution for spectating and spectator game play
Magerko et al. AI characters and directors for interactive computer games
Kim et al. 1. soccer robotics
US11305193B2 (en) Systems and methods for multi-user editing of virtual content
US20180246562A1 (en) Virtual Built Environment Mixed Reality Platform
KR20020015184A (ko) 게임을 이용한 완구 구동 장치 및 방법
Kiourt et al. Multi-agents based virtual environments for cultural heritage
Miyake Current status of applying artificial intelligence in digital games
Yannakakis et al. A generic approach for obtaining higher entertainment in predator/prey computer games
US20230056715A1 (en) Video game with coaching session
Khatri The gaming experience with AI
Hussain et al. Flexible and purposeful npc behaviors using real-time genetic control
Miller et al. Panoptyk: information driven mmo engine
Díaz et al. Evolutionary behavioral design of non-player characters in a FPS video game through particle swarm optimization
Scott et al. A framework for complementary companion character behavior in video games
Abd El-Sattar A novel interactive computer-based game framework: From design to implementation
Priesterjahn Online imitation and adaptation in modern computer games.
Gan et al. Open: An open-ended physics environment for learning without a task
Adelaja Dynamic story writer for computer role-playing games
Aliprandi et al. Find, fuse, fight: genetic algorithms to provide engaging content for multiplayer augmented reality games
Wade et al. Cyber-shepherd: A smartphone-based game for human and autonomous swarm control
Bogdanovych et al. Training Believable Agents in 3D Electronic Business Environments Using Recursive-Arc Graphs.
Henshall Optimising Kinematic Systems Using Crowd-Sourcing and Genetic Algorithms

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110201