발달 프로그램들은 그 설계 덕분에 세계의 어떤 부분들이 발달에 관련되도록 만들고 다른 부분들은 무관하게 만든다. 진화적 시간에 걸쳐 발달 프로그램들의 유전자 변이는 (유리한 돌연변이를 선택적으로 보존하면서) 환경의 속성들을 탐험하여 발달과 행동을 조절하는 임무에 유용한 정보의 원천들을 발견한다. 마찬가지로, 선택은 환경의 불안정하고 파괴적인 특성들을 발달과는 무관하도록 만든다. 한 단계씩, 자연 선택은 (이용할 수 있는 돌연변이들로부터 골라서) 어떤 종의 유전자 집합을 구성한다. 자연 선택은 그와 동시에(in tandem) 세계의 지속되는 속성들 중 어떤 것들이 발달과 관련될 것인지를 선택한다. 따라서, 어떤 종의 발달에 관련된 환경 – 접합자(zygote)와 이후에 발달하는 유기체가 의존하며, 상호작용하며, 입력 값으로서 사용하는, 세계의 특성들의 집합 – 은 유전자와 꼭 마찬가지로 진화 과정이 만들어낸 것이다. 따라서, 자연 선택은 발달에 필요한 정보를 환경과 유전자 모두에 저장한다고 이야기할 수 있다.

Developmental programs, by virtue of their design, make some parts of the world relevant to development and other parts irrelevant. Over evolutionary time, genetic variation in developmental programs (with selective retention of advantageous variants) explores the properties of the environment, discovering those that are useful sources of information in the task of regulating development and behavior; equally, selection renders those features of the environment that are unreliable or disruptive irrelevant to development. Step by step, as natural selection constructs the species gene set (chosen from the available mutations), it selects in tandem which enduring properties of the world will be relevant to development. Thus, a species developmentally relevant environmentthat set of features of the world that a zygote and the subsequently developing organism depend on, interact with, or use as inputsis just as much the creation of the evolutionary process as the genes are. Hence, natural selection can be said to store information necessary for development both in the environment and the genes. (Conceptual Foundations of Evolutionary Psychology(2005), John Tooby & Leda Cosmides, The Handbook of Evolutionary Psychology(David M. Buss 편집), 35, http://cafe.daum.net/Psychoanalyse/Glrk/44 에서 이 논문의 번역을 볼 수 있다)

 

 

 

유전자를 계산기 프로그램(computer program)에 비유하는 진화 생물학자들 또는 진화 심리학자들이 많이 있다. 나는 그런 비유를 본 적은 많지만 그런 비유의 의미를 깊이 파헤친 것을 본 기억은 거의 없다. 나는 그런 비유가 어떤 의미로 이어질 수 있는지를 나름대로 파헤쳐볼 생각이다.

 

 

 

Alan Turing 1936년 논문 On Computable Numbers, with an Application to the Entscheidungsproblem」은 디지털 계산기(digital computer)의 이론적 한계와 가능성에 다루었으며 계산기 프로그램의 이론적 기초를 놓았다.

http://www.comlab.ox.ac.uk/activities/ieg/e-library/sources/tp2-ie.pdf

 

그 논문에는 Turing이 보편적 계산 기계(universal computing machine)라고 불렀으며 지금은 보편적 튜링 기계(universal Turing machine, UTM)이라고 부르는 것이 나온다. UTM은 아주 기초적인 뼈대만 제공하며 어떤 과업을 해결하기 위해 필요한 알고리즘(algorithm) 즉 알짜배기 정보는 프로그램에 있다. 그 프로그램은 기억 장치인 테이프(tape)에 저장된다. UTM은 무척 단순하게 생겼지만 그 일부를 이루는 테이프에 복잡한 프로그램을 저장해 놓으면 디지털 계산기가 할 수 있는 어떤 복잡한 계산도 할 수 있다는 것을 Turing이 보여주었다.

 

이후에 John von Neumann을 비롯한 수많은 사람들이 UTM을 구현하는 실제 디지털 계산기를 만들었으며 보통 폰노이만 구조(von Neumann architecture)라고 부른다. 실제 계산기의 저장 장치는 UTM과는 달리 무한하지 않다. 또한 실제 계산기의 CPUUTM보다 훨씬 복잡하다. 게다가 C++, Java와 같은 고수준 프로그래밍 언어가 개발되었다. CPUUTM과 달리 기본적인 덧셈을 할 줄 알고, 고수준 언어에서는 더 복잡한 계산도 언어 수준에서 지원한다. 하지만 근본적인 측면에서는 서로 많이 닮았다.

 

 

 

이 글에서 말하는 엔트로피(entropy)는 물리학 용어가 아니라 정보 이론(information theory)의 용어다. 거칠게 이야기하자면 어떤 정보의 비트(bit) 수다. 컴퓨터에 있는 .wav 음악 파일과 .bmp 그림 파일의 비트 수가 있다. 그것을 압축 프로그램으로 압축하면 비트 수가 현저하게 줄어든다. 이상적인 압축 프로그램으로 최대한 압축했을 때의 비트 수가 엔트로피라고 생각하면 어느 정도는 감을 잡을 수는 있을 것이다. 물론 엔트로피 개념을 엄밀하게 이해하기 위해서는 정보 이론 교과서를 보아야 한다. 골치 아픈 수학을 다루는 정보 이론 교과서가 부담스러운 사람은 John R. Pierce이 쓴 대중서 Introduction to Information Theory: Symbols, Signals, and Noise』를 보면 된다.

http://en.wikipedia.org/wiki/Entropy_(information_theory)

 

 

 

계산기가 어떤 과업을 해결하기 위해서는 정보가 필요하다. 그 정보는 어디에서 나오는가? UTM의 경우에는 그 정보가 프로그램에도 있고, UTM의 구조에도 있다. 고수준 프로그래밍 언어로 만든 프로그램을 폰노이만 구조 컴퓨터에 돌리는 경우에는 그 정보가 프로그램에도 있고, 컴파일러(compiler, 고수준 언어를 기계어로 변환한다)에도 있고, CPU 등에도 있다. 아주 단순한 과업의 경우에는 프로그램에 있는 정보보다 하드웨어와 컴파일러에 있는 정보가 더 클 것이다. 하지만 아주 복잡한 과업의 경우에는 프로그램에 있는 정보가 압도적으로 클 것이다. 이런 면에서 볼 때 어떤 과업을 해결하기 위한 알고리즘을 위해 필요한 정보는 프로그램에서 나온다고 이야기할 수 있다. 알고리즘의 엔트로피는 사실상 프로그램의 엔트로피와 같다.

 

 

 

인간 본성을 구성하는 수 많은 선천적 기제들이 있다. 이것을 만들어내기 위해서는 정보가 필요하다. 인간 본성을 만들어내기 위해서는 얼마나 많은 정보가 필요한가? 이런 의문과 연결하여 “인간 본성의 엔트로피”라는 표현을 써볼 수도 있을 것 같다.

 

유전자에 대한 프로그램의 비유를 해석하는 한 가지 방식에 따르면, 기계의 경우 복잡한 알고리즘을 위한 정보가 대부분 UTM이나 폰노이만 계산기의 프로그램에서 나오듯이 인간의 경우 복잡한 인간 본성을 위한 정보가 대부분 유전체(genome)에서 나온다. 예컨대 선천적 기제들로 이루어진 것이 거의 확실한, 인간의 뇌에 있는 시각 기제를 구성하기 위해 필요한 정보는 사실상 모두 유전체에서 나온다.

 

여기서 혼동하지 말아야 할 것이 있다. 나는 인간 본성을 위한 엔트로피 또는 선천적 기제들 위한 엔트로피라고 했지 인간 심리를 위한 엔트로피라고 하지 않았다. 예컨대 한국인이 라고 부르는 것을 미국인은 dog라고 부르는데 이런 단어의 발음이나 철자에 대한 정보는 후천적이다. 따라서 인간 본성을 위한 엔트로피가 사실상 유전체에 몽땅 있다는 명제에서 dog의 발음이나 철자에 대한 정보가 유전체 안에 있다는 명제로 이어지지는 않는다.

 

 

 

이제 우리는 인간 유전체가 몇 비트로 이루어져 있는지를 안다. , 인간 유전체가 최대한으로 얼마만큼 많은 정보를 담을 수 있는지를 안다. 인간 유전체는 약 30억 개의 염기쌍(base pair)으로 이루어져 있다. 염기쌍을 이루는 ‘문자’가 네 개(T, A, C, G)이므로 하나의 염기쌍은 2비트의 정보를 담을 수 있다. 따라서 인간 유전체는 최대 60억 비트의 정보를 담을 수 있다. 상당히 큰 수이기는 하지만 1 기가바이트(gigabyte)도 안 된다. 요즘 나오는 개인용 컴퓨터의 하드디스크 용량보다도 훨씬 작다. 요즘에는 메모리 용량도 그 정도는 된다. 게다가 인간 DNA 중 대부분은 단백질 합성에 관련되지 않는 junk DNA이다. 만약 인간 유전체에 있는 정보 중 90% 이상이 쓰레기라면 인간 유전체에 담긴 알짜배기 정보는 100 메가바이트(megabyte)도 안 된다는 결론에 이른다. 또한 이 알짜배기 DNA를 이상적인 압축 프로그램으로 압축해야 인간 유전체 중 쓸모 있는 부분의 엔트로피가 나온다. 압축률이 50%라면 50 메가바이트 이하가 된다.

 

과연 인간 본성을 구성하는 데 필요한 정보가 100 메가바이트도 안 된단 말인가? 이 질문은 진화 심리학과 정보 이론이 만나는 지점을 보여준다. 또한 유전자 결정론과 관련된 핵심 질문 중 하나다. 내 느낌으로는 1 기가바이트가 훨씬 넘는 정보가 있어야 인간 본성을 만들어낼 수 있을 것 같다. 만약 인간 본성의 엔트로피가 1 기가바이트가 넘는다면 인간 본성을 위해 필요한 정보의 대부분은 유전체가 아니라 환경에서 온다는 뜻이다. 나는 이 가능성이 더 그럴 듯해 보인다. 물론 내가 100 메가바이트의 위대함을 모르기 때문에 그런 이야기를 하는 것인지도 모른다. 나는 정보 이론을 잘 모르며 따라서 100 메가바이트가 얼마나 위대한지도 모른다. 심지어 현재 정보 이론이 100 메가바이트가 얼마나 위대한가?라는 문제와 관련하여 얼마나 많은 것을 밝혀냈는지도 모른다. 어쨌든 내 느낌으로는 인간의 시각 기제와 같은 것들의 위대함에 비해서는 100 메가바이트가 상당히 초라해 보인다는 것이다. 프로그래밍 경험이 있는 많은 사람들이 내 느낌에 공감할 것 같다.

 

 

 

어쨌든 인간 본성을 위해 필요한 정보의 대부분이 유전체 이외의 곳에서 온다고 해도 그것 때문에 대량 모듈성(massive modularity) 테제가 무너지지는 않는다. 대량 모듈성 테제를 강력하게 주창하는 Tooby & Cosmides의 글이 맨 위에 인용되어 있다. 그들은 그 글에서 자연 선택은 발달에 필요한 정보를 환경과 유전자 모두에 저장한다라고 썼다.

 

발달 체계 이론(developmental systems theory, DST)에서는 지금까지 주목을 받지 못했던 비유전자 유전(non-genetic inheritance)에 주목한다. 발달 체계 이론에 대해 궁금한 사람은 Susan Oyama, Paul Griffiths, Russell Gray가 편집한 『Cycles of Contingency: Developmental Systems and Evolution(2001)』에서 출발하는 것이 좋을 것 같다.

 

발달 체계 이론가들은 대체로 진화 심리학에 적대적인데 맨 위에 인용된 Tooby & Cosmides의 구절이 보여주듯이 인간 본성을 위한 정보가 사실상 몽땅 유전체에서 나온다고 보는 무지막지한 유전자 결정론을 진화 심리학자들이 모두 받아들이는 것은 아니다.

 

 

 

발달 체계 이론가들은 유전자 결정론이 일종의 전성설(preformationism)이라고 이야기한다. 일리가 있는 말이다. 위에서 말한 의미의 유전자 결정론은 정보 이론의 측면에서 보면 전성설이다. 왜냐하면 인간 본성을 위해 필요한 정보가 사실상 몽땅 이미 수정체 속에 있는 유전체에 들어 있기 때문이다.

 

 

 

유전자를 프로그램에 비유하는 진화론자들이 내가 위에서 제시한 해석과 비슷한 의미로 비유했다고 명시적으로 이야기한 것을 본 기억은 없다. 그런 의미가 아니라면 무슨 의미로 프로그램이라는 단어를 쓴 것일까? 그것이 궁금하다. 나 같으면 그렇게 오해의 여지가 큰 표현을 쓰려면 그 의미를 자세히 쓰겠다.

 

 

 

2011-01-26