【課題を解決するための手段】
【0008】
図1に、情報を取得し、記憶にアクセスする手法を示す。
まず、記憶の構造の説明をする。記憶は、現実の構造そのものではないものの、ニューロンとシナプスの関係を模倣したものとしてネットワーク構造で表現している。ニューロンは、多入力多出力のデータであり、
図1では○で表現している。シナプスはニューロンとニューロンを繋ぐ役割を持つ。接続は1方向とするが、双方向接続は許可する。
次に、環境から光、音、味や匂いと言った情報を受け取るための受容体について説明する。この受容体は、視覚を例にすると、視界中のある地点のRGB値を受け取ったり、明るさや線の濃度を受け取ったりするが、他の聴覚、嗅覚等も共通して必ず、受け取ったデータを一定の数値の中にマッピングできるようにする。例えばREDを受け取る受容体は0〜25の範囲の中にマッピングされ、R値が0〜10の場合には0、10〜20の場合には1、...というように0〜255の値をマッピングしていく。受容体を作る場合には、一律してこのようなマッピング構造を作る。
図1では、それを帯状のデータとして表現している。更にマッピングされたデータはそれぞれがニューロンで構成されるものとする。さきほどのREDを受け取る受容体を例で言えば、マッピングされた値0〜25が26個のニューロンとして扱われる。そして、受容体が光を受け取り、あるR値を受け取った際に、26個のニューロンのうち対応するニューロンにアクセスが起こり、接続するシナプスを通って別のニューロンへのアクセスが起こる。
【0009】
次に、記憶の形成手法を記述する。そのために、まずはワーキングメモリ(以下、WM)の説明をする。前述の通り、記憶は多入力多出力、双方向接続で構成される膨大なネットワーク構造で表現される。受容体がデータを受容することでニューロンにアクセスが起こることは説明したが、現実には数十個以上で構成される受容体は、環境から大量の情報を時系列で受け取らなければならない。つまり、受容体からアクセスされるニューロンは1つではなく、同様に数十個以上存在することになる。これをWMで管理する。WMのイメージを
図2−1に示す。WMは数十以上のニューロンの集合で表現される。更に、各ニューロンの出力側の接続から別のニューロンへのアクセスが起こる。WMは一定時間毎に更新する(更新時間は人間の反応速度程度が妥当だと思われるが任意値)。WMが保持できるニューロンの数には限界を持たせ、古いニューロン(WM中で最近アクセスの少ないニューロン)から順にWMから削除する。
記憶の形成はこのWMが利用される。まず新しいニューロンが生成される際の様子を
図2−2に示す。環境から受け取るデータが、受容体がこれまでに受け取ったことのないデータであった場合(例:R値の0〜25のうち18番目のニューロンにシナプスが存在しない場合)、新しいニューロンを作る。更に、新しいニューロンを作った時点のWMが持つ全ニューロン(一部例外はあるが割愛)と新しいニューロンを接続する。
また、既に生成されているニューロン間でもシナプス(接続関係)の変遷が起こる。WMに新しく登録されるニューロンには2種類ある。受容体からアクセスされたニューロンと、シナプスの接続関係からアクセスされるニューロンである。この2種類を繋ぐシナプスが存在していなかった場合には、前者→後者の流れで新しいシナプスを作り、今後受容体から同じアクセスがあった際にも、後者のニューロンも同時にアクセスされるようにする。
【0010】
以上のように多入力多出力、しかも双方向で高速に生成され続けるネットワークを作れば、データは無用に膨大になってしまう。記憶は整理されなければならない。整理の様子を
図2−3に示す。まず、記憶を整理するために、ニューロンとシナプスの体力を示す値を設定する。WMによるアクセスが少ないニューロンとシナプスは時間経過と共に体力値を減らし、アクセスが多いニューロンとシナプスは体力値を増加させる。体力値が0になったニューロンやシナプスを記憶から消去する。また軽量化のため、入力のリンクが無くなったニューロンやそのニューロンが持つ出力シナプスも同時に消去する。
消去するべきニューロンの探索にも多少の時間がかかるので、この記憶の整理は本発明の人工知能の「睡眠活動」時の機能の1種として取り扱っている。
以上、記憶を作成、アクセス、整理する手法を説明した。
【0011】
次に、本発明の人工知能が持つ「感情」の説明に入る。その様子を
図3に示す。感情は仮想的に設置した複数の値によって定義される。この値を情動値と呼ぶ。
図3ではわかりやすさを優先して、例として喜怒哀楽食寝の6種類の値があるとしている。理想としては感情というよりも、多くの神経伝達物質の様子を仮想的に示すものであると良い。各情動値には、安定値と過剰値を設定する。情動値は、後述するが欲求が満たされた際や、何かに期待をする際、あるいは時間の経過(生活の循環を管理するタイマー)に合わせて変動する。更に時間の経過による情動値を除き、数値は時間の経過と共に安定値に落ち着いていく。
更に、過剰値の範囲に入った情動値は、それを受容する受容体(感情受容体)に送る。こうすることで記憶アクセスのレベルで「自分が今、このような特別な情動値を保持している。」ことを伝達できるようにしておく(このように、受容体は外の環境を受け取るための5感などだけではなく、「自身の内部の状態」を受け取るものも必要である。受容体の構造は前述したものと同じで良い)。
【0012】
次に、欲求の基本構造を説明する。ここでいう欲求とは、「何らかの状態に至りたい」と考えた際に、「その状態に至るために、こういったことをしたい・するべき」と考えるものであるとする。構造を
図4に示す。
まず
図4にてdesireと書いたが、「ここからの接続関係は欲求である」ことを示すためのニューロンを特別に作成する(前述のWMや受容体による記憶作成の影響を受けないニューロンの1つ)。これを欲求ニューロンと呼ぶ。WMの記憶アクセスによってこの欲求ニューロンへのアクセスが起こった際に、欲求が発生するものとする。欲求ニューロンは、最終的に期待する結果である状態(ニューロンの集合)と、その結果に至るための活動(の流れを示すニューロン接続)によって構成される。欲求が発生した際に、人工知能は欲求ニューロンの先にある結果に期待して、情動値を変更させる。次に、活動側のニューロン接続を順番に読み取って、その活動を実行していく。最終的に、期待する結果であるニューロンにWMによる記憶アクセスが起これば、欲求が成功したとみなし、情動値を変更する。本発明人工知能の基本的な意思決定と実活動は、この欲求に基づいて行われる。
また、WMは自身が持つ多数のニューロン群を更新し続けているため、複数の欲求ニューロンへのアクセスが同時に起こることもある。その際、持っている欲求のすべてを同時に実行することはできないので、欲求間の競合解決が必要である。競合解決のために欲求の優先度を設定する。欲求の優先度は、その欲求の実現可能性と、WM中のニューロン群がどれだけその欲求に接続されているかの2つの要素で計算する。欲求の実現可能性はこれまでに欲求がどれだけ成功しているかを示すものであり、成功する程上がり、失敗する程下がる。欲求の実現可能性は、欲求ニューロン中にデータとして保存しておく。この実現可能性が0になった欲求は実現不可能とみなして記憶中から消去する。
更に、欲求はその内部に小さい欲求を含む場合がある。欲求の階層化を実現するためにも、欲求が求める活動中に欲求ニューロンを含んでも良い構造にする。
【0013】
欲求に基づく活動について、詳細に説明する。その様子を
図5に示す。(
図5ではタイトルを無意識行動としたが、本発明では人工知能の「意識」の定義については必要とならないため言及しない。記憶上あらかじめ決められた活動の流れに沿って活動することを便宜的に無意識行動と呼んだ)。
図5の簡単な例として、のどが渇いた際に起こす期待と活動を書いた。この例に基づいて活動の詳細を述べる。欲求ニューロンが要求する最初の活動は「自販機を探す」であった。人工知能はこの「自販機」を「探す」ことを認識できなくてはならない。
図4では簡単化のために活動が1つのニューロンのみで構成されるように記述したが、実際にはこのニューロンから身体への信号、あるいは要求するデータを示すためのニューロン接続がある。例えば自販機を探すという活動では、自販機が見つからなければ、次の「ジュースを買う」という活動に移動しても意味がない。そのため、「自販機を探す」という活動が満たされたことを示すために必要なニューロン群を設定し、そのニューロン群をキーとして、「自販機を探す」ニューロンと「ジュースを買う」ニューロンの間に鍵をかける。鍵となるニューロン群がWMよる記憶アクセスに至った時点で、「自販機を探す」活動が成功したものとみなし、次の「ジュースを買う」活動へのアクセスを許可する。
実活動については、本発明の人工知能を繋ぐハードウェア(本発明には含まない)に基づいて接続する。テスト用の試作ソフトでは仮想的な身体をソフト上で作成し、可能な活動をリスト化して、そのリストから活動を選択することでソフトの仮想環境下で実活動を起こしている。
図5に示した身体感覚受容体はその身体が起こせる活動のリストに番号を付けてマッピング可能なものとしたものである。身体から送られる信号に合わせて身体感覚受容体から記憶へのアクセスが起こる。(例:複数のモータに送る信号をデータとしてリスト化。ある活動が要求された時に、その要求をモータへの信号に変換し、信号の大きさに合わせてモータを可動させる。この部分は本発明の範囲としない。)
【0014】
次に、認知構造について言及する。ただし、認知といっても人間が持つ厳密なものではなく、ここまでに説明した内容が、本発明における基本的な認知構造であると定義する。
誤解を解くために、
図6に、本発明における概念の定義を載せた。前述の欲求の例ではわかりやすさのためニューロンに対して「自販機」や「ジュース」などと名付けていたが、本発明の人工知能では、このようにネットワークにおけるノード(ニューロン)自体に名前を付けることはしない(完成する連想記憶の構造は、マルチモジュールニューラルネットワーク構造を踏襲したものになると言える)。本発明では、そういった概念は受容体との接続関係によって表現する。
図6に記憶される概念の例を示す。例として紅茶をあげるが、この紅茶はその見た目・匂い・味などによってイメージが記憶される。更に、「そういったものが、紅茶である」と名付ける必要がある。名付けの手法の1つとして「記号受容体」を設置する。記号受容体が定義する「紅茶」を示す文字から紅茶概念となるニューロンに接続するものである。これはPC上の文字(文字コード)を認識するための受容体となる。もう1つの例として、名付けに必要な文字そのものの視覚情報と、音イメージを接続する方法がある。
この接続を双方向化することで、概念のアクセスから5感などに基づく情報にアクセスしたり、逆に受容体上の5感などに基づく情報から概念を繋いでその概念を示す情報にアクセスしたりすることができる(知識の構造が連想化される)。
【0015】
ここまでの説明を整理するために、記憶の循環構造を
図7に示した。
▲1▼環境から受容体群が情報を受け取る。
▲2▼受容した結果に合わせてWMによる記憶アクセスが起こる。
あるいは、新しいニューロンやシナプスを生成する。
▲3▼WMはネットワーク構造に合わせて時間ごとにWMを更新する。
▲4▼WMが欲求ニューロンにアクセスした際に、欲求が発生する。
欲求が期待する結果に合わせて、情動値が変化する。
欲求が求める行動に合わせて身体に信号が送られ、実活動が起こる。
▲5▼活動によって環境が変化し、その結果を受容体群が受容する。
【0016】
図7中で、特に欲求が求める活動や期待する結果はその通りにならず「失敗」する可能性がある。また、人工知能が学習をするためには、他者(自分以外の人工知能)とのコミュニケーションが必要となる。コミュニケーションにおいては、人工知能が環境中で生命活動を起こす必要がある。
以降は、それらを実現するための手法を順次説明する。
【0017】
まず、本発明の人工知能が生命活動を起こすための自身のエネルギー循環構造について、
図8を通して説明する。
図3の説明で前述した情動値の例で、一定時間ごとに値が溜まる「食・寝」があった。この食・寝とは、過剰値に至った際に、空腹になったり、睡眠を取りたくなったことを示すものとなる。例として、過剰値に達したことが受容体に送られると、そこから欲求ニューロンへのアクセスが起こる。
図8の構造を取ることで、人工知能は空腹になった時に食べ物を探して食べたり、眠りたくなった時にベッドに移動して眠りについたりすることができる。人工知能は、食べ物を摂取した際にエネルギーを供給できるようにしてある(試作した仮想環境が持つ食べ物をそのように設定した。これを現実環境で再現する場合、摂取した食物から仮想的なエネルギー(カロリー値など)を算出し、排出するハード上の構造が必要となるが、本発明では言及しない)。人工知能が欲求に基づく活動を起こす際に、エネルギーを消費し、エネルギーに基づいて活動効率を低下させるようにした。エネルギーが供給できず、0になった時点でその人工知能は死亡する。
この構造は人工知能に仮想的にでも生命活動を要求することで、コミュニケーションを取る必要性や欲求や情動を起こす必要性を築いたものである。
【0018】
次に、メタ認知の構造を
図9もふまえて説明する。認知活動と同様に、メタ認知も人間が持つ厳密なものを追及したものではなく、本発明の人工知能が持つ認知活動(前述で定義した範囲のもの)を観察・制御する目的を持った機能と定義する。
まず、欲求が求める活動で失敗したり、期待する結果を得られなかったりした場合に、どうすれば失敗しないかを考えるための活動が起こる。つまり、
図7に記した記憶の循環構造を上から監視して、失敗した場合に特定のニューロンにアクセス可能な構造にする。具体的には、自身の認知活動を環境と扱って受容するメタ認知受容体(と呼ぶ)を設置すうる。次にマッピングされる値のうちの「欲求の失敗」が発生することで、その値から繋がるニューロンへのアクセスが起こる。
欲求中で失敗が起きた際には、例えばその失敗した内容に関して質問する欲求を発生させる。あるいは、失敗を修正するための試行錯誤や問題解決を行う場合の手法も欲求で表現する。これによってメタ認知受容体中の「欲求の失敗」が、問題解決手法そのものにも適用されるものとなり、自身の認知活動を階層化することができる(例:この欲求の失敗という問題を解決するために、この問題解決手法を適用したが、この問題解決手法ではダメだったので、なぜだめなのかを質問した)。
ここまでの機能では、人工知能は活動を通して失敗を経験した後でなければ、自身の活動を修正することができない。人工知能が、あらかじめ成功しないであろう欲求・活動を知った上で、メタ認知の機能がその欲求・活動を事前に止めることができるとよりよい。そのためには、人工知能は他者(他の人工知能)の失敗経験や自身のこれまでの失敗経験からあらかじめ欲求の実行を停止させる機能を持つ。具体的には、メタ認知受容体中の1要素として、「欲求の失敗経験」を定義する。「欲求の失敗経験」ニューロンは、欲求が失敗する原因となるニューロン(欲求失敗時に接続)と、失敗経験のある欲求ニューロン(他者含む)から接続される。これによって失敗経験のある欲求ニューロンや失敗の危険性を生みだす可能性のあるニューロンがWM中に存在する場合には、メタ認知受容体中の「欲求の失敗経験」が次点でアクセスされることになる。更に「欲求の失敗経験」ニューロンの先にその際に行うべき活動(欲求)を繋げることで、例えば「この道を通って目的地にいことしたが、以前他の人工知能がその道を通ってケガをしていたので、やめておく」といった活動を実現することができる。
【0019】
「他者の失敗経験」を知るためには、人工知能が他者を認識できる必要がある。その様子を
図10に示す。他者を認識するために仮想他者受容体群を設置する。記憶中の他者概念から仮想他者受容体群に接続する(他者概念ニューロンは同種の人工知能が発する特徴と他者概念ニューロンを接続するなど、あらかじめ記憶構造として作られている必要がある)。仮想他者受容体群は複数の受容体によって構成されている。まず、仮想他者受容体群は自分が環境を得るために持つ受容体をコピーした他者感覚受容体(視覚・聴覚など複数の受容体)を持つ。他者を観察した際に、他者が認識しているであろう5感をこの受容体が受容する。また前述した身体感覚受容体も他者感覚受容体の1つとし、他者が行っている欲求に基づく活動(後述のコミュニケーション含む)を受容する。
他者感覚受容体は、視覚であれば視覚といったように、自分が持っている受容体と同様のニューロンにアクセスできるようにしておく。身体感覚受容体は、その要素が持つ活動からその活動が使われている欲求ニューロンに接続しておく。これによって、他者感覚受容体が受容した5感情報を仮想的に記憶が体験し、他者が行っている活動を見て、自身が持つ欲求と比較するための土台が整う。ただし、このままではWM中で自分が持つ受容体からアクセスされたニューロン群と仮想他者受容体群からアクセスされたニューロン群の区別がつかないため比較に至らない。そこで、仮想他者受容体群からアクセスされたニューロン群を保持する仮想他者WMを新しく作りそちらに保存する。仮想他者WMも前述のWMと同様の更新機能を持つ。これによって「欲求の失敗経験」が要求する情報である、欲求が失敗する原因となるニューロン群と失敗経験のある欲求ニューロンを、他者の活動の様子や5感の仮想的な再現によって自身の記憶の中に(仮想他者受容体群が再現できる範囲で)コピーすることができる。
【0020】
ここまでの構造を応用することで複数の人工知能間(あるいは人間と人工知能間)のコミュニケーションが取れるようになる。本発明の人工知能が持つ構造が、発話(ボディランゲージや表情を含む)をする際に、以下の目的を持たせることができる。
i.質問:前述の通り、欲求の失敗や不備があった場合に起こるよう設計する。
またあるニューロンに関して入力側のシナプスが少ない場合には、
概念に不備があるとみなし、質問する。
(例:わからないことがあったので質問したら、望んだ答えが返ってきた。
その答えに合わせて、新しい問題解決手法を獲得した。)
ii.表現:自分の欲求や、情動値、知識を表現する。
(食の情動値が過剰である。
「おなかがすいた」と主張することで、誰かが自分に食べ物を与えてくれる。
ある泣き方(表情)をすることで、誰かが自分に食べ物を与えてくれる。)
iii.世間話:自身が過去に経験した情動値を過剰にするニュースを伝える。
自身や他者の失敗や成功経験を伝達する。
発話も欲求による活動の1つとして取り扱う。
図11をふまえて、具体的なコミュニケーションの構造を説明する。特に、その質問や表現を受け取る側はその内容が意図する目的を解釈できなければならない。その解釈は前述した仮想他者受容体によって表現する。
図11を例にすると、まず人工知能Aが欲求中の活動を失敗したので、失敗しない方法を質問したいと考え、質問する。人工知能Bは人工知能Aの発話を含む様子を観察して仮想他者受容体で受容し、仮想他者WMで再現し、自身のメモリと対比する。カジュアルに言えば「このような質問をするのは、自分ならこのことを聞きたい時だろうな」と記憶アクセスレベルで認識し、質問に回答する活動を起こす欲求ニューロンを呼び出し、質問に回答する。人工知能Aは人工知能Bの「こうすればいいよ
という回答を受けて、同様に仮想他者受容体でその内容を解釈し、自身の質問するための欲求ニューロンが求める期待する状態と合致すればコミュニケーションが成立したとみなし、その内容に基づいて自身の欲求を修正する。