Imaginantia

思ったことを書きます

モデル

「モデル」という概念について書きます。数学のモデルの方です。普遍的な概念です。

なんとなくで書いた文章です。

 

モノはモノとして実在しますが、それを認識するのは結局個であり、その個が得た「モノ」という認識は、モノそのものではありません。

目の前にはたしかにコップは実在していますが、私達の頭の中にある「コップという存在」は、本当のコップとは幾分異なります。

例えば細かな装飾を思い出せないように。大きさを明確に記述できないように。原子レベルで位置を特定できないように。

だけど、私たちはコップをコップとして触ることが出来ています。何故なら、目の前のコップがそのモノであることが重要なのではなく、コップとして振る舞うことが重要だからです。

いつもと同一のコップでなくとも水は入れられるし、位置が多少ズレていてもそれを掴むことができます。

つまり、「コップ」として思い描くものはモノではないのです。

想起される「コップの性質」を満たす、何らかの仮想的な物体存在のことを、私たちは暗にモノと認識しています。

この仮想物体のことをモデルと言います。

 

所謂「モデル」という言葉はいろんな意味で使われるように見えますが、本質的にはきっと同じです。

3Dモデルは「3次元空間に置けるあるsolidな物体」のモデルであり、同じように「見る」ことが出来る対象です。

絵画のモデルは「描きたい理想的存在」のモデルなんだと思います。それが実在したとしてもモデルはモデルです (即ち、モデルという語に実在性は一切関係ありません)。

シミュレーションにおけるモデルは「世界」のモデルです。その満たすべき性質はシミュレーションの対象に依ります。

即ちここにはモノモデル、そして性質があります。

 

モノの持つ性質を同様に満たすモデルを作り上げることを「表現する」と言います。

このとき、モノそのものを「触る」のではなくモデルを「触る」ことで、モノを「触る」ことと同程度の事柄を実行可能となります。これがモデルの目的です。

いいですか?

 

りんごがいくつかあったとして、その個数という概念はどこから生まれるのでしょうか?

その為には「りんごの個数」に関する私達の認識について、私達は認識しなければなりません。

例えば「何もない」という状況がある。「不可分である『1個』という単位」が存在する。そして「複数のりんごに『1個』のりんごを合わせることができて、これは元の複数のりんごよりも多い」。

そうやって抽出された性質。そこから導き出されるモデルが、自然数です。

現象を、解釈し、モデル化する。普遍的なことです。

数学というのはそれを行う領域のことです。特に「個数」のような概念について。

 

ここから、科学的推論に関する一般的な誤解を否定することができます。

例えば「真か偽で決められるようなものしか議論できない」という発言は、その発言の当事者が真か偽で決められる世界を前提に於いているだけで、それそのものもモデル化の範疇です。事実としてよくある論理体系では真偽不明な命題が存在することがわかっていますし、最初から真偽の狭間にある命題があるとして論理をすすめる体系もあります。

例えば「フィクションと仲が悪い」というのも違っていて、別に科学の対象は現実世界だけではないので、一貫した物理法則のある世界に関しては正しい推論を導くことができます。それは「細かいことに目をつぶる」ことについてもそうで、それは単にモデル化の範疇に含めなければ良いだけです (推論できる領域は狭くなりますが、それで大凡問題ないでしょう)。

さらに言えば「一貫性が時間変化」するようであればそれもモデルに含めます。「人によって違う世界を見ている」ならそれを。「各人で思想が違う」のであればそれをモデルに含めます。

いいですか?

 

現象が何であれ、それをそのまま受け取るようなことは基本的にしません (できません)。それを読み取り、解釈し、モデルを組み立てる、というのが思考の基本的な方針です。

これはエンジニアリングの基本です。現象を制御するためにはその現象をモデル化できていなければならないのです。それ (頭の中でモデルが完成すること) を「理解」と言います。

逆に言えばこれができればモノは要りません。これがプログラマが机の前に座らなくてもプログラムが「組める」理由です。

また、これは「意見の通じない他者と会話する方法」でもあります。即ち、まず「各人は異なる『世界』のモデルを持つ」ということを前提に、相手が持つ世界のモデルを自分の頭の中でモデル化することによって、相手の思考を理解することができるようになるのです。

前提がどれだけ違っていても、その違いそのものが認識できていれば、同じ結論は導けるはずなのです。

まぁその違いの認識が難しいのはそうで、例えば私達の発生するは「思考」のモデルである「文章」のモデルである「音波」です。それを「聞き取り」「意図を理解する」のは自明ではありません。

ですが不可能ではありません。特に、相手の持つ世界全てをモデル化する必要はないのです。対話の中で必要な「相手の世界観念」だけをモデル化すれば良いのです。

それが一貫性を何らかの意味で持つのなら、その上で推論が出来ます。

 

さて、しかし、モデル化が失敗するケースがあります。「矛盾」です。

性質には相反するものがあり、それを共に持つものはありません。その場合、求めている性質そのものが「おかしい」ということになります。

例えば「右へ移動する」ことと「左へ移動する」ことは相反します。「無労力」と「報酬」は相反します。「存在」と「非存在」は相反します。

…本当にそうでしょうか?

例えば「左右に微振動するバネ」はどうですか?「ただ居ることが要件のバイト」はどうですか?「バケツがかぶさっているボール」はどうですか?

どれも「それらしいモデル」かもしれません。ここで行われている事柄は、「解釈」です。自然言語で書かれている文である故、その「現象的意味」は確定していないのです。

対話がうまくいかない (=モデル化に失敗する=矛盾している) とき、そこにはきっと解釈の違いがあります。

マジの矛盾が発生するのは数学くらいです。

矛盾すると思ったら、その瞬間に、それを提示する権利があります。そうしてその矛盾点について対話したとき、きっと解釈の違いが明らかになります。

そうしたとき、対話によって「解釈を変えれば矛盾しない」ことがわかったとき、今までの会話を全て「読み込み」直して再理解し、また本来の対話を続けることができるようになります。

それがあるべき対話だと思います。

そうすれば対話できるものだと思います。

ところで今までの話には一切「感情」についての話は出ていません。即ち矛盾指摘には一切感情を込める必要がないということです。つまりこれはそういうこと (発言を否定されたとしてもそれは唯それだけであって、それ以外の何でもないということ) です。

これはプログラミングに関してももちろんそうで、思った通りに動かない (自身のモデルが期待通り振る舞わない) とき、そこには「何か」(解釈・前提の違い) があるのです。それを認識し、モデルを更新していくことが「学習」ということだと思います。

これが科学が「発展」していく仕組みです。

ね。

 

なんだか最初の話からだいぶ逸れてきた気がしますが、まぁモデル化は普遍的なことがらなのです。みんなやってます。

そういう認識をしているという認識が、何かの役に立つこともあると思います。

おわり。

 


 

だから、「これができてるのにこれができてない、残念」みたいに意見しようとするとき、それは自己の認識を見つめ直すべきなのです。

相手は自分と異なる前提の上に居ます。Z-Fightingしていたとしても、それは相手には「見えてない」のです。だからまぁ、「Z-Fight、よし!」が正しい態度なのです。きっと。

勿論、それが「見えてない」ことを相手が認識したいのであれば、それは話すべきことです。これは創作物へのスタンスの違いという前提の話です。

とはいえ、創作物は「送り手」と「受け手」の関係性だと思うので、受け手のことは考えて然るべきだと思いますが…これは個人の意見ですね。

私はこれ (受け手認識の認識) によって「発言する」ことを正当化しているのです。多分。