第15章 科学3 理論と説明

要約

理論体系は原理と法則から成る。原理は実験から帰納的推論で確かめられた科学法則でそこから様々な法則を演繹的推論を使って導いていく。導かれた法則はたとえ一度も実験によって観測されていなくても原理が正しければ常に正しい。理論体系を現実に存在する問題に当てはめやすくするために理論モデルを作って利用する。理論モデルは現象を説明する。具体的な例として前章で帰納的推論によって得たアクセスランキングの法則や収穫加速の法則を説明する理論モデルを作り、法則が正しい理由を見つけることを試みる。

目次

15.1 理論体系

15.1.1 原理

始めに原理ありき

「論」とは単なる説の一つに過ぎず、未だ仮説の域を出ない学問領域であり、それが実証されると「学」へ呼び名が格上げになるそうである。 それを意識すると、その理論体系を論と呼ぶか学と呼ぶかはかなり意味が違ってくるように思うが、ここでは構わず理論と呼ぶようにする。

何かについての理論とか数理とか呼ばれるものは、現実に起こるある現象に対する理屈の集まりである。 その理屈には原理や法則、理論モデルなどが含まれる。 現実に起こる現象についての法則なのだから、これは科学法則の集まりである。 まずはここで原理について説明する。

原理とはその理論体系の最も根本的な法則の集まりのことである。 これらは実験などを通して得られた帰納的な科学法則である。 あるいはまだ実験で確かめられていない仮説でも構わないが、その場合はその理論全体が仮説止まりになってしまう。 なんらかの方法で実験と理論の導く結果が一致することを確かめなくてはならない。

例えばニュートン力学の場合、力が働いていなければ止まっている物は止まり続け、動いている物はその運動を続ける、加速度は力の大きさに比例し質量に反比例する、ある物が別のある物に力を働かせる時は必ずその物から同じ大きさの反対向きの力が働く、という3つの原理を持っている。これらの原理は実験で確かめられていて、実際に身の回りにある物の運動を観察すればこれらの原理が正しいと分かる。

だが、これらの原理は身の回りにある物の運動を観察して帰納的推論によって導いた科学法則でしかないので、それが全ての物の運動に当てはまる法則かどうかは分からない。 しかし、これらの法則は非常に多くの物の運動に対して当てはまっているように見える。 原理というのはこういうものである。 それが絶対に正しいかどうかは分からないが、非常に正しいように見える。 そういった法則を原理として認めた上で、そこから論理を展開していくことで、様々な法則を導くことができる。

このような原理が全ての物の運動に当てはまると仮定した、仮定の下で議論を行うのがニュートン力学である。 これらの原理が正しいというのは所詮仮定でしかないので、間違っていることもあり得る。 実際、日常的に目にする物の運動にはよく当てはまるのだが、少し特殊な状況になってくると当てはまらなくなってくる。 ニュートン力学を超えた範囲の物の運動を扱うには量子力学などの、もっと高度な理論を使わなくてはいけなくなる。

このような原理はどのようにして見つけるのだろうか。 それはもちろん、試行錯誤によるしかない。 私達は実験などにより様々な科学法則を見つけることができる。 そしてそれらの法則の間の関係を考えることができる。

例えば、ここに実験で見つけられた2つの科学法則があったとする。 それらは片方の法則が正しければ、論理的に考えてもう片方の法則も正しくなければならないような関係になっているとする。 その場合は2つの法則を実験から帰納的推論によって得られた法則にしておく必要はない。 片方だけを実験から得られたとし、もう片方はその法則から演繹的推論によって得られた法則だと言うことができる。

言うことができるだけで、何もわざわざそう言う必要はないように感じるかもしれないが、そうではない。 演繹的推論によって得られた法則は、議論の前提となっている法則が正しい限り、必ず正しいのである。 一方実験から帰納的推論によって得られた法則は、実験が正しく行われていなければ間違う。 そして正確な実験を行い、正しい法則を得るのには大きな労力を必要とする。 なので、帰納的推論から得られた法則が2つあるよりも、帰納的推論から得られた法則は1つでもう片方は演繹的推論から得られている方がより信頼が置けるようになる。 2種類の実験を正確に行う労力を、1種類の実験に倍の労力をさいてより正確な実験を行った方が信頼が置けるようになるからである。

このようにたくさんの法則があるとき、それらの論理的な構造を調べ、どれかが正しければ他のいくつかの法則も正しいと言えるような法則を見つけていくことができる。 そうやって法則の間の構造を調べて、ごく少数の法則さえ正しいと仮定すれば他の全ての法則が正しいと言えるような法則を見つける。 この、ごく少数の法則のことを原理と名前をつけ、特別な法則だとして他の法則とは区別するのである。 このようにして原理を見つけることができる。

このようにまとめられた原理も、より少ない原理でさらに多くの法則を論理的に考えて導けるような、より良い原理の集まりへと洗練していくことができる。 こうして実験によって得られる部分をどんどん少なくしていけばやらなければならない実験の数も減るし、何か間違いが見つかったときにどこを疑うべきかもはっきりする。 このようにして理論体系を洗練していくことができる。

15.1.2 法則

まだ誰も知らない何かを知る

このように帰納的推論によって原理を見つけることができる。 原理は演繹的推論をするために正しいと仮定する法則のことである。 原理が見つかればそこから論理的に考えて様々な法則を見つけることができる。 それらの法則にはあらかじめ実験などによって調べられたことが一度もないような法則も含まれ得る。 このように少数の原理を実験で確かめれば、あとは考えるだけで膨大な量の正しい法則を見つけることができるのが理論体系を作る利点である。

原理から出発して議論をしていき見つけた法則は、途中の論理的な議論の仕方が間違っていなければ必ず正しいと言える。 これは実験から帰納的推論によって法則を見つけても、実験がうまくできていない恐れが常にあるのに対し、論理的な議論の仕方は間違っていればどこに間違いがあるか注意すれば必ず見分けられるからである。 つまり原理を常に正しいと仮定して、そこから正しい論理によって得られた結論はすべて正しいのである。 これらの原理が正しいならこの法則も正しい、という理屈は確かに常に正しい。 演繹的推論では科学法則の持つ不確かさはすべて、本当にこの原理は正しいのかという問いに集約されることになる。

逆に言えばそうやって論理的に正しい方法で導いた法則が現実に当てはまらなかったら、それはすぐさま原理に間違いが含まれていることを意味する。 原理が間違っているのだから、その理論体系は崩壊する。 たった1つの間違いでも理論体系を崩壊させる。 どんどん議論を進めていき、どんなに原理から遠く離れて得られた法則でも理論体系を崩壊させる。 理論体系とはそのような厳密さと儚さを持ったものである。

このように理論体系というものは、その法則が正しいか正しくないかという問題をはっきりさせる効果がある。 それは、論理的に考えた結果なのだからその法則は正しいという意味ではなく、この原理が正しいならこの法則も必ず正しいという構造が得られるという意味である。 原理が正しいなら法則も正しく、法則が間違っているなら原理も間違っていることが分かるのである。 これはもしも間違った原理の下に理論体系を作ったら、その体系の中には必ず間違った法則が含まれることを意味する。 間違った原理、前提から議論を進めれば、間違った法則を導いてしまうことがある。 演繹的推論にはこのような危険が潜んでいることは、常に意識しておかなくてはならない。

原理を選び終えてしまえばあとは論理的な議論によって様々な法則を見つけていくだけなのだから、理論体系は原理さえ決めれば残りはすべて決まってしまう。 論理的に正しい議論の方法は数学的な議論で決まるもので、原理の選び方には関係せずに共通だからである。 様々な理論体系の下に様々な法則が存在するが、それは原理の取り方の違いのためにその下にある法則が違ってくるのである。 このように様々な理論体系を作ってそれが導く法則の違いを見ることで、その理論体系の特徴を見ることができる。

このような演繹的推論は原理とまでは呼べない法則の集まりを前提として行うこともできる。 それは例えば、理論体系がまだ確立しておらずどれを原理にするのか分かっていない場合や、自分でいくつかの法則を帰納的に見つけ、それらを前提にして議論を行う場合などに行う。 そうした場合も、原理を前提にして演繹的推論を行うのとまったく同じように議論を行うことができる。 そして理論体系を作り上げることができる。

重要なことはこのような理論体系には未だ誰も体験したこのとのない法則も含まれ得るということである。 この世の誰一人、見たことも聞いたこともないような場合、現象でも、正しい原理から出発して正しい論理によって導かれた法則ならば、それは必ず正しい。 これは実際に実験、体験することが困難な状況における法則を見つけるにの非常に役に立つ。 しかし、演繹的推論は途中の議論が正しくとも、正しいと仮定した原理や前提が正しくなければ結論を間違える。 これは実際に演繹的推論を使って法則を導こうというときは、重々注意しなければならないことである。

これらの原理や前提から導き出される法則は、あらかじめ実験によって帰納的に得られていた法則でも構わない。 これは、こういう時にこうなる、という原因と結果の関係でしかなかった法則に、この原理が正しいからこの法則も正しい、という様になぜその法則が正しいのか理由をつけたことになる。 論理的に考えることにより、その法則の正しい理由を説明することができるのである。 説明がついていようがいまいが正しい法則は正しいのだが、説明がついていれば物事をより深く理解したことになる。 このように演繹的推論には物事を説明しより深い理解へと導くという役割もある。

15.1.3 モデル

想像力で模型を作る

このように原理から演繹的推論を行うことによって法則を導き、果てしなく広い理論体系を作り上げることができる。 しかし、このような厳密な論理によって導かれる法則で、実際に出会う複雑な状況に当てはまる法則を導くのは非常に難しい場合がある。 そのようなときに作るのが理論モデルである。

理論モデルは実験で使うモデルと役割は似ているが見た目はまったく異なる。 理論モデルは模型とは言うものの実体を持つ模型ではない。 全て理論の上でだけ作られる、単なる理屈の集まりのことである。

理論体系とは原理とそこから導かれる法則の集まりのことである。 そしてその理論体系は科学法則の体系である以上、現実の物事の間にある法則の集まりである。 つまり、その理論体系が扱っている範囲の現実の物事であれば、その体系の原理から論理的に考えていけばその物事に対する法則を見つけることができる。

例えばニュートン力学は身の回りにある全ての物の運動についての法則を扱っている。 どんな物の運動もニュートン力学の原理から論理的に考えていけば必ず説明がつく。 少なくとも、ニュートン力学で扱っている範囲の物の運動はすべて説明がつくはずである。 つまり空を行く雲の運動や川の流れ方、星の運行や人間の体の動きもニュートン力学で扱うことができるということである。

しかし、現実に存在する雲の運動や川の流れをニュートン力学で説明をつけようとしても、複雑すぎてとてもではないがまともに扱うことはできない。 それはたとえるなら10桁の数と10桁の数の掛け算を計算するのに似ている。 10桁だろうが100桁だろうが、2桁の数の掛け算ができれば原理的には計算することができる。 ただ単に計算にかかる手間が複雑になるだけである。 しかし本当に10桁の数同士の掛け算をしようと思っても、手間がかかりすぎて、とてもではないがまともに計算できなくなる。

同じように、現実に存在する雲の運動や川の流れをニュートン力学で扱おうとしても、とてもではないがまともに扱えないような複雑さになることがある。 そういうときに、理論モデルを作るのである。 理論モデルは実験で使うモデルと同じように、複雑な対象を簡単にするために対象から重要な部分だけを残し他の部分を取り除いたものである。 しかしこれは全て理論の上で行う。 つまり、本当は存在しているのにそれが存在してないと考えたり、本当は存在しないのに存在すると考えたりするのである。

例えば現実に存在する川の流れ方をニュートン力学で説明をつけようとしたら、まともに扱ったらとてもではないが扱えないぐらい複雑になってしまう。 そこで現実に存在する川の理論モデルを作ることにする。 理論モデルを作ることを、モデル化する、などとも言う。 つまり今の場合は現実に存在する川をモデル化するのである。

川の理論モデルを作るとしたら、例えば川幅は一定になると仮定したり、川の深さは一定になるように仮定したり、川の中には水の流れを妨げる障害物が何も無いと仮定したりする。 これらの仮定はもちろん現実に存在する川には当てはまらない。 実際には川幅は大きくなったり小さくなったりするし、川の深さも一定ではない。 川の中には大きな石や中洲があって流れに影響している。 しかしこれらの影響を全て考えると、どんどん状況が複雑になっていくので、それを扱いやすい簡単なモデルにするために無いものとして考えるのである。 川の流れのどのような性質をニュートン力学で調べたいのかによるが、このようなモデル化された川でも実際の流れをよく再現し、実験では得られないような法則を見つける役に立つかもしれない。

このようなモデル化された川はもちろん現実に存在する川とは違っている。 しかし、そのモデルがうまく作られているなら、つまり現実に存在する川の重要な性質は持ち続け、重要で無い性質を省いて簡略化したものになっていたら、モデル化された川が現実に存在する川の重要な性質を再現するだろう。 そうすれば現実に存在する川についての法則が理論モデルから得られることになる。

これと同じことを実験のモデルを使って行うこともできる。 例えば理論モデルが仮定する特殊な状況を実際に人工の川を作って再現することもできる。 そうすれば理論モデルを使うまでもなく、実際に実験をして帰納的推論で法則を見つけることができる。 理論のモデルと実験のモデルが一致するのだから、理論と同じ結果を実験によって得ることができるだろう。 このように理論モデルというものは机上の空論、想像の産物というわけではなく、手間をかければ実際に再現できるものである。

しかし理論モデルは実験のモデルと違って頭の中で考えるだけで作ることができる。 実際に実験に使う模型を作るには大きな労力を必要とするのに対して、理論モデルを作るのに必要なのは論理的思考力だけである。 だから実際に模型を作るよりもずっと簡単に作ることができる。 試しに作ったモデルがうまく行かなかったらすぐに新しく作り直すことができるし、理論モデルは単なる理屈の集まりなのだから一度作れば壊れないし劣化もしない。 この簡便さと効率のよさ、不変性が論理モデルの大きな利点である。

このように理論モデルは実験のモデルと同じように現実を再現し法則を発見するために作られた模型である。 その模型を理論の上で動かすことによって様々な性質を調べることができる。 理論モデルの性質は、そのモデルを完全に再現する実験のモデルを実際に作ったときにその模型の持つ性質である。 しかし理論体系が既に完成していれば、実際にその模型を作って動かすまでもなく、演繹的推論でそのモデルの性質を調べることができる。 このように理論の上で理論モデルを動かし、様々な性質を発見していくことができる。

大概のことは精霊の仕業で説明がつく

理論モデルにはこのように、実験のモデルの代わりに使って法則を導くという使い方がある。 その一方で、理論モデルには現象を解明するという役割もある。 ある原因不明の現象が発見されたとする。 それは誰もどうしてそうなるのか原因を知らないが、とにかくそのような現象が起こることが知られていたとする。 そういう場合に、その現象を再現する理論モデルを作ることができれば、仮に原因が不明だったとしても現実にそのモデルと似たようなことが起こっているからその現象が起こるのだと推論することができる。 これは、現実に説明をつけたことになる。 これも重要な理論モデルの役割である。

例えば雷という気象現象がある。 激しい雨が降ると時々雷が落ちることがある。 雷とは空から稲妻が激しい音と共に落ちてくる現象で、誰しも一度は目にしたことがあると思う。 こういった現象が起こることは誰もが知っている。 大昔から知られている。

しかし、その原因が何であるかは知られていなかった。 昔は雷は雷獣の仕業だと思われていた。 空に住まう何か尋常ならざる獣が引き起こしていると考えられていた。 これはれっきとした理論モデルである。 ある現象に対してある原因を仮定して理論モデルを作ったのである。 このモデルが正しいなら、空を飛んで雷雲の中に入れば雷獣に出会えるはずなのだが、残念なことに実際に飛んで行っても雷獣は居なかった。 そしてこの理論モデルは間違いであることが判明した。

今では雷は雲の中の水や氷の粒がぶつかった際の静電気が溜まったものだと考えられている。 雷獣による理論モデルが正しくなかったので、新しくモデルを作り直したのである。 静電気によるモデルなら、実際に雨雲を再現して実験してみなくても理論モデルを動かすだけで雷という現象を再現することができる。 ということは、おそらく実際の雷も理論モデルで仮定しているような状況が引き起こしているのではないかと考えることができる。

このように理論モデルを使うことによって、原因不明の現象の原因を探ることができる。 だが理論モデルは所詮モデルでしかなく、現実ではありえない。 今分かったことは、もし理論モデルと同じ状況が現実に起こっていれば、確かにその現象が起こるということに過ぎない。 その現象を引き起こす理論モデルが他にもいろいろあるかもしれない。 その現象を引き起こす原因がその理論モデル以外にはあり得ないということが示されない限り、原因を特定したことにはならない。 しかし、もしもその理論モデルのような状況が現実に起こっていれば、確かにその現象が引き起こされるのだから、原因の候補として最も有力であることは間違いない。

このように理論モデルは原因不明の現象の起こる原因を解明するのに使うことができる。 何かに説明をつける、理由をつけるというときには理論モデルを作っているのである。 例えば人と話していて相手の感情を推し量るといった場合にも理論モデルを作るし、推理小説で犯人を見つけるにも理論モデルを作る。

しかしモデルはモデルでしかなく、現実ではない。 そうやって現象に理由をつけるために理論モデルを作って、もしも説明したい現象をきっちり説明できればそれでいいのだが、モデルが現実をうまく説明できないときがある。 明らかに正しいかどうか怪しい理論モデルを使ったのであれば、モデルを作りなおそうという気になるが、時々あらゆる原因を考えてもうこれ以外のモデルは存在しないと思えるときがある。 それでも理論モデルが実際の現象を再現しないなら、モデルの方が間違っている。 現象の方も実際に何が起こっているのかあやふやなのでは困るが、はっきりその現象が起こっていると分かっている場合には必ずモデルの方が間違っている。

ここにも原理から法則を導いたときと同じような注意点がある。 間違った理論モデルを使って現象を説明しようとしたら、当然結果を間違えるのである。 また、理論モデルは現実を簡略化したものであるから、重要で無いと思って省略した性質が実は最も重要であったりする。 そういう場合にも理論モデルは現実をまったく再現しないものになってしまう。 このような場合は謙虚に今までの考察が間違っていたことを認めて、新たに理論モデルを作り直さなくてはならない。

15.2 具体例

15.2.1 ランキングサイト読者の行動モデル

あなたがこれから何をするのか予言する

ではこれから具体的に様々なモデルを作っていく。 まずはネット上にあるランキングサイトを見ている人がどのような行動をするのかの理論モデルを作り、アクセスランキングの法則を導き、どうしてアクセスがランキング順位に対して指数的に減少するのかについて説明をつけようと思う。

ランキングサイトの順位とアクセス数についての関係についてなんらかの説明をつけることを試みるのだから、ランキングを見ている人がどのサイトにアクセスしやすいかを考えなくてはならない。 もちろんランキングのトップに来ていれば目に付きやすいのだから、見ている人がそこにアクセスする頻度も上がるだろう。 逆にランキングの最下層にランクされたとしたら、誰にも見向きもされなくてアクセスは伸びないだろう。 いずれにせよランキングサイトからアクセスされるには、それを見ている人がランクされているサイトにアクセスするという行動を起こす必要がある。 つまり、ランキングサイトからどれくらいのアクセスがあるかを予測するには、そのランキングを見ている人の行動を予測する必要がある。

さて、ランキングサイトを見ている人はどのような行動を取るだろうか? もちろんランキングに載っているサイトの中から気に入ったものを選んでアクセスするだろう。 だが他にも様々なことをする。 ランキングを見ていたが、やはり別のサイトを見たいと思ってブックマークから別のサイトを読みに行くかもしれないし、ランキングを見ていて、ふと目に止まったパソコンの近くに置いてあった本を手にとって読み始めるかもしれない。 ランキングを見ていたら友達が遊びに来て、一緒に出かけてしまうかもしれないし、ランキングの順位とアクセス数の間にある法則を見つけるためにデータを取っているかもしれない。

もしもランキングサイトを見ている人の取る行動を完全に予測したいと思うなら、これらの行動すべてを考えに入れなくてはならない。 しかし人の行動のすべてを考えに入れるなど実際問題として不可能である。 また、今必要なのはランキングのどのサイトにアクセスするか、その回数の違いを生む行動だけなので、必ずしも全ての行動を考える必要もない。 そこで無駄な行動を一切しないという、単純な読者の行動モデルを作ることにする。 以下このモデルを単に行動モデルと呼ぶ。

ランキングサイトを利用する読者の中で最も単純なのは、ランキングサイトにアクセスしたらその一番上から順にランクされているサイトを見て行って、興味が持てるサイトを見つけたらアクセスする読者である。 そして一度アクセスしたらもうランキングには戻ってこない。 こういう行動をする読者を仮想的に想定する。 なぜこのような読者を想定するかと言えば、それが理に適っているからではなく、単純で数学的な関係を見つけるのが簡単だからである。

さて、このような行動を取る読者を仮定してみても、その読者がどんなサイトに興味を持つかは人それぞれで千差万別である。 しかし、例えば1000種類の興味を持つ1000人の読者を考えたりするのは無理がある。 なので大雑把に全ての読者が全てのサイトに同じような興味を持っており、確率pでそのサイトを気に入り、アクセスすると想定する。 これも現実にはこんなことは起こらないのであるが、沢山の読者がランキングを見ればアクセスが平均されるので、ある程度、標準的な興味というものを考えることができる。

このように読者の行動をモデルにすることができた。 この行動モデルの特徴をまとめると、ランキングの一番上からサイトを見ていき、確率pでそのサイトにアクセスする、となる。 このモデル化された読者が、1位のサイトにアクセスする確率はpである。 そして2位のサイトにアクセスする確率は1位のサイトに興味を持たず、かつ2位のサイトに興味を持つ場合なので(1-p)pとなる。 これは1位のサイトに興味を持たない確率が(1-p)で、2位のサイトに興味を持つ確率がpだからである。

これと同じ理屈でn位のサイトにアクセスする確率は(1-p)n-1pになる。 これは(n-1)位までのサイトに興味を持たない確率とn位のサイトに興味を持つ確率の積がn位のサイトにアクセスする確率だからである。 これを変形して、

(1-p)n-1p=(1-p)np/(1-p)

=C(1-p)n
=C[1/(1-p)]-n

と書き換えておく。 C=p/(1-p)である。 (1-p)は1よりも小さい数であるので1/(1-p)は1より大きい数になる。 つまり、この行動モデルに従う読者がある順位のサイトにアクセスする確率を計算したら、順位に対して指数的に減少することになる。 前章で実測から求めた指数的な減少が得られた。 ただしその底はeではなく1/(1-p)である。

これをeの指数に変換したい。 つまり

e-an=[1/(1-p)]-n

となるaを求めたい。 そのために両辺の対数をとる。 左側の対数は、

loge-an=-anloge

=-an

であり、また、右側の対数は、

log[1/(1-p)]-n=-nlog[1/(1-p)]

なので2つを等号で結ぶと

-an=-nlog[1/(1-p)]

となる。両辺-nで割って

a=log[1/(1-p)]

となる。 つまり、

e-log[1/(1-p)]n=[1/(1-p)]-n

となる。 これで指数の底を1/(1-p)からeに変換することができた。 a=log[1/(1-p)]と書けば、

(1-p)n-1p=C[1/(1-p)]-n

=Ce-an

となる。 これはランキングの順位が下がるに従ってそのサイトにアクセスする確率が指数的に減少することを意味している。 実際にそのサイトにアクセスする人数は、ランキングサイトを見ている人全体の人数にそのサイトにアクセスする確率をかけたものに近くなるはずなので、これは結局はアクセス数が指数的に減少することを意味している。 つまり前章で実測から求めたアクセスランキングの法則を再現することができた。

仮説を実証する難しさ

ここまでの議論をまとめると、行動モデルと完全に一致する行動を取る人ばかりがランキングサイトを見ていたら、実測で求めた順位とアクセス数の関係と同じように順位が下がるに従ってアクセス数が指数的に減少することが数学的に証明された、ということである。 この結果から、行動モデルが現実の読者の特徴をよく現しているという結論を出すこともできるが、それはまだ時期尚早である。

この行動モデルはその議論の途中である予測をしている。 それは、

a=log[1/(1-p)]
C=p/(1-p)

という2つの定義から導かれる、aとCの間にある関係である。 その関係を実際に求めてみる。 まず、a=log[1/(1-p)]なのだから、対数の定義より、

ea=1/(1-p)

となる。 両辺(1-p)を掛けて

(1-p)ea=1

両辺eaで割って-1を掛けて

-1+p=-e-a

つまり、

p=1-e-a

となる。 pとaの関係が求まったので、これをC=p/(1-p)に代入して、

C=(1-e-a)/[1-(1-e-a)]

=(1-e-a)/e-a
=ea-1

となる。 この関係はこの行動モデルが正しければ必ず成り立つ関係である。 言い換えるならこの行動モデルに従う読者に必ず当てはまる、あらかじめ知られていなかった新しい法則である。 この法則を利用して本当にランキングサイトのアクセス数の変化の仕方がこの行動モデルで説明がつくのかを調べてみる。 なぜなら、もし実際のランキングサイトの読者がこの行動モデルに近い行動をしているのなら、実際のアクセス数のデータについてもこの法則が当てはまらなくてはならないからである。

前章の図6のグラフの傾きとy軸との交点からaやCを求めてそれがモデルから予想される数とどれだけずれているかを調べる。 まずはこのグラフの傾きが-aになることから

a=(3.76-3.21)/9

=0.06111

ということが分かる。 Cの方はy軸との交点から分かるのだが、一つ注意しなくてはならないのはこのデータは実際のアクセス数であり、確率ではないという点である。 つまり、このデータはそのサイトに興味を持ってアクセスする確率にランキングサイト全体の読者の人数を掛けたものになっている。 ということはデータをy、読者の人数をNとすると、n位のサイトにアクセスする確率はCe-anになるので、

y=NCe-an

となる。グラフはこの対数なのだから、

logy=logN+logC-an

ということになる。 つまり、n=0のとき、y軸との交点はlogN+logCとなり、Cを求めるためにはNの影響を取り除かなくてはならない。 読者の人数がどれくらいかは予測するしかないが、とりあえずほとんどの人が10位までのサイトにアクセスしていると考えて、10位までのサイトのアクセス数の合計の2倍を使ってみる。 つまり、全体の半分の人が10位までのサイトにアクセスしていると考えるのである。 そうすると、10位までのアクセス数の合計が33740人なので、Nは67480になる。 そうなると、y軸との交点は、1位の時の直線の数値が3.6だとするとグラフの傾きから、3.66になる。 これがlogN+logCと等しいのだから、

logC=3.66-logN

=3.66-log67480
=-1.169

となり、

C=e-1.169

=0.311

となる。 これらは実際のグラフから求めた数値であり、実際のランキングサイトの持つaやCの値である。 では、行動モデルから予測される関係をこのaとCの値は満たしているのかを調べてみる。 a=0.06111だったのだから、行動モデルからは、

C=ea-1

=e0.06111-1
=0.0630

と予想される。 実際の値は0.311なのでモデルの予想とは5倍もずれていることになる。 果たしてこれは許容できるずれなのかどうかは怪しいところである。 ちなみにaの値が分かったのでp=1-e-aという関係を利用してpを計算すると0.0593になる。 ランキングにランクされているあるサイトを見てそれを気に入る可能性は平均して約6%ということである。

理論モデルと実際のデータが矛盾した結果を出した場合は、もちろん今まで苦労して考えてきた理論モデルの方が間違っているのである。 残念ながら、今調べたランキングサイトの読者の行動を、このような簡単な行動モデルで説明することはできないようである。 考えてみれば当たり前で、人間の行動をこんな単純なモデルで解明できるわけもない。 今の場合は、ランキングを見ている人は何度もこのランキングサイトを使っているうちに、気に入ったサイトができてしまい、そのサイトが何位であろうとランキングの中から自分で探し出してアクセスするようになる効果が最も大きく影響を与えていると考えられる。 5位にランクされていても10位にランクされていても、自分でそのサイトをランキングの中から探してアクセスするのであれば、モデルで想定しているようなアクセスする確率の指数的な減少は起こらなくなる。

だが他にも様々なランキングでこの行動モデルを試してみたところ、10%ほどの誤差でモデルと実際のデータが一致する例などもあった。 このような単純な行動モデルでも、確かに人間の行動の特徴をうまく捕らえている場合もあるようである。 アクセス数を直接数えられるわけではないので確かなことは言えないが、おそらく検索エンジンの検索結果を順序づけて並べた場合のアクセス数の変化はこの行動モデルで説明がつくと考えられる。

15.2.2 指数的成長モデル

科学者はだいたいこんなことをしている

ここでは前章で紹介した収穫加速の法則に従う指数的な成長をする成長モデルを作っていく。 それにより収穫加速の法則が信頼できる法則であることを示す。

収穫加速の法則は社会全体の成長に指数的成長が見られるという法則である。 人類そのものの成長が指数的であることを言っているのであるが、ここでは人類を代表して科学者、技術者、情報学者について扱う。 まずは科学者がどのようにして科学を発展させていくかについてモデルを作っていく。

科学とはこの世界に存在する法則のすべてであるが、ここでは話を簡単にするためにどちらかと言えば物理に近い分野に限定して話を進める。 科学者は科学を発展させる。 新しい現象を発見したり、それを説明する理論を作ったり、新しい仮説を作ったりする。 始めのうちは研究すべき対象がいくらでもあり、調べるもの全てが新しい発見を生み、科学を発展させる。 しかし科学が発展し、洗練されていくに従ってだんだんと解かないといけない問題が難しくなってくる。 最終的には理論や実験が複雑に入り組んで、もはや手に負えなくなる。 そうして科学の発展する速度は遅くなっていき、最後に成長は限界に達する。

もしも問題が複雑になりまともに扱ったらとても手に負えないと感じたら、その困難さを解決するための工夫が始まる。 例えば、まだ応用されていなかった新しい実験技術を導入して新しい実験装置を作ったり、まだ使い方を覚えていなかった新しいコンピュータや計算ソフトウェアを導入して数値計算シミュレーションをしてみたりする。 そうしてより精度のいい実験が行えるようになったり、理論モデルを実際に計算してだいたいの性質を理解できるようになったりすると、とても手に負えないと思っていた問題も少しずつ難しさがほぐれて、手に負えるようになってくる。 そのうち、科学の問題を扱う画期的な手法が開発され、今であった問題の難しさがきれいに解消されてまた科学の発展が始まる。 古い時代から脱し、新しい時代の幕開けである。 新しい時代の幕開けを起こすほどの画期的な手法の発明は、その時点で導入されている実験技術や情報技術が発展していれば発展しているほど起こりやすくなると考えられる。 なぜなら、導入された周辺技術が多ければ使える技術の選択肢が多いということで、その分発明も簡単になるはずだからである。

しかし新しい実験技術を導入しようにも、その時点で存在する技術の全てを導入し終えてしまったら、それ以上新しい実験技術を開発することはできなくなる。 科学者は技術を発展させることはできないからである。 同様に新しい計算シミュレーションを導入しようにも、その時点で存在する情報技術の全てを導入し終えてしまえば、それ以上新しいシミュレーション技術を開発することはできなくなる。 このように、科学の難しさを解消するための技術や計算機の導入にも、おのずと限界がある。

このような構造は技術者、情報学者にも同じように存在すると想定する。 つまり、科学、技術、情報科学の3つの分野はそれぞれが独立に発展していき、やがて解決が困難な問題にぶつかって問題が手におえないと感じたら回りの学問分野から使えそうな何かを見つけ出し、自分の研究分野の役に立てるのである。 科学者は精度のよい実験装置を技術から、精度のよいシミュレーションを情報科学からもらう。 技術者は技術の理論限界値や実現可能性を科学から、業務を簡単にする便利なソフトウェアを情報科学からもらう。 情報学者は計算機の理論限界や新しい数学を科学から、性能のよい計算機を作るための周辺技術を技術からもらう。 科学、技術、情報科学の区分けや、ある分野が他の分野に持つ影響力の強さなどを厳密に考えるのは難しいところであるが、基本的にはこの構造を持っているとする。

このように、発展と成長の停滞、その後の画期的発明によるあらたな発展の時代の幕開け、という一連の流れが生まれる。 そして、ある分野の成長が停滞している間に別の分野が成長すれば、その成長によって新しく応用できる他分野の技術の選択肢が増え、画期的な発明によって一気に問題の複雑さが解消されやすくなる。 このようにある分野が停滞しても周辺の分野が成長することで、結果としてその分野の成長を引っ張るような効果が生まれれば、単独では成長限界に達するとしても、問題なく成長し続けることができるかもしれない。

指数的成長モデルの数理

さて、これまで科学者、技術者、情報学者の性質をモデル化してきた。 これからはこのような性質を満たす数理モデルを作っていく。

まずは科学、技術、情報技術の発展の具合をなんとかして数で表さなくてはならない。 科学であれば累計の論文発表数や、その時点の科学的知識で説明できる現象の数、定理や法則、理論モデルの数などを科学の発展具合を表す数として使えるだろう。 しかし、ここではそのような細かい構造には立ち入らないで、単純に、何かは分からないがとにかくなんらかの基準で測った科学の発展の度合いという言い方をして科学の発展具合を数値で表しておく。 その数値を代数でSで表す。 同じようになんらかの基準で測った技術や情報技術の発展の具合をT、Iとして表す。

科学者、技術者、情報学者はそれぞれS、T、Iを増加させる。 ここに100人の科学者、技術者、情報学者がいるとする。 彼らは日々研究して論文や発明を発表する。 その論文や発明が本当に学問の発展させる、意味のあるものなのかどうかは確率的に決まるものとする。 その確率は学問が発展して問題の難しさが上がっていくに従って下がる。 それぞれの分野での問題の難しさをSdif、Tdif、Idifと表す。

具体的には1人の科学者、技術者、情報学者が自分の分野を研究すると、それぞれ(1-Sdif)、(1-Tdif)、(1-Idif)の確率でS、T、IをdS、dT、dIだけ大きくする。 それと同時にSdif、Tdif、IdifをdSdif、dTdif、dIdifだけ大きくする。 それぞれの分野を発展させる確率が0より低くなっては困るのでSdif、Tdif、Idifは1より小さくなくてはならない。

S、T、Iが大きくなってくるとSdif、Tdif、Idifも同時に大きくなる。 Sdif、Tdif、Idifが大きくなって1に近づくと、S、T、Iを大きくできる論文や発明が生まれる確率が小さくなっていく。 つまりどんなに論文や発明を発表しても、それはその分野の問題を解決するのに役に立たない無駄な努力になってしまう可能性が上がる。 そうなったらその分野を直接研究しても時間を無駄にするだけなので、周辺分野に目を向け始める。

100人いる科学者のうち、科学を研究している人数をNsとすると、技術を科学に応用する研究をやっている科学者の人数をNst、情報技術を科学に応用する研究をやっている科学者の人数をNsiと表す。 NsとNstとNsiは合計すると100になる。 同じように、100人いる技術者のうち、技術を研究しているのはNt人、科学の技術への応用を研究しているのはNts人、情報技術の技術への応用を研究しているのはNti人になる。 100人いる情報学者のうち、情報技術を研究しているのはNi人、科学の情報技術への応用を研究しているのがNis人、技術の情報技術への応用を研究しているのはNit人になる。

科学者、技術者、情報学者が研究を発表してもそれぞれSdif、Tdif、Idifの確率で学問を発展させない無駄な研究である。 自分の研究が無駄な研究だった場合、10分の1の確率で周辺分野を自分の分野に応用する研究に移るようにする。 つまり、科学者であればNsが1人減ってNstかNsiが1人増える。 これが全ての分野で行われる。 ちなみに、応用の研究に移る確率が10分の1なので、NstやNsiのどちらか一方に移る確率はさらに半分になって20分の1になる。

周辺分野を自分の分野に応用する研究をやっている人は、それぞれの分野における周辺分野の応用力を上げることができる。 科学に対する技術の応用力をSt、科学に対する情報技術の応用力をSiと表す。 技術に対する科学の応用力をTs、技術に対する情報技術の応用力をTiと表す。 情報技術に対する科学の応用力をIs、情報技術に対する技術の応用力をItと表す。

それぞれの応用力を研究している人は、その周辺分野が発展していればいるほど簡単に応用を見つけることができ、応用力が発展すればするほど新しい応用を見つけるのは難しくなる。 その性質を満たすように、例えば技術の科学への応用を研究している科学者の場合は(1-St/T)の確率でStを一定の値だけ大きくする。 これならStが大きくなっていくに従って新しい応用を発見できる確率は減り、やがてStがTに一致したらもはや発見できなくなる。 そしてCstをある定数として、St/Cstの確率で画期的な手法が開発され、Sdifが10分の1になるようにする。 問題の難しさがすっきり解消されて、一気に10分の1になるのである。 このような画期的発明が行われるというのは確かな事として仮定する。 Cstは定数なのでStがCst以上の数になってしまえば、どんな応用も画期的な発明になってしまうのでこのモデルはStが小さいうちしかうまく動かない。 同じ話が他の全ての周辺分野の応用を研究している人に当てはまるとする。

このように画期的な手法が発明されれば、元の研究分野の研究が進むようになり、また発展が始まる。 そして周辺分野の応用を研究していた人はだんだん開発できる応用が見つからなくなってくるので元の本来の分野の研究に戻る。 例えば技術の科学への応用を研究している科学者がSt/Tの確率で応用の研究に失敗した場合、10分の1の確率で本来の分野の研究に戻るようにする。 つまり科学の研究に戻る。

このモデルをこのような数理モデルにした。 今まではそれを言葉で説明してきたが、少し長くなったので同じことを数式で短く表しておく。 p(x)というのはxの確率で1になり、(1-x)の確率で0になる関数である。 実際にコンピュータシミュレーションする時には乱数で再現する。 np(x)というのは、p(x)をn回実行して全ての結果を足すという意味である。 全ての変数は時間の関数になっているので、S(t)のように表される。 コンピュータシミュレーションするので時間は離散的にしか扱えないが、その刻み幅をdtとする。 そうすると、このモデルは次のようになる。

科学者について。

Ws(t)=Ns(t)p(1-Sdif(t))
Wst(t)=Nst(t)p(St(t)/T(t))
Wsi(t)=Nsi(t)p(Si(t)/I(t))
bs(t)=Wst(t)p(St(t)/Cst)+Wsi(t)p(Si(t)/Csi)

S(t+dt)=S(t)+Ws(t)・dS
Sdif(t+dt)=[Sdif(t)+Ws(t)・dSdif)]・(1/10)bs(t)
St(t+dt)=St(t)+Wst(t)・dSt
Si(t+dt)=Si(t)+Wsi(t)・dSi

dNs'(t)=Ns(t)-Ws(t)p(0.1)
dNst(t)=dNs'(t)p(0.5)
dNst'(t)=Nst(t)-Wst(t)p(0.1)
dNsi(t)=dNs'(t)-dNst(t)
dNsi'(t)=Nsi(t)-Wsi(t)p(0.1)

Ns(t+dt)=Ns(t)+dNst'(t)+dNsi'(t)-dNs'(t)
Nst(t+dt)=Nst(t)+dNst(t)-dNst'(t)
Nsi(t+dt)=Nsi(t)+dNsi(t)-dNsi'(t)

技術者について。

Wt(t)=Nt(t)p(1-Tdif(t))
Wts(t)=Nts(t)p(Ts(t)/S(t))
Wti(t)=Nti(t)p(Ti(t)/I(t))
bt(t)=Wts(t)p(Ts(t)/Cts)+Wti(t)p(Ti(t)/Cti)

T(t+dt)=T(t)+Wt(t)・dT
Tdif(t+dt)=[Tdif(t)+Wt(t)・dTdif)]・(1/10)bt(t)
Ts(t+dt)=Ts(t)+Wts(t)・dTs
Ti(t+dt)=Ti(t)+Wti(t)・dTi

dNt'(t)=Nt(t)-Wt(t)p(0.1)
dNts(t)=dNt'(t)p(0.5)
dNts'(t)=Nts(t)-Wts(t)p(0.1)
dNti(t)=dNt'(t)-dNts(t)
dNti'(t)=Nti(t)-Wti(t)p(0.1)

Nt(t+dt)=Nt(t)+dNts'(t)+dNti'(t)-dNt'(t)
Nts(t+dt)=Nts(t)+dNts(t)-dNts'(t)
Nti(t+dt)=Nti(t)+dNti(t)-dNti'(t)

情報学者について。

Wi(t)=Ni(t)p(1-Idif(t))
Wis(t)=Nis(t)p(Is(t)/S(t))
Wit(t)=Nit(t)p(It(t)/T(t))
bi(t)=Wis(t)p(Is(t)/Cis)+Wit(t)p(It(t)/Cit)

I(t+dt)=I(t)+Wi(t)・dI
Idif(t+dt)=[Idif(t)+Wi(t)・dIdif)]・(1/10)bi(t)
Is(t+dt)=Is(t)+Wis(t)・dIs
It(t+dt)=It(t)+Wit(t)・dIt

dNi'(t)=Ni(t)-Wi(t)p(0.1)
dNis(t)=dNi'(t)p(0.5)
dNis'(t)=Nis(t)-Wis(t)p(0.1)
dNit(t)=dNi'(t)-dNis(t)
dNit'(t)=Nit(t)-Wit(t)p(0.1)

Ni(t+dt)=Ni(t)+dNis'(t)+dNit'(t)-dNi'(t)
Nis(t+dt)=Nis(t)+dNis(t)-dNis'(t)
Nit(t+dt)=Nit(t)+dNit(t)-dNit'(t)

これがこの成長モデルの全てである。 これらの数式が今まで言葉で説明してきたことの全てである。 変数の量が多くてややこしくなっているので、根本的な部分だけを簡単に説明する。

成長していくなんらかの学問分野Xがあって、それを成長させる研究者の数がNx人いる。 Nx人はそれぞれpxの確率でその分野をdXだけ成長させる。 Wx=Nxp(px)が学問を発展させるのに成功した研究者の数だから、それにdXを掛けてWx・dXがその時刻における成長になる。 そして研究者全体の数から研究に成功した人数を引けば、研究に失敗した人数が得られ、その10分の1が研究分野を変える。 つまり、(Nx-Wx)p(0.1)が別の分野に移る。 XはSやTやStiなどの様々な分野があるが、すべて基本的にはこの構造になっている。

さて、では作ったモデルを具体的に数値計算で解いてみる。 まずは必要な定数や変数の初期値を設定していかなくてはならない。 各研究分野の初期値はS(0)=20、T(0)=10、I(0)=5とする。 各分野の周辺分野の研究の初期値はSt(0)=10、Si(0)=4、Ts(0)=2、Ti(0)=1、Is(0)=10、It(0)=2とする。 各研究分野の困難さはSdif(0)=0.8、Tdif(0)=0.2、Idif(0)= 0.5とする。 研究者の人数はNs(0)=80、Nst(0)=10、Nsi(0)=10、Nt(0)=80、Nts(0)=10、Nti(0)=10、Ni(0)=80、Nis(0)=10、Nit(0)=10とする。 画期的発明の確率を決める係数はCst=30000、Csi=30000、Cts=15000、Cti=15000、Cis=20000、Cit=20000とする。 各研究分野の成長幅はdS=0.02、dT=0.04、dI=0.03、dSt=dSi=dTs=dTi=dIs=dIt=0.03とする。 困難さの増加幅はdSdif=dTdif=dIdif=0.0015とする。 この条件で数値計算すると次のようなグラフが得られる。


アプレット1 指数的成長モデル
緑 S(科学力)、青 T(技術力)、赤 I(情報技術力)
アプレット内をクリックすると再計算。

何度か再計算させて試すと、確かにこのモデルで指数的成長が見られることが分かる。 これはある分野で開発された画期的な手法がどんどん研究を発展させ、少しずつそれが通用しなくなって研究が行き詰まり、しばらくの停滞の後やがて新しい手法が開発されてまた成長が始まる、という一連の流れが起こるのにかかる時間が短くなっていくためである。 これは周辺分野の応用を研究する際、その周辺分野が発展していれば発展しているほど元の分野への応用を簡単に発見できるためである。 つまり、ある分野の成長が停滞してもその周辺分野が変わらず成長しているなら、応用の研究はどんどん簡単にできるようになるのだから、すぐに画期的手法の発明ができて停滞している時間が短くなるのである。

このように今作った成長モデルは収穫加速の法則で言っている指数的成長を再現する。 それは成長力が過剰に高く見積もられているからではなく、このようなお互いに応用しあえる関係を持つ研究分野が本質的に持つ性質だと思う。 なぜなら何度も再計算して試していると、10回に1回ぐらいの割合ですべての分野が成長限界に達してしまい、それ以上成長しない結果が出る場合があるからである。 今のパラメーター設定では指数的成長をするか、成長限界に達するかは非常に微妙なつりあいの上にある。 それでも成長限界を打ち破り、指数的成長をするのだから、収穫加速の法則は十分信頼できる法則であると考えられる。

もどる
inserted by FC2 system