ayu-mushi's website

進化、伝統、理性 〜色々なデザイン、最適化

Published
2018-05-05
Last Modified
2018-05-31
Source of This Page(GitHub)
https://github.com/ayu-mushi/ayu-mushi.github.io/blob/develop/src/article/varieties_of_design.mdk

1. はじめに

本能によるデザイン、伝統によるデザイン、経験によるデザイン、理性によるデザイン、機械学習によるデザインなど色々な制作、最適化の手法を列挙し、まとめてみる。 デネットの著作をかなり参考にしている。 物を作る以外の行為・実践の最適化にも同じことは言えるが、デネットの著作の影響でデザインと言っている。 若干面倒になったのでデザインを最適化に置き換えても良い。 書いたきっかけは、ジョセフ・ヒース『啓蒙思想2.0』で、伝統のやり方と理性のやり方を対比していたので、それって対比できるものなのかなと思って、考えてみたことだ。 とりあえずの結論としては、見様見真似による伝達か書物などによる明示的な伝達かという点、伝達されるパターンの明確性の有無、明示化されるものの多さなどで、対比はできると思った。

なお、ここでデザインというのは、視覚的デザインのことをいっているのではなく、物を作ることを広くいっている。

2. デザインそれぞれの説明

2.1. (生物)進化によるデザイン

これは進化が生物やウィルス、臓器などを作ること。主体となる生物は居ない。デネットはこれもデザインに含めている。

2.2. 本能によるデザイン

これはビーバーの巣やクモの巣など。人間が本能で作れるものといえば、唾液や子供とかだろうか。 作るということに絞らなければ、見るとか顔の認識とか恐怖するとか驚くとか幼児の言語学習とかは本能の面が強いだろう。 しかし、経験や人から学ぶこともはんば本能的に行われるだろう。幼児の言語学習は人から学ぶことだから、伝統による方法でもある。 そして、言語学習は明示的/確定的な伝達の基礎になるのだから、理性によるデザインの基礎になるものでもあるだろう。 また、経験によるデザインなどに使う資源となる直感(パターン認識や原因の特定能力が無ければ、経験は機能しないはずである)は本能に近いだろう。 間接的には、進化によるデザインの一種と言える(この区別は面倒だ)。

2.3. 経験によるデザイン

自分の過去の経験でうまくいったものを好む。これははんば本能的に行われるだろう。なぜうまくいったのかを明示的に表したり検討したりはせず、また原因を調べるために条件を能動的に整えたりはしない(過去に実際にたまたま行った行為の結果から学ぶことを考えている。それでも何らかの原因を抽出しないことには機能しないだろうが)ため、迷信や儀式などが累積する場合はある。 強化学習的なもの。

2.4. 伝統によるデザイン

人から学ぶこと。社会的学習。権威ある人、教えることを専門とする人、成功した同業者などはお手本としてよく使われるだろう。 職人が見て盗め、というのが伝統によるデザインの例だ。 また、権威がなくてもたまたまうまくいった他人から学ぶこともあるだろう。 進化によるデザインが生物進化なら、こちらは文化進化か。 この他者から学ぶこともはんば本能的に行われることもあるかもしれない。 理性によるデザイン手法とは、必ずしも明示的に伝達されるわけではないという点で区別される1

つまり見様見真似、無意識の影響などがある。これにより、迷信、儀式などが累積する余地が広がる。 長く広く生き残っているのは、条件を変えても通用するのが多そうだが、非明示的な伝達なので条件や他の部分を変更するとすぐ通用しなくなる場合がありそう。 それゆえに、(じっさいには他の伝統に触れることができる場合でも)地理的・文化的限界の中でのみ共有されることが多そう。

あと、整合性をチェックする機能が無いため、整合性気にしないで習合しまくるか、1つの伝統だけを信奉して生きるか、という選択を迫られるのではないか(どちらもあまりうれしくはなさそうである)。

伝統によるデザインでプログラムが書かれる場合、保守や秘伝のスープ、おまじない的なやつか。 明示化されないコーディングスタイルとか、特に問題無い(場合が多い)ものもある。

伝統という呼び名とは相反するが、短いタイムスパンの伝達であれば流行とも呼ばれるだろう。 ローカルな範囲の伝達であれば、スタイルと呼ばれるだろう。 名前が変わる事から分かるように、このデザインパターン(?)は伝達範囲となる、タイムスパン、人数、地理的範囲などによって性質を大きく変えるのではないか。

ここまでのデザイン手法では、評価では多様な指標を暗黙にまとめていいる。 評価基準には、伝統にのっとっている、流行であるということがそれ自体として評価されたりもする(非専門家にはそのことはあまり評価されないのに)。 手段としての評価と目的の評価はあまり分化していないだろう。

「伝統が作る」と捉える場合と、「伝統に則って作る」と捉える場合とで、「進化によるデザイン」「本能によるデザイン」と対応がある。 間接的には、後者の捉え方は前者の捉え方の一種と言える。

2.5. 理性/工学によるデザイン

技術など。

一言で理性によるデザインの特徴を述べるのは難しい。 理性によるデザインは実際には1つのデザイン手法ではなくてある種のデザイン手法の総称と言ったほうがいいかも知れない。

既存の累積が伝達される点では伝統によるデザインと共通だが、口伝や書物などによって累積が明示的に伝達される点に特徴がある。 つまり、マナーや慣習より、ルール、法律などに近いという特徴。 いくつかの他の特徴はこの点から派生するが、そうでないのもあるはずである。

逆に、口伝や書物によって伝えられるものが、理性的であるとも、必ずしも言えないだろう(つまり厳密に特徴づけているわけではない)。 例としては、暗記による学習など、普通は理性的とは呼ばない。 それを体系化したり、一般法則にまとめて導いたりしたら、理性的と呼ばれるような気がするが。 明示的に暗記することで、来たるべき体系化に役立つこともあるにはあるだろう

伝統によるデザインを暗黙的な伝達に絞らないなら、理性によるデザインはその広義の「伝統によるデザイン」の特殊な事例と考えることもできる。

(以下で明示的であること(表す側の特徴)と確定的であること(表される側の特徴)が混同されているのではないか、と思われるだろうが、明示性と明確性は共進化した、と推測できないか? つまりそれらのミームの特徴はお互いの存在という進化環境のもとで、最も繁栄するのでは)

2.5.1. 評価指標の分節化

前までのデザインでは目標設定が行き当たりばったりだったり、手段と目的が未分化だったり、多様な評価軸を暗黙にまとめていたりなのが多かった(進化では、目標とは単に生き残れという基準があるように見えるという暗黙かつ行き当たりばったりである)。 それに対して、理性によるデザインでは明示的でいくつかの軸に分けた基準、指標を作ることができ、その間の優先順位を明示したり、それらを総合した評価式をつくることもできる。

普通、快楽や苦痛というのはそれ自体を目的として行動がされるだけでなく、別の目標を達成するための手がかりや、損傷や危険のしるし(手段)としても使われるのだが、功利主義においてはそれ自体としての目的という点に特化され、目的は明確な指標を与えられるので、理性によるデザインの極地と言えるかもしれない。

2.5.2. 実践の分節化

うまくいくか/目的を達成するにはどうすればいいか/問題に関係がある事実は何かといったことを調べる(前調べ、テスト)ことと、実際にうまくやること(実行)が分離することも特徴かも知れない。 これにより、患者の治療、飛行機を飛ばすなどの、リスクやコストが大きいことをできるようになったが、スピードが落ちた。 実践の分離の仕方がまずいと、知識が十分でない場合にうまくできなくなって柔軟性が落ちたり、フィードバックがうまく回されなくて全体として失敗したりするかもしれない。 経験によるデザインなどでは、オシツオサレツ生物2のように前調べとテストと実行(PDCA?)が一緒くたになっていた。

最終ゴールとサブゴールを分けることもできる。

コントロールされた実験を行うのも、知るという目的が明確だからだと言える。

さらに進むと、問題の一般構造の性質・解法について調べることと、計測などでどの構造に当てはまるか仮説を推測したり反証したりが分離するかもしれない(数学の使用、一般化の手法)。

2.5.3. 分析的手法

細かく、できれば少数の基礎的なパーツ(構成物質や物理的部分でなくとも、サブシステムやモジュール、法則・ルールという場合もある)に分割してその組み合わさり方とその性質を調べる、などの手法はよく使われるだろう。 分析的手法により、何が有効で何が有効でないかを細かく検討でき、創発的性質が出ないような組み合わせ方と分割方法を見つければ、調べるのに不要な影響を取り除ける。 (創発という言葉にはポジティブな響きがあるが、プログラミングにおいてモジュールやサブシステムの性質からシステム全体の性質が創発したり、部分式の性質から組み合わせた式の性質が創発していたりしたらうんざりすることは間違いない) 進化や伝統にはアドホックなやり方が多いが、理性による手法ではそういうのは一般化がうまくいってない証拠と考えられるだろう。

コントロールされた実験を分析的手法と組み合わせると有用である。

2.5.4. 普遍性

順序を踏むことで、どんな人でも頑張れば(メモリ量、使用時間が理想化すれば)辿れるようになる。 ひらめきに頼った本能的な手順が、使う命令の種類が豊富で一部のマシンしか実行できないがコード量は短いプログラムだとすれば、理性の方法は使う命令の種類は少ないのでたくさんのマシンで動くがコード量は多くなるプログラムのような感じか。

(メモリ量、使用時間などは理想化し、無限にあると考えよう!)

2.5.5. メタ的思考

明示的なので、メタ的思考も容易になるだろう。「手段/目的」「ゴール/サブゴール」「理論/実用」「構造/内容」「暗黙的/明示的」「能動的/受動的」「分化/未分化」などの区別も、理性が、理性的あるいはそうでない実践をメタ的に評価したり説明したりするために作り出した区別だと考えられる。 「手段/目的」「ゴール/サブゴール」「理論/実用」のような区別は、理性的実践自身に適用された場合にはよく説明できるが、他の手法での実践にはうまく使えない3。 他の区別には、理性的実践自身に適用された場合以外でも当てはまるものもあるだろう(「分化/未分化」など)。

ある種の概念が発明されると、(評価・説明だけでなく)実践を再現・再構成するだけの資源としても使われるかもしれない。 「前を見ろ」の「前」とか「見る」っていうのは、行為を再構成するのに便利な抽象化だ。 数学における公理は、数学的証明(の評価)という実践のうち、重要な性質を全て再構成するだけの資源を与えてくれる。

他の例としては、料理のレシピなど。

理性と本能の区別は、プログラム内蔵型コンピュータ4とそうでないコンピュータの区別としても考えられるかもしれない。

2.5.6. 批判的思考

明示的にすることによって、単に累積するだけでなく批判や訂正がうまくできるようになるかもしれない。 これまでのデザイン手法では、残ってる理由も評価基準も明示的ではなかったので、全体として漠然と(比較する)以外に評価するのがしにくかった。

だが、分析的思考に基づく批判の場合、分割と組み合わせの選択がうまくいっていないと、間違って累積を排除してしまうことにもつながることもあるだろう。 また、理由がないと思ったものはまだ明示的に知られていないだけかもしれない。

メタ的思考や分析的手法と合わせて、漸進的改良だけでなくフルスクラッチでの作り直しを可能にする。

2.5.7. 専門分化

これまでのデザイン手法では、1つのことだけうまくやっても残らない場合も多かったと思うが、他人が組み合わせられるような累積が残っていくことで、1つだけをうまくやっても残るようになった。 他の分野の累積も(単なるアナロジーでなく)組み合わせやすくなるだろう。 伝統によるデザインと同じく複数人でやるのに適している。また、固有の特徴としては部門が多い組織でやるのに適している。 明示的なコミュニケーションができるようになることで、役割などを作れ、専門分化(モジュール化)ができるようになるというのはメッセージ指向のオブジェクト指向でもよく言われることではないか。 理性以前のデザイン手法では、モジュール同士は密に結合するより無い、のではないか。

設計者と評価者が別になることで、手段と目的の分離が明確になるだろう。

2.5.8. 発見の文脈と正当化の文脈の分離

発見の文脈が単にはじまりと過程というだけでない明確な分離をするのも、理性によるデザインの特徴だろう。

2.5.9. まとめ

工程や要素を分割統治して、分けたそれを書物などで明示的に伝達し、あとで統合する点に特徴がある。

プログラム内蔵型コンピュータとよく似た特徴がある。

2.6. 機械学習によるデザイン

この場合、作ってるのは人間でも動物でもなくプログラムだが(比喩的に言えば。間接的に人間が作ってるとも言えるが)、これは強化学習やニューラルネットワークの場合、経験によるデザインに近いと思う。 遺伝的アルゴリズムで制作アルゴリズムを作ったら、本能によるデザインに近くなるが、遺伝的アルゴリズム自体は、進化によるデザインだ。 機械学習アルゴリズム自体は、主に理性によるデザインによって作られたはずである。 評価基準は、基本的に人が作っているので明示的で、評価軸が複数あれば分離しているだろう。 ただし、強化学習では暗黙に多様な軸を持つ行き当たりばったりな基準を育てることもできる。

また、機械学習でなく古典的記号処理のAI的なアプローチの場合、理性によるデザインに近い分節化されたデザイン実践を行うだろう。

3. デザイン手法の比較

スピードは遅い順に、進化によるデザイン < 理性によるデザイン ? 伝統によるデザイン < 経験によるデザイン < 本能によるデザイン といった感じか。 理性によるデザインと伝統によるデザインは、色々なタイムスパンで行われるだろうし、どこまでの時間をカウントするかが明確でない(「たったの30秒で…」「伝統の300年、経験の40年と実践の30秒だ」)。 理性によるデザインの場合、累積だけでなく工程も多いため出来上がるのにも膨大な時間がかかるということが多そうだが、伝統によるデザインは工程を分けたりはあんまないので累積するのに時間がかかるが作るのは早くできるということもあるだろう。 進化によるデザインは、非常に長い時間を掛けて行われるだろう。

明示的な方が情報の保持期間長いので理性によるデザインの方が長い気もするけど、フルスクラッチの作り直しが容易という性質によって微妙なところがあるため「?」とした。

本能や経験によるデザインは、問題の複雑さにもよるが、工程などはなく、直感に反する動作も無いため、すぐ出来上がる場合が多いのではないか(その直感の進化の時間は長いよ!)。 伝統では、直感に反するのがたまにあるかもしれない。自分は理由を知らないが、残っているものだ。それは理由があったり、当時はあったが今はなかったり、過学習だったりだろう。 理性によるデザインでは、かなり直感に反する動作があるだろうと思う。 自身では理由を知らないでやっている場合もあるだろうが、明示的であり、書物が残っているだろうから頑張れば分かるレベルだろう。 伝統によるデザインの場合、累積が残ってきた理由は歴史の闇に埋もれている場合があるかもしれない。 本能によるデザインの場合、なぜそうなのか 理解 はしていないが、直感 には符合するという奇妙な事態になることもあるだろう。 経験や伝統では、過学習や、トラウマのようなことがある。

行き当たりばったりでうまくいったのをやるだけの方法では、局所最適解の可能性が厳しくなってくるが、新しさを快く感じるようにすることで緩和できるかもしれない。 この場合も、「新しさ」というのが目的と手段が未分化である。


1.非明示的伝達に限る場合を狭義の伝統によるデザイン、限らない場合を広義の伝統によるデザインと呼ぶことにする。

2.ルーズ・ミリカンの用語。ミリカンによれば、記述的な表象(○○である)と指令的な表象(○○しよう)の機能を兼ね備えるもので、ここから記述的表象と指令的表象の特化したものが生まれる。

3.偶然、使える場合もあると思うが。あと、理性によるデザインでも、手段と目的を分化しない形で意思決定を形式化することもありそう

4.メモリ内に実行するプログラムも処理するデータも保持するコンピュータ。