人工知能の等価機能主義的な社会システム理論

人工知能の研究開発は、人工知能のアーキテクチャそれ自体をブラックボックス化した上で進めていかなければならない。そして、人工知能の研究開発に関わるエンジニアや研究者たちの人間関係もまた、ブラックボックス的であることを認識しなければならない。

このブラックボックス性を前提とするなら、人工知能の研究開発に関わるソフトウェアエンジニアやアーキテクトに求められる資質は、恐らく不確定要素を見抜くことに長けておくことだろう。そのための「方法」と「理論」として、私はドイツの社会学者ニクラス・ルーマンの「等価機能主義的社会システム理論」を推奨したい。

概要

人工知能の研究開発にも「ブラックボックス」が押し寄せてきた!!

「人工知能(Artificial Intelligence: AI)」という全貌を見通し難い抽象的な概念を研究開発の主題にするには、明確な判断基準で選定された方法(Method)と理論(Theory)が必要になる。

「構造」の「理解」よりも「機能」の「利用」を

とりわけTensorFlowCNTKChainerH2Oなどのように、人工知能の機械学習の様々なライブラリが普及するようになれば、そのエンドユーザとなる後続のエンジニアやデータ分析者たちは、それらのアーキテクチャユースケースに応じてブラックボックス化されたコンポーネントとして機能的に利用することを余儀無くされる。ソフトウェアエンジニアやアーキテクトは既に、人工知能の研究開発における方法と理論の判断において、次の選択に迫られているということを、再度自覚せざるを得なくなっている。

  1. 既存のアーキテクチャの構造内部を解析することで、既存の人工知能の機械学習を改修していく。
  2. 既存のアーキテクチャをブラックボックス化したまま、そのインターフェイスを機能的に再利用することで、新たな価値を生み出す。

私が推奨するのは後者のブラックボックス化の選択肢だけだ。ただしこれは、単なるソフトウェアエンジニアやアーキテクトの視点から観た場合の発想であるという訳ではない。

ユーザー・イリュージョン

一見すると、この立場はオブジェクト指向設計にかなりよく似ている。私の発想をアラン・ケイの用語で言い換えるなら、人工知能の研究開発は「ユーザー・イリュージョン(User Illusion)」によって成立する。

つまり、我々人間には人工知能の構造の全貌を「理解」し尽すことはできないが、そのインターフェイスを「利用」することはできる。「利用」することを以って、「理解」することの負担から免除される。だから、重要なのはユースケース駆動型の開発とアーキテクチャ・セントリック・デザインに他ならない。

人工知能を巡る人間関係もブラックボックス化されてきた

しかし、このように述べただけでは、ブラックボックス化の発想が単なるソフトウェア工学の範疇にしか適用されないという誤解を与えるかもしれない。実際のところ、このアーキテクチャの機能的な利用を重視する立場は、人工知能の研究開発のあらゆるコミュニケーションと関係してくるだろう。人工知能の機械学習の開発プロジェクトのコミュニケーションは勿論、その前提となる上流工程や超上流工程の企画や商品設計におけるコミュニケーションとて、例外ではない。無論、最終的にはエンドユーザとのコミュニケーションも関連してくる。

こうしたコミュニケーションは、既にブラックボックス化されている。例えばノマド、クラウドソーシング、フリーランス、フリーエージェントなどといった単一の開発組織に属さない身軽なフットワークを兼ね備えたエンジニアやデザイナーが増えたことで、それぞれの開発組織における人材の流動性が高まった。

他方では、SDK、API、ライブラリ、Linuxディストリビューション、AWSクラウドコンポーネント、Google Cloud Platformなどが、単一の開発組織に従事せずともそれに匹敵し得る成果物を挙げるツールやインターフェイスを提供している。たとえ個人の開発者であっても、諸々の「関数(function)」を「機能(function)」的に活用することによって、低コストで高品質なプロダクトを製作できるようになっている。

プログラマも、見ず知らずの者が記述したソースコードをGitHubを介して再利用することもあるだろう。親密な関係にある他のエンジニアとペアプログラミングすることは、手法の一つだが、それを選び続ける必然性が無い。手を組めるエンジニアは、世界中にいる。これらの状況が意味するのは、人工知能の研究開発に関わる者たちの人間関係の機能的な代替可能性が高まったということだ。

目的と手段の逆転、バズワード化、「Xで何ができる?」

テクノロジーに習熟しているエンジニアたちが人工知能の機械学習のアーキテクチャをそのコードを含めて解析しようと努力する一方で、テクノロジーに詳しくない経営者やセールスパーソンたちは、テクノロジーの加速的な進化に追い着くことができずにいる。

ビッグデータで何ができる?」というのは、2012年ごろによく見かけたキャッチフレーズであった。ここ最近の動向と照らし合わせるなら、「アドテクで何ができる?」、「FinTechで何ができる?」、そして「機械学習で何ができる?」といったフレーズが流行しても不思議ではないだろう。

こうした「Xで何ができる?」というフレーズが言い表しているのは、この「X」を「手段」とした場合に可能となる「目的」は何なのかという問いだ。しかしテクノロジーに詳しくない経営者たちやセールスパーソンたちがバズワード化の波に押させれてこの「X」にばかり着目してしまえば、「手段」の追求が「目的」になってしまう。それは、「目的」と「手段」が逆転してしまうということだ。

テクノロジーの根源的な偶発性

この類の右往左往した経営者やセールスパーソンたちを責め立てる意味は、全く無い。エンジニア出身の経営者やセールスエンジニアがシンギュラリティを演出するゲームのプレイヤーになれば良いだけの話だからだ。むしろ我々が注意しなければならないのは、こうした経営者やセールスパーソンの存在こそが、人工知能の研究開発に「機能」概念を接続させる必要性を助長しているということだろう。「Xで何ができる?」という問いは、扱い切れないほどの無数に遍在する「可能性」だからだ。

現状認識として、この事態は、「偶発性(Kontingenz)」という概念で捉えておいた方が良い。これは様相論理学の概念で、「不可能性と必然性を同時に否定した状態や状況」を意味する。例えば「ビッグデータを活用することが偶発的である」と述べた場合、このことが意味するのは、「ビッグデータを活用することは『可能』ではあるが、それを活用することは『必然』ではない」ということになる。「スモールデータでも『可能』であることを、ビッグデータで実践することに、『必然性』は無い」といったロジックなら、容易に例示できるだろう。

結局のところ、「Xで何ができる?」というフレーズが言い表しているのは、この「X」に代入されていた「ビッグデータ」を選択することが偶発的であったということだ。他にも選択「可能」な選択肢がある中で、何故「ビッグデータ」を選択しなければならなかったのかといった具合に、経営者やセールスパーソンたちは偶発性ゆえの「選択の負担」に曝されていた。もとより彼らにとっては特に、この「X」は未知であった。「X」は「理解」できない。だが「利用」することは「可能」だ。しかし「利用」する「必然性」は無い。そして根本的に、様々なテクノロジーが躍進してきたことも相まって、この「X」の数が多過ぎる。

かくして、Googleをはじめとした様々なプラットフォーマーたちによってライブラリ化された人工知能の機械学習をはじめとしたテクノロジーは、選択「可能」な未知なる「X」として、我々の前に立ち塞がることになった。「X」はブラックボックス化されている。人工知能を参照する経営戦略や営業戦略の文脈でさえ、「機能」概念を見直さなければならない。

人工知能の研究開発でも機能概念を見直さなければならない

したがって我々は、次の二つの観点から、「機能(Function)」という概念を見直さなければならない。

  • 人工知能のアーキテクチャはブラックボックス化して機能的に利用せざるを得ない。
  • 人工知能の研究開発を巡るコミュニケーションも、ブラックボックス化されている。

機能概念を見直すにあたり、私は従来のソフトウェア工学で論じられてきた機能概念では不十分であると考えている。何故なら、ここで取り上げる機能概念は、ソフトウェアの機能のみならず、コミュニケーションの機能をも指し示しているからだ。冒頭で述べたように、私がドイツの社会学者ニクラス・ルーマンの「等価機能主義」を引き合いに出そうとしているのは、このためでもある。

等価機能主義の「方法」

ドイツの社会学者ニクラス・ルーマンの「等価機能主義」は、非常にシンプルな思考技術だ。簡単に言えば、この方法は、次の5つのステップによって成り立っている。

等価機能主義的な思考技術の5つのステップ

  1. 問題を設定する。
  2. 問題設定を前提とした上で、その解決策として役立つ既知の選択肢を活用する。
  3. 問題設定を前提とした上で、その解決策として役立つ未知の選択肢を探索する。
  4. 探索して発見した新たな選択肢を既知の選択肢と比較する。
  5. 比較した上で、特定の選択肢を問題解決策として実践する。

このように表現すると、非常に簡単で、尚且つ当たり前の思考技術であるかのように思える。しかし、この既知の選択肢、未知の選択肢、比較、そして特定の選択肢といった概念を詳細に説明するなら、これがただごとではないということがわかってくると思う。

「機能」という概念で言い換えると

等価機能主義は、複数の「機能的等価物(funktionalen Aquivalenten)」の「比較(Vergleich)」を経由して、特定の問題解決策を選択して実践していく。

ここでいう「機能する」というのは、単に問題の解決において有用であること、役立つこと、メリットがあるということを意味しているに過ぎない。そして、「機能的に等価である」というのは、特定の問題設定を前提とした上で、その問題の解決に際して同様に機能していることを意味している。選択肢Aと選択肢Bが機能的に等価となるのは、特定の問題Xの解決に、双方とも有用で役立ちメリットを発揮している場合のみだ。

注意しなければならないのは、任意の問題解決策を恣意的に羅列しても、機能的等価物を提示したことにはならないということだ。例えば「イチローよりも早く走ること」が問題である場合、自動車と飛行機は機能的に等価と見做せる。だが「空を飛ぶこと」が問題である場合、自動車と飛行機は機能的に等価ではない。自動車には飛行することができないためだ。このように、あくまで同一の問題の解決に役立つことが、機能的等価物の条件となる

等価機能主義者が比較を実施する場合、ブレインストーミングした結果浮上してきた選択肢や恣意的に羅列した選択肢を比較する訳ではない。あくまで、特定の問題設定を前提とした上で、その解決に資する機能的等価物の比較のみを着眼とする

概して、等価機能主義者は、無数に遍在する複数の選択肢を「機能」概念で分類する。等価機能主義においては、特定の問題設定を前提とした上で、「機能的等価物であるが故に比較可能な選択肢」と「機能的等価物ではないが故に比較可能ではない選択肢」とを区別することが重視される。この問題設定と機能的等価性を前提とした選択肢の選択を特に「機能分析(Funktionsanalyse)」と呼ぶ。

目的志向か、問題志向か

恐らく大多数のプロジェクトマネジメントにおいて、「機能」は「達成されるべき目的」として「定義」される傾向にあるだろう。しかしこのように定義してしまうと、それは事前に予期されて、意図された目的の達成に資する処理や振る舞いだけが「機能」であるという、視野の狭い結論に至ってしまう。曲がりなりにも「技術的特異点(シンギュラリティ)」と関係している人工知能の研究開発において、こうした短絡的な目的意識は通用しないはずだ。

これに対して等価機能主義は、因果関係や目的-手段の図式を前提とした機能概念ではなく、数学的な機能概念を推奨している。「機能(function)」という概念を数学的な「関数(function)」として捉えることによって、視野の狭い目的意識から距離を取っている。

機能(function)」を「関数(function)」として捉えることは、ソフトウェアエンジニアやデータサイエンティストから観れば、特に新しい発想ではないだろう。しかしこれがアルゴリズムやデータ構造の話ではなく、あくまで社会現象やコミュニケーションに関する話であることを念頭に置けば、この発想の射程の広さが実感できるはずだ。

少しだけ社会科学の歴史を遡るなら

等価機能主義を形作ってきた社会科学のとりわけ機能主義的社会学では、目的論に束縛されない機能概念が追究されてきた。

例えば社会学者タルコット・パーソンズは、ある行為が複合的に構成された一つのシステム統一体を存続させるために貢献する場合に限り、その行為を機能と見做した。パーソンズが定義するシステムとは、行為についてのシステムであった。それらの行為は相互に依存し合う関係にある。そしてその相互依存関係によって、システムは環境に対して相対的に不変なパタンを維持し得るようになる。あらゆる行為は、それが含まれているシステムの存続に貢献することによって、一つの機能を有するようになる。この場合、行為は単なる原因なのではない。システムのためにこそ行為したという点で、それは結果にもなり得るのだ。

しかしパーソンズのようにシステムの存続に対する貢献として機能概念を捉え、それを認識論の現場で応用したところで、結局のところ因果関係を事後的に説明しているに過ぎない。ある行為が実行された原因はシステムが存続するためであると考えることもできれば、システムが存続しなければならなくなった結果としてその行為が実行されたとも考えることができる。いずれにせよこの機能概念は、因果論的な科学の方法論を要求していることになる。

因果論的な方法を採用した場合に陥ってしまう誤謬となるのは、原因と結果の関連付けから生じる問題だ。原因と結果は一対一の関係として成立している訳ではない。多くの原因から一つの結果が起こり得る場合もあれば、一つの原因が多くの結果を引き起こす場合もある。結果から原因を説明することはもはや不可能だ。特定の原因と特定の結果の間に不変の関係を見出そうとしても、成功するはずがない。何故なら、そうした関係についての別様の可能性を排除することができないからだ。諸原因と諸結果の組み合わせは、今想定できるよりも遥かに膨大な数となる。仏陀にはじまる原始仏教徒たちが見出した「因縁」という用語が物語るように、<一切>が<一切>と関連付いている可能性すら、我々は排除できない。

したがって、因果論的な方法に準拠する観察者が特定の原因と特定の結果の関連付けを確定させるには、それ以外の別のあり方でもあり得る可能性を原理的に排除しなければならない。言い換えれば、因果関係を論じた場合の結論は、その結論とは別の可能性から目を逸らした場合に成り立つ。因果論とは、視野が狭い者たちによって選択された理論だということになる。

数学的な機能概念が社会科学に取り入れられた歴史的背景

この論点から等価機能主義者ルーマンは、機能概念を因果論の束縛から解放することになった。ルーマンは、自身の等価機能主義的な方法を記述する上で、未開社会の慣習や儀礼を観察したことで有名な文化人類学者マリノフスキの機能分析を引き合いに出している。

マリノフスキの分析によれば、儀式の機能は、情緒的に対応困難な事態に適用するという問題を参照することで説明されている。飢餓という破局に満ちた当時の世界は、とても安定した情緒を保ち続けるほど安定した生活世界ではなかった。これに対して儀式は、その集団において正しいとされる行動の可能性や必要性を形式的に定義してくれる。その形式は、集団に共通の行動を促すことによって、その集団の団結心を高めてくれるのである。

ルーマンは、このマリノフスキの機能分析を例示することで、機能分析の機能を説明している。機能分析の機能とは比較可能性を拓くことにある。機能の分析者は、個々の分析対象を抽象化した上で関連付ける。その抽象化における観点は、また別の対象を分析できるように視野を拡張してくれる

マリノフスキが儀式の機能を情緒的に対応困難な情況への適応にあると言う場合、それによって参照されている問題の解決策として、他に何があり得るかという問いを暗に仄めかしている。それは言わば、儀式の機能的等価物の可能性に我々の注意を引いている。この場合、儀式の機能的等価物として、ユーモアや現実逃避などが挙げられるだろう。

こうした機能的等価物の比較において重要となるのは、特定の原因と特定の結果との間の法則のような尤もらしい関係を確定させることではない。むしろ不確実な結果の観点から、より確実な原因の機能的等価物を発見することこそが重要になる。

ルーマンは、この機能的等価物という概念を機能主義の脱因果論を果たす上での鍵として捉えていた。彼は機能を結果を生み出す原因としてではなく、むしろ物事を規定する「意味図式(Sinnschema)」として記述した。この意味図式は、機能的等価物同士を比較する領域を組織化している。個々の事象は個別具体的に生起しているが故に代替不可能であるかのように思える。だが等価機能主義の観点から観れば、そうした個々の事象もまた一定の意味図式を共有する限りにおいて代替可能で比較可能な関係を構成する。

「抽象化」の重要性を振り返る

以上の機能概念は、ルーマンも述べているように、数学的な機能概念に基づいている。機能とは、字義通り「関数(Funktionen)」に他ならない。関数は入力される引数次第で異なる結果を出力する。ある引数が入力されて実行している場合でも、その関数は、別のやり方で機能する可能性を排除している訳ではない。入力される引数が別の変数となるのなら、無論<入力された引数>と<実行処理>とを「原因」と「結果」の一対一の関係として認識することは許されない。

関数がそうした別様の可能性を排除せずに作動し得るのは、その関数自体が抽象化されているためだ。そうして抽象化された複数の関数を観察するアーキテクトなどのような観察者ならば、設計時にどの関数を利用することで機能要件を満たすべきかを比較することができる。プログラマならば、既に特定のシステムの中で機能している関数を別様の機能的に等価な関数に代替することによって、リファクタリングを実践することもできるだろう。

システムの機能を数学的な「関数」として把握できる設計者は、入力値と出力値との間に伴う「別の組み合わせの可能性を考慮に入れることで、「拡張性(extensibility / scalability)」の高いシステムを設計することを可能にする。以後の運用との兼ね合いからシステムの一部を置き換えて性能を向上させる仕組みや、ソフトウェアの部品を追加することで機能を増やす仕組みを可能にするには、因果論的に特定されている因果関係が数学的な機能概念においては特殊事例(use case)の一つに過ぎないと想定しておかなければならない。

機能的関係が因果関係の特殊事例なのではなく、因果関係こそが機能的関係の特殊事例であると言える。この発想の転換は、等価機能分析に色濃く反映されている。等価機能主義は別のあり方でも可能な問題解決策の探索を重視する。しかしこの脱因果論的な方法は、原因から結果の仮説を設定する「仮説検証型の思考回路」や理由から結論を組み立てていく「演繹的な思考回路」とは区別される。その一方で、この徹底的に抽象化を重視する方法は、個別具体的な事例に関する経験則の蓄積によって一般化可能な真理を見出す「帰納的な推論」とも異なっている。あえて位置付けるのであれば、等価機能分析は問題解決策の探索発見を重視するヒューリスティック(Heuristik)な方法であると言える。探索して発見があれば、それで良いのだ。

機能的等価物の機能的等価物?

等価機能主義的に機能的等価物の代替可能性を強調し過ぎれば、論理学で言うところの「無限後退」に陥る可能性を指摘されてしまうだろう。つまり、ある選択肢と代替可能な機能的等価物があるのならば、その機能的等価物の機能的等価物にまで視野を広げなければならないという訳だ。そうして機能的等価物を探究し続ければ、遂には等価機能主義それ自体の機能的等価物にまで注意を払わなければならなくなる。

そうした批判の妥当性を否定するつもりはない。しかし、等価機能主義的な方法の機能は視野を拡張させることにのみある訳ではない。この方法は「選択と集中」に基づく決断の精神においても援用することができる。つまり、機能的に等価な選択肢を捨象する際にも、この等価機能分析は機能する。理由は単純だ。選択肢Aと選択肢Bが機能的に等価であることを確認したのならば、後はどちらを選択しても良いからだ。ダーツで決めても良い。サイコロを振っても良い。どちらを選択するにせよ、既にメリットや有用性は等価であることがわかっている。

等価機能主義的な思考技術は、このように、偶発性ゆえの「選択の負担」も軽減してくれる。

社会システムの「理論」

ルーマンの等価機能主義的な思考技術を支えていたのは、徹底的に抽象化された理論であった。ルーマンは、理論を記述することによって、関連する概念を抽象化し続けた。この抽象化の狙いは、ソフトウェアエンジニアやアーキテクトがオブジェクト指向設計やデザイン・パタンを実践する場合の意図と非常に類似している。等価機能主義における抽象化の意義も、特定の問題設定において機能している問題解決策を別の問題設定においても機能するように、その「再利用可能性(Reusability)」を高めることにある

ルーマンが抽象的な理論として採用していたのは、奇しくも「意味論」と「社会システム理論」であった。何が「奇しくも」なのかと言えば、これら双方が共通して人工知能の研究開発においても「再利用可能」であることだ。とりわけ後者の「社会システム理論」は、ソフトウェア工学とも縁のある「サイバネティクス(Cybernetics)」の理論を等価機能主義的に拡張した理論としても位置付けられる。そしてこの「サイバネティクス」の概念こそが、歴史的には人工知能研究とも密接に関わる概念であった。

サイバネティクスのキー概念としてのフィードバック

このサイバネティクスと我々の研究開発の実践の現場とを関連付けるキー概念は、「フィードバック(Feedback)」であると言える。ユーザ・インターフェースで何かを入力するエンドユーザも、コマンドラインで何らかのコマンドを入力するエンジニアも、既にシステムによる「フィードバック(Feedback)」に慣れ親しんでいる。

システムに何かを入力すれば、別の何かを出力する。このインプットとアウトプットの間にあるスループットがフィードバックと無関係ではないことは、Webサイトの設計や実装に何度か携わっていけば、経験則として把握できるようになるだろう。

一方、アドテクノロジーの配信アルゴリズムやビッグデータのレコメンドエンジンなどのように、Webサイトの構築経験程度では想像も付かないほどに複雑なシステムを設計する場合、この「フィードバック」という概念を強調して設計していくことが大きな課題になる。何故なら、このI/Oの中間で動作しているフィードバックこそが、アルゴリズムを「ブラックボックス」として捉えられるほどまでに複雑な様相を呈しているからだ。

サイバネティクスのフィードバック理論

サイバネティクス(Cybernetics)」という概念を提唱したのは、数学者であり工学者でもあったノーバート・ウィーナーだ。この用語は、ギリシア語の「操舵手」を意味する「キベルネテス(Κυβερνήτης)」に由来している。ウィーナーはサイバネティクスを『動物と機械における制御と通信の科学(Communication and Control in the Animal and the Machine)』と定義した。それは我々人間と呼ばれる存在を含めた動物を一種の機械として見立てることで、自己の制御や情報の通信をはじめとした様々な営みを概念として記述できるようにする理論である。

第二次世界大戦後にこの概念が提唱されて以来、サイバネティクスの理論家たちは動物や機械の概念モデルを構築してきた。例えば「フィードバック・ループ(Feedback Loop)」や循環的な因果関係を前提とした自己制御の機構が概念的に記述されることによって、コンピュータの設計や産業ロボットの開発に多大な影響を与えた。サイバネティクスの影響範囲となったのは、設計や開発だけではない。一方では政治学や経営学の間でも、この概念は注目を集めていた。と言うのもサイバネティクスは、「制御(control)」という概念に関するモデルを提供していた。制御する側と制御される側の関係を記述するサイバネティクス理論は、指導や統率の技術を求める政治学や経営学に一つの理論的な基礎を与えていた。

フィードバックとフィードフォワードの差異

サイバネティクス的なシステムの制御機能には二つの形式がある。それは「フィードフォワード(Feedforward)」と「フィードバック(Feedback)」だ。フィードフォワード的な制御は、予測に基づく制御である。これに対してフィードバック的な制御は、結果に基づく制御となる。

フィードフォワード的に作動するシステムは、予め計画された通りに自己を制御する。もしこれにより予測された通りの結果が得られたのならば、システムはそのままの作動を継続するだろう。

その好ましき結果がとりわけシステムの能力増強や強い動機付けとなり得る場合には、そのフィードバックは「ポジティブ・フィードバック(Positive Feedback)」と呼ばれる。一方、逆に結果が好ましくない場合には、軌道を修正する必要がある。そうした結果はシステムの作動を揺るがす攪乱となる。それはシステムにとって否定的な結果であるという意味で、「ネガティブ・フィードバック(Negative Feedback)」と呼ばれる。

グレゴリー・ベイトソンが説明しているように、サイバネティクスの理論はシステムの特定の状態が現に起きた理由や原因を記述しているのではない。この理論の記述は否定的な婉曲話法となっている。

言い換えれば、サイバネティクスの理論家たちは、「別のあり方でもあり得る現象」を踏まえた上で、「如何にして今起きている通りの現象が実際に起きたのか」を記述している。それは実際に起きた現象を直接記述しているのではなく、実際には起きなかった現象との「比較」から現に起きた現象の特性を見極めようとする。

端的に言えば、サイバネティクスの理論は「比較」の観点となる。この比較の観点から紡ぎ出された概念モデルは、実際に起きて観察対象となった現象とは類似していながらも観察することが困難極まりない現象を説明する上でのメタファーとしても機能する。我々が「ブラックボックス(black box)」と呼ぶコンピュータの構造的な複雑性をサイバネティクス的なシステムとして把握し得るのは、こうした概念モデルの機能的な単純化から恩恵を受けてきたためだ。

サイバネティクスの限界

しかしながら如何に精巧に組み立てられた概念モデルを以ってしても、サイバネティクス的な理論には遂に説明し切れなかった論点がある。それは「システムは如何にして現実として構成され得たのか」という究極的な根源に関する説明だ。

コンピュータのように、目に見える物質が現実化される仕組みを説明する分には、さして問題とはならないだろう。それは大方、アーキテクトが抱える設計の問題となる。しかしながら他方で、生命や心、あるいは社会などといったシステムが現実化される過程を説明する際には、限界が視えてくる。と言うのも、この類のシステムは常に、気付いた時には既に<構成>されているか、あるいは<創発的に進化(emergente Evolution)>しているためだ。

例えば社会学者タルコット・パーソンズが「万人の万人に対する闘争」という自然状態から出発した哲学者のトマス・ホッブズを取り上げる場合には、諸個人が功利的に行為する中で「社会システムの秩序は如何にして可能になるのかを問題視していた。だがこの問題設定は「社会システムが実現している」という既成事実を暗に自明視している。この社会学的な問題設定にサイバネティクスを適用しても、既成事実としての社会システムの作動の実態を観察するだけに留まってしまう。故に「如何にして社会システムを設計できるのかという謎は謎のまま残る。

セカンドオーダー・サイバネティクスの「固有値」

この謎を解明するには、ネオ・サイバネティクスの理論家であるハインツ・フォン・フェルスターまで待たねばならなかった。彼は「固有値(Eigenwerte)」という数学的な概念を用いることで、この謎の解明へと迫った。ここでいう固有値とは、システムや関数の回帰的なネットワークが構成される中で、後続する作動や演算の出発点となる一時的に安定した状態が生み出される現象を指す。

単純な例を挙げておこう。例えば次のような再帰的な関数は、固有値を構成する。

function eigenwerte ( x ) {
    y = (x/2) + 1;
    print(y);
    eigenwerte ( y );
}

この関数を実行すると、引数Xを2で割って1を加えるという処理が再帰的に実行される。実際に実行させてみればわかることだが、その計算結果は徐々に2へと収束していく。注意して欲しいのは、ここで引数となるxの初期値が何であれ、それが実数であれば、最終的には2へと収束していくという点だ。どれほど膨大な実数を入力しようと、最終的には2となる。この関数にとっての2という数値が、固有値と呼ばれる概念となる。関数eigenwerteは、最終的には2という固有値を獲得して、それを出力し続けるという意味で、安定的に動作することになる。

この関数eigenwerteにおいては、初期値xは偶発的だ。xに「必然性」は無い。10を入れることも、74を入れることも、12923439などといった数値を入れることも「可能」だ。初期において、この関数が出力する数値は、出力する度に変異している。この意味でこの関数に秩序など観られない。だが最終的には2を冗長的に出力し続けるようになる。

「観察するシステム」と「観察されるシステム」の差異

フェルスターは、この固有値という数学的概念を持ち出しながら、生命や心、知能や知性、あるいは「社会」などといったシステムが、「ノイズから秩序を生成するかの如く、最終的には自律的に安定化するまでのメカニズムに迫ろうとした。確かに、初めは無秩序にも思えたeigenwerteという関数が次第に2を安定的に出力するに至るプロセスには、何処か「ノイズからの秩序」を連想させるストーリーが感じられる。このメカニズムに迫ろうとする彼にとってのキー概念となったのが、「観察するシステム(Observing System)」という概念だ。

「観察するシステム」は、「観察されるシステム(Observed System)」ではない。「観察されるシステム」は、我々エンジニアが言うところの機能要件や非機能要件が外部の環境から付与されている「他律的なシステム」に過ぎない。これに対して「観察するシステム」は、そうした機能要件や非機能要件などといった動作の条件を自己自身で構成する自律的なシステムと考えられる。

ウィーナーのサイバネティクス的な理論で記述されるシステムは、皆「観察されるシステム」であった。かつてのサイバネティクスの理論家たちが論及するシステムは、その理論的な視点に依拠した観察者によって記述されたシステムであった。それは、観察者の視点が観察対象となるシステムの外部に位置していることを意味している。これに対してフェルスターの「観察するシステム」は、観察者の視点がむしろシステムの内部に位置することを告げている。

システム自身と外部環境の差異

重要なのは、この固有値の計算を可能にする機能(function)が、「自己言及的(Selbstreferentiellen)」になるということだ。実際、上述したeigenwerteという関数(function)は、eigenwerte自体に言及して、再帰的に呼び出している。これは、言い換えれば、関数eigenwerteが、<関数eigenwerte自身>と<それ以外の外部環境>とを「区別」しているということを物語っている。

<システム自身>と<その外部環境>をシステム自身で区別せよ(Draw a Distinction)。これこそが、再帰的で自己言及的で自律的な「観察するシステム」に求められる最大の機能要件であると言える。フェルスターが論じた「システムの内部における観察者の視点の正体は、システムの内部において、<システム自身>と<その外部環境>の「差異」を構成する「区別」の視点に他ならない。そしてこのシステムの自己言及性という観点は、兼ねてよりルーマンが人間の心理や社会をシステムとして把握しようとした際に行き着いていた観点でもあった。

オートポイエーシス概念

神経生物学者のウンベルト・マトゥラーナとフランシスコ・ヴァレラは、フェルスターが論じた「システムの内部における観察者の視点」という概念を徹底的に追究することで、「オートポイエティック・システム(autopoietischen Systems)」という概念を提唱するに至った。

オートポイエーシス概念の抽象化と再利用可能性

念のために付言しておくと、オートポイエーシスとは、もともとはマトゥラーナとヴァレラが生命システムの作動を説明する際に提唱した概念であった。ルーマンは、このオートポイエーシス概念を抽象化することで、自身の問題設定において再利用している。つまり、人間の心理や社会というシステムが「如何にして可能になるのか」という問題設定を前提とした上で、その解決策としてオートポイエティック・システム理論を再利用したということだ。

だがマトゥラーナとヴァレラにとって、心理システムや社会システムの作動は二次的な問題に過ぎなかった。だからルーマンがオートポイエーシス概念を自らのシステム理論に組み込もうとした際には、それが不用意なアナロジーやメタファーであると批判した者たちもいた。

しかしルーマンは、この概念をアナロジーやメタファーとして導入していた訳ではなかった。ルーマンによれば、生命システムに限らず、オートポイエーシスは普遍的な現象となる。それが科学・学問の歴史上偶然にも生命システムの作動において初めて発見されたというだけのことなのだ。

オートポイエティック・システムの作動形式

オートポイエティック・システムは、純粋な自己再生産によって存続するシステムだ。システムと外部環境における情報の送受信は遮断されている。だからこそシステムは根本的に自律的に作動することができている。これは、オートポイエティック・システムという概念が、外部環境の要因からフィードバックを得ようとするかつてのサイバネティクス的なシステム概念とは根本的に異なることを意味している。

尤も、オートポイエティック・システムが環境からの情報を受け付けないというのは、語弊があるかもしれない。精確に注釈すれば、オートポイエティック・システムは外部の情報からの影響は受ける。だが「その影響をどのように受けるのか」は、完全にシステム自らが決める。実際、例えば私がTwitterで「人工知能」という言葉を投稿することで他のエンドユーザの視覚に刺激を与えることはできるだろう。だがその刺激を受けた相手の心理システムが、どのような「人工知能」を連想するのかについては、その相手が自分自身で決めることだ。私には、相手の心理状態を制御することはできない。

人工知能の研究開発の「実践」

等価機能主義の「方法」と社会システムの「理論」を前提とした場合、ソフトウェアエンジニアやアーキテクトが人工知能の研究開発の「実践」に対して採るべき基本的なスタンスも見直さなければならなくなる。

人工知能のオートポイエーシス性

人工知能のとりわけ機械学習は、予め設計されていたアルゴリズムの通りに作動するというよりは、むしろ入力されたデータに依存する形式で作動している。

ベイズフィルターでさえ自己言及的に作動する

このことは、例えばベイズフィルターのように、単純な「教師あり学習」を観るだけでも明らかだろう。同一のアルゴリズムを前提としていても、入力されて学習したデータが異なれば、次に実行する分類や予測の精度や方向性は全く別物になる。そしてその入力データが複雑で膨大になれば、周囲の人間には、そのアルゴリズムが次にどのような動作を示すのかが予測できなくなる。

通時的に観れば、人工知能は自己言及的に作動している。例えばベイズフィルターの場合、逐次的合理性を前提としたベイズ更新において、前回のベイズ推定で計算した事後分布を事前分布として再利用している。このことが意味するのは、ベイズフィルターが、自己自身の計算結果に言及することで新たな計算を実行しているということだ。

確かに人工知能の機械学習は、自己自身以外の環境にも言及する。だが、そうした人工知能は一旦自己自身のアルゴリズムを参照した上で、その外部言及対象による影響をどのように受けるのかを決定している。この意味で、人工知能の外部言及は、<外部に言及している自己>への言及となる

強化学習問題の枠組みですらオートポイエティックに生成されている

強化学習(Reinforcement Learning)」は、人工知能の自己言及性とオートポイエーシス性を指し示す好例となる。一般に「強化学習問題(Reinforcement Learning Problem)」と呼ばれている問題設定は、目的を達成するための相互作用(interaction)から学習していく問題の枠組み(framing of the problem)を意味する。

強化学習問題における環境、報酬、行動、状態の概念

学習者や意思決定者は、ここではエージェント(agent)と呼ばれている。このエージェントの外部のあらゆる諸要素から構成されて、エージェントとの相互作用対象となり得る概念の全ては、「環境(environment)」と呼ばれる。

環境はまた、報酬(reward)の発生源でもある。エージェントは、この報酬獲得を最大化することを目指して行動(action)を選択していく。エージェントの行動選択可能性は、環境の状態(state)に左右される。状態は、エージェントが利用可能な情報を意味する抽象的な概念だ。それは環境の一部の情報が前処理されることによって得られる。

強化学習アルゴリズムのマルコフ性

強化学習問題の枠組みでは、エージェントが状態から選択可能な行動を決定する確率の写像(map)の計算処理が実装される。この写像を特にエージェントの方策(policy)と呼ばれる。強化学習問題ではこの方策の最適化が目指される。

その際、その数学的計算を単純化する技術として、マルコフ性(Markov property)が仮定される。これにより、強化学習アルゴリズムは意思決定や価値が現在の状態にのみ依存している関数であるという前提を構築している。ただしこの技術を導入したことによる制約条件として、強化学習問題では状態と報酬の個数が有限であるという前提も引き受けることになっている。

強化学習アルゴリズムの価値関数とマルコフ方程式

ほぼ全ての強化学習アルゴリズムは、価値関数(value function)に基づく報酬評価を実行している。この関数は状態の関数を意味する状態価値関数(state-value function)や状態と行動の対応関係の関数を意味する行動価値関数(action-value function)として記述される。これら諸関数は総じてエージェントが「ある状態sであること」がどの程度の良いのかを評価する際に言及される。この「どの程度良いのか」は、その状態sであることによって将来的に期待される報酬として把握される。

この強化学習アルゴリズムにおける価値関数は、再帰的であることが指摘されている。任意の方策πと状態sに対して、sの価値とsから可能な後続の諸状態の価値との間には、以下のような価値Vに対するベルマン方程式(Bellman equation)が成り立っている。

$$V^{\pi}(s)=\sum_a\pi(s,a)\sum_{s’}\Pr[s_{t+1}=s’|s_t=s,a_t=a]\Bigl[\mathrm{E}[r_{t+1}|s_t=s,a_t=a,s_{t+1}=s’]+\gamma V^{\pi}(s’)\Bigr]$$

この方程式は、ある時点における状態と後続の状態との関連を物語っている。前提にあるのは、エージェントがある状態から後続の状態を予測することだ。ベルマン方程式は全ての状態の可能性をその生起確率の重み付けによって取り扱う。それによれば、開始時の初期状態の価値は、「期待される後続の諸状態の価値」と、「それに達するまでの間に得られる報酬」との和と等価になる。

強化学習アルゴリズムの自己言及性とオートポイエーシス性

こうした一連の基礎的な用語を確認するだけでも、強化学習アルゴリズムの自己言及性やオートポイエーシス性を垣間見ることができる。ポイントは、ここでいう「環境」が、強化学習のアルゴリズムが構成した「モデル(model)」に他ならないということだ。環境は確かにエージェントの外部に位置する。それは非エージェントであって、エージェントではない。だが強化学習問題の枠組みの全体として観るなら、エージェントも環境も強化学習のアルゴリズム自身が構成したモデルに他ならない。言い換えれば、エージェントの環境に対する外部言及は、実際には強化学習のアルゴリズムが構成したモデルによるモデルへの自己言及を意味する。

それ故、環境を発生源として発見される報酬もまた、実際には強化学習のアルゴリズムによって構成されている。強化学習のアルゴリズムがエージェントを探索させることで獲得し得る報酬は、実際には強化学習のアルゴリズム自身が構成しているという点で、やはりオートポイエティックに生成された報酬であるということになる。報酬ですら、外部要因として自然発生した訳ではなく、あくまでも強化学習問題の枠組みの内部で構成されている

人工知能に与えられる影響

実際、私はTwitterの人工知能botを開発して自由にツイートやリツイートを実行させて久しい。単純なベイズフィルター以外にも、確率的バンディット問題の解決策となるThompson Samplingや、新情報の探索や既知の情報の再利用を「方策オフ型」で選択するQ学習類似度計算自動要約アルゴリズムをはじめとした初歩的な自然言語処理など、様々なアルゴリズムを組み合わせて設計している。

しかしbotの挙動は、設計者である私自身でも、予測できていない状況だ。と言うのも、このbotは私の趣味嗜好以外にも、Twitter上のタイムラインという外部環境による刺激も受け取っているからだ。そしてこの刺激のデータに対し、「その影響をどのように受けるのか」は、この人工知能自身で決めている。

オートポイエティック・システムとしての人工知能

こうして考えてみると、人工知能にオートポイエーシス性を見出すことは不可能ではない。むしろルーマンの等価機能主義的社会システム理論の視点から観るなら、生命システムや心理システムや社会システムの理論的記述に留まっている既存のオートポイエーシス概念を一旦「抽象化」して、人工知能の研究開発において「再利用」することは、別段難しいことではない。

しかし、人間と人工知能を同一視するのは、間違いだろう。と言うのも、双方の固有値は異なる概念で記述されるからだ。例えば心理システムの固有値は神経システムの電気的ネットワークを前提とした<思考についての思考>という再帰的な思考によって構成される。社会システムの固有値ならば、心理システムの思考を前提とした<コミュニケーションについてのコミュニケーション>という再帰的なコミュニケーションによって構成される。一方、人工知能の固有値となり得るのは、ベイズ更新に象徴されるように、恐らく<データ処理についてのデータ処理>という再帰的なデータ処理になるはずだ。

人工知能と人間の機能的等価性

マイケル・A・オズボーンらの『雇用の未来(future of employment)』によれば、クリエイティブではない職業のほぼ全てが人工知能に奪われる可能性があるという。この仮説の正当性はともかくとして、人間の仕事を機械やコンピュータに委託すること自体は、歴史上珍しいことではない。ソフトウェアエンジニアがソフトウェア要求定義書を作成する場合も、まず顧客の業務フローをUMLのユースケース図やアクティビティ図で作画した上で、それを自動化する方法を考えている。ある意味で我々が開発してきたアーキテクチャは、既に人間の仕事を奪っている。

問題こそが問題だ

人工知能に人間の仕事を委託する場合であっても、あるいは挑発的に「人間の仕事を奪わせる」場合であっても、そのソフトウェア要求定義は機能概念との関連から実施されなければならない。「人工知能で何ができる?」という疑問が問題なのではない。問題こそが問題だ。そうした右往左往した問いから始めるのではなく、まずは顧客やエンドユーザが直面している問題を設定することから始めなければならない。

この問題設定を実践して初めて、我々は「人間のリソースを投入する」という選択肢と「人工知能の力を借りる」という選択肢が「機能的に等価」なのか否かを「分類」できるようになる。特定の問題設定を前提とした上で、人工知能がその問題の解決に有用ではないという認識が得られるのならば、無理に人工知能を利用する必要は無い。問題設定次第では、人間と人工知能が「機能的に等価」になり得る場合もあるだろう。人間と人工知能の「比較」の観点は、この時初めて成り立つことになる。そしてこの「比較」の観点が成り立って初めて、人間と人工知能の機能的な代替可能性に着目できるようになる。

偶発性に曝されて……

しかしながら、等価機能主義的な社会システム理論に準拠する以上は、特定の問題設定に対するあらゆる問題解決策は得てして根源的に偶発的であるという想定を忘れてはならない。問題解決策とは、機能する選択肢を意味する。そして機能するというのは、繰り返すように、「ブラックボックス」的であるということでもある。あらゆる問題解決策がブラックボックスである以上、機能する選択肢を選択する者は、それ故の偶発性に曝されることになる。

人間であれ、人工知能であれ、それによって可能になる問題解決策がブラックボックスであることに変わりは無い。人間による問題解決策にせよ、人工知能による問題解決策にせよ、我々はその「構造」の内部を「理解」し尽すことができない。それが有用であること、役立っていること、メリットを提供していることを「観察」することを以って、問題が解決していると判断するしかない。もう一度アラン・ケイの用語を借用しておこう。問題を解決しているというのは、実はユーザー・イリュージョンなのだ

したがって、等価機能主義的な社会システム理論を前提とした場合、問題の「解決」と問題の「解消」の差異を曖昧にするというリスクを背負うことになる。問題が「解決」したように視えるのは、実は錯覚(Illusion)かもしれない。実際にはただ、問題が無害化され、不可視化されているだけかもしれない。また別の機会には、一度「解決」したと思い込んでいた問題が再発するかもしれない。だがそうした場合でも、等価機能主義的な社会システム理論に依拠する観察者は、ただ問題を再設定して、機能分析を続けるだけだろう。

こうして観ると、等価機能主義的な社会システム理論は恣意主義や虚無主義を肯定してしまう発想に思えるかもしれない。しかしその肯定すらも偶発的だ。等価機能主義的な社会システム理論の視座に立ちつつ、尚も別のあり方も可能であるとするならば、次の問題設定はこうなる。どのような開発プロセスならば、人工知能の研究開発が可能になるのか。偶発性に曝された状況下において、人工知能の設計は如何にして可能にあるのか

人工知能の開発プロセス

人工知能の機能分析によって、ソフトウェアエンジニアやアーキテクトは、人工知能のユースケースを抽出することが可能になるだろう。しかし、複雑なアルゴリズムを構造内部に兼ね備えたアーキテクチャを設計する場合、単にユースケースに駆動された開発に終始するだけではなく、アーキテクチャを中心として想定した設計にも注力することが求められる。

ユースケース駆動(Usecase-Driven)の開発

ユースケース駆動の開発では、ユースケース図やユースケース記述を利用することで、ソフトウェア要求を俯瞰するところから出発する。

開発計画や開発プロセスはユースケース単位で実施される。ユースケースは複雑・複合的なシステムの諸要素を有意味な機能として纏め上げることを可能にする。システムの諸要素の間には関連や重複も含まれる。しかしそれらはモデルに基づいて追跡可能性を担保できるため、システムの全体最適を阻害する矛盾は回避できる。

アーキテクチャ・セントリック・デザイン

一方、これに対して、アーキテクチャを中心とした設計の思想は、それぞれのコンポーネントのインターフェイス仕様の設計を重視している。それはアーキテクチャの内部環境というよりは、インターフェイスで接続され得る外部環境との関連において強調される。

したがって、アーキテクチャの内部環境はオブジェクト指向やコンポーネント指向に基づき「ブラックボックス化」されて構わない。言い換えれば、アーキテクチャ・セントリックにデザインするというのは、諸々のコンポーネントを如何にして「機能」的に利用可能にするのかを問うということだ

漸進的な開発プロセスと反復型の開発プロセスの差異

アーキテクチャ・セントリックとは、重要なコアとなるアーキテクチャを可能な限り開発早期に確立させるべく、アーキテクチャを中心にして開発を進めるということを意味する。このデザインは、漸進的(Incremental)な開発反復型(Iterative)の開発の区別を導入することで特徴付けることができる。

ユースケース駆動で開発する場合、そのプロセスは漸進的(Incremental)になる。漸進的な開発は、新機能を積み上げていく方法を意味する。この方法は、繰り返しの単位となるユースケースによってはソフトウェア構造が全く異なる場合や、相互依存関連が見受けられない複数のシステムの同時開発に向いている。しかし各ユースケースが同様のソフトウェアに依存している場合、抽象化の余地が生まれる。そこでアーキテクチャ設計へと着眼が移る。

アーキテクチャ・セントリック・デザインを採用した場合、そのプロセスは反復型(Iterative)になる。反復型の開発では、ソフトウェアの全体や部分に関して、最初は最低限のコンポーネントとして開発し、その後徐々に肉付けしていく方法を採る。アーキテクチャ・セントリック・デザインでは、ミッション・クリティカルな部分や複雑高度なソフトウェアについて、徐々に確認しながら肉付けしていき、コンポーネントのブラックボックス内部を充実化していくことになる。

人工知能のコアとなるアーキテクチャ

等価機能主義的社会システム理論の視点から観れば、人工知能の研究開発におけるアーキテクチャ設計で特定するべきなのは、人工知能のコアとなるアーキテクチャに他ならない。そしてそのアーキテクチャは、一言で言えば、「固有値の構成を担う関数」であると言える。

ベイズフィルターであれば、それは単純にベイズ更新を担う関数であるということになるだろう。一方、深層学習(Deep learning)であれば特徴抽出に如何にして自己言及性を付加させるのかが肝になるはずだ。強化学習(Reinforcement learning)であれば、自己自身が計算した環境のモデルの中の状態でエージェントの行動によって得られた報酬に対する自己言及を如何にして設計するのかが主題になるだろう。

しかし忘れてはならないのは、こうした人工知能の機械学習が、既に「観察されるシステム」ではなく「観察するシステム」として機能し得るようになっているということだ。それが「観察されるシステム」ではないということは、もはやソフトウェアエンジニアやアーキテクトは、自身の成果物としてリリースした機械学習装置が、自身の設計した通りに動作するとは考えられなくなる。

要求定義の無限後退

機械学習のような人工知能が「観察するシステム」である以上、そのシステムが設計された通りには動作する保証は無い。この偶発性は、ソフトウェアエンジニアやアーキテクトの要求定義(Requirement definition)の可能性を脅かしているように思える。だが論理学的に考えるなら、この問題は単に定義の限界を指し示しているだけに過ぎない。「定義」という概念に関する次のような思考実験を展開して観れば、このことはよくわかってくるはずだ。

要求を定義するには、<要求を定義するためのルールやドキュメントのフォーマット>の定義が要求される。だがそれらを定義するには、やはり<そのための手続き>を定義する必要がある。要求の定義は、<定義>の定義を要求し、<<定義>の定義>の定義を要求する。論理学的に言えば、この前提の再帰的な遡及は「無限後退」と呼ばれている。

しかしながら現実問題として、我々はさしてこうした一連の前提を遡及してはいない。我々は、必ず何処かでこの再帰を停止させている。これはあくまでも思考実験だ。無限に遡及できるはずが無い。だからこうも言えるだろう。要求定義は、前提に対する思考を止めた時に成立する。要求定義は、「より良き要求定義」を断念した場合にのみ達成される

差異から始まり差異に終わる

こうした要求定義のパラドックスを踏まえると、我々はもはや「同一性」や「確実性」を保証してくれる「定義に縋り付く訳にはいかない。むしろ逆に、「差異(Differenzen)」こそが開発の主題であるべきだ。

差異を前提とした開発が抽象化の技術によって補われる点については、開発における「設計(design)」を怠らないエンジニアたちならば、経験的に見出せるだろう。もともと「設計(design)」という概念は、ラテン語のdesignareを由来としているとされる。英語のdistinctionと同様に、この用語は「区別することによる意味付与」を含意している。より機能主義的に言えば、設計とは有意味な問題解決策を指し示すことに他ならない。

オブジェクト指向設計(Object Oriented Design)」の背景にある設計思想は、常にこの設計概念の意味論を継承してきた。オブジェクト指向設計によって提示される問題解決策は、大方抽象化との関連から説明される。

汎用性や拡張性の高い抽象化されたクラスやコンポーネント群は、皆未規定の入出力データに伴う差異に対応するべく設計されている。まさに「安定的抽象化の原則(Stable Abstractions Principle: SAP)」が指し示す通り、抽象性の高いインターフェイスは変更される可能性が低いが故に、安定したパッケージ機能を提供できる。安定であるということは、抽象化されているということなのだ。

だから、「安定的依存の原則(Stable Dependencies Principle:SDP)」が言い表しているのは、抽象性の高いクラスへの依存なのであって、具体性の高いクラスへの依存は不安定と見做される。「責任を負う」というのは、抽象性を高めることに他ならない。

だが多くの責任を負ったクラスは、それぞれの処理の差異を吸収するべく、その内部仕様を複雑化させる。それ故にオブジェクト指向設計では、その複雑性を縮減するべく、クラスの区別を推奨する「単一責任の原則(Single Responsibility Principle: SRP)」が動員される。

設計の根源的無根拠性と根源的偶発性

区別せよ(draw a distinction)」。これこそが、最も汎用性の高い「デザイン・パタン(design pattern)」の一つとなる。どのような区別でも構わない。根拠は不要だ。何故なら、<あの区別>ではなく<この区別>を利用する根拠を問うということは、もう一つ別の区別、すなわち<あの区別>と<この区別>の区別を無根拠に前提化せざるを得ないからだ。この無根拠な前提化が、我々の「盲点(Blind spot)」を派生させる。逆に言えば、盲点が無ければ何も区別できない。盲点無き設計はあり得ないということだ。

そのためにも、我々は設計における区別の営みを「盲点を移行させる技術」として受け入れなければならない。区別することによって、世界が、社会が、そしてシステムが、有意味な秩序として構成される。こうして「定義」された概念形式が盲点無しには結実し得ないことは、「観察するシステム」の自律的な挙動が指し示す偶発性によって暴露される。

我々ソフトウェアエンジニアやアーキテクトたちは、自分自身が人工知能を対象とした「観察するシステム」であるという自覚を抱いている。だがそれだけでは足りない。我々の観察もまた、人工知能という「観察するシステム」によって観察されている。今や人類と人工知能は、相互に観察し合い、また相互に盲点を指摘し合う関係にある。この<観察の観察>によって、盲点を暴露し合うことによる新たな探索と発見が可能になる

こうして等価機能主義的な社会システム理論に立脚したアーキテクチャ設計は、システムの観察を観察し続けることによって、諸概念の意味を形式化してはまた別のあり方にもあり得る概念形式を再導入し続ける。この設計は、意味を生成しては破壊するという絶え間無き循環によって根を下ろす。

まとめ

固有値という単純明快な数学的概念とオートポイエーシスという普遍的な概念を等価機能主義的な社会システム理論によって抽象化した上で再利用するのならば、「人工知能の設計は如何にして可能になるのか」という問題設定に対するソフトウェア要求定義アーキテクチャ設計も、不可能な問題解決ではなくなる。

ただしそれは、偶発的ブラックボックスとなる。偶発性の高い外部環境に曝される場合においては特に、人工知能の挙動は学習や探索の対象となったデータに左右される。言い換えれば、人工知能が思い通りに動作することを開発プロジェクトの成功要件として「定義」した場合には、その人工知能が偶発的に動作する可能性がリスクとなる。

現在このリスクは、技術的特異点(シンギュラリティ)として、既に全人類が引き受けている。しかし、等価機能主義的な社会システム理論に準拠するソフトウェアエンジニアやアーキテクトであれば、そうしたブラックボックス性ゆえのリスクに直面した場合であっても、数多のブラックボックスをブラックボックスのまま機能的に分類し、比較し、代替し、拡張することによって、上手く対処していけるだろう。その開発プロセスの具体的な実践の形式は、専らユースケース駆動開発とアーキテクチャ・セントリック・デザインの区別を導入することから始まる。

参考資料と参考文献

私はかつて、ニクラス・ルーマンの等価機能主義的社会システム理論を活用することで、1970年代のハッカーたちの歴史を観察したことがある。厳密に言えば、社会システム理論よりは意味論の方が積極的に活用してはいるが、社会システムの理論も存分に活用している。

以下のURL先に記載している。

http://accel-brain.com/

この方法と理論のユースケースとしては、他の書籍や論文よりも、比較的現代のソフトウェアエンジニアやアーキテクトに関係が強いと言えるだろう。逆に、ルーマン理論を追究することそれ自体を目的としている文系の非技術者が上位のWebサイトを閲覧しても、全く何も伝わらないと思う。

そうした読者向けとして、以下ではこのWebページで記述したことに関わる参考資料や参考文献を列挙しておく。

人工知能に関する参考資料

オブジェクト指向設計に関する参考資料

開発プロセスに関する参考資料

等価機能主義の「方法」に関する参考文献

  • Luhmann, Niklas. (1968) Vertrauen. Ein Mechanismus der Reduktion sozialer Komplexität, Stuttgart.
  • Luhmann, Niklas. (1975) Macht, Stuttgart.
  • Luhmann, Niklas. (1984) Soziale Systeme, Frankfurt am Main : Suhrkamp.
  • Luhmann, Niklas. (1991) “Funktion und Kausalität.” Soziologische Aufklärung 1. VS Verlag für Sozialwissenschaften, S.9-30.

社会システムの「理論」に関する参考文献

  • Bateson, Gregory. (1972) Steps to an Ecology of Mind: Collected Essays in Anthropology, Psychiatry, Evolution, and Epistemology, University of Chicago Press.
  • Foerster, Heinz von. (1984) Observing Systems, 2d ed. Salinas, Calif. Intersystems Publications.
  • Foerster, Heinz von. (1985) Sicht und Einsicht: Versuche zu einer operativen Erkenntnistheorie, Vieweg.
  • Luhmann, Niklas. (1977) Funktion der Religion, Suhrkamp.
  • Luhmann, Niklas. (1990) Die Wissenschaft der Gesellschaft, Frankfurt am Main, Suhrkamp.
  • Luhmann, Niklas. (1990) Essays on self-reference, New York : Columbia University Press.
  • Luhmann, Niklas. (1992) “Kommunikation mit Zettelkasten: Ein Erfahrungsbericht”. In Kieserling, Andre. ed, Universitat als Milieu. Bielefeld: Haux Verlag, S.53-61.
  • Luhmann, Niklas. (1995) Die Kunst der Gesellschaft, Suhrkamp Verlag, Frankfurt.
  • Luhmann, Niklas. (1997) Die Gesellschaft der Gesellschaft, Frankfurt/M, Suhrkamp.
  • Luhmann, Niklas. (1997) “Globalization or World Society?: How to conceive of modern society,” International Review of Sociology March 1997, Vol. 7 Issue 1, pp67-79.
  • Luhmann, Niklas., Schorr, Karl Eberhard. (1999) Reflexionsprobleme im Erziehungssystem, Suhrkamp.
  • Luhmann, Niklas. (2000) Die Politik der Gesellschaft, Suhrkamp.
  • Luhmann, Niklas. (2000) Die Religion der Gesellschaft, Suhrkamp.
  • Luhmann, Niklas. (2000) “Familiarity, Confidence, Trust: Problems and Alternatives”, In Gambetta, Diego. ed, Trust: Making and peaking Cooperative Relations, electronic edition, Department of Sociology, University of Oxford, chapter 6, pp. 94-107.
  • Luhmann, Niklas. (2002) Das Erziehungssystem der Gesellschaft, Suhrkamp Verlag, Frankfurt am Main.
  • Luhmann, Niklas. (2004) Die Realität der Massenmedien, VS Verlag.
  • Maturana, Humberto R., Varela, Francisco J. (1980) Autopoiesis and cognition : the realization of the living, Dordrecht, Holland ; Boston : D. Reidel Pub.
  • Spencer Brown, George. (1979) Laws of Form, Neudruck, New York.
  • Wiener, Norbert. (1948) Cybernetics, or Communication and Control in the Animal and the Machine. Cambridge: MIT Press.