本稿は、エージェント指向とニューラルネットワークの連携に関する記事です。
(図は細かいので、クリック拡大してご覧下さい。)
(図は細かいので、クリック拡大してご覧下さい。)
Agent-Basedモデリングの有名な例のひとつにWolf-Sheep Predatorがあります。ここではNetLogoによるモデリングを扱います。これによって、下記のような動作をする3者の個体数がどのように推移するかを観測できます。
- 地面(茶色)には、所々にgrass(草、緑色)が生えている。
- grassは、sheep(羊、白色)に食べられるが、一定時間後には再生する。
- sheepはgrassを食べてエネルギーを得る。
- wolf(狼、黒色)はsheepを食べてエネルギーを得る。
- sheepとwolfは、動くたびに一定のエネルギーを消費する。
- sheepとwolfは、エネルギーがゼロになると死滅する。
- sheepとwolfは、一定の確率で子を産む。
従来のモデルでは、多数のwolfとsheepがそれぞれランダムに(緩やかにある方向へ)移動していました。しかし、下記の論文[1]には、wolfとsheepに頭脳(Neural Network)を持たせて、周りの状況に応じた適切な方向へ移動させる改良がなされています。Neural Network自体は、Wolf-Sheep Predatorとは独立した別モデルとして作られています。両者を連携させるために、NetLogo6以降で導入されたLevelSpaceという拡張機能[2]を使っています。
各個体のNeural Networkは、Fig.1に示すように、9ノードからなる入力層、9ノードからなる中間層、3ノードからなる出力層で構成されます。この論文と共に、NetLogoのソースプログラムも公開されているのです。しかし、コメントがなく、ラムダ式をふんだんに使っており、ちょっと難解でした。本稿では、当方でそれを解読した結果に基づいて述べます。
もう少し詳しくみてみましょう。Fig.2はあるsheep(sheep #3)のある時点での頭脳を示しています。入力層で"1"となってノードは(横に赤字項目がある)、周囲からそこへ刺激があったことを意味します。すなわち、以下の3項目です。
- 左方向(一定範囲のcone vision内)にgrassを見た。
- 右方向(一定範囲のcone vision内)にgrassを見た。
- 正面方向(一定範囲のcone vision内)にwolfを見た。
最終段の出力層は、softmaxによる出力です。「左へ向かう」、「直進する」、「右へ向かう」のうち、最も強い「右へ向かう go right」という判断がなされました。このsheepにとっては、左右方向に草があり、正面方向にwolfを見たのですから、これは確かに、妥当な判断と言えます。
ここまでは、少ない個体数で想定しましたが、次に、sheepが100匹、wolfが50匹という少し大きな世界をモデリングします。この場合は、150個の独立したニューラルネットワークが同時に動きます。(途中で生死により増減します。)それらすべてを表示するのは現実的はありませんので、Neural Networkの表示を消してシミュレーションを実行しました。その様子をFig.3に示します。図の中のグラフから分かるように、この世界では、周期的に変化はしますが、wolf、sheep、grassの個体数のバランスが長期的に保たれているように見えます。
(注1)基本的には、Fig.2の例のように、出力層のsoftmax値の最大値が移動方向を決めるが、ある確率でそれを揺らしている。すなわち、いつもそのとおりの方向へ移動するとは限らない。(例えば、あるwolfが、右方向にsheepを見てそちらへ向かっても、次の時刻には、sheepはwolfの移動方向と離れてしまうかも知れないですから。)
(注2)ニューラルネットワークの辺の重みは、別途、誤差逆伝播によって学習されるはずです。このモデリングでは、学習済みになった重みを使います。また、wolfとsheepが産んだ子供には、親のニューラルネットワークが引き継がれますが、その後に、僅かな変異(辺の重みの修正)を起こせるように設計されています。
(注2)ニューラルネットワークの辺の重みは、別途、誤差逆伝播によって学習されるはずです。このモデリングでは、学習済みになった重みを使います。また、wolfとsheepが産んだ子供には、親のニューラルネットワークが引き継がれますが、その後に、僅かな変異(辺の重みの修正)を起こせるように設計されています。
参考資料
[1] Bryan Head, Arthur Hjorth, Corey Brady, and Uri Wilensky, "EVOLVING AGENT COGNITION WITH NETLOGO LEVELSPACE", Proceedings of the 2015 Winter Simulation Conference, pp.3122 - 3123.
[2] Extensions LevelSpace, https://ccl.northwestern.edu/netlogo/docs/
0 件のコメント:
コメントを投稿