gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

中枢が生成されるネットワーク

2012-02-15 14:01:57 | ブログ

 西川アサキ著「魂と体、脳」(講談社選書メチエ)を読んだ。この本の形而上学的な説明の部分は理解不能であるので、各々異なる能力をもつエージェントが複数体存在し、エージェント間で互いに相互作用を及ぼすようなシステムのシミュレーションに注目することにした。

 ここで、相互作用の基本的なルールは、「エージェントAが、エージェントBの能力を利用できるのは、エージェントBの要求をかなえる能力を、たまたまエージェントAが持っていたときに限る」とする。「能力」とは、エージェントの持つ「機能」を含む。また、エージェントが提供できる「物」も含む。このシステムは、元々各エージェントが持つ物を互いに物々交換するという経済行動を、一般に多数のエージェントから構成されるネットワークに適用できるように抽象化したものだという。

 このようなシステムのシミュレーションを行うプログラムは、(1)システムからランダムにあるエージェントAを選ぶ(2)システムから、そのエージェントが要求する能力Xを持つエージェントBを探す(3)AはBが要求する能力Yを持っているかどうか判定する(4)持っていれば「協調」成功、持っていなければ失敗、という動作を次々と選んだエージェントごとに繰り返す。要求を満足させたエージェントは、次の要求をランダムに変更して新しい能力を要求することになる。

 予想されるとおり、この状況では、ごくまれにしか「協調」は起こらない。そこで、このシミュレーション世界に、「信用」と「対話」というルールを入れてみる。

 「信用」について詳細に説明すると長くなるので、以下の議論に関連する部分を中心に手短かに要約する。各エージェントは、自分の視点からみた他のすべてのエージェントに関する信用情報をもつ。「信用」は、「AがBの能力を要求し、Bは要求された能力を持つが、AがBの要求に応えられず協調が失敗した場合、AからみたBの信用値が、ある単位分だけ上がる」という形で実装される。なお、信用値は、相対的なもので、エージェントBの信用が増加すると、エージェントAに対する信用が減少するものとする。全エージェントの信用の合計値は、常に一定に保たれる。後述する「対話」から、要求側のエージェントAがある閾値以上の信用を持つエージェントだと判断したBは、AがBの要求に応える能力を持っていなくても、一時的に「服従」し、Aの要求をBの能力で一方的にかなえる。この閾値を「従属閾値」と呼ぶことにする。そして、もしBが服従した場合、エージェントAは、「Bからの未決の要求Zがある」こと、「Bから得た能力Xを提供できる」ということの情報を記憶する。そして、Aは、Cから能力Xの要求があったとき、Bから得た能力Xを使ってCの要求に応えることができる。また、Aは、DからAの保有する能力Yを要求されたとき、DがAの要求する能力Xを備えていなくとも、代わりにDにBからの要求Zを果たしてもらうことによって、Dの要求とペアを組める。

 「対話」を非常にシンプルに実装した場合、次のようなルールとなる。例えば、Cに関する信用値が、Aからみて3、Bからみて1と数値化されているとする。対話の後、AとBは両方ともCの信用値を2にする。つまり、両方の信用値を足して平均することを「対話」としている。2体のエージェントは、1回の対話内で、このような平均化をC以外にも全てのエージェントに対して行う。ピックアップされたエージェントのペアは、このような「対話」を、協調が成功するか否かにかかわらず毎回行う。

 シミュレーションの時間の単位は、「ターン」である。協調の試みを1回行うことを1「ステップ」として、1ターンはエージェント数に等しいステップ数としている。シミュレーションは、各エージェントが集めた能力の数を計数する。つまり、集めた「能力」の個数は、そのエージェントのもつ信用度の大きさと、他のエージェントからの要求に応えられる能力の容量とを反映している。

 エージェント数50体、つまり1ターン=50ステップ、従属閾値を10とする条件の下でシミュレーションを行った結果は、次の通りである。シミュレーション開始後は、かなり長い間、すべてのエージェントの能力個数は0に近い値しか示さない。しかし、2,500ターンから2,800ターンあたりで、能力個数が突出するエージェントが現れる。これは、「あるエージェントが、圧倒的に多くの能力を集め、他がそのエージェントに従うという構造が出現した」ことを意味する。能力容量の大きいエージェントの出現は、「「中枢」エージェントの自己組織化」という出来事を意味する。また、中枢の出現と同期して、システム全体の「協調」成功回数が増えていることがわかる。

 世界に中枢ができるかどうかを決めているパラメータが、従属閾値である。エージェント50体の場合、閾値10~13ぐらいが「唯一の中枢」ができる範囲で、それより小さい場合は「複数の小さな中枢」ができる。また、それより大きい場合は、誰も服従しないので、中枢ができない。

 システム内のすべてのエージェントは平等に扱われ、次に取引するエージェントはランダムにピックアップされ、各エージェントの要求もランダムに変更されるのに、何故、中枢エージェントと他のエージェントという格差が生じるのだろうか。それは、各エージェントをランダムに扱うという操作自体に「ゆらぎ」が生じ、ゆらぎの振れが大きくなった時点で、あるエージェントが他のエージェントよりも多くの「信用」と「能力」を集め始め、それがさらに多くの能力を集めるのに有利に作用するからであろう。

 例えば、円周率(パイ)は、小数点以下に10進数字が延々と続くが、各数字がランダムに出現するものとすれば、数字0が2回連続して出現する確率は10-1×10-1=10-2、3回連続して出現する確率は10-3となる。そこで、0が連続して出現する回数の閾値を3にとると、およそ1,000個の数字列について1回の割合でそのような事象が現れることになる。しかし、閾値を10にとると、コンピュータによる円周率の計算時間内にそのような事象が現れることが期待できなくなる。

 受精卵が分裂して胎児の身体が作られるが、遺伝子の発現により多細胞の身体の一部の部位から脳が形成される。これは身体のどの部分の細胞群かによって脳になるか、それ以外の身体部位になるかが決まってしまう。このようにして、生まれたばかりの赤ちゃんには、脳という臓器ができているが、まだ神経細胞のネットワークができていないため、目も見えない状態である。人間の神経回路網は、10年以上に亘る成長期間の間に自己組織化の機能により神経細胞どうしの結合が密になり、複雑な神経ネットワークが形成されていく。それとともに、人間の脳内に視覚野、運動野、記憶野、前頭葉など、さまざまな機能モジュールが作られていく。前頭葉は、他のモジュールに対して中枢的な役割をするモジュールである。脳内の神経細胞はどれも同じであるから、脳内のどこに中枢モジュールが作られても不思議でないように見える。しかし、実際には、各機能モジュールは、脳内の決まった位置に作られるから、中枢はランダムに作られるわけではなく、神経ネットワークが効率よく働くように、脳内の位置によって中枢モジュールやその他の機能モジュールが作られる位置が決まるようである。

 インターネットは、多数のノード間がリンクで接続される分散型ネットワークである。そして、少数のノードが他の大半のノードよりもはるかに多くのリンクをもっていて、ネットワーク内のハブ、すなわち中枢として機能している。インターネットは、ランダムなネットワークではなく、少数のノードがクラスタ化されたスモールワールド・ネットワークと呼ばれるものであることが知られている。例えば、インターネット内に存在するすべてのブログのサイトは、平等に扱われるはずであるのに、人気のあるサイトには多数のアクセスが集まり、そうでないサイトにはほとんどアクセスがない。上記のシミュレーションで扱われるエージェント間の相互作用がすべて平等かつランダムに作用するのに対して、ブログサイト間に働く相互作用は、万有引力のようにいわばアクセス空間上の位置によって他のサイトを引き付けるポテンシャルをもつサイトと、引き付けられるサイトとに分かれるのだろうか。

 ここまで話が進展すると、最後は貧富の格差の問題に言及したくなる。しかし、金持ちほどますます豊かになり、貧乏人の所得はほとんど変わらないという傾向は、実際の事例でもコンピュータ・シミュレーションの結果でも、いやというほど挙げられているので、ここで追記すべきことは少ない。上記シミュレーションのエージェントとは異なり、人間は、裕福な家庭に生まれるか、貧乏な家庭に生まれるかによって経済的なアドバンテージまたはハンディが異なるので、決して平等な扱いを受けるわけではない。さらに、少数ではあるが、株などの取引で大儲けした人々が金持ち軍団に加わってくる。これらの人々は、たまたま株価などのゆらぎの振れが大きくなるタイミングをうまくとらえて利益を得ているエージェントと言えようか。