| Top Page | 植物生態学 |

「計算すれば分かる」ところまで分かったか?

2004-04-20
updated on 2004-04-22

これまでの研究のなかで, 自分でデータをとり自分で数値計算モデルを作る研究, モデルだけの研究, 私がモデル担当でデータを取る人と共同研究など,さまざまな形で数値計算モデルを 扱ってきました.以下の文章は,とくに共同研究がうまくいった場合,いかなかった場合を 振り返りながら考えたことをまとめたものです. 「シミュレーションモデル作りの3つのご利益」とあわせてご覧ください。

計算すれば分かることは計算してみよう

私は,生態学の研究を進めるなかで,コンピュータに数値計算をさせることが しばしばあります.なにものかを表現するシミュレーションモデルを設計し, それを実現するコンピュータプログラムを書き,コンピュータに計算をさせます.

このようなアプローチの根底にあるのは, 計算すれば分かることは計算してみよう という考え方です.なんとなく定性的に考えていることも, 計算すれば定量的に確かめられるなら計算する. その計算を筆算でやったら何日もかかるんだったらめんどうだし, 何年もかかるなら研究がなかなか進まないし,何千万年もかかるなら 寿命が尽きてしまうので,コンピュータを利用します. できあいのソフトでは計算できないなら,プログラムを書きます.

ところで,シミュレーションモデルを設計するには,そのモデルで表現する対象を 自分なりに理解している必要があります. 久保拓弥さん が「 計算機とものごとの理解 」 というメモのなかで,計算機科学者Donald E. Knuth の言葉を引用されています.

むかしのことわざに「だれかに教えられるようになるまでは学んだことにならない」とあるが, これからは「計算機に教えられるようになるまでは学んだことにならない」となるだろう. これが学ぶということの秘訣だ.計算機というのは理解の程度を確かめるのにとてもいい. 「残りは常識だ」といってごまかすことができない.…… <文献> 有澤誠(編),1991.「クヌース先生のプログラム論」. 共立出版(ISBN4-320-024546-6)

自然現象のモデル化でも同じことです. 取りやすいデータを取って「あとは適当に」といってごまかすわけにはいきません. 「計算すれば分かる」ところまで分かってないと,シミュレーションモデルは作れません.

モデル作りのステップ

モデル作りは,なんのためにモデルを作るのかをはっきりさせることから始めます. 予測のためか,仮想実験のためか,システムの性質の理解のためか,などなど. なんとなくモデルにするとかっこがつくかな,などというあいまいな動機では, そもそも研究になりません.また,じつはモデルなんて必要ないんだということに なれば,無理に作ることはありません.

目的を整理したうえで,シミュレーションモデルを作ることに 決めたら,自然のなかでおこっていることを注意深く観察して,どのような要素と プロセスの組み合わせで表現できるのかを考え,整理します. これがモデル化のもっとも大切なステップです.

このとき,どの要素やプロセスを考慮するかと同様にたいせつなのは, どの要素やプロセスを考慮しないかです.すべてを入れようとしたら破綻します. どのレベルで抽象化するのか,自分がモデルを使ってやりたいことを実現するには, どの要素やプロセスが必須であり,どれがそうでないのか.じっくり考えます.

システムのAという特性が,Xという要素の影響をどのように受けるかに興味があるなら, Xという要素が見えるようなモデルが必要です.なるべくシンプルなのがいいよなと, どんどん簡単にしていって,Xが登場しないようなモデルにしてしまったら, 本来の目的には使えなくなってしまいます.いっぽう,Aという特性が,実はさらにこういう 仕組みで決っていて,その仕組みはこんなことの影響も受けて……と際限なく 精緻化していったら,どんどんわけが分からないモデルになってしまいます. 不必要に複雑化しないこともたいせつです. 最初に設定したモデル開発の目的を念頭におきながらモデルのデザインを考えます.

もしかしたら,モデルの設計の段階でお手上げになってしまうかもしれません. 抽象化できるほど対象の理解が深まっていない場合や,測定可能なデータだけからは 対象を再現できない場合です.つまり 計算機に教えられるほどには分かってない, ということです.それはそれでしょうがありません. より理解を深めるにはどうしたらよいか,知恵をしぼるしかありません.

納得のいくモデルのデザインができたら,そのモデルを表現する数式・計算手順を考えます. こういう式にしたがって,こういうふうに計算したら表現できるぞ,ということを具体的に 書き並べます.

数式には,たいていさまざまな定数が含まれます.YはXに比例するという数式は, 比例定数を含みます.そのような定数,あるいはパラメータの具体的な値を決めないと, 数値計算はできません. そこで,それらの値を測定データやこれまでの論文をもとに推定します.

ここで,実はそのようなパラメータは推定のしようがない,というのでは困って しまいます. とられたデータでは必要なパラメータが決められない, 推定可能なパラメータだけを使おうとすると重要なプロセスが抜けてしまう, やむをえず仮のパラメータを与えればモデル化は可能だが,その設定しだいで システムの挙動がどうとでも変わってしまい,なにをやってるのか分からなく なってしまう.どれもありそうなことです. まったく仮想的な思考実験なら別ですが, 多少とも定量的な答えに興味があるならば,パラメータの推定は重要です. この段階で立ち往生しないためには,最初の設計の段階から, 測定可能なデータにもとづいてモデルを動かせるかどうかを 意識しながらモデルを設計しておくことがたいせつです.

なお,現時点では測定できないけれど,将来的には測定できるかもしれないパラメータを 含んだままモデルをつくり,そのパラメータがシステム全体のふるまいに与える 影響を見る,という研究はありえます.その結果,そのパラメータが重要だという ことが分かったらなんとか測定する努力をしてみよう,たいして重要でないという ことが分かったら放っておこう,という判断の材料が得られます.

いよいよ「計算すれば分かる」ところまできたら,あとは計算するだけです. コンピュータに手伝わせる必要があるなら手伝わせる. そのためにプログラムを書く必要があればプログラムを書く. モデル開発というとこのステップが注目されがちですが, ここはほんとに技術的なところです. 「計算すれば分かる」段階に至るまでのステップこそがモデル化の本質だと思います.

データ取りとモデル作りが乖離しないように

必要なデータが入手可能かどうかを考えないモデルの設計がまずいのと同様, どうモデル化するかを考えずにやみくもにデータをとるのもまずい研究方法です. せっかくとったデータが実はモデルに組み込む必要がないプロセスについてのものだったり, 必要なデータが抜けているためにモデルができなかったりといった事態になる危険が 大きいからです.

こうしたことは,とくに複数の人間が共同研究をおこなうときに注意が必要です. モデル担当者はデータ取りを人任せ,調査担当者はモデル開発を人任せというように, データ取りとモデル作りが乖離した共同研究では,不幸な結末に至る危険が大きくなります. モデルの漠然としたイメージしかないままに,調査・実験をおこない, 「データはそろったからモデルにしよう」といってもうまく行かない可能性は大です. あれが抜けてる,これが抜けてる,このデータは要らない,といったことが 続出してもふしぎではありません.

研究者がそれぞれ自分の興味にしたがっていろんなことをやるのは当然です. でも,モデルで使うのだろうと思って取ったデータが不要だったらがっかりですし, 重要なプロセスのデータがそっくり抜けてるためにモデルができなかったら もっとがっかりです.

研究対象をどのようにモデル化するか.そのために必要なパラメータは何か. そのパラメータを得るためにはどのようなデータが必要かなのか. 研究をはじめる段階から,これらについてじゅうぶん具体的に議論していくのが望ましい 研究の進め方だと思います. 「あとは測定し,計算すれば分かる」というところまで, みんなで理解を深める. たとえデータを取る人とモデルを作る人という分担をするにしても,ここまではみなが 共有する必要があります. その共通理解にもとづいて調査・実験やモデル化の作業を進めれば, きっとみのりある共同研究となるでしょう.

この段階を適当に済ませたり,おたがいに遠慮してきちんと議論を詰めなかったりすると, それぞれの研究は進んでも,共同研究としては破綻するという道を辿る危険が多々あります. できれば,関係する各分野にひととおり通じた人がいて議論をリードすれば, お互いに分かったつもりで実はすれ違ってるという事態は避けやすいでしょう. そのような人がいない場合は,とくに心してお互いに納得するまで議論することが必要です.


| Top Page | 植物生態学 |