社会・制度一般「人工社会を作ろう」

今回の講義紹介では、総合科目C社会制度一般「人工社会を自分で作ろう」を紹介する。この授業は毎年夏学期に開講されている授業で、1教室に収まりきらず、2教室に分けて授業が行われたことがあるほどの人気授業である。担当する教員・山影進教授にお話を伺った。


講義の概要

山影先生

――社会制度一般の「人工社会を自分で作ろう」という授業は、具体的にはどのような授業なのでしょうか?

総合科目の一般科目では、本郷の後期課程の学部の先生が駒場の1・2年生向けに、特に社会科学系の先生がやれば社会制度一般という名前で、授業を開いています。

僕は駒場の人間だから、一般科目でなくとも、初めから1・2年生の授業も担当しているわけだけれど、駒場の授業に人工社会を教えるような科目がなかったので、この「人工社会を自分で作ろう」の授業を開こうと思いました。

また、人工社会の新しい技術を初心者でも使える技術にしてきたからということもあります。もともと人工社会は、研究や大学院のレベルで扱っていた新しい社会科学の手法の1つだったのですが、数年前から教養学部の後期課程の授業で扱うようになって、だんだん1・2年生の方に下ろして扱うことが出来るようになったと考えています。

後期課程から前期課程に授業を下ろすという意味で、僕自身は3つの人格を持っていると言えます。つまり、駒場で教える人というのは、1・2年生を教える立場、3・4年生を教える立場、院生を教える立場にあります。院生や3・4年生を教える立場から見て、1・2年生に教えて人工社会を自分で作ってもらうのも良いだろうなと思って、2007年夏学期から人工社会の授業を始めたのですが、どうしてそのような授業が可能になったかというと、マルチエージェントシミュレーションやプログラミングについて何も知らない人でもマルチエージェントを作ることが出来るソフトウェアと教科書を作ったからです。これがあれば1年生でも全然問題ないかなと思って授業を始めました。

マルチエージェントシミュレーションは、多数のエージェントと言われているコンピュータプログラムがお互いに自律的に動いてくれる――つまり、モデルを作っている人がこうしなさい、ああしなさいとその都度命令しなくても、プログラムが勝手に相互作用していくもので、それをコンピュータの中で実行させると、いろいろな現象が起きます。そういうテクニックを1学期間かけて学ぶのが授業の内容になります。

人工社会を学ぶ意義

山影先生

――マルチエージェントシミュレーションというものを学ぶことの意義はどのようなものなんでしょうか?

マルチエージェントシミュレーションを学ぶ意義は勉強する人の目的によって随分と変わってくると思います。僕は社会科学をやっているから、社会をコンピュータの中で再現しようというつもりでマルチエージェントシミュレーションを研究しているのですが、この技術自体は人工社会に限ったものではありません。例えばエージェントが遺伝的アルゴリズムだと思えば、そのタイプの研究にも使えるので、人工生命でも似たようなテクニックが用いられ始めています。この技術自体は、要するにコンピュータのプログラムだから、扱う人によってどうとでも使えるので、マルチエージェントシミュレーションを学ぶ意義は、授業を取った学生さんに聞いてみないことには分からないということです。

僕自身がなんでマルチエージェントシミュレーションに取り組んでいるのかというと、社会科学で得られた理論を実際にシミュレーションするためです。

社会科学には研究のアプローチが2つあって、1つは頭の中で社会とはどういうものだろうかと、理論を一所懸命に考えるもので、もう1つは実際の社会を観察して、どうなっているのだろうかと考えるものです。そうして、非常に抽象的な理論が出来るのですが、そのモデルが正しいか検証するには、結局頭の中で考えるしかなかったんです。

我々が見ている社会現象がどうして起こっているのかといことは、あくまで見ている我々が推論したものに過ぎませんし、実際にこの条件下ではどういう現象が観察されるかということを現実の人間社会で実験するわけにはいきません。たとえば、自分が生きるために人を傷つけるような「万人の万人に対する狼」を現実の人間社会で実験するわけにはいかないですからね。

けれど、マルチエージェントシミュレーションを使うと、学者が考えた理論がどれだけ正しいのかということをチェックできるんです。シミュレーションの中で戦争を起こしたって誰も死ぬことはありませんからね。マルチエージェントシミュレーションはこの意味で、社会科学の新しいアプローチであると思います。

マルチエージェントシミュレーションで分かること

山影先生

――実際の社会はなかなか複雑なものですが、マルチエージェントシミュレーションでは、どの程度の精度でシミュレーションできるのでしょうか?

マルチエージェントシミュレーションは、本当の社会に近ければ近いほど良いというわけでは必ずしもなくて、我々が知りたい社会の特定の側面を取りだしてきて、それでモデルを作ります。

たとえば、2人の人がいるとして、「片方が男、もう片方が女」「どちらもが眼鏡を掛けている」ということが分かっていたとしても、ジャンケンをした時にどういう結果が得られるかを考える際には、それらの情報はあまり重要じゃないでしょう? 男女の恋愛関係を考える際には、「片方が男、もう片方が女」ということは重要な要素になるわけだけれど。

つまり、社会はいろいろな人間関係によって構成されているわけだけれど、それをトータルに見ようということは、完全に無意味とは言わないけれど、社会を理解することの助けにならないわけです。そういう意味で、社会からある特徴に注目してそれを取りだして、その中でシミュレーションしていくことが大切なわけです。

講義の上での工夫

――この「人工社会を作ろう」という授業をする際に先生が心がけていることは何でしょうか?

授業そのものはエージェントを動かすルールをパソコンに打ち込む――そういう意味ではただプログラムを書いているように見えるので、それ自体はつまらない作業なんだけれども、手法や技術というものは、教科書を読んだだけで分かるものではありません。

例えば、バイオリンを上手に演奏できるようになろうという時に、バイオリンの教則本を読んだだけで上達することは絶対にありません。

ある技法を身に付けるには、必ず肉体的な操作があって、それは退屈で、なんでこんなことやっているんだろうと思ってしまうものなんだけれど、それがないと面白い結果に結び付きません。

社会制度一般の授業は普通の講義ということになっているんだけれども、「人工社会を作ろう」の授業では実際には実習みたいなことをやっています。エージェントを動かすための技術を身に付けるためにプログラムを書いてもらっています。

プログラムを書く作業自体は、それがどう動くか分かるまで退屈なものに過ぎないので、どういう面白い結果を出すために、その作業をしているのかがすぐ分かるように、授業を進めるよう心掛けています。割と短めの簡単なルールを書いてもらって、すぐ動かしてもらうことで、短い単位で上達してもらっています。こうして、飽きないうちに自分のやった成果が見えるようにすることで、ああ面白いことをやっているんだな、と思ってプログラムを書くことができるようにしているつもりです。

学生に求めること

山影先生

――教養学部前期課程で学んでいる学生に対して求めることはありますか?

駒場に来る学生は、高校までは正しい知識というものがあって、それを一所懸命に覚えるとか、あるいはある問題に対してこういう答えを出すのが良いんだっていうということになっていて、それを熱心に勉強してきたと思います。しかし、大学からは基本的に逆で、答えのまだ出ていない問題を自分で見付けて、自分で答えを出すっていうところがあるから、答えを覚えるんじゃなくて、自分の頭で答えのない問題の答えを出すという考え方や態度を身に付けなければなりません。

「人工社会を自分で作ろう」の授業では、自分が分析してみたい社会現象をモデルに移すオリジナルな作業に、1学期の最後の4分の1くらいの間取り組んでもらいます。そのオリジナル作業を授業の最終目標としているので、自分で問題を設定して答えを探すという大学での学び方を知ってもらいたいですね。

取材後記

自分で物事の仕組みを考えてみて、それをプログラムに起こして、自分の考えが正しいか検証してみる。この作業は、決まった答えがないために難しく感じられる一方、やり遂げると言いようのない達成感が得られるのではないかと感じられた。

このページにコメントを送る
このページへの評価:
いい!よくない!
掲載日:09-09-10
担当:大野雅博
*