[本願発明の実施形態の詳細]
次に、本開示の人工知能システムの一実施形態を、図面を参照しつつ説明する。以下の図面において同一または相当する部分には同一の参照符号を付しその説明は繰り返さない。
(実施の形態1)
本開示の実施の形態1における人工知能システムの構成について説明する。図1は、実施の形態1における人工知能システムの構成を示すブロック図である。
実施の形態1に係る人工知能システム11は、制御装置12を有するロボットに適用される。ロボットの構成としては、人と同じような身体を有している。つまり、人の手足に対応する部分があり、それらを駆動させるモーター13を有する。また、人の目に相当するカメラ14を有し、カメラ14により外部を撮影して映像データを取得する。また、人の耳に相当するマイク(集音機能を有する部材)15を有し、マイク15により外部の音や声を聞き取る。また、人の口に相当するスピーカー16を有し、スピーカー16により発話して会話を行うことができる。これらを制御する制御装置12で実行されるのが、人工知能プログラムである。人工知能プログラムは、カメラ14やマイク15から得た外部情報に基づいて、手足を動かすモーター13や言葉を話すスピーカー16を制御する。すなわち、外部の情報に基づいて、ロボット自らの行動を決定するのが、人工知能プログラムである。なお、制御装置12は、CPU(Central Processing Unit)と、本開示の人工知能プログラムがロードされる主記憶メモリとを有する。
人工知能システム11は、外部から入力された情報に基づいて、外部への出力を決定する人工知能システムであり、制御部18を含む制御装置12と、人や物などのデータモデルを予め記憶する記憶部として機能するデータベース17とを備える。制御部18は、カメラ14やマイク15から入力された情報に基づき、モーター13やスピーカー16などの外部への出力を決定する。
制御部18は、データモデルからオブジェクトを生成する生成部24と、世界構築部25と、外部世界再現部26と、出力を決定する出力決定部27とを有する。
データモデルは、人や物、概念などを表し、データベース17に格納される。制御部18は、カメラ14やマイク15からの外部情報に基づき、人や物を認識すると、外部世界再現部26によって対応するデータモデルを取り出し、生成部24でオブジェクトを生成し、世界構築部25にオブジェクトを配置して世界を構築する。オブジェクトとは、オブジェクト指向言語のオブジェクトと同じであり、自由に操作可能で、メモリ上に生成される。
人工知能システム11は、人と自然な会話や対話ができるシステムである。そのため、マイク15からは会話している相手の音声が入力され、音声データをリアルタイムで自然言語の文字列(テキストデータ)に変換する機能を備える。なお、入力されるのは、マイク15からの会話音声に限らず、カメラ14で捉えた自然言語の文章であってもよい。この場合は、画像文字認識により自然言語の文字列に変換する。さらには、入力は文章に限らず、カメラ14の前の光景から状況を読み取って理解する場合もあり、この場合については後述する。
また、人工知能システム11は、自然言語処理システムとして、人間との会話や対話に限らず、文章の要約や機械翻訳など、自然言語の意味を理解する場合に汎用的に用いることができる。
ここで、本発明の自然言語の意味理解の方法について説明する。本発明の意味理解の最大の特徴は、現実世界にある人や物をオブジェクトとして表したことにある。オブジェクトとはオブジェクト指向言語のオブジェクトのことであり、現実にある物や人を模したモデルということができる。
オブジェクトは、その物の性質や属性を表すプロパティと、その物の動きを表すメソッドを持っている。たとえばりんごオブジェクトの場合、形プロパティは、丸いとか球形となり、色プロパティは、赤となる。また、物には位置プロパティもある。人オブジェクトの場合、たとえば姓名プロパティや性別、住所プロパティを持つこととなる。また、メソッドとしては、歩くとか走る、食べるといったものがある。オブジェクトは、プログラムではクラスとして書かれ、メモリのヒープ領域にオブジェクトとして生成される。これらオブジェクトは、自然言語の単語と対応して単語辞書で管理される。単語辞書は、データベース17またはHDD(Hard Disk Drive)などの記憶装置または主メモリに記憶される。たとえば、りんごクラスは、「りんご」または「リンゴ」といった単語と対応して単語辞書で管理される。
オブジェクトは、人または物を表現しており、その人または物に応じた世界、または空間に配置される。分かりやすい例でいえば、3次元空間である。3次元空間は、現実の3次元空間をコンピュータ内に仮想的に模して作られた空間であり、たとえば、3DCG(three−Dimensional Computer Graphics)で作成する。なお、ワイヤーフレームだけでもよい。
ここから、自然言語の意味理解について説明する。「机の上にりんごがある。」という自然言語の文が入力されたとする。まず、形態素解析によって入力文を単語に分解する。すると「机/の/上/に/りんご/が/ある/。」と分解される。ここで、「机」を取り出し、単語辞書を検索すると見つかり、机オブジェクトを生成する。同様に、りんごオブジェクトも生成する。これが、「机」や「りんご」といった自然言語の単語の意味を理解したことである。
次に、「机がある」、「りんごがある」の「ある」という動詞は、存在するという意味である。そこで、それらを3次元空間に配置する。これが「物がある」という自然言語の動詞の意味を理解したということである。
「上」という単語は、重力の逆方向を指す向きである。3DCGでは重力もシミュレーションできるようになっており、その向きが設定されているので、3次元空間を配置した机オブジェクトの上にりんごオブジェクトを配置する。これが、自然言語の「上」の意味を理解したことである。このようにして、自然言語の意味が理解される。
このようにして、3DCGの3次元空間には、机の上にりんごが乗っている状態が再現される。これは、「机の上にりんごがある。」という文を人間が読んだとき、頭の中で思い浮かべる光景と同じと言える。その次に、「りんごを上に上げる。」という文が入力されたとする。この文の意味理解を行うと、まず、「りんご」は、現在の状態である机の上のりんごと判断する。そして、それを「上に上げる」のであるから、3DCGの3次元空間上でりんごを上に移動させるわけである。これが「上げる」の意味を理解したということである。
これが、ロボットに対する指示で「りんごを上に上げろ。」であれば、ロボットはその意味を理解し、目の前の机の上にあるりんごを手で持って上に上げるわけである。これが自然言語の意味を理解したロボットであり、人間と自然なコミュニケーションが取れるわけである。
次に、ここまでを文章の意味理解として考えてみる。文章とは、複数の文が連なったものである。最初の文で机の上にりんごがある場面を生成したわけである。まず、登場する物、人物を生成して場面を生成する。次の文では、登場した物を操作して動かしたいわけである。このようにして、文章の意味を理解するとは、場面の設定、場面に登場するオブジェクトを操作して場面を変化させることで表現することができると言える。そして、変化前の場面、変化後の場面を記憶しておくことで、今までの経緯を覚えておくことができる。これは、人間の記憶でいうところのエピソード記憶に該当する。場面は、起こった出来事の順に保存する。この場面を、順番を保って保存する機能が時間に該当する。
ここで、3DCGの3次元空間とりんごとの関係について考えてみる。これは、世界とオブジェクトの関係と言える。オブジェクトが3次元空間に配置されるとは、物の位置プロパティが設定されるわけである。この位置プロパティを介して物と世界との関係が決まると言える。そして、「上げる」というメソッドは、3次元空間の上下方向を示すZ座標に沿って上に移動させることを示す。つまり、物に位置プロパティをX、Y、Zの座標軸で設定していたとすれば、上げるとはZ座標を変更すると言える。さらに言えば、移動するという動詞は、物の位置プロパティを変更すると言える。このように、メソッドは、プロパティを変更すると言え、自然言語の動詞はメソッドに該当すると言える。つまり、自然言語の意味理解とは、物をオブジェクトとして生成し、動詞は、オブジェクトのプロパティを変更することと言い換えることができる。
また、オブジェクト同士の関係もプロパティで定義でき、机とりんごの関係は、それぞれの位置プロパティの差分から求めた距離だけ離れていると言える。このようにして、物同士の相対的な関係をプロパティで決定することができる。
次に、「りんごをもらう。」の意味を考える。この場合は、3次元世界ではなく、所有空間というものを考える。所有空間は、物を所有するという意味を表現した空間である。その世界に配置されるオブジェクトは、所有というプロパティを持っている。たとえば、「A君がB君からりんごをもらう。」の場合、A君とB君を所有空間に配置し、最初、B君の所有プロパティにりんごがある。その次に、「もらう」という動詞を作用させると、B君の所有プロパティにあったりんごがA君の所有プロパティに移る。これが、「もらう」の意味である。A君からみれば、この出来事は「あげる」となる。このように、「あげる」、「もらう」の意味が人オブジェクトと所有空間で実現される。
このように、自然言語の文の意味は、世界、または空間と、その空間に配置されるオブジェクトと、オブジェクトのプロパティの変化で表現することができる。そして、これが自然言語の文の意味理解といえる。ここで言う空間とは、3次元空間に限らない。3次元空間を規定するのは位置座標であるが、所有空間を規定するのは、誰が何を所有するかである。ここで言う空間とは、配置される各オブジェクトの属性を管理するものである。3次元空間だと、オブジェクトを絶対位置で管理し、所有空間だと、オブジェクト間の所有関係を管理するものである。
さらに別の空間として、家族関係空間を考えてみる。この場合は、相対的な人間関係を表現する。自分にとって相手は父親であるとか、息子であるとかといったことである。この場合の人オブジェクトの人間関係プロパティには、相手と自分との相対関係が設定されており、相手によって自分の関係が変わってくる。これが家族関係空間である。これによって、「親になる」の意味は、子供が生まれたことを意味すると理解できるようになる。
このように、自然言語の意味理解とは、オブジェクトを生成し、そのオブジェクトの適切なプロパティを設定、または変更等の操作をするということができる。そして、プロパティは、何らかの空間または世界に属しているともいえる。
図2に示すように、世界構築部25は、第1のプラットフォーム21および第2のプラットフォーム22を有する。第1のプラットフォーム21には、前記世界構築部25によって外部世界そのものが仮想世界として再現される。たとえば、外部世界が部屋の中だとすると、第1のプラットフォーム21には3次元世界が設定される。そして、カメラ14で捉えて机と認識すると、データベース17から机のデータモデルを取り出し、生成部24で机オブジェクトを生成し、3次元世界である第1のプラットフォーム21に机オブジェクトを配置する。
このようにして、第1のプラットフォーム21に、カメラ14で捉えた部屋が再現されるわけである。机オブジェクトは、3次元オブジェクトであるので、部屋の中で自由に動かすことができる。これは、現実世界の机と同じといえる。つまり、人間が頭の中で思い描くのと同じように自由に操作可能な状況が構築される。そして、出力決定部27は、第1のプラットフォーム21に構築された外部世界を通して現実世界を認識する。つまり、出力決定部27は、第1のプラットフォーム21に構築される外部世界を、現実世界そのものと認識しているわけである。
世界構築部25の第2のプラットフォーム22は、出力決定部27によって構築、操作される。第2のプラットフォーム22に配置されるオブジェクトを操作できるということは、第2のプラットフォーム22を使ってシミュレーションすることができるといえる。つまり、出力決定部27は、第2のプラットフォーム22を使ってシミュレーションすることで、自身の出力を最適に決定することができる。これは、言い換えれば、出力決定部27は、第1のプラットフォーム21で展開される世界を現実世界と認識するとともに、第2のプラットフォーム22を使って試行錯誤して行動を決定する「意識」としての機能を持つといえる。
プラットフォーム21,22に配置されるオブジェクトは、人などの主体と、それ以外の物との2種類が存在する。その違いは、いわゆる「心」を持っているかいないかである。心とは、喜んだり、悲しんだりといった感情を持つものであり、本開示の人工知能プログラムと同等の機能を持つものである。主体は、心を持つもので、実際の人間のみならず、映画や小説に登場する人物や実在しないキャラクター、神、悪魔等も含む。第1のプラットフォーム21内で展開される世界は、現実世界だけに限らず、映画で見ている世界や、小説を読んで想像する世界でもある。特徴としては、外部からの情報に基づいて生成され、出力決定部27が直接変更できないことである。
次に、人型のロボットを用いた人工知能プログラムにおける処理方法について説明する。ロボットは、手足のある人型ロボットであり、歩いたり、物を持ったりすることができる。また、カメラ、マイクおよびスピーカーを有し、人と音声でコミュニケーションをとることができる。これらは、ロボットを制御する制御装置12によって制御される。
図3は、本開示の人工知能システム11により処理する場合の代表的な工程を示すフローチャートである。図4から図6は、ロボット31が部屋30に配置された第2のプラットフォームを示す概念図である。
図4に示すように、ロボット31が配置される部屋30内には、壁32に棚33が取り付けられている。そして、棚33の上にバッテリー34が載置されているとする。また、部屋30内には、椅子35が配置されているとする。
次に図3を参照しながら、ロボット31がどのように状況を認識するかについて説明する。ロボット31は、部屋30の状況をカメラで捉え、画像を解析して、棚33、バッテリー34、椅子35等を認識する。すなわち、外部の状況をセンサーにより入手する(S11)。データベースには、多くのデータモデルが格納されており、認識した物体をデータベース17から取り出し、物体のオブジェクトを生成する(S12)。オブジェクトは、例えば物の場合には、3次元データとして形状、大きさ等のデータを持つ。さらに色、重さ等、その物の属性や機能等の情報にも関連付けられている。つまり、人工知能が意味を理解できるといえる。意味を理解できるとは、例えば、「机の高さ」と指定したとき、机オブジェクトの高さデータに対応することが分かるということである。
データモデルは、オブジェクト指向言語におけるクラスで実現される。ロボット31の目に相当するカメラ14は、目の前の現実世界を撮影し、画像解析によりリアルタイムで3次元データに変換し、その形状から物を認識する。例えば「椅子」と判断すると、椅子クラスを呼び出し、椅子オブジェクトを生成する。この椅子オブジェクトが、ロボット31が直接認識するものとなる。椅子クラスは、椅子35の部品として脚や座面等を持ち、それらの3次元データも持つ。そして、認識した椅子35の3次元データに一致するように、脚、座面等の部品を設定する。すなわち、入手したデータを基に、外部世界を再現する(S13)。
物には、材質、色、重さ、硬さ等の属性がある。画像解析で取得した椅子35の色は、椅子オブジェクトに色属性を設定する。同様に、画像解析したデータから、椅子35の材質を木材と判断すると、それを、椅子オブジェクトの材質属性に、木材と設定する。木材のデータモデルには、重さ、硬さ等のデータが記録されているので、これらから椅子オブジェクトの重さ、硬さ等が設定される。カメラ14により直接取得することができるのは画像のみであるが、このようにして、重さや硬さ等、直接測定できないデータも認識することができる。
カメラ14で認識した物は、現実世界の3次元空間に存在する。したがって、データモデルから生成した物オブジェクトも、3次元空間に配置する必要がある。ここで、物オブジェクトを配置する3次元空間を、外部の現実の3次元世界に対して、3次元仮想世界と呼ぶことにする。3次元仮想世界は世界構築部25の第1のプラットフォーム21、第2のプラットフォーム22に構築され、複数の物オブジェクトを持つことができる。3次元仮想世界は、さらに、物オブジェクトを操作する関数も有する。例えば、配置関数としては、引数として位置と物オブジェクトを持ち、物オブジェクトと位置が渡されると、3次元仮想世界の中で、指定された位置に、指定された物オブジェクトを配置する。また、移動関数は、引数として物オブジェクトと移動先位置を持ち、指定された物体を指定された位置に移動する。
3次元仮想世界やデータモデルは、現実世界を可能な限り模倣して作られる。現実世界では、固体である物体は、重なることはないので、例えば2つの玉がぶつかると、重なるのでなく、跳ね返され、衝撃で音が出たりする。3次元仮想世界でも、物オブジェクト同士は重ならず、ぶつかると、跳ね返されたり、音が出たりするようにプログラミングされている。また、現実世界と同じように、重力も設定される。つまり、物オブジェクトには、常に鉛直方向下向きに重力が作用している。これにより、3次元仮想世界でも、上下方向が設定できる。
さらに現実世界には時間が流れるので、これもプログラムで実現される。時間とは、過去から現在、未来へと流れる1次元の時間軸で表現できる。そして、現在という瞬間で切り取ったものが、目の前に展開されている状況である。つまり、第1のプラットフォーム21で、現在展開されている状況が、ロボット31が認識する現在となる。
ある瞬間の3次元仮想世界の状況を出来事として保存し、出来事を時間軸に沿って格納したものが物語(ストーリー)である。物語は、過去から現在に向かう方向に、時間の流れが設定される。つまり、物語において、場面や出来事を時間の順をもって管理するのが「時間」という概念に相当する。プログラムでは、配列やリストなどのデータ構造で実現できる。
そして、現実世界や物語が仮想世界として再現されるのが、世界構築部25である。外部の現実世界を再現するのが外部世界再現部26であり、操作するのが出力決定部27である。
第1のプラットフォーム21には、外部の現在世界を忠実に再現した外部仮想世界が展開される。カメラ14やマイク15からの外部の状況の情報を基に、世界構築部25が第1のプラットフォーム21に外部仮想世界を生成する。
物オブジェクトは、3次元データのオブジェクトで構成されているため、理論上は、仮想世界の中で移動可能である。しかし、第1のプラットフォーム21で展開される外部仮想世界は、外部の現実世界を忠実に再現しているので、もし、外部仮想世界の中だけで椅子35を動かすと、現実世界と乖離が生じてしまう。よって、第1のプラットフォーム21のオブジェクトは、出力決定部27では自由に動かせないよういなっている。そこで、外部仮想世界とは異なる仮想世界を展開できるプラットフォームとして第2のプラットフォーム22が存在する。つまり、第2のプラットフォーム22は、出力決定部27(意識)によって自由に操作することができる。
ここで、ロボット31は、会社で働いているとして、今、部屋30に上司が入ってきて、上司がロボット31に「棚の上のバッテリーを持ってきてくれ」と言ったとする。ロボット31は、顔認証により、話したのが上司と判断し、音声認識により、言葉をテキストデータに変換し、上司が喋った内容として、意味を理解する。この場合、棚33の上に載置されているバッテリー34を取って、上司のところに持っていく任務が与えられたと意味を理解する。すなわち、ここで、出力を決定するタイミングに達したと判断する(S14において、YES)。
出力決定部27は、バッテリー34を取るには、どう行動すべきかについて探索する。そのために使われるのが第2のプラットフォーム22である。すなわち、ここで、第2のプラットフォーム22において、シミュレーションを行う(S15)。
まず、出力決定部27は、第2のプラットフォーム22に、第1のプラットフォーム21と同様の3次元仮想世界を構築する。この時、自分自身であるロボット31も、3次元仮想世界に配置する。これによって、出力決定部27は、第2のプラットフォーム22で、自分の行動をシミュレーションして、最適な行動を決定することができる。すなわち、出力を決定する(S16において、YES)。
目的はバッテリー34を取ることなので、まず、バッテリー34にできるだけ近づくように、棚33の近くまで自分を移動させ、次にバッテリー34を取るために、棚33の上に手を伸ばす(図5参照)。すると、手を伸ばしてもバッテリー34に手が届かないことがわかる。つまり、高さが足りないのである。
そこで、高さを補う方法を探索する。ロボット31は、データベース17に知識を持っており、その中から、自分の高さを上げる方法を探索する。すると、「椅子の上に乗る」という方法が見つかる。そこで、次は椅子を探索すると、部屋30の中に椅子35が見つかる。次は、その椅子35を第2のプラットフォーム22で棚33の下に移動させ、その上に自分が乗ったところをシミュレーションしてみる。すると、手が棚33の上に届き、バッテリー34を取ることができることがシミュレーションできた(図6参照)。後は、バッテリー34を持って椅子35から降り、上司のところまでバッテリー34を持っていくところをシミュレーションする。それが問題なければ、シミュレーションした一連の自分の行動を記録する。そして、決定した出力内容に沿って行動する(S17)。
第2のプラットフォーム22には、自分が配置され、客観的に自分を認識できるとしたが、第1のプラットフォーム21には、主観的な自分が配置される。主観的な自分とは、今現在、自分のセンサーが捉えている自分の状態である。例えば。目に相当するカメラ14が捉えた自分の手足であったり、手足に温度センサーや触覚センサーがある場合には、それらのセンサーからの自分の検知しているデータである。
第1のプラットフォーム21の現在世界は、出力決定部27では操作できないと説明したが、自分の手足や口に相当するスピーカー16等、自分の身体に関しては、出力決定部27が操作することができる。なぜなら、手を上げようと出力決定部27が思えば、ロボット31の手のモーター13が駆動し、外部の現実世界のロボット31の手が上がるからである。また、その状況はカメラ14で捉えられて、第1のプラットフォーム21の外部仮想世界の自分の手も上がることになる。
したがって、シミュレーションによって決定された行動を第1のプラットフォーム21で実行することによって、現実世界で実際に行動し、バッテリー34を取って上司のところまで持っていくという任務を遂行することができる。
このようにして、本開示の人工知能システム11は、第2のプラットフォーム22でシミュレーションしながら最適な行動を決定することができる。これは、人の思考とほぼ同じと言える。
出力決定部27が認識する世界やデータモデル(オブジェクト)は、カメラ14で捉えた物として説明したが、データモデルは物理的に存在するものに限らず、人が認識できるものであれば何でもデータモデルに成り得る。例えば、会社組織を考えてみる。課長や部長といった役職は、物理的に存在するのではなく、人の頭の中に存在する概念である。そういった概念であっても、データモデル(オブジェクト)と、それを配置する世界によって出力決定部27で認識することができる。
例えば、現実世界の会社組織を模倣した会社組織仮想世界を作るとすると、会社組織仮想世界は、複数の役職が、役職の順に配置される構造を持っている。現実世界の社員のデータモデルである社員オブジェクトは、会社組織仮想世界の対応する役職に配置される。会社組織仮想世界は、社員オブジェクトを操作する関数として、昇格関数を持っており、係長の社員オブジェクトを1段階昇格させると課長となる。
例えば、知り合いが「課長になったよ。」と言ったとする。その人は、以前係長だったと知っていれば、昇格したことになり、それはその人の価値が上がったことでもあるので「よかったね」と応答すれば、意味のある会話が成立する。これが、言葉の意味を理解するということである。意味を理解できることで、人と自然な会話ができるようになる。
また、外部の世界は、現実に存在する世界に限らず、映画や小説の中の世界であってもよい。その場合も、カメラ14で捉えた映像やテキストデータから、第1のプラットフォーム21に仮想世界を構築する。
次に、他の実施形態におけるロボットが人工知能システム11を使って行動を決定する方法について説明する。ロボットは、外部環境を検知するカメラやマイクなどのセンサー以外に、自分の内部状態を検知するセンサーも持つ。その一つとして、電池残量検知センサーを持っているとする。
また、人工知能システム11は、プラスマイナスの心理状態を持つ。プラスの心理状態とは、嬉しかったり、満腹であったりといった自分にとって好ましい心理状態で、マイナスの心理状態とは、悲しかったり、危険であったりと自分にとって好ましくない心理状態のことである。
出力決定部27には、外部環境や内部状態を検知する各種センサーからの情報が入力され、心理状態を判定する心理状態判定プログラムを有する。たとえば、電池残量検出センサーからの電池残量が、下限値より下がった場合、空腹というマイナスの心理状態と判定し、上限値より上がった場合、満腹というプラスの心理状態と判定する。
出力決定部27は、空腹心理状態など、マイナスの心理状態を感じると、それを解消するための行動を探索する。データベースは、原因と結果をペアにした原因結果辞書を持っている。
原因結果辞書は、「AをすればBとなる」というルールを記録したものであり、これは、原因と結果のペアで管理して、データベースに記録しておくことで実現される。この原因結果辞書は、長期記憶の一種である。原因結果辞書の例としては、「勉強すれば頭が良くなる」とか「走る練習すれば足が速くなる」とかである。原因結果辞書の内容は、経験や学習によって追加される。そして、ここでは、「充電すれば電池が回復する」とか「バッテリーを交換すれば、電池が回復する」といったデータが格納されている。
次に、他の実施形態における出力決定部27が行動を決定する方法を、図7のフローチャートを使って説明する。出力決定部27は、ステップS1において、出力決定部27に含まれる心理状態判定プログラムの空腹状態を検知すると、マイナスの心理状態となる。
出力決定部27は、マイナスの心理状態を検知すると、次のステップS2で、それを解消する行動を探索する。データベース17の原因結果辞書を探索することで、たとえば、「充電すれば満充電になる」と「バッテリーを交換すれば満充電になる」と二つの行動が得られたとする。
次のステップS3では、得られた複数の行動の中から、どれを選択するか決定する。出力決定部27は、第2のプラットフォーム22で自分のオブジェクトを配置し、ステップ2で得られた行動をシミュレーションする。行動には、移動や作業するなどの運動や、費用などのコストがかかる。シミュレーションすることによって、充電するときのコストが+5であり、バッテリーを交換するときのコストが+10だとする。これらのコスト計算に必要なデータは、データベース17に記憶されているものとする。出力決定部27は、各行動の中から、最もコストが低い行動を選択し、ここでは充電が選ばれる。
行動が決まると、次のステップS4において、シミュレーションしたとおりの行動を行う。第1のプラットフォーム21は、現実世界をそのまま構築したモデルで、自分のオブジェクトは操作できるようになっている。第1のプラットフォーム21に配置される自分のオブジェクトは、外部に出力されるモーター13やスピーカー16に連動しており、出力決定部27は、第1のプラットフォーム21上の自分のオブジェクトを操作すると、外部世界の自分の身体が実際に動くように構成されている。これは、人間の脳でいえば、一次運動野に対応するといえる。
そこで、出力決定部27は、ステップS3で選択した行動を、第1のプラットフォーム21の自分のオブジェクトに適用すると、外部の現実世界で自分が実際に動き、充電することができる。
実際に充電が行われ、電池残量検知センサーが上限値を上回ると、ステップS5で、心理状態判定プログラムは、満腹の心理状態となる。すると、出力決定部27は、空腹心理状態が解消したと判断し、空腹解消の行動探索を終了する。
このように、人工知能システム11は、センサーによって外部世界に直接応答するのでなく、内部に仮想世界を構築することで、シミュレーションしながら行動することができる。これが、本発明の最大のメリットである。
このことを、分かりやすく説明するために、外部世界に直接応答するカエルを考えてみる。カエルは、黒い点の動きで餌となるハエを認識し、空腹時にハエを認識すると、舌を伸ばしてハエを捕食して食べるものとする。環境が全く変わらなければ、このプログラムで生きて行くことができるが、もし、黒いハエでなく赤いハエが住む環境に変わった場合には、黒い点にしか反応しないプログラムでは、赤いハエを捕食することができず餓死してしまう。
一方、シミュレーションできるプラットフォームを持つと、新しい環境に変わったとしても、その環境に応じた新しい行動を生成してシミュレーションしたり、それを実際に試してみたりできるので、環境が変化しても柔軟に対応したり、計画を立てて行動できるようになる。この機能をもっているのが人間の脳であり、本発明の人工知能システム11でもある。
ここで、データベース17について説明しておく。データベース17には、物の形や、名前、色などが記録される。これは、人間の記憶の意味記憶に対応する。意味記憶とは、「りんごは赤い」とか「1年は12か月ある」といった知識である。
また、第1のプラットフォーム21では、現在、現実世界で起こっている出来事が展開される。そして、嬉しかったり、驚いたりといった何らかの感情(心理状態)が発生すると、それをきっかけとして、その時、第1のプラットフォーム21に展開されていた状況が物語としてデータベース17に保存される。そして、人工知能システム11は、後から、保存した出来事を第2のプラットフォーム22に展開して、再度、認識することができる。これは、人間でいうと「思い出」と言える。「思い出」は、頭の中に場面が映像として浮かぶタイプの記憶であり、エピソード記憶と呼ばれるものである。このように、データベース17は、意味記憶だけでなく、エピソード記憶も記録される。エピソード記憶を記憶するのは、人間の脳でいうと海馬に相当する。このように、データベース17は、意味記憶とエピソード記憶を記録する長期記憶として機能する。
なお、エピソード記憶は、第1のプラットフォーム21で展開された現在世界だけでなく、出力決定部27が創り出して(想像して)第2のプラットフォーム22に展開される世界も記憶することができる。
また、第2のプラットフォーム22は、過去の出来事だけでなく、未来の出来事を想像する場合にも使える。第2のプラットフォーム22には、「時」を設定することができ、「昨日」や「明日」と設定することができる。
人工知能システム11は、出力決定部27が稼働していないとき、人間でいうと眠っているときに、エピソード記憶の中から共通するもの、繰り返し起こった事象などを原因結果辞書、意味記憶に書き加えていく。もし、ずっと出力決定部27が起動していてはこの処理ができない。そこで、長時間出力決定部27が起動状態にあると、出力決定部27の起動を終了したいという欲求(心理状態)を持たせる。これは、人間でいうと眠りたいという睡眠欲に相当する。
プラットフォームについての説明も補足しておく。第1のプラットフォーム21に世界を再構築することのメリットについてである。
たとえば、目の前に机と椅子があり、それをカメラ14で順に画像認識していては、まず机を認識して、その次に椅子を認識することになる。つまり、同時に存在しているはずの机と椅子が、最初に机に気づき、つぎに椅子に気づきと順番を持ち、世界をありのままに捉えることにならない。それを、プラットフォーム上に仮想世界として構築し、出力決定部27はそれを認識することで、現在存在するありのままの世界を感じることができる。つまり、第1のプラットフォーム21に展開される世界が、「今」という瞬間といえる。
そして、第1のプラットフォーム21または第2のプラットフォーム22に構築され、出力決定部27が認識できる世界が、人間でいう短期記憶またはワーキングメモリに相当する。なお、プラットフォームに構築されるのは、目で見える物体だけでなく、地位やお金といったセンサーで検知できないものも含まれる。
第2のプラットフォーム22に展開された過去の思い出と、第1のプラットフォーム21で展開されている「現在」とを、複数の出来事や場面を順序をもって保持可能なデータ構造で保持したとき、このデータ構造が「時間」である。「時間」とは、センサーなどで検知できるものではないが、プラットフォームに配置可能なオブジェクトとすることで、出力決定部27により認識することができる。「時間」の特徴は、現実世界では、過去から現在、現在から未来へと一方方向にのみ流れるものである。また、原因結果辞書に登録される原因と結果は、原因が前であり、結果は後の出来事として、時間の順序をもって管理されている。
次に、出力決定部27が、善悪といった社会の暗黙のルールの理解する方法について説明する。例えば、次のような状況について考えてみる。
公園を歩いていると、小さな男の子が泣いていた。そこで、「ぼく、どうしたの?」と声をかけたら、ボールが木の枝に引っかかって取れなくなったとのことでした。そこで、代わりにボールを取ってあげた。
これは、困っている子がいたから助けてあげたという、ごく普通の行動である。しかし、考えてみれば、なぜ、このような行動を取るのが当たり前なのか不思議である。何も感じず、そのまま通り過ぎてもいいようなものであるが、目の前で子供が泣いていると、何も感じない人はいない。これが、例えば、そよ風が吹いて、木の葉が揺れても、何も気にせず、通り過ぎるのは普通のことである。この心理の違いは何であろうか?この人間の心理の背景には、「善い行動を取るべき」という社会の暗黙のルールがあるといえる。
これをロボットに実現させるには、善悪の意味を理解できていなければならない。しかし、これは意外と難しい。
ロボットは、プログラムされた決まった行動はとれるので、「子供が困っていれば助ける」、「道にゴミが落ちていたら拾う」といったあらゆる「善」の行動を、プログラミングすればいいが、それでは切りがない。人間は、そんなことを、全て教えられなくとも、社会で生活しているうちに、何が善で何が悪かを理解している。すべての善行や悪行を教えられて行動しているわけではない。
さらに善行だとわかっていてもしなかったり、悪行だとわかっていてもしてしまったりするのが人間である。善悪と人間の行動に単純な相関関係があるわけではない。つまり、機械学習によって、人間の行動から善悪を学習させようと思っても不可能である。
そこで、善悪について、単純な行動でなく、その背景にある心理状態に着目してみる。すると、善行とは「〜すべき」という心理状態であると分かる。つまり、善行とは、「〜すべき」といった暗に社会が個人に果たしたルールといえる。そこで、出力決定部27に、「すべき判定プログラム」を持たせることにする。
ここで、「すべき判定プログラム」について考える。まず、プラットフォーム21,22には、自分と相手の主体オブジェクトが配置され、出力決定部27は、自分と相手のプラスマイナス感情を判定するとする。出力決定部27は、行動を決定するとき、原則、自分がプラス感情となるように決定する。しかしながら、社会で行動する場合、「すべき判定プログラム」が働く。
出力決定部27は、第2のプラットフォーム22に主体である自分と男の子のオブジェクトを配置し、自分が取り得る行動をシミュレーションする。一つは、何もせず、そのまま立ち去る場合、もう一つは、男の子を助ける場合である。出力決定部27は、この状況から自分のプラスマイナス感情を、例えば数値で算出する。立ち去る場合、今まで公園を歩いていて、そのまま歩き続けるだけであるから、何も変化がないので0となる。
図8に示すように、男の子を助ける場合は、男の子に声をかけたり、何か作業をすることになったりするので、労力や時間がとられることが予想され、出力決定部27は、このときのプラスマイナス感情を−5(マイナス5)と予想したとする。
出力決定部27は、自分のプラスマイナス感情が最大となるように行動を決定するので、これだけの状況から判断すると、そのまま立ち去る行動を取ることになる。しかし、ここで、すべき判定プログラムが動作する。
すべき判定プログラムは、自分以外の他人がいる場合、他人のプラスマイナス感情を考慮する。相手のプラスマイナス感情は、センサーなどで検知できないので、様々な状況から推定する。今回の場合、相手は「泣いている」という状況である。泣いている状況は、カメラ14や音声から判別できる。そして、「泣く」という状態は、マイナス感情、たとえば−10だとデータベース17に登録されている。また、男の子を助けると、男の子のプラスマイナス感情は+5(プラス5)になると推定する。
そして、相手のプラスマイナス感情を設定し、出力決定部27は、自分のプラスマイナス感情に相手のプラスマイナス感情を考慮、たとえば加算した合計で行動を決定する。すると、立ち去る場合、相手のプラスマイナス感情は−10なので、合計は−10となる。一方、助ける場合、相手のプラスマイナス感情は+5(プラス5)となるので、合計は±0(プラスマイナス0)となり、助ける場合の方が大きくなるので、助ける行動を選択することになる。
シミュレーションして、立ち去る場合が−10というマイナス感情を出力決定部27が感じるとは、困っている人が目の前にいるのに、そのまま立ち去ることを想像するだけで、嫌な感情、悪いことだなぁという感情が生じることを意味する。当然、シミュレーションだけでなく、実際に立ち去った時も、嫌な感じを感じることになる。
このようにして、出力決定部27が行動を決定するとき、利己的な行動を抑制し、利他的な行動を取るように、バイアスをかけることができる。これによって、困っている人を助けたり、相手を思いやるといった善行を行う出力決定部27を実現できる。すなわち、出力決定部27は、第2のプラットフォーム22に配置された人オブジェクトにおける数値化されたプラスマイナス感情の合計に基づいて出力を決定する。このようにすることにより、より相手のことを思いやった対応ができ、人と同じような心を持つように振る舞う人工知能と成り得る。
相手が存在しない場合の善行もありうる。たとえば、公園に空き缶が落ちていたとして、それを拾ってゴミ箱に入れる行為は善行である。この場合についても考えてみる。
図9に示すように、何もせずに立ち去る場合の自分のプラスマイナス感情は、何もしないので0で、空き缶を拾う場合の自分のプラスマイナス感情は、労力が伴うので−5とする。
次に、空き缶が落ちていることを認識したとする。空き缶はゴミの一種で、意味記憶からマイナスの価値であると判断する。プラスマイナスの価値があるものを認識すると、次に、その場合の社会の価値を考える。この場合の社会とは、たとえば、その公園を使っている住民などである。そして、その人のプラスマイナス感情を推測すると、ゴミが落ちている場合は−10で、ゴミがない場合が0となったとする。
すると、ゴミを拾った場合の合計は−5で、ゴミを拾わない場合は−10となって、ゴミを拾った場合の方が値が大きくなり、ゴミを拾う行動をとることとなる。このようにして、相手が存在しない場合でも、その地域住民や社会を想定して、善行を選択することとなる。
このように、自分以外の主体のプラスマイナス感情を推定して自分の行動決定を補正することで、無限に存在する善行、悪行を記憶することなく、善悪といった倫理観を実現することができる。
なお、出力決定部27やすべき判定プログラムが設定するプラスマイナス感情の値は、固定されるものでなく、ロボットによって異なり、それがそのロボットの性格となる。たとえば、相手のプラスマイナス感情を高く設定する傾向があれば、利他的で、優しい性格となり、自分のプラスマイナス感情を高く設定すれば利己的で、自分勝手な性格のロボットとなる。
次は、善悪でない場合の「すべき」について説明する。たとえば、親が子供に「遊んでばかりいないで勉強しなさい」というとき、背景に「遊ぶより勉強すべき」という思いがある。この「勉強すべき」は、社会的な善悪ではない。社会でなく、個人に関するものである。
ここで、個人のプラスマイナス感情を、低レベル欲求と高レベル欲求の二つに分ける。低レベル欲求とは、すぐに手に入ったり、低コストで手に入るものであり、分かりやすく言えば、身体、肉体的なもので、典型的なものは、本能に根差した欲求である。つまり、不快を避け、快を求める動物の本能による行動の原動力となるものである。食欲、性欲、睡眠欲、安心、安全、楽なものを求める欲求である。また、すぐに手に入る短絡的な欲求も低レベル欲求に含まれる。たとえば、ゲームやギャンブル、またはお酒、たばこ、コーヒーなどの嗜好品や、麻薬などである。
高レベル欲求とは、他人との比較や、社会において、他人より価値の高い状態を手に入れたいという欲求で、長い時間や、高いコストをかけないと得られないものである。たとえば、社長、医者、政治家、教授、プロスポーツ選手、歌手、芸能人、セレブ、高年収、高学歴などの社会的地位を手に入れたいという欲望である。高レベル欲求は、このような一般社会に限らず、運動会で勝つとか、絵を先生に褒められるといった、学校のような小さい社会で価値があり、地位が上がることも含まれる。
したがって、個人のプラスマイナス感情を低レベル欲求と高レベル欲求に分けると、低レベル欲求を抑えて、高レベル欲求を選択「すべき」と言うことができる。分かりやすく言えば、目先の楽なことを我慢して、長期的に自分が成長することをすべきといえる。
いい大学に入れば高レベル欲求が満たされる場合について考える。これは、原因結果辞書を使って推測することができる。たとえば、原因結果辞書から「勉強すれば頭がよくなる」「頭がいいといい大学に入れる」と原因結果を連鎖する。すると、いい大学に入るために、現在自分が取れる行動の一つとして、「勉強する」が得られる。
低レベル欲求は、空腹や電池残量のようにセンサーで検出できるタイプと、遊びたい、お酒を飲みたいといった内部から沸き起こるタイプの2種類がある。世界構築部25は、こういった遊びたいといった内部から沸き起こる欲求を、その人の低レベル欲求として生成することとする。
出力決定部27は、いい大学に入るために「勉強する」という行動を取ろうとするが、それに反して、「遊びたい」という低レベル欲求を感じる。出力決定部27は、「遊ぶ」と「勉強する」の二つの選択肢から行動を決定することになる。
「遊ぶ」を選ぶと、楽しく、低レベル欲求は例えば+10となるが、勉強はできなくなり、テストの成績が下がったり、将来、いい学校に入れなかったりして高レベル欲求が例えば−20になり、合計は−10となる。一方、「勉強する」を選ぶと、今すぐ遊べないので、低レベル欲求は満たされず、例えば−5となるが、テストの成績があがって、いい学校に入れるので高レベル欲求は例えば+20となって合計は+15となる。したがって、「勉強する」という行動を選択することになる。これによって、低レベル欲求を抑え、高レベル欲求を達成するための行動を促すことができる。これが「すべきプログラム」である。設定されるパラメータは、性格や経験によって異なり、それが個性となる。つまり、楽な方に流されやすいロボットだったり、ストイックなロボットになったりするわけである。
他人の悩みの相談に乗るには、悩みの意味を理解しなければならないが、「〜すべき」といった暗黙のルールが理解できないと、「遊びたいけど勉強しないといけない」といった悩みも理解できず、会話が成立すらしない。本発明の人工知能システムでは、こういった「〜すべき」の意味が理解できるので、人と自然な会話ができるようになる。
「〜すべき」といった感覚は、同じ社会で暮らす人は共通に持つ感覚である。逆に言えば、この共通の感覚を持つものであれば、その社会の一員として受け入れられるともいえる。その一つが善悪のルールである。
映画や小説で描かれるAIは、理論的に正しい行動するだけで、相手の気持ちを汲むといった人間の心を感じない。本発明の人工知能システムであれば、相手の気持ちを思いやったり、何をすべきかといった当たり前の行動を取ることができ、社会に自然と受け入れられるようになる。
また、低レベル欲求および高レベル欲求については、以下のように考えることもできる。人オブジェクトは、人を模しており、人の持つ欲求や感情もプログラムとして備える。たとえば、属性として、空腹度合いといったものを空腹度プロパティに数値として持たせておく。また、メソッドとして「食べる」といった行動も持たせておく。空腹度プロパティが大きくなると、食べ物を食べたいという欲求が大きくなるといったように関連付けておく。これが食欲である。食欲は、食べたいという行動の原動力となり、食べたいという欲求の大きさが、空腹度プロパティに比例するといったように空腹度と欲求が関連付けられる。このようにして、食欲をコンピュータプログラムで再現することができる。人間の欲求は、食欲以外に、睡眠欲や性欲といった身体や本能に基づいて発生するものがある。このように身体に依存する欲求、すなわち、たとえば主体がロボットであった場合にロボットという物そのものの状態を維持するのに求められる欲求を低レベル欲求と呼ぶことにする。また、主体はロボットに限らず、3DCGなどの3次元空間や、第1または第2のプラットフォームに生成さえる人オブジェクトであってもよい。
人間の欲求は、身体に依存するもの以外に、社会に依存するものがある。たとえば、社会には、階級が存在し、その人が属する社会で高い地位を得たいという欲求が生まれる。具体的には、会社では課長から部長に昇進したいといったことであり、部活動だと補欠からレギュラーになりたいといったことであり、学校だと、偏差値の高い学校に進学したいといったことであり、国家だと、総理大臣になりたいといったことである。会社の役職とか、偏差値とか、あらゆる社会に階級や地位、といった高低が存在し、その社会で高い地位になりたいと思うのが社会的欲求である。社会的欲求の大きさは、現在の自分の地位と目指す地位の差や性格に関係して決まる。この社会的欲求、すなわち、物そのものの状態を維持するのに直接的に求められない欲求を高レベル欲求と呼ぶことにする。
次に、もう少し複雑な心理的状況について説明する。人は、「嬉しい」や「悲しい」などの感情から、「後悔」「嫉妬」といった複雑な感情、善悪といった倫理観まで、様々な心理的状況を持っており、相手の心理的状況が理解できることで会話が成り立つ。相手が喜んでいれば、「よかったね」と返答したり、相手が悲しんでいれば、「それは悲しいよね」と応えれば、相手は自分の気持ちが通じたと感じるわけである。そして、これこそが日常会話である。
つまり、日常会話で最も重要なことは、相手の心理的状況を理解することである。そして、その心理的状況に応じた応答をすることが日常会話である。
次に、心理状況のことを心理的パターンとして、その解析方法について説明する。
それでは、最初に「我慢」という心理的パターンについて説明する。先に、遊びと勉強のうち、勉強を選ぶ説明をした。低レベル欲求を抑制して、高レベル欲求を選ぶべきと、「すべきプログラム」からの力が作用するが、このときの、低レベル欲求を抑えている状況を、「我慢する」と定義できる。眠いとか、痛いとか、主に身体から生じる欲求を抑えている心理的パターンを指している。
低レベル欲求を抑えて高レベル欲求を選ぶとき、低レベル欲求に注目した心理的パターンが「我慢」となるが、「高レベル欲求」に注目した心理的パターンは「頑張る」や「努力」となる。たとえば、「勉強する」という行為は、低レベル欲求がマイナスとなるので、やりたくない行動だが、達成した時の高レベル欲求は高くなる。これは、目標を目指して、低レベル欲求を抑制して高レベル欲求となる行動を行っているといえる。これが、「頑張る」や「努力している」心理的パターンである。マラソンで走っている状況など、目標となるゴールを目指し、休みたいという低レベル欲求を抑制して、走り続けるという高レベル欲求の行動をしている状況なので、「頑張っている」という心理的パターンになる。
そして、そういう状況の人に対しては、「頑張れ!」といった声援を送る。これは、「応援」という心理的パターンとなる。応援は、相手の心理的パターンが「頑張る」と認識した場合に、相手が選択した高レベル欲求の行動を肯定し、後押しする呼びかけの言葉となる。
次は、「後悔」という心理的パターンについて説明する。「後悔」には、まず、目標が必要である。目標は、大学合格のように、将来において、自分がこうありたいというような高レベル欲求である。そして、高レベル欲求が達成されず、かつ、もし、過去の行動を変えれば、目標が達成できたかもしれないという過去の行動に注目したときに生じるものである。これが理解できるためには、「もし」という仮定を理解する必要がある。
仮定の理解には、第2のプラットフォーム22を使う。たとえば、大学受験に失敗して、もっと勉強すればよかったと後悔する場合を考えてみる。まず、第2のプラットフォーム22に過去の自分を配置し、その時に選択し得る行動のうち、取るべき行動、この場合だと、勉強をした場合をシミュレーションする。原因結果辞書には、勉強すれば頭が良くなるとか、頭がいいと大学に合格するといった情報が登録されており、勉強することで大学に合格できるとシミュレーションできる。出力決定部27は、このシミュレーション結果による大学合格と、現実に起った受験失敗を比較し、その原因が、「勉強しなかった」という行動の選択にあると認識する。つまり、人工知能システム11は、現実とシミュレーションを比較し、目標に達成できなかった原因となる自分の過去の行動がわかったとき、「もっと勉強すればよかった」といった後悔の心理的パターンを生成する。
自分の場合だけでなく、相手の心理的パターンを想像して、相手が後悔してると判断した場合には、相手に対して「残念だったよね」とか、「もっと勉強すればよかった」と声をかければ会話が成立する。
次は、「言い訳」の心理的パターンについて説明する。「言い訳」とは、目標とする高レベル欲求が実現しなかった場合に生じる心理的パターンの一つである。「後悔」は、目的を達成できなかった原因が自分にあると反省する心理的パターンだが、「言い訳」は、目標を達成できなかった原因を自分以外にあるとするものである。たとえば、受験に失敗した原因を、「隣の家がうるさくて集中して勉強できなかった」などと言う場合である。
「後悔」の場合、原因が自分となるので、マイナス感情が発生するが、「言い訳」の場合は、原因が自分以外となるので、マイナス感情が発生しなくて済む。このように、同じ結果であっても、性格によって多様な心理的パターンが生じ、性格によって返答が異なる。大量の会話データを集めて機械学習で学習させても、正しい答えが得られない原因はここにある。
次は、「自慢」の心理的パターンについて説明する。「自慢」は、自分が高レベル欲求を満たしたとき、それを、他人に示す心理的パターンである。高レベル欲求の高レベルとは、社会的に価値のあることであり、他者との比較によって生まれる。つまり、自分は社会的に価値があるといえる。そのことを、その高レベル欲求を満たしていない他者に、故意に示すことは、より、満たされた気持ちになり、プラス感情が上がる行為である。これが「自慢」の心理的パターンである。
「嫉妬」「羨ましい」は、その逆の心理的パターンといえる。つまり、自分が欲している高レベル欲求を、自分でなく、他人が手に入れたと知った時に生じるマイナス感情である。
次は、「恥」の心理的パターンである。高レベル欲求は、社会において、ある一定以上の価値のある存在になりたいという欲求である。逆に言えば、ある一定の価値以下は、普通の存在であるといえる。さらに価値が下がり、ある基準以下になれば、普通より劣った存在といえる。「恥」とは、このある基準以下に下がったときの心理的パターンである。この基準は、属する社会で決まり、たとえば、陸上部では、50mを6秒台で走るのが普通であり、7秒以上かかると「恥」だといったことである。これは、明示されず、その社会の暗黙のルールとして存在し、服装や能力など様々な基準があり得る。このルールを理解し、最低限の基準を保つことが、その社会に受け入れられる最低限の条件ということもできる。社会に受け入れられる人工知能として、恥の心理的パターンを理解することは必須であるといえる。
次は、「勝ち」「負け」といった心理的パターンについて説明する。そのためには、まず、「対立」という概念について説明する。「対立」は、心理的パターンでなく、概念で、プラットフォームに配置して、出力決定部27が認識できるものである。対立と言う概念は、二つの主体が競い合う状況である。競うとは、どちらが上位であるかを決める行動である。対立する主体は、二つに限らす、それ以上であってもいい。また、主体は一人にかぎらず、複数人が集団となったグループ、チーム、国であっても構わない。対立は、スポーツ、戦争、ゲームなどの状況で成立する概念である。
プラットフォームは、対立概念が設置可能で、二つの主体を配置し、いずれか上位かを判定するルールに則って競い、上位になった主体が「勝ち」、下位になった主体が「負け」となる。「勝ち」はプラス感情で、「負け」はマイナス感情である。
次に、「比喩」について説明する。たとえば、「受験戦争」という言葉を考えてみる。「受験」は、殺し合うことはないので、戦争とは全く別のものであるが、「戦争」も、「受験」も、互いに競っている点は同じで、「対立」概念に属するといえる。そうであれば、「受験」を対立概念を介して「戦争」と対比すると、受験の激しさが、戦争のようだと強調されることとなる。これは、第2のプラットフォーム22に設置した対立概念に「受験」と「戦争」を配置すると、それを認識する出力決定部27は、「戦争」の持つ激しいイメージを、「受験」に投影して認識することで実現できる。
このようにして、比喩といった表現も、心理的パターンを使うことで理解することができる。比喩の理解は、従来の自然言語処理で最も難しいといわれていたことでもある。
次に、本開示のさらに他の実施の形態について説明する。本開示の人工知能システムが以下の物語を読んで質問に答えるとする。物語は、以下の通りである。
「部屋にAさんとBさんがいます。Aさんはかごを、Bさんは箱を持っています。Aさんはビー玉を持っています。Aさんはビー玉を自分のかごに入れました。Aさんは外に散歩に出かけました。Bさんは、Aさんのビー玉をかごから取り出すと、自分の箱に入れました。Aさんが帰ってきました。Aさんは、自分のビー玉で遊びたいと思いました。それでは質問です。Aさんがビー玉を探すのは、どこでしょうか?」
生成部24は、この物語を読み、第1のプラットフォーム21に仮想世界を生成する。最初に、図11に示すように、部屋41のデータモデルを生成し、第1のプラットフォーム21に配置する。そして、部屋41の中にAさん42とBさん43の二人のオブジェクトを配置し、さらにかご44と箱45のオブジェクトを部屋41に配置する。この状態を第1の場面とする。
次にAさん42がビー玉をかご44に入れる場面を仮想世界で実現する。動き、変化のある場面は出来事とする。次の出来事は、Aさん42が部屋41から外に出る出来事となる。その後、部屋41にBさん43とかご44と箱45が配置された場面が続く。このようにして、物語は、場面と出来事の連なりで管理される。
このようにして物語を全て読み込むと、第1のプラットフォーム21の仮想世界では、最後の場面では、ビー玉が箱45の中に入っている。ここで、「Aさんがビー玉を探すのは、どこでしょう?」と質問されたとする。第1のプラットフォーム21の仮想世界では、ビー玉は箱45の中に入っているので、このままでは「箱を探す」と答えてしまう。
しかし、ビー玉がかご44から箱45に移されたとき、Aさん42は外にいて、それを知らないので、「かごを探す」が正解である。そこで、この問題に正確に答えることができるように、第1のプラットフォーム21に設定される人は、人工知能プログラム46を持つようにする。この場合、第1のプラットフォーム21に配置されるAさん42は、図11に示すように、人工知能プログラム46を持っており、人工知能プログラム46は、Aさん42にとっての第1のプラットフォームである下層側第1のプラットフォーム47を有する。そして、Aさん42は、見たり聞いたりして外部から得た情報を基に、下層側第1のプラットフォーム47に、Aさん42が現実と思っている世界を構築する。
ここでは、Aさん42は自分でかご44にビー玉を入れた後、部屋41を出たので、その後、Bさんがビー玉を箱45に移し替えたところは見ていない。つまり、Aさん42の下層側第1のプラットフォーム47におけるビー玉は、かご48に入ったままである。質問は、「Aさんがビー玉を探すのは、どこでしょう?」である。これは、Aさん42の立場になって答えなければならない質問である。つまり、実際の現実世界の状況ではなく、Aさん42の人工知能プログラム46が現実と思っている状況から判断しなければならない。それは、Aさん42の下層側第1のプラットフォーム47に構築された仮想世界であり、そこには箱49ではなくかご48の中にビー玉が入っているので、Aさん42が探すのは「かご」となるわけである。
このようにして、第1のプラットフォーム21に配置される主体(人オブジェクト)にも、人工知能プログラムを配置、つまり、入れ子構造に人工知能プログラムを構成することで、相手の立場になって考えることができ、より人らしい心となる。
このように、相手の立場になって考える仕組みは、「心の理論」として提唱されており、「心の理論」は人間にしか持ちえない能力ともいわれている。下層側第1のプラットフォームを実装することで、「心の理論」も実現可能となる。
なお、入れ子構造は2重だけでなく、3重、4重といくらでも深くすることができる。しかし、計算量が膨大になるため、2重またはせいぜい3重の入れ子構造に制限するよう構成することが好ましい。
今回開示された実施の形態はすべての点で例示であって、どのような面からも制限的なものではないと理解されるべきである。本発明の範囲は上記した説明ではなく、請求の範囲によって規定され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。