2008年9月12日 (金)

学習アルゴリズムの勝負

先日までのシミュレーションで、集団間学習の割合が多いほど、また学習速度は遅いほど協力が維持されやすいことが判明しました。では、他の集団の戦略をよく真似するプレーヤーや、学習の速度が遅いプレーヤーはそうではないプレーヤーより得なのでしょうか。この問題を考えるために、学習アルゴリズムの異なるプレーヤー同士の累積利得を比較してみることにしました。

具体的には例えば集団間学習を行う割合が0.9のプレーヤーと0.1のプレーヤーを50人ずつまぜて5000回プレーを行い、この間の累積利得の比較を行いました。ただし、累積利得を単純に足すとオーバーフローするのでそれまでの累積利得を毎期1%ずつ割り引いて、新しい利得を足す方法をとっています。

その結果、上の例では試行の度に0.9のプレーヤーが勝ったり負けたりして挙動が安定しないことがわかりました。そこで、試行の回数を増やして5000回の試行を30試行ずつ行って平均をとったところ、0.9の方が0.1よりわずかながらしかし有意に損という結果が得られました。つまり、他の集団のメンバー真似をしやすいプレーヤーの方が自分の集団のメンバーを真似しやすいプレーヤーよりもわずかながら損だということになります。

集合間学習の割合を0.9対0.3や0.9対0.5に変えてみても、あるいは人数比を50人50人以外に90人10人にしてみても傾向は同じで、集団間学習をあまりしないプレーヤーの方が累積利得で有利になるようです。

学習速度についても同じように調べてみましたが、この場合も学習速度が遅いプレーヤーは学習速度が速いプレーヤーより一貫して損だという結果になりました。

要は協力を維持するのに有利な学習アルゴリズムは、そうでないアルゴリズムに比べて損だという結果になったわけで、協力の維持という観点からは芳しい結果ではありません。学習には情報収集などのコストがかかると仮定すると、学習速度が遅い方もそれなりに有利になりますが、集合間学習は多分一層不利になりますので、そういう仮定から協力の維持を導くことことも難しそうです。他に何か仕掛けを考える必要がありそうですね。

| | コメント (1) | トラックバック (0)

2008年9月 4日 (木)

流入、流出の分析

学習確率の違いがサンクションの維持に思いのほか影響するらしいことがわかりましたので、そのメカニズムを少し調べてみました。

今回のモデルでは集団の中でSCがNCよりも大勢いると協力が維持されて高い利得が獲得できる一方で、SCがNCよりも少ないとサンクションが不十分なため協力が維持されず、したがって利得が低いことが仮定されています(ただし、集団の中ではNCがSCよりサンクションコストを負担しない分だけ常に得)。

そこで     

  SCの人数≧NCの人数の集団を「C状態の集団」
  SCの人数<NCの人数の集団を「D状態の集団」

と呼ぶことにして、「C状態の集団」が「D状態の集団」に学習や移住によって変わる確率と、「D状態の集団」が「C状態の集団」に変わる確率を求めてみました。前者をC状態からの流出率、後者をC状態への流入率と呼ぶことにすると、流入が流出より多い時にはC状態(協力が維持されている状態)が維持されやすいし、流入が流出より少ないときはC状態が維持されにくいと考えられます。

まず、学習確率を0.01に固定して集団間学習の割合を0.9~0.1まで変えて流入、流出率の変化をみると次のようになりました。

Photo 左のグラフのように集団間学習が減ると流出率がやや増える一方で、流入率が大きく減っています。C状態からD状態に変わるにはサンクションをかけていた人が集団内のサンクションをかけてない人をみて真似するとよいので、これは集団間学習の割合が減って集団内学習が増えると起こりやすくなります。

一方、D状態の集団がC状態に変わるには、サンクションをやめたために協力が維持されなくなった集団のNCが他のサンクションがまだ維持されている集団のSCをみてそれをまねする必要がありますので、集団間学習が減るとその分C状態には戻りにくくなります。このグラフでは流出と流入が逆転するのは集団間学習が0.5付近ですので、これを境にC状態が維持されにくくなったと解釈できます。

次に、集団間学習の割合を0.7に固定して学習確率を0.005~0.1まで変えてみたところ次のようになりました。

Photo_2 今度は学習確率があがっても流入率はあまり変わらないのに対し、流出率が大きく増えるという結果になっています。学習確率が上がるとSCがサンクションをかけないNCをみてNCになる確率が増すのでC状態からD状態への流出率が上がるのは理解できます。

同じ理屈でD状態からC状態に戻る流入率も上がりそうなものですが、こちらはそうでもありません。これはおそらく次のようなメカニズムになっているようです。つまり、D状態からC状態に戻れるのはD状態の中でもSCの割合が比較的NCの割合に近い場合に限られます。学習確率が増すとこのケースからC状態に戻る確率が増しますが、集団内学習のスピードも速くなるためSCの割合が0に落ち込んでいく確率も増すことになります。この両方の効果がおそらく打ち消しあうために、D状態からC状態に戻る確率はほとんど変化しないのだと考えられます。

そんなわけで、このケースでは学習確率が0.05を上回ると流出が流入を上回るためにサンクションの効いたC状態は維持されにくくなっているのでしょう。

これはこれで納得のできる結果ですが、その一方このモデルは学習というものがあまり速く進むと協力は維持されにくくなることを示しています。インターネットの発達が進み情報の伝達が速くなるというのは結構なことではありますが、結構なことばかりではない可能性も考えられますね。

| | コメント (0) | トラックバック (0)

2008年9月 3日 (水)

学習確率と集団間学習の影響

学会をはさんでシミュレーションの方もぼちぼち進めています。

集団間学習の割合(模倣学習の対象者のうち、他集団のプレーヤーが占める割合)を0.9~0.1まで、学習確率(1ターンごとに学習による戦略変更手続きを行う確率。結果として戦略を変えない場合もある)を0.005~0.1まで系統的に変えてシミュレーションを行ってみました。初期条件がSC(サンクション協力)80人、NC(非サンクション協力)20人を10グループに均等に配置し、ランダム変化はなしで1ターンごとに0.01の確率で集団間移動が生じる条件で5000ターン走らせたあとのSCの割合を求めています(10セット走らせた平均値)。その結果は次のようになりました。

   0.9 0.7 0.5 0.3 0.1
0.005 59% 56% 52% 40% 27%
0.01 50% 45% 24% 8% 4%
0.05 37% 0% 0% 0% 0%
0.1 19% 0% 0% 0% 0%

Photo このように、集団間学習や学習確率が増えると、5000ターン後のSCのシェアは減少して、サンクションは持続できなくなるという結果になりました。

このうち、集団間学習の効果の方は予想通りで、もともと集団内ではサンクションを与えない戦略が常に得になるセッティングですから、集団間学習が減って同じ集団のプレーヤーを模倣相手に選ぶようになればサンクションを与えないNCが増えてSCが減るのは当然と言えます(どの程度減るかはやってみないとわかりませんが)。

予想外だったのは学習確率の効果で、これは絶対値が問題というよりはランダムなmutationとの相対的な比率が重要だと思ってました(ランダムmutationは集団間のSC率にばらつきをもたらすとともに、常にSC率を0.5に向けて引っ張る作用を持つのに対し、学習確率は利得に依存した変化のスピードに影響するので、相対的に学習確率があがると利得に依存した安定状態が実現しやすくなる)。このシミュレーションではmutation確率は0に設定してあるので、mutation確率との相対的な比率は学習確率を変えても変化はなく、それゆえSC率とも関連がないだろうと思ってました。

ところがあにはからんや、学習確率があがると急速にSC率は減少してしまい、集団間学習が0.9(9割は集団外の相手を模倣する)でも、学習確率が0.1だとSCは2割弱しか存続できないし、集団間学習がそれ以下になるとほぼ0になってしまうという結果が得られました。これは予想外ですし、人々がよく学ぶほど協力の存続には不利だという、ちょっと困った結果となりますので、なぜこういうことになるのか原因を探ってみる必要がありそうです。

| | コメント (0) | トラックバック (0)

2008年8月28日 (木)

無限に広がるパラメーター空間

ようやくシミュレーションの動作が安定してきたので、パラメーター空間をダラダラと探索しています。もっとスピードの速い機械ならシャキシャキ航行できるんでしょうけど。

今は1つのパラメーターごとに5000回の試行を10セット行って、SC(サンクション付協力戦略)の平均シェアを求めています。

午前中に調べたのは、集団内模倣の割合が0.1、0.3、0.5、0.7、0.9の場合について、ミューテーション率を0%、0.05%、0.1%、集団間移住率を1%、5%、10%、50%に変えた場合です。

とりあえず分かったのは集団間移住率はほとんどSC率に影響しないことと、ミューテーション率が大きな押し上げ効果を持つことで、どうやらミューテーション率は分散供給というより単にSC率を50%に回帰させる効果でSC率をあげているようです。

集団内模倣率については、ミューテーション率が0(一番SC率が低いとき)の場合の平均で

 集団内率 SC率
  0.1   55%
  0.3   42%
  0.5   20%
  0.7    8%
  0.9    3%

となってますので、集団内模倣が増えるにつれてほぼ一直線にサンクションが維持されなくなっていくことが分かりますね。

| | コメント (0) | トラックバック (0)

半分は苦しい

論理バクは()を一つつけると解消しました。これで集団の内外で参照確率が違う場合についてしらべることができます。

とりあえず参照相手の半分を集団内、半分を集団外から選ぶ場合をやってみました。ミューテーション率が0のときは移住確率にかかわらずSC(サンクション+協力)の割合が20%〜30%ぐらいで、かなりサンクションが維持されにくいようです。

ミューテーション率を0.1%にあげるとSCの率は45%程度になるのですが、単なるミューテーション圧なのか、分散供給の影響なのかにわかには分からないですねえ。

明日もう少し組織的にやってみます。

| | コメント (0) | トラックバック (0)

2008年8月27日 (水)

ろんりばぐがあらわれた

昨日のシミュレーションに集団内学習と集団間学習のレートを変えることができるルーチンを加えてみたのですが‥

内外の学習レートを同じにして昨日と等価な条件でシミュレーションしても、結果が全然違うんですよね。どこかに論理バクがあるはずなのですが分からない‥

| | コメント (0) | トラックバック (0)

2008年8月26日 (火)

単純模倣モデルだとうまくいく

昨日から今日にかけて、遺伝モデルから学習モデルへの再移植作業を進めています。

SCとNCのみを仮定する簡略版集団選択モデルでも、学習ダイナミクスではSCが生き残らなかったため遺伝ダイナミクスに一旦戻したのが先週ぐらいの状況でした。それで、遺伝ダイナミクスではSCが生き残ることが確認できたので、今週は再び学習ダイナミクスに戻す作業を行っています。

昨日は単純模倣ダイナミクスについて、微分方程式を書き下してみて、戦略の変更確率が利得差に比例する場合には、模倣ダイナミクスの方程式が遺伝ダイナミクスの方程式と一致することを確認することができました。これはランダムマッチングモデルでは一般に成り立つのですが集団選択モデルで成り立つことは未確認だった性質です。

そんな訳で、単純模倣ダイナミクスではSCが生き残ることが予想されましたので今日は実際にシミュレーションを行ってみることにしました。単純模倣モデルというのは、戦略の模倣相手の候補を自分と同じ集団からも、違う集団からも同じ確率で選ぶモデルのことで、これに戦略の変更確率が利得差に比例するという仮定を加えてシミュレーションを行ったところ、予想通りSCが生き残ることが確認できました。

面白いことにこの条件では、突然変異の確率が0であっても各期に1%ほどの確率で集団間移動が起こればSCが生き残りました。突然変異率が0でよいということは今回の生き残りが単に突然変異圧の効果ではないことを意味しています。こちらがなくても移住による分散供給で十分らしいことは一つの知見と言えるでしょう。

特殊な条件ではありますが、とりあえず学習モデルでもSCが生き残る場合があることが分かりましたので、次はどこまでこの条件を緩められるかを調べることが課題となります。特に、集団外より集団内の人を模倣相手として参照しやすい場合にどうなるかが興味が持たれる所ですね。

| | コメント (0) | トラックバック (0)

2008年8月19日 (火)

遺伝型モデルに模様がえ

今年の春は報告書用に3戦略の学習型集団選択シミュレーションをずいぶんやったのですが、なかなかSCが生き残る条件が見つかりませんでした。2戦略の簡略版で条件を探ってみても同じことで、どうも学習だとダイナミクスが早く進みすぎてSCの分散がはやく失われすぎるようなんですよね。

「人間行動に潜むジレンマ」で示したように、遺伝型の集団選択モデルは利得ベースでうまくいくことは確認ずみだったので、学習モデルに進んだのですがうまく行かないので、とりあえず半歩戻って学習型ダイナミクスモデルを遺伝型ダイナミクスモデルに衣がえしたのがこの2、3日の動きだったという訳です。

うまく遺伝型のダイナミクスシミュレーションが動き始めたので、これからなぜ遺伝型だとSCが生き残るに、学習だと生き残りにくいのかを調べる予定です。

| | コメント (0) | トラックバック (0)

簡略型集団選択シミュレーション

いまやってるのは2戦略の簡略型集団選択シミュレーションです。本当はサンクション協力(SC)、非サンクション協力(NC)、非サンクション非協力(ND)の3戦略でやるべきなのですが、SCとNCの2戦略の簡略版でシミュレーションをやっています。

利得も、集団中でSCが過半数を占めているときは、SCが9でNCが10、SCの数がNCより少ないときはSCが4でNCが5という省略型を使っています。それでも、集団内ではNCがSCより常に得だが、集団間ではSCの多い集団が得になりうるという構造を備えています。

(さらにサンクションの存在で、利得がステップワイズ化されている)

差し当たりはこの簡略版で、SCが存続する条件を探る予定です。

| | コメント (0) | トラックバック (0)

デバッグ成功

配列を初期化する範囲を広げたら、うまく動くようになりました。

最初から設計して作ればそういう問題は起きないんでしょうけど、前に作ったものを模様がえして別なシミュレーションにすると、予想外のことが起きちゃうんですよね。

| | コメント (0) | トラックバック (0)

より以前の記事一覧