ハッカー倫理に準拠した人工知能のアーキテクチャ設計

スポンサーリンク

問題再設定:人工物のインターフェイス、あるいは「全体」を凌駕する「部分」

サイモンは、人工物自然物の区別を導入することで、「人工科学」を提唱した。人工物は、人工物それ自体の内部環境外部環境の接点として、すなわち「インターフェイス」として位置付けられる。内部環境がその人工物構造的な内容である一方で、外部環境はその人工物機能する環境を言い表す。もし一方の環境が他方の環境に適合しているのならば、人工物は意図された目的のために役立つ。

コンピュータは、人間が開発した人工物の中でも、とりわけ変幻自在である。正常に作動している限り、コンピュータの実行処理は基本的に機能的な諸要素を組織化した特性を持つ。基礎的な演算速度から観ても、こうした特性を推測できるであろう。例えばデータ処理の速度は、ある種の緩慢な構成要素がコンピュータには含まれていないということを暗に仄めかしている。これを抜きにして考えても、実際に作動しているコンピュータ特徴は、ハードウェアの性質とはほぼ無縁であることがわかる。コンピュータは、あくまでもその機能的な諸要素を組織化した人工物である。そうした構成要素の機能だけが、大雑把に言えば、システム全体の動作に関連しているのである。

モジュール化の規則(Rule of Modularity)」、「構成の規則(Rule of Composition)」、「拡張性の規則(Rule of Extensibility)」を標榜するUnix哲学も指し示している通り、あらゆるコンピュータは単純な基礎的諸要素から構成された小さな単位を組み立てることで設計されており、またそうあるべきとされている。しかも個々の小規模な部品は、インターフェイス越しに、ブラックボックスとして相互に参照し合う関係にある。事実、伝統的にUnixは、デバイスに依存しない単純なストリーム指向のテクストデータを読み書きするプログラムの記述を強く推奨してきた。古くからUnixにおいては、プログラムは可能な限り単純で小規模なフィルタとして機能するように設計されていた。個々のフィルタは、抽象化するならば、入力されたテクスト形式のデータを別のあり方にもあり得るテクストデータのストリームに変換して出力する。

こうしたストリーミングデータは、オブジェクト指向におけるメッセージ概念を彷彿とさせる。Unixにおける各プログラムは、フィルタとして機能すると共に、ストリーミングデータの処理部分を言わば隠蔽している。まさにこの隠蔽によって、個々のプログラムは独立性を保持するのである。クリーンなインターフェイス結合される単純な部品を設計するということは、ソフトウェアの全体としての複合性を縮減する。と言うのも、個々の部品にインターフェイスを被せてカプセル化しておけば、問題が局所化されるためである。そうすることで、全体の問題の解決へと注力して徒労に終わるリスクを侵さずに済む。

それ故、コンピュータをはじめとした人工物インターフェイス設計においては、とりわけ「小は美なり(Small is beautiful)」という発想こそが重要となる。小さなシステムには、大きなシステムには無い利点が幾つもある。Unixの思想家たちは、これを「美しい」と表現した。確かに小さなプログラムは、一つの問題を解決することに特化している。それは必要最小限のアルゴリズムしか構造化していない。巨大なプログラムは、構造的な複合性を増大させる。複合化したプログラムのソースコードは、その可読性や保守性を大きく損なわせている。そして高度に複合化したシステムは、全体最適化パラドックスを招いてしまう。これに対し、小さなプログラムは、インターフェイス仕様に基づいた機能的な再利用可能性機能的な拡張性によって、別のあり方でもあり得るプログラムとの自由な組み合わせを可能にする。この自由度が、変更容易性を実現し、変更に強い設計を可能にするのである。

「小さなプログラムは多くを為さない。これらは精々一つか二つの機能を実行するに過ぎず、それ以上のことはほとんど果たさない。しかしながら、こうした小さなプログラムを組み合わせれば、その真の力を経験することになる。全体は部分の総和以上となる。大規模で複合的な課題は簡単に処理される。コマンドライン上でそれらを簡単に導入するだけで、新しいアプリケーションを記述することも可能だ。」
Gancarz, M. (2003). Linux and the Unix philosophy. Digital Press., 引用はp.17より。

これを前提とすれば、アーキテクチャ設計において俯瞰すべきなのは、この<小さな人工物>と<小さな人工物>の<小さな接点>となる<小さなインターフェイス>である。この人工物の粒度は、無論相対的であると共に、再帰的でもある。得てして、ある相対的に大きな人工物は、別の複数の小さな人工物におけるインターフェイス上の結合によって構成されているものだ。アーキテクトの「全体」に対する俯瞰的な巨視的視点は、その「部分」に対する微視的な視点と併存していなければならないのである。

参考文献

アーキテクチャ設計に関する参考文献

Lattanze, A. J. (2008). Architecting Software Intensive Systems: A Practitioners Guide. CRC Press.

深層学習の深層アーキテクチャに関する参考文献

D.E. Rumelhart, G.E. Hinton, and R.J. Williams, “Learning representations of back-propagation errors,” Nature, 323, 533-536, 1986.

強化学習問題の枠組みにおける強化学習アーキテクチャに関する参考文献

Sutton, R. S. (1992). Reinforcement learning architectures. Proceedings ISKIT,92.
Sutton, R. S., & Barto, A. G. (1998). Reinforcement learning: An introduction. MIT press.

パターン・ランゲージ関連の参考文献

Alexander, Christopher. (1965) “A city is not a tree,” Architectural forum. Vol.122, No.1.
Alexander, Christopher, S. Ishikawa, and M. Silverstein. (1977) Pattern languages, Center for Environmental Structure 2.
Alexander, Christopher. (1979) The Timeless Way of Building, Oxford University Press, New York.
Beck, Kent., Johnson, Ralph. (1994) “Patterns generate architectures,” Object-Oriented Programming. Springer Berlin Heidelberg, pp139-149.
Beck, Kent. (1999) “Embracing change with extreme programming,” Computer 32.10. pp70-77.
Beck, Kent. (2003) Test-driven development: by example. Addison-Wesley Professional.
Buschmann, F., Henney, K., & Schimdt, D. (2007). Pattern-oriented Software Architecture: On Patterns and Pattern Language (Vol. 5). John wiley & sons.
Gamma, Erich., Helm, Richard., Johnson, Ralph., Vlissides, John. (1995) Design Patterns: Elements of Reusable Object-Oriented Software, Reading: Addison-Wesley.
Shalloway, A., & Trott, J. R. (2004). Design patterns explained: a new perspective on object-oriented design. Pearson Education.

人工科学に関する参考文献

Simon, Herbert Alexander. (1969) The sciences of the artificial, Cambridge, MA.
Simon, Herbert Alexander. (1976) Administrative behavior: a study of decision-making processes in administrative organization, 3th Edition, Free Press.
Simon, Herbert Alexander. (1977) The new science of management decision, revised edition, Englewood Cliffs.
Simon, Herbert Alexander. (1996) The sciences of the artificial, 3rd, MIT press.

全体最適化に関する参考文献

Lessig, Lawrence. (1999) CODE and other laws of cyberspace, Basic Books New York.
Lvi-strauss, Claude. (1966) “The Savage Mind,” University of Chicago Press.
Turkle, Sherry. (1984) The second self : computers and the human spirit, New York : Simon and Schuster.
Turkle, Sherry., Papert, Seymour. (1992) “Epistemological Pluralism and the Revaluation of the Concrete,” Journal of Mathematical Behavior, Vol. 11, No.1, pp.3-33.
Turkle, Sherry. (1995) Life on the screen : identity in the age of the Internet, New York : Simon & Schuster.

ラショナル統一プロセスに関する参考文献

Kruchten, P. (2001). Rational Unified Process Best Practices for Software Development Teams. Canada: rational Software.

オブジェクト指向に関する参考文献と参考資料

Coplien, J., Hoffman, D., & Weiss, D. (1998). Commonality and variability in software engineering. Software, IEEE, 15(6), 37-45.
Kay, A. C. (1996). The early history of Smalltalk. In History of programming languages—II (pp. 511-598). ACM.
Shalloway, A., & Trott, J. R. (2004). Design patterns explained: a new perspective on object-oriented design. Pearson Education.
Stroustrup, B. (1988). What is object-oriented programming?. Software, IEEE,5(3), 10-20.

ハッカー倫理に関する参考文献

Clough, Bryan., Mungo, Paul. (1992) Approaching Zero: Data Crime and the Computer Underworld, Faber and Faber; 1st ed. edition.
Gintis, Herbert. (1972) “Towards a Political Economy of Education: A Radical Critique of Ivan Illich’s Deshooling Society”, Harvard Educational Review, Vol.42, No. 1, pp.70-96.
Illich, Ivan. (1970) Deschooling Society, New York; Harrow and Row.
Illich, Ivan. (1973) Tools for Conviviality, Newyork.
Kay, Alan. (1984) “Computer Software”, Scientific American, Vol. 251, No. 3, pp41-47.
Levy, Steven. (1984) Hackers: Heroes of the computer revolution, New-York, Delta.
Levy, Steven. (2010) Hackers: Heroes of the Computer Revolution – 25th Anniversary Edition, O’Reilly Media, Inc.
Nelson, Theodor Holm. (c1992) Literary machines : the report on, and of, project xanadu concerning word processing, electronic publishing, hypertext, thinkertoys, tomorrow’s intellectual revolution, and certain other topics including knowledge, education and freedom, Sausalito, CA : Mindful Press.
Raymond, Eric Steven. (2001) How To Become A Hacker. URL: http://www.tuxedo.org/~esr/faqs/hacker-howto.html
Turkle, Sherry. (1984) The second self : computers and the human spirit, New York : Simon and Schuster.
Turkle, Sherry., Papert, Seymour. (1992) “Epistemological Pluralism and the Revaluation of the Concrete,” Journal of Mathematical Behavior, Vol. 11, No.1, pp.3-33.
Turkle, Sherry. (1995) Life on the screen : identity in the age of the Internet, New York : Simon & Schuster.

Unix哲学に関する参考文献

Gancarz, M. (2003). Linux and the Unix philosophy. Digital Press.
Raymond, E. S. (2003). The art of Unix programming. Addison-Wesley Professional.

歴史的背景に関する参考文献

Gintis, Herbert. (1972) “Towards a Political Economy of Education: A Radical Critique of Ivan Illich’s Deshooling Society”, Harvard Educational Review, Vol.42, No. 1, pp.70-96.
Illich, Ivan. (1970) Deschooling Society, New York; Harrow and Row.
Illich, Ivan. (1973) Tools for Conviviality, Newyork.
Levy, Steven. (1984) Hackers: Heroes of the computer revolution, New-York, Delta.
Turing, Alan Mathison. (1936). On computable numbers, with an application to the Entscheidungsproblem. J. of Math, 58(345-363), 5.
Turing, Alan Mathison. (1950). Computing machinery and intelligence. Mind, 59(236), 433-460.

スポンサーリンク