진 화
디지털 생물학 : Peter J. Bentley 지음, 김한영 옮김, 김영사, 2003 (원서 : Digital Biology, Curtis Brown UK, 2001), Page 53~86
|
|
이 글을 쓰는 지금
내 등뒤의 책꽂이 위에는 생물체 한 마리가 앉아 있다.
자세히 들여다보면 생물체의
겹눈이 선명하게 보인다. 한 쌍의 작은 렌즈가 내 눈을 똑바로 쳐다보는 듯하다.
오렌지 조각같이 생긴 두 눈은 납작한 초승달 모양의 머리에서 툭 튀어나와 세상을
360 도 볼 수 있게 되어 있다. 엄지손가락 길이의 몸은 아름다운 갑옷으로 덮여 있고,
이 갑옷은 체절 구조로 되어 있어 몸을 둥글게 휠 수 있다. 이 생물체를 뒤집어보면
보행이나 유영을 위한 여러 개의 섬세한 다리가 보일 것이다.
슬프게도 이 생물체는
자신의 자연 환경이 아닌 곳에 있다. 그의 고향은 얕은 물 속이었다. 그는 다리를
움직여 작은 먹잇감을 걸러낸 다음 작은 입으로 가져가곤 했다. 위험에 처하면 퇴적물에
굴을 파고 숨어서 포식자 물고기를 피했다. 지금 그것은 등을 구부리고 머리를 내쪽으로
향한 채 책꽂이 위에 앉아 있다. 그러한 자세는 놀라울 것이 전혀 없다. 그 상태로
3 억 9 천만 년 동안 꼼짝 않고 굳어 있었으니 말이다.
사실을 말하자면 이
생물체는 삼엽충이고, 더 정확히 말하면 삼엽충 화석이다. 모든 움직임과 생명이
빠져나간 그 몸은 아주 오래 전에 바위로 변했다. 그러나 이렇게 오래된 고대 화석에서도
우리는 생명의 많은 부분을 추론해낼 수 있다. 사실은 우리는 지구상의 모든 생명체가
어떻게 창조되었는지를 추론할 수 있다.
화석은 자연의 사진이다. 우리는 그 사진
속에서, 아득한 과거에 존재했으며 우리에게 매우 낯선 세계에서 살다간 잊혀진 생물들을
본다. 그들이 살았던 각각의 세계는 서로 다른 시대의 지구였고, 화석이 발견될 때마다
번쩍 하며 터지는 플래시 속에 그 모습을 드러내곤 했다. 우리는 과거의 생명이 찍힌
수천 장의 스냅 사진을 가지고 있으며, 각각의 사진을 주의 깊게 연구하고 분류한다.
그래서 이 사진들을 화석화가 이루어진 시대에 따라 순서대로 정리할 수 있다. 모든
사진을 한데 모으면 생명의 발생을 주제로 한 '가상의 영화' 가 될 것이다. 그것을
상영하면 (이 순간을 여러분의 상상력에 호소할 수밖에 없어 안타깝다), 놀라운 광경이
눈앞에 펼쳐진다. 그것은 바로 생명이 변하는 모습이다. 필름 첫 부분에서는 생명체의
수가 아주 적고 형태도 훨씬 단순하다. 그러나 곧 생명체들은 변화를 일으키고, 형태가
다른 '변종' 을 만들어낸다. 한 종류의 갑각류가 여섯 종류로 늘어난다. 어떤 것은
살아남고 어떤 것은 시야에서 사라진다.
서론은 이쯤에서 접기로 하자. 불을 끄고 이 가상의 '화석 영화' 를 차분히 관람해보자. 맨 처음 나타나는 몇 장의 사진은 약 39 억 년 전의 것이다 (지금으로부터 무려 3,900,000,000 년 전이다). 그 세계는 지각이 식어서 바위와 대륙 암판이 형성되기 전이므로, 대기는 암모니아와 메탄으로 가득하다. 그러나 이곳에도 생명이 존재한다. 파란색과 초록색의 조류 '미화석' 이 보인다 (화성의 암석에서 이와 비슷한 화석이 발견되어 최근 생명의 존재에 관한 논란을 불러일으켰다). 우리 눈앞에는 점점 더 많은 박테리아와, 원시 세균과 같은 원시 생물체가 나타난다 (원시 세균은 온천이나 해저의 열수분출구에서 살았고 지금도 살고 있다). 그리고 초식성 진핵 세포들이 출현하더니 천천히 변화를 일으킨다. 원시 생명이 곧 원시 바다를 가득 채우고, 그후 수십억 년 동안 지구의 대기에는 산소가 풍부해진다. 이때 최초의 안정된 대륙이 출현하여 오늘날 로디니아라고 알려진 하나의 초대륙이 생성되자 대변혁이 일어나기 시작한다. 다세포 유기체들이 나타나게 된 것이다. 단순한 형태의 식물, 벌레처럼 생긴 동물, 그리고 진균류가 진핵세포에서 발생해 나온다. 그런 다음 서서히 변화하더니 조류, 산호, 연체동물, 불가사리, 해면, 그리고 최초의 삼엽충으로 다양하게 갈라진다. 바다에서는 갈수록 더 복잡한 생물들이 성장하고 헤엄치고 먹고 먹힌다. 최초의 물고기가 출현하고, 식물이 육지에 정착하더니, 거미와 지네가 그 뒤를 잇는다.
바로 이 순간 '정지' 버튼을 누르면 내 방의 삼엽충이 짧은 일생을 바브게 살아가는 것이 보인다. 최초의 나무들이 양치류 위로 자라고 최초의 곤충들이 하늘을 나는 시대이다. 내 삼엽충이 죽기 전에 번식에 성공했다면 아마도 그 후손들은 그후 1 억 5 천만 년 동안 생존했던 여러 삼엽충 종족으로 진화했을 것이다.
다시 필름을 돌리면 지구를 가득 메운 생명이 끊임없이 변하는 모습이 보인다 (그리고 몇몇 생물의 불가사의한 대량 멸종도 목격된다). 텍토닉 플레이트 (판상을 이루어 움직이는 지각의 표층 - 옮긴이) 의 운동에 의해 대륙이 분리되고 합쳐진다. 빙하기와 간빙기로 인해 해수면이 상승하고 하강하는 과정에서 광대한 숲이 압축되어 석탄으로 변한다. 그 와중에도 생명은 계속 생존하고 번성한다. 시간이 지남에 따라 스크린에 비친 화면은 점점 더 단속적으로 분리된다. 육지들이 충돌하면서 또 다른 초대륙인 판게아가 형성된다. 판게아 위에서는 새로운 종류의 식물이 양치류처럼 생긴 나무들을 서서히 대체한다. 그 식물은 자손을 퍼뜨리기 위해 씨앗이라는 혁명적인 방법을 이용한다. 곧 초기 침엽수들이 숲을 이룬다. 파충류가 출현하여 점점 더 커지는 것이 보인다. 이른바 공룡의 시대가 도래한다. 크고 작은 공룡들이 끊임없이 형태를 바꾸면서 육지를 지배한다. 검룡이 나타났다 사라진다. 티라노사우루스도 나타났다 사라진다. 그들을 둘러싼 지구의 생태계는 나날이 번성하고 변한다. 어느덧 공룡이 파충류로 급속히 대체된다. 꽃피는 식물, 곤충, 물고기, 그리고 우리가 새라 부르는 것은 조룡의 종류가 갈수록 다양해진다. 판게아가 갈라져서 오늘날과 같은 대륙이 형성되자, 덩치 큰 포유류들이 출현하고 소멸한다. 필름이 끝나기 직전에 털이 없고 두 발로 걷는 포유류 변종이 출현한다.
불이 켜진다. 우리의 가상 영화가 매끄럽지 못하고 불완전했음을 인정하지 않을 수 없다. 그러나 결론만큼은 확실하다. 오늘날 우리 주변에 살아 숨쉬는 생물들은 어떤 신이 순식간에 창조한 다음 지상에 풀어놓은 것이 아니었다. 우리의 지구는 수십억 년 동안 꾸준히 진화를 거듭해온 생명체들의 고향이다.
소수의 사람들은 생명의 기원에 대한 이러한 견해를 매우 못마땅하게 생각한다. 그들은 자신들의 종교적 믿음을 위협한다는 생각에 진화론을 '증거 없는 이론' 으로 몰아붙인다. 그러나 진화의 증거는 다양하고 명백하다. 그것은 화석으로 발견될 뿐 아니라, 다윈이 갈라파고스 제도에서 확인한 것처럼 오늘날 존재하는 다양한 종들에게서도 발견된다. 진화는 부인할 수 없는 사실이다. DNA 의 발견과 함께 진화의 배후에 놓인 메커니즘도 밝혀지게 되었다. 진화가 사실이라는 증거는 흡연이 암을 유발한다는 증거보다 더욱 분명하다. 그 이론을 논박하려는 사람은 참으로 용감한 사람일 것이다.
유명한 유전학 교수인 스티브 존스 (Steve Jones) 의 말을 빌리자면, "생물학은 진화와 동일하다. 다윈의 『종의 기원』을 읽어보라. 이 책에서 정말로 훌륭한 점은, 다윈이 세상으로 나가서 가령 섬에 사는 새, 길들여진 개, 남미의 화석, 식물, 비둘기와 같이 외관상 아무 관계가 없어 보이는 무수한 정보를 끌어모았다는 것이다. 이전에는 누구도 그것들을 하나로 묶어 통일된 전체를 만들어보려 하지 않았다. 다윈은 그것을 진화라는 실로 꿰어 단일한 패러다임을 만들었다. 오늘날 생물학의 한 분야를 연구하는 사람은 기본적으로 진화를 연구하는 것이라 할 수 있다. 흥미로운 사실은 수많은 생물학자들이 자기도 모르게 그러고 있다는 것이다."
그러나 이 장의 요점은 모든 사람에게 진화의 존재를 설득하는 것이 아니다. 진화는 실제로 존재할 뿐 아니라 매일 우리의 컴퓨터에 이용되고 있다. 내가 지적하고 싶은 것은 진화의 힘이다. 우리는 자연 속에서 진화를 가장 잘 볼 수 있다. 그리고 자연의 진화는 대단히 강력한 과정이다. 그것은 지질학적 시간의 척도에 따라 작용하지만, 한편으로는 몇 개월 만에 변화를 야기할 수 있다. 그것은 지구 전체를 포괄하고 그 형태를 결정하지만, 모래알보다 더 작고 섬세한 디자인을 창조해낸다. 자연의 진화는 이동하는 대류보다 막강하고, 화산보다 강력하며, 조수보다 파괴적이고, 인간보다 창조적이다. 진화는 우리의 창조주이다. 진화를 알아야 우리가 어떻게, 왜 이곳에 존재하는지를 안다. 진화를 이해해야 비로소 그 장엄한 능력의 일부를 손에 놓을 수 있다.
우리는 진화의 힘이 작용하는 것을 두 눈으로 볼 수 있다. 진화의 결과는 눈부시게 화려하다. 뿐만 아니라 그것은 이 책에 담긴 모든 컴퓨터 기술의 기초를 이룬다. 그러나 진화의 진정한 힘은 결과에 있는 것이 아니라 결과를 이뤄내는 방법에 있다. 다시 말해, 우리의 컴퓨터에 진화를 적용하려면 먼저 진화의 작용 - 진화는 어떻게, 그리고 왜 일어나는가? - 을 탐구해야 한다.
엄밀한 의미에서 이것은 좀처럼 대답하기 어려운 문제이다. 그러나 (다행스럽게도) 직관적 의미에서는 대답하기가 아주 쉽다. 그러나 엄밀하게든 직관적으로든 진화가 어떤 작용을 하는가를 조사하려면, 먼저 언어상의 혼란을 분명히 제거해야 한다. '진화 (evolution)' 라는 단어가 널리 유행하는 오늘날 이 말은 매우 다양한 것을 의미하게 되었다. 우리는 신문광고에서 '진보적인 차 (evolutionary cars)' 라는 문구를 보고, 철학자들의 글에서 '진보적 이론' 이란 표현을 읽고, 정당 대변인의 입에서 '진보적인 정치' 라는 말을 듣는다. 행성이 돈다고 말할 때에도 'evolve' 를 사용하고, 대륙이 이동하거나 구름이 발달할 때에도 'evolve' 를 사용한다. 불필요한 혼동을 피하기 위해 이러한 의미는 배제할 것이다.
일반적인 생각과는 달리 진화는 '더 나음' 을 의미하지 않는다. 물론 진화가 어떤 결과를 산출하는 다른 과정들보다 더 나을 수는 있다. 그러나 생물이 진화를 통해 극적으로 개량된다는 사실에도 불구하고, 진화는 '개량' 을 의미하지는 않는다. 또한 특정한 니치 (niche : 어떤 생물이 생물공동체 중에서 차지하는 위치 또는 그 상태 - 옮긴이) 에 맞게 진화한 동물을 우리는 종종 적응했다고 말하지만, 진화는 '적응한다' 는 의미도 아니다. 더 나아가 진화는 '유전자의 조작' 을 의미하지도 않는다. 이 모든 말들은 진화의 일면이나 그 결과를 표현할 뿐, 어떤 것도 진화라는 근본적인 과정의 본질을 설명하지 못한다.
진화에는 매우 구체적이고도 간단한 의미가 있다. 방향성이 부여된 변화의 점진적 과정이 그것이다. 그러나 그러한 과정 모두를 진화라고 부를 수는 없다. 진화의 과정에는 세 가지 요소가 주연급 역할을 담당한다.
진화의 좋은 면은 '자식을 낳는 것' 이다. 번식이 없으면 진화도 발생하지 않는다. 자식은 진화의 엔진이다.
보다 쉬운 이해를 위해,
우리가 방금 다른 행성에 도착하여 눈앞의 어떤 것을 보면서 그 기원에 대해 경탄하고
있다고 가정해보자. 번식만 가능하다면 그것은 진화의 산물일 수 있다. 만약 그것이
바위에 불과하다면 바위는 자식을 낳을 수 없으므로 우리는 그 바위가 진화하지 않았다고
결론을 내릴 수 있다. 그러나 그것이 갑자기 아기를 낳고 그 아기가 부모를 닮았다면,
그것은 진화의 산물이 될 수 있다.
부모와 자식을 자세히 관찰해보면 더욱 분명해진다.
우리는 닮은 점을 본다. 보다 구체적으로 말하면, 자식이 부모에게서 어떤 특징을
물려받았는지 그 증거를 보는 것이다. 이것은 생각만큼 쉽지 않다. 그 바위가 우리
눈앞에서 우연히 둘로 갈라졌다고 상상해보자. '부모' 와 '자식' 은 서로 닮았으며,
자식은 분명 부모로부터 많은 물질을 물려받았다. 그렇다면 우리는 그 바위가 세포분열을
통해 자손을 번식하는 존재가 아님을 어떻게 알 수 있는가? 이 문제는 답하기가 정말
불가능하다. 우리는 계속 관찰하면서, 그 자식이 성체가 되었을 때 어떤 모습이 되는가를
봐야 한다. 만약 그 성체가 분열되기 전의 부모를 닮았다면 그것은 결국 바위가 아니라
번식능력을 가진 존재일 것이다. 그리고 그 존재가 자식을 낳을 때 우리는 그것이
성체가 되었음을 알게 된다.
유전은 보다 분명하게 확인할 수 있다. 자식이 부모를
닮는 데에는 훨씬 더 깊은 의미가 있다. 그것은 부모로부터 정보가 전달됨을 의미한다.
자연에서 이 정보는 DNA 형식을 취하는데 우리는 그것을 유전자라 부른다. 자식이
부모에게서 이런저런 특징을 물려받는 것은, 그 특징을 만드는 부모의 유전자가 자식에게
복제되었기 때문이다.
그러나 진화는 똑같이 생긴 자식을 낳는 것만으로는 설명되지
않는다. 모든 진화 과정에는 다소 불쾌하지만 좋은 점과 똑같이 필수적인 측면이
있다.
진화의 나쁜 면은 '선택' 이다. 진화에서 선택은 승자와 패자를 결정한다. 승자는 조금 더 오래 살고 번식의 기회를 조금 더 많이 누릴 수 있다. 패자는 번식의 기회를 제한당하거나 최악의 경우는 생명을 잃는다.
자연에서의 선택은 대개 싸움, 그리고 죽음을 수반한다. 보다 온화한 인간 사회의 종교와 법률에 비추어볼 때 자연 선택은 선처의 여지가 거의 없고 때로는 공포스러워 보이는 잔인한 메커니즘이다. 그러나 그러한 고통과 죽음을 보면서 그 불가피성을 증오할 수는 있지만, 자연 선택이 없었다면 우리도 존재할 수 없다는 사실은 부인할 수 없다. 여러분과 내가 지금 이곳에 존재하는 것은, 지난 수십억 년 동안 무수한 실패와 죽음이 반복되었기 때문이다.
선택은 진화의 방향타이다.
선택이 없으면 모두가 번식하고, 무작위로 죽는다. 어떤 것이 다른 것보다 더 잘
생존할 수 있다는 개념 자체가 성립되지 않을 것이다. 우리의 세계에서 그러한 상황은
발생할 수 없다. 선택은 물리적 법칙이 되었다. 그러나 컴퓨터의 경우는 진화 프로그램에서
선택을 삭제할 수 있다. 그러면 순수한 무작위성 (우연성) 을 얻게 된다.
선택은
무작위 (우연) 가 아니다. 자연의 생물들은 주어진 환경에서 얼마나 잘 살아남는가에
따라 선택된다. 어떤 가젤 영양이 동료들만큼 치타로부터 잘 도망치지 못한다면,
좀더 빨리 죽음을 맞이할 것이다. 그러한 위험에서 더 잘 도망치는 가젤은 동료들보다
조금 더 오래 살 것이다. 오래사는 가젤에게는 평균적으로 자손을 낳을 기회가 더
많이 주어질 것이다. 그 가젤이 승자이다. 자연의 선택 메커니즘은 또한 경쟁을 이용한다.
다른 사자들을 물리치고 암컷을 차지하는 사자는 쫓겨나는 사자들보다 더 많은 자손을
볼 것이다. 그 사자가 승자이다. 더 나아가 선택에는 보다 미묘한 방식도 있다. 번식
성향이 강한 동물이 시들시들한 동물보다 더 많은 자손을 낳을 것이다. 자식에게
음식과 안전을 제공하여 생존을 돕는 동물이 자식에게 무관심한 동물보다 건강한
자손을 키워낼 것이다. 어떤 환경에서는 수백의 자손을 낳는 생물보다 수천의 자손을
낳아서 그 중 한두 자손만을 생존하는 생물의 생존율이 더 높을 것이다. 이 모두가
선택에서 승자가 되는 방법들이다.
훌륭한 부모이자 생존자라면 자식들에게 (더 많은 자식이나 더 건강한 자식을 낳아서) 더 높은 생존의 가능성을 부여할 것이다. 자식이 성공적으로 생존할수록, 그들에게 유전된 부모의 특징이 미래 세대에까지 전해질 가능성은 더욱 높아진다. 치타에게서 도망을 잘 치거나, 다른 사자와 싸움을 잘하거나, 자손을 많이 낳는 데 재능이 있다면, 자손들은 그 재능을 더 잘 물려받을 것이다. 선택이라는 가혹한 게임에서 승자가 될 능력이 있다면 자손들도 역시 승자가 될 수 있다. 패자의 열등한 특성은 미래 세대에 전달될 가능성이 훨씬 적다.
선택은 분명 번식만큼 중요한 역할을 하지만, 진화의 과정에는 또 한 가지 중요한 요소가 있다. 그것이 없으면 우리는 모두 똑같을 것이고 진화도 발생할 수 없다.
(3) 추한 것
실수, 우연한 뒤섞임, 돌연변이는 우리의 유전 구조에 영향을 미치는 불쾌하고 혼란스러운 과정들이다. 그럼에도 불구하고 그 모두는 진화를 구성하는 제 3 의 필수 요소이다. 생물학에서는 이를 '변이' 라 부른다.
진화가 가능하려면
변이가 필요하다. 자식은 부모와 똑같지 않다. 둘 사이에는 약간의 다른 점이 분명히
존재한다. 자식 중에서도 키가 큰 녀석이 있고 키가 작은 녀석이 있다. 똑똑한 녀석이
있는가 하면 그렇지 못한 녀석도 있다. 예쁜 녀석이 있는가 하면, 틀림없이 미운
녀석도 있다.
자연 진화에서 변이는 수많은 메커니즘에 의해 발생한다. 가장 흔한
변이는 자웅 번식에 의한 것이다. 아무렇게나 뒤섞인 부모의 특성이 새로운 조합을
형성하여 자식에게 나타나는 것이다. 우리는 모두 이러한 변이를 경험한다. - '저
아이는 눈은 엄마 닮았고 귀는 아빠 닮았어.' 우연한 변이는 유전자를 복제하는 과정에서
실수가 일어나 발생하기도 한다. 그러한 실수로부터 유전자의 변경, 이중 복제, 상실
등이 일어나, 후손에게 새로운 특성이 나타나게 된다. 마지막으로 변이는 유전 구조의
돌연변이에 의해 발생할 수 있다. 마지막으로 변이는 유전 구조의 돌연변이에 의해
발생할 수 있다. 부모 중 어느 하나라도 유전자가 방사능의 해를 입었다면 (정상적인
환경에서 나오는 방사능일 수도 있고, 과학기술이 만들어낸 높은 강도의 방사능일
수도 있다), 자식에게 새로운 변이가 발생한다.
미래의 부모에게 가장 무서운 것은 나중의 두 변이 유형이다. 돌연변이 아이를 생각하면 초록색 피부에 여섯 개의 눈과 다섯 개의 팔을 가진 괴물을 떠올리게 된다. 어떤 돌연변이나 유전적 실수로 인해 개인이 심각한 장애를 안고 태어날 수는 있지만, 실제로 이런 경우는 매우 드물다. 대부분의 돌연변이는 작은 변화를 낳는다. 그리고 이러한 변화가 발생하는 것은 불가피한 일이다.
선택에는 차이가 필요하기 때문에 변이는 매우 중요하다. 만약 모든 것이 서로 똑같다면, 생존이나 자손 번식에 좋고 나쁨을 비교하는 것이 불가능할 것이다. 그리고 선택은 모든 것에 똑같이 작용하여, 모두가 살거나 모두가 죽을 것이다. 변이가 있기 때문에 선택은 강화할 특성과 감소할 특성을 가려낼 수 있다. 변이를 통해 번식하고 선택에 의해 걸러진다면, 그것은 분명 진화를 하는 중이다. 그러므로 우리 모두에게 몇 가지 새로운 돌연변이 특성이 있다는 사실은 나쁜 것이 아니라 좋은 것이다. 예를 들어, 우리 모두가 똑같은 수준의 지능을 가졌다면, (높은 지능이 유익하다는 가정하에) 미래의 세대에서 인간의 지능이 더 높아질 가능성은 사라지게 된다.
물론 위의 세 가지 과정이 정말로 좋고, 나쁘고, 추하다는 말은 아니다. 그것은 설명하기 좋고 기억하기 편해서 붙인 말이다. 그러나 한편으로 다소 감정적인 것은 사실이다. 진화에는 세 가지 요소가 필요하다. 번식ㆍ선택ㆍ변이가 그것이다. 그리고 이 세 요소는 좋거나 나쁘거나 추한 것과는 아무 관계가 없다. 진화처럼 그냥 존재하는 현상일 뿐이다.
(아직도 불만이 남아 있을지 모르겠지만) 이 이야기는 이쯤에서 마무리하고 진화에 대한 탐구를 계속해보기로 하자. 지금까지 우리는 진화가 어떻게 이루어지는가를 살펴보았다. 이제는 또 다른 근본 문제, 진화는 무엇을 진화시키는가에 도전하기로 하자.
우리는 지금까지 가상 영화에서 지구상의 생명이 어떻게 진화했는가를 보았고, 그 진화의 과정이 어떻게 이루어지는가를 살펴보았다. 진화는 분명 유기체를 진화시킨다. 그러나 그것이 전부인가? 사실 이것은 지나친 단순화이다.
자연에서 진화의 세 요소는 유기체의 겉모습에 영향을 미치는 것처럼 보인다. 그러나 세 요소들의 작용은 그보다 훨씬 깊은 차원에서 일어난다.우리의 직관과 다소 어긋나는 듯도 하지만, 번식ㆍ선택ㆍ변이는 단지 유전자에만 직접적으로 작용한다. 유전자는 유기체의 발생을 규정하므로, 유전자의 모든 변화는 그에 상응하는 변화가 유기체에게 일어남을 의미한다. 이런 이유로 우리는 종종, 유기체가 진화한다는 '착각' 을 하게 된다. 또한 우리 자신이 유기체이기 때문에, 그리고 유전자는 종종 동화 속의 이야기처럼 들리기 때문에, 대부분의 사람들은 진화가 유기체 자체를 조종한다고 생각하기 쉽다. 그러나 우리는 이러한 오류를 피해야 한다. 루이스 월퍼트 (Lewis Wolpert) 가 확고하게 (그리고 여러 번) 말했듯이, "진화에서 변하는 것은 오직 유전자뿐이다. 그 밖에 어떤 것도 변하지 않는다."
이제 진화의 세 요소를 차례로 살펴보면서, 유전자가 어떻게 영향을 받는지를 알아보자. 종종 언급되듯이, 번식은 생명의 근본적인 특성 가운데 하나이다. 살아 있는 것은 유전자가 아니라 유기체이다. 자손을 낳는 것도 유전자가 아니라 살아 있는 생물체이다. 그렇지 않은가? 그러나 겉모습은 우리를 잘 속인다. 번식을 할 때 우리는 자식들에게 우리 자신의 복사본을 물려주는 것이 아니라 우리가 가진 유전자의 복사본을 물려준다. 우리는 모두 하나의 수정란에서 발생했고 그 과정에서 부모가 물려준 DNA 나선구조를 이용했다. 살아 있는 동안 우리에게 어떤 변화가 발생해도 그것은 우리의 유전자에 기록되지 않는다.
만약 내가 운동을 열심히
해서 근육이 발달했다 해도 내 자식들이 똑같은 근육을 갖고 태어나지는 않는다.
그러나 근육을 키워야 한다는 정보가 내 유전자에 명시되어 있다면, 내 자식들 중
몇 명은 나와 똑같은 유전자를 물려받을 것이고 그래서 나처럼 근육질이 될 것이다.
이와 같이 번식은 유기체가 아니라 유전자의 차원에서 일어난다.
변이에 대해서도
이와 똑같은 주장이 가능하다. 교통사고가 났다고 가정해보자. 유감스럽게도 당신은
그 사고로 왼손 엄지손가락을 잃게 되었다. 하나의 유기체인 당신이 우연한 변이의
대상이 된 것이다. 그러나 당신의 자식이 태어나면 그 아이의 왼손에는 정상적인
엄지손가락이 달려 있다. 변이가 사라진 것이다! 이와 같이 유기체의 변이가 유전되지
않는다면, 그것은 진화와 아무 관계가 없다. 이번에는 그 교통사고로 당신의 번식
세포 (정자나 난자) 중 일부 유전자가 돌연변이를 겪게 되었다고 가정해보자. 이
변화로 인해 당신의 아이는 왼손 엄지손가락이 없이 태어날 것이다. 그 아이가 성인이
되어 다시 자식을 낳는다면, 그들 중 일부도 역시 왼손 엄지손가락이 없이 태어날
것이다. 이와 같이 변이는 분명 유전되는 것이며, 유전을 통해 진화 과정에서 자신의
역할을 수행한다.
그렇다면 선택은 어떠한가? 자신의 환경에서 생존하고 짝을 찾기 위해서 싸우는 것은 분명 유전자가 아니라 유기체이다. 그렇다면 선택되는 것은 분명 더 능력 있는 유기체가 아닌가? 이것도 역시 착각이다. 남보다 조금 더 바르고 조금 더 강한 치타가 있다고 상상해보자. 그 치타는 사냥을 더 잘하고 자식을 더 많이 낳을 것이며, 그 자식들은 더 건강할 것이다 이 치타가 승자이므로, 그것의 특성들이 자식에게 그리고 자식의 자식에게 전해질 가능성이 더욱 높다. 어떻게? 바로 유전자를 통해서이다. 그 치타의 생존 가능성이 높기 때문에, '빨리 달리기' 유전자와 '강한 다리' 유전자가 선택받는 것이다. 유기체는 유전자의 가치를 보여주는 거울이지만, 후손에게 전달되는 부분은 오직 유전자뿐이고, 따라서 진화가 선택하는 대상도 오직 유전자뿐이다. 스티브 존스가 말했듯이, "진화는 유전 더하기 시간이다."
이와 같이 진화는 유전자를 진화시킨다. 그러나 진화는 또 다른 것들도 진화시킨다. 실제로 놀랄 만큼 다양한 것들이 진화를 하며, 그 중 많은 것들이 자연과는 전적으로 무관하다. 다른 매개들의 진화에 대해 들어보지 못한 사람들은 이상하게 생각할 수도 있지만, 사실 그럴 필요는 전혀 없다.
어떤 면에서 진화는 바람과 같다. 바람은 추상적 개념이다. 바람이라는 개념은 바람이 이용하는 매개와 아무 관계가 없다. 바람이 세다고 말할 때 그 바람은 어떤 기체라도 상관없다. 우주 탐사용 망원경으로 다른 행성을 자세히 관찰하면 그러한 현상을 목격할 수 있다. 가령, 목성의 붉은 반점은 거대한 (그리고 맹렬한) 암모니아 폭풍이다. 또한 해왕성의 검은 반점은 메탄 가스의 폭풍이다. 심지어는 액체도 바람이 될 수 있다. 물론 그런 현상을 가리킬 때에는 보통 바람보다는 '흐름' 이란 말을 사용한다.
마찬가지로 진화도 매개와는 무관한 개념이다. 우리는 자연의 진화라는 개념에 익숙하지만, 자연은 진화를 겪는 하나의 매개일 뿐이다. 그런 것이 하나 더 있다. 바로 언어이다.
우리의 언어는 정적인 존재가 아니다. 매년 새 단어들이 사전에 추가되고, 기존의 단어들도 의미가 변한다. 어떤 단어들이 외국어에서 차용되어 변이를 일으키는 동안, 또 다른 단어들은 유행에서 밀려나 기억에서 사라진다. 우리가 사용하는 한 언어는 진화를 계속하며, 그러한 진화는 언어가 탄생한 수십만 년 전부터 계속되어왔다. 사실 찰스 다윈도 자연선택 이론을 체계화했을 당시 언어 진화의 여러 이론을 잘 알고 있었고 그로부터 영향을 받았다.
언어가 정말로 진화하는지를 더 자세히 살펴보기로 하자. 유기체처럼 언어도 작은 하위 요소들을 복제함으로써 재생산되거나 확산된다. 언어는 유전자 대신 단어, 의미, 문법 규칙에 의해 그 특징이 규정된다. 부모가 자식에게 언어를 가르칠 때 그 언어는 아이의 마음 속에 재생산된다. 아이는 부모로부터 모국어의 수많은 단어와 의미를 물려받는다. 그러나 부모와 자식이 같은 언어를 사용할 때에도, 각자의 뇌 속에 담긴 언어에는 미세한 차이가 있다. 오해나 실수 그리고 우연한 오류 때문에 두 사람은 종종 같은 단어로 약간 다른 것을 가리킨다. 사람들이 새 단어를 창조하거나 기존 단어의 의미를 새로 정의할 때에는 변이가 발생한다. 그리고 언어에서는 단어, 의미, 문법 규칙의 선택도 발생한다. 이해가 어려운 단어보다는 쉬운 단어가 사랑 받는다. 우리가 자식들 (그리고 우리와 소통하는 다른 사람들) 의 마음 속에 우리의 개인 언어를 재생산할 때, 이 단어 선택 과정은 분명히 발생한다. 외국어를 처음 배우는 사람도 선택에서 승리한 단어들만을 배우게 된다. 패배한 단어들은 서서히 사라진다.
언어는 번식ㆍ선택ㆍ변이의 세 과정을 겪는 것이 분명하기 때문에, 우리는 언어가 진화한다는 결론을 자신 있게 내릴 수 있다. 원자와 분자, 화학 물질과 물리적 법칙으로 진행되는 자연의 진화와는 달리, 언어의 진화는 다른 매개를 통해 진행된다. 우리의 언어는 뇌와 책, 말과 글로 이루어진 관념의 세계를 매개로 진화한다. 자연과 언어라는 두 세계는 완전히 다르지만, 진화라는 동일한 과정을 겪는다.
최근 들어 또 다른 세계가 꾸준히 복잡성을 키워가고 있다. 그것은 바로 'highs and lows', 즉 1 과 0 의 세계이다. 물론 우리의 컴퓨터 속에 존재하는 디지털 세계를 말한다.
자연에서, 유전자로 구성된 매우 특별한 분자, 즉 DNA 가 물리적 법칙에 따라 자기복제를 일으킨다. 컴퓨터에서도 우리는 그와 똑같은 방식으로 특정한 비트의 집합을 처리하는 소프트웨어를 만들 수 있다. 이 비트가 바로 '이진수 DNA' 가 되어, 소프트웨어의 물리적 법칙에 따라 자기복제를 일으킬 수 있다. 자연에서, 물리적 법칙과 물리적 환경이 더 유리한 유전자를 결정한다. 컴퓨터에서도 소프트웨어 법칙과 환경이 창조되어 '이진수 유전자' 의 능력을 판정할 수 있다. 자연에서, 환경과 자기복제 과정상의 실수로 인해 DNA 가 다양해지고 변한다. 우리의 컴퓨터도 디지털 환경과 임의적 (randomized) 오류를 이용하여 이진수 유전자의 변이를 만들어 낼 수 있다.
간단히 말해 우리는 컴퓨터의 디지털 세계 속에 비트의 번식과 선택과 변이를 가능하게 하는 소프트웨어를 만들 수 있다. 이러한 소프트웨어 프로그램은 컴퓨터 상에서 진화가 일어날 수 있는 환경에 해당된다. 이러한 컴퓨터 기술은 자연의 진화에서 촉발되었지만, 이 책에서는 '시뮬레이션' 진화나 '인공적인' 진화라는 말을 사용하지 않을 것이다. 비록 존재하는 세계는 달라도 언어의 진화가 분명히 존재하는 것처럼, 컴퓨터의 진화도 우리의 컴퓨터 안에 존재할 수 있고 또 실제로 존재하는, 정당하고 실제적인 진화 형태이다. 컴퓨터 안에서 진화가 일어날 수 있게 해주는 프로그램을 우리는 '진화 알고리즘' 이라 부른다.
내가 노트북 컴퓨터를 두드리는 동안 내 발은 어떤 독특한 가구 위에서 편히 쉬고 있다. 그것은 세상에 단 하나뿐인 것으로, 나무로 만든 이 독창적인 가구는 세계 최고라 할 만하다. 그것은 내 커피 탁자이다.
이 작은 탁자가 유일무이한 이유는 내가 그것을 직접 디자인했기 때문이다. 그러나 정확히 말하자면, 어떤 사람도 그것을 디자인하지는 않았다. 내 커피 탁자는 인간의 손으로 디자인된 것이 아니다.
그렇다면 누가 그것을 디자인했을까? 외계의 우주인이 우리집 뒷마당에 착륙해서 나를 위해 디자인했을까? 북극의 꼬마 요정들이 해주고 갔을까? 아니다. 누구도 내 탁자를 디자인하지 않았다. 의식과 생각을 가진 어느 디자이너도 내 지친 발을 쉬게 해주는 이 멋진 가구를 설계한 적이 없다. 이 탁자의 디자인은 '진화' 의 결과물이었다.
얼마 전 내 컴퓨터에는 어떤 프로그램이 시작되었다. 그 소프트웨어는 컴퓨터에게, 단단한 물체들이 존재할 수 있는 디지털 세계를 창조하라고 명령했다. 그 물체들은 불안정하면 쓰러지고, 쓰러지면 부적합 판정을 받게 되어 있었다. 그 물체들 위로 작은 입자들을 떨어뜨렸을 때 물체 위에 떨어진 입자들이 일정한 높이를 이루면 그 물체는 합격 판정을 받았다. 질량과 크기 같은 다른 측면들도 물체의 적합성을 판단하는 기준이었다.
그 세계에서는 모든
고체가 재생산을 할 수 있었다. 다시 말해, 자손을 낳을 수 있었던 것이다. 두 물체가
자식을 낳을 때에는, 부모의 이진수 유전자형이 혼합되어 나타났다. 자식들은 양친으로부터
유전자형의 부분들을 물려받았다. 즉, 부모의 유전자를 물려받은 것이다. 이따금
한 유전자의 아주 작은 부분에서 경미한 변화가 일어나, 그 물체의 발생 과정에서
작은 변화가 일어나기도 했다.
물체들은 그 세계에 살면서, 쓰러지지 않으려고
노력했고 입자들을 일정한 높이로 유지하려고 노력했으며 그와 동시에 가벼운 무게와
작은 형태를 유지하려고 노력했다. 더 능력 있는 물체들은 더 많은 자식을 낳았다.
모든 물체에는 또한 수명이 부여되어, 일정한 기간을 넘긴 것들은 어디론가 사라졌다.
그러나 아주 부적합한 물체들은 새로 태어난 자식들이 가하는 공간적 압력 때문에
보다 일찍 사라지곤 했다.
이 프로그램이 실행되는 동안 어떤 물체들은 '살아 있음' 을 보여주었다. 주변을 뛰어다니거나 노래를 부르지는 않았지만 그것들은 서서히 변해갔다. 처음에는 모든 물체가 고단하고 힘든 삶으로 출발했다. 세대를 거듭하면서 물체들은 어느덧 쓰러지지 않게 되었다. 그들은 위에서 떨어지는 입자들을 일정한 높이로 떠받치기 위해 평평한 상판을 형성하기 시작했다. 또한 작고 가벼운 형태로 변모해갔다. 그 물체들은 갈수록 탁자와 같은 모양을 갖추었다. 500 세대에 걸쳐 진화가 계속된 후 프로그램이 끝났을 때 디스크에는 최고의 물체가 저장되었다. 그 결과는 독창적인 커피 탁자 디자인이었다 (그림 2 참조). 그리고 이것은 요행수가 아니었다. 그 프로그램이 실행될 때마다 훌륭한 커피 탁자 디자인이 나왔고, 그 디자인은 매번 조금씩 달랐다.
그 프로그램은 유전 알고리즘의 예인데, 이 분야의 과학자들은 GA (genetic algorithm) 라는 약자를 사용한다. 유전 알고리즘이란 이름이 붙게 된 이유는, 그것을 구성하는 일련의 규칙들이 이진수로 이루어진 유전적 재료가 디지털 세계에서 어떻게 처리되어야 하는지를 정의하기 때문이다.
설명을
계속하기 전에 짚고 넘어가야 할 사실은, 유전 알고리즘은 단지 진화 알고리즘의
하나라는 사실이다. 그밖에도 진화 알고리즘에는 진화전략, 진화 프로그래밍, 유전
프로그래밍, 미메틱 알고리즘이 있다. 이것들 모두가 어떤 문제의 해결책을 발전시킨다.
대개는 독립적으로 개발되었지만 그것들 모두가 GA 와 거의 똑같은 방식으로 작동한다.
사실 내가 다른 알고리즘을 언급한 단 한 가지 이유는, 과학자들마다 선호하는 것이
달라서 그들이 좋아하는 것을 언급하지 않으면 섭섭해하지 않을까 하는 걱정 때문이었다.
과학자들도 다른 사람들처럼 아주 비논리적이고 감정적으로 돌변할 때가 있으니까!
어쨌든 내가 커피 탁자를 진화시키기 위해 만들었던 GA 는 아주 복잡했지만,
그 복잡성 밑에 깔린 기본 규칙은 다른 알고리즘과 똑같았다. 보다 간단한 문제를
이용하여, 유전 알고리즘이 문제의 해결책을 어떻게 발전시키는지를 살펴보자.
여러 해 전에 나는
벌레잡이 풀의 일종인 비너스 파리잡이를 선물 받은 적이 있다. 화분에는 '흙을 항상
촉촉하게 유지하라' 는 물 주는 방법에 대한 문구가 씌어 있었다. 습지 환경에서
자라는 식물이기 때문이었다. 나는 그 식물이 말라죽지 않기를 바라는 마음에 물을
항상 넉넉히 주었다. 그러나 너무 지나쳤던 탓인지, 어쨌든 비너스 파리잡이는 죽고
말았다.
이것은 매개 변수가 하나인 문제의 예이다. 이 문제에서 변화를 줄 수
있는 단 한 가지 요소는 그 식물에게 주는 물의 양이었다. 나 자신의 해결책은 분명
잘못되었다. 해결책 - 그 식물을 죽게 하지 않을 하루 물의 양 - 은 어딘가에 있을
것이다. 그러나 그 해결책을 찾기란 쉽지 않다. 비너스 파리잡이의 행동을 컴퓨터
안에 똑같이 복제하는 것은 진정한 해결책이 아니다. 그렇게 한다고 해도 내가 그
디지털 식물에게 역시 물을 너무 많이 주거나 너무 적게 줄 가능성이 다분하기 때문이다.
그러나
진화는 어려운 문제의 해답을 찾는 데 도사 같다. 컴퓨터 안에 어떤 디지털 식물을
창조했다면, 이 경우의 해답은 그 식물에게 줘야 할 하루 물의 양이 얼마인지를 알려주는
구체적인 숫자일 것이고, GA 가 바로 이 해답을 진화시킬 것이다. 커피 탁자와 같은
물체 대신 이번에는 숫자를 진화시키는 것이다.
놀라운 일이지만, 이 GA 가 숫자를 진화시키는 방식은 내 GA 가 커피 탁자를 진화시킨 방식과 완전히 똑같다. 그 속에는 숫자 집단이 산다. 각 수는 적합성이 계산된다 (이 문제에서는, 식물을 오래 살게 하는 숫자가 높은 능력을 인정받는다). 보다 적합한 숫자들이 짝을 만나고 자식을 낳는다. 모든 숫자에는 자기만의 유전자가 있다. 자식들은 부모의 유전자를 무작위로 (우연히) 물려받는다. 자식을 낳은 후 부모가 사라지면 집단은 새 숫자로 채워진다. 이 숫자들은 또한 각자의 적합성에 따라 평가를 받고, 그 결과 가장 우수한 것들이 더 많은 자식을 낳는다.
이 간단한 문제를 통해 우리는 문제의 해답들 (숫자들) 이 유전적으로 진화해가는 모습을 쉽게 확인할 수 있다. 유전 알고리즘은 보통 이진수 유전암호를 사용한다. 아리송하게 들리는 이 전문용어는, 어떤 숫자의 이진수 값이 그 숫자의 유전자로 사용된다는 의미에 불과하다. 만약 GA 에 의해 진화되고 있는 어느 수가 13 이라면, 그 유전자는 00001101 (13 을 이진수로 표현한 값) 이 된다. 만약 숫자가 156 이라면 그 유전자는 10011100 이 될 것이다. 그리고 이 두 숫자들이 자식을 낳을 만큼 충분히 적합하다면, GA 는 교차와 돌연변이를 이용하여 두 유전자를 잘게 썰고 변화시켜 두 개의 자식을 만든다. 이번에도 그 절차는 놀랄 만큼 간단하다. 무작위 교차점 (예를 들어 5) 이 선택된다. 그러면 첫 번째 자식은 부모 1 에게서 처음 5 개의 비트를 물려받고 부모 2 로부터 나머지 3 개의 비트를 물려받는다. 두 번째 자식은 부모 2 에게서 처음 5 개의 비트를 물려받고 부모 1 로부터 나머지 3 개의 비트를 물려받는다. 만약 부모가 13 과 156 이고 교차점이 5 라면, 두 자식은 각각 유전자 0001100 과 10011101 을 갖게 된다.
GA 는 이따금씩 돌연변이도
적용한다. 이 과정은 이해가 훨씬 수비다. 무작위로 (우연히) 한 비트가 선택되어
그 비트의 값이 1 에서 0 으로, 혹은 0 에서 1 로 뒤집힌다. 만약 첫 번째 자식이
돌연변이를 일으키고 그 무작위 선택점이 7 이라면, 그 유전자는 00001100 에서 00001110
으로 돌연변이를 일으킨다.
이진수 유전자는 각 자식의 숫자를 결정한다. 첫 번째
자식이 00001110 이라는 유전자를 가졌다면, 그 숫자는 14 가 되고, 두 번째 자식이
10011101 이라는 유전자를 가졌다면, 그 숫자는 157 이 된다. 이와 같이 13 과 156
이라는 두 부모가 14 와 157 이라는 두 자식을 낳게 되었다. 두 자식이 부모와 비슷한
것은 부모의 유전자를 물려받았기 때문이다.
진화가 완전히 무작위적인 (우연한) 유전자 결합에서 시작된다는 사실은 다소 의외로 여겨질 수도 있다. 그러나 이때 GA 는 훨씬 더 많은 잠재적 해답들을 조사할 수 있다. 그리고 더 적합한 개체들만 자식을 낳을 수 있기 때문에, 진화는 불충분한 해답을 재빨리 버리고 최고의 해답들을 낚아채게 된다.
유전 알고리즘은 이 간단한 이진수-뒤섞기 메커니즘으로 비너스 파리잡이에게 물 주는 문제를 훌륭히 해결할 것이다. 그리고 이 디지털 식물의 행동이 자연의 식물과 똑같다면, 나는 진화한 해답을 이용하여 파리잡이의 생존 가능성을 높이게 될 것이다.
우리에게는 선물 받은 식물을 잘 키우는 문제보다 더 어렵고 흥미로운 문제들이 아주 많다. 그러나 약간은 한심해 보이는 그 예에서 우리는 상당히 중요한 어떤 것을 찾을 수 있다. 그것은 컴퓨터 안에서 진화가 어떻게 이루어지는 가이다. 우리의 취급 대상이 숫자든, 기호든, 커피 탁자든 우리는 디지털 세계를 창조하여 그 거주자에게 유전과 변이를 통한 번식과 나름대로의 선택을 제공할 수 있다. 진화는 이 세 과정이 가능할 때에만 발생한다. 그리고 컴퓨터에서 진화가 발생할 때, 우리 앞에는 종종 놀라운 결과가 나온다.
인간은 오래 전부터 자연의 힘을 동력으로 사용했기 때문에, 때로는 토네이도를 타고 다닐 수 있겠다는 생각을 하기도 한다. 그러나 토네이도를 어떻게 운전하겠는가? 이렇게 요란한 비유법을 사용한 이유는 우리로서는 진화로 인해 발생할 다음 결과를 정확히 예측할 수 없기 때문이다. 세계 최고의 석학들이 앞으로 30 년 동안 연구하고 분석한다 해도, 진화를 수학적으로 입증할 만한 증거는 결코 나오지 않을 것이다. 진화는 거의 항상 우리에게 훌륭한 해결책을 선사하지만, 누구도 이 사실을 입증하지는 못할 것이다. 그리고 진화로 인해 어떤 해결책이 나올지를 예측하는 것도 불가능하다. 심지어 비너스 파리잡이에게 물을 주는 문제와 같이 유전 알고리즘으로 단 하나의 숫자를 진화시키는 아주 간단한 경우에도, 왜 유전 알고리즘을 통해 해답이 나오는가의 문제에 대해서는 입증된 이론이 거의 없는 실정이다.
일부 과학자들이 이 모든 문제를 다소 두렵게 여기는 것도
의외는 아니다. 진화는 강하고 거친 야수 같아서, 지금까지는 자연뿐 아니라 디지털
세계에서도 우리를 용납해주었지만 언제 사납고 예측할 수 없는 모습으로 돌변할지
알 수 없는 존재이다. 수학적 증거는 턱없이 부족하여 진화에 대한 우리의 호기심을
꺾는 것 이상으로 좌절감을 안겨준다. 그렇게 예측하기 어려운 것을 어떻게 신뢰할
수 있겠는가? 그러나 진화가 선사하는 혜택이 늘어남에 따라 그러한 근심은 갈수록
줄어들고 있다. 진화는 우리 눈앞에서 아주 잘 진행되고 있다.
입증할 수 없는
것이 아주 많다고는 하지만, 우리가 진화를 문제 해결에 더 자주 이용한다면 진화가
올바른 해답을 찾는 데 얼마나 유용한가를 더욱 분명히 알게 될 것이다. 오늘날 컴퓨터
공학에서 진화는 가장 훌륭한 기술 가운데 하나로 손꼽힌다. 진화는 과학자들이 신중하게
창조한 '전통적 방법' 들을 완전히 능가하고 있다. 자연에서 분명히 입증된 진화의
위력이 우리의 디지털 세계에서도 똑같이 입증되고 있다.
진화는 엄청난 시간이 필요하다거나 매우 비효과적이라는 의견이 종종 거론되지만, 그러한 생각은 이제 이치에 맞지 않는다. 컴퓨터의 진화 프로그램을 이용하면 아무리 복잡한 문제라도 몇 초 안에 혹은 몇 분 안에 해답을 찾을 수 있다. 그러나 신중하게 짜맞춰진 수많은 형식적인 방법들은 그보다 훨씬 더 많은 시간이 들면서도, 진화가 제공하는 것만큼 수준 높은 해결책에 도달하지 못하는 경우가 허다하다.
아주 최근에 어떤 사람이 진화는 비효율적이라고 주장하며, 나와 논쟁을 벌인 적이 있었다. 최고의 해답을 내놓기까지 고려해야 하는 잠재적 해답의 수가 너무 많다는 것이었다. 이것은 한마디로 어리석은 생각이다. 과학자가 어떤 것을 이해하려 할 때 여러 가지 이론을 고려하는 것이 비효율적이라는 말인가? 여러 가지를 고려하지 않은 해답은 싸구려 가짜일 가능성이 높다. 이와 마찬가지로, 진화에서도 여러 가지 해답이 고려되지 않는다면 결코 궁극적인 해답이 발견되지 못할 것이다. 인류가 '단 한 번의 거대한 도약으로' 석기 시대에서 우주 시대로 뛰어오르지 못하는 것처럼, 어떤 기술도 어려운 문제를 해결하는 좋은 해답에 곧바로 도달할 수는 없다. 진화는 여러 가지 어려운 문제들에 대해 적절한 해답을 찾을 수 있는, 우리가 알고 있는 최고의 효과적인 방법이다.
지금까지 진화를 성공적으로 이용한 사례는 셀 수 없을 만큼 많다. 그렇게 많은 사례를 일일이 열거하면 여러분이 지루해질까 걱정될 정도이다. 그래서 나는 지금 이 시간에도 진화를 거듭하고 있는 제트엔진의 터빈 날개, 공기역학 자동차, 인공위성, 회전속도 조절바퀴, 광학 프리즘, 사진과 동일한 얼굴, 공장의 작업 시간표, 수업 시간표, 위조 탐지기, 건축 구조물 등에 대해 자세히 설명하지 않기로 하겠다. 또한 얼굴 표정을 이용하여 자료를 표현하는 방법, 인간을 쉽게 이기는 진화된 게임 전략, 아군의 항공기가 어떤 공중전에서도 살아남을 수 있는 진화된 전투기 작전 등에 진화가 어떻게 이용되었는가에 대해서도 더 이상 언급하지 않을 것이다. 그 대신 우리는 이 장의 나머지 부분에서 두 가지 응용방법에 집중할 것이다 (그러나 진화적 컴퓨터에 대한 이야기가 이 장에서 끝나는 것은 아니다. 3 장 이하에 등장하는 디지털 생태계의 여러 피조물들이 최소한 그 디자인의 일부라도 진화를 통해 이루어진 것들이다. 따라서 이 주제에 대한 더 자세한 이야기는 나중을 위해 남겨두고자 한다).
이제 진화적 컴퓨터 분야에 새롭게 진입한 신참과 대화를 시작해보자. 그 이름은 GP, 즉 유전 프로그래밍 (genetic programming) 이다.
공상과학 소설가 아서 C. 클라크의 말 같지만, 오늘날 수백 명의 과학자들이 컴퓨터 스스로가 자신의 프로그램을 만들 수 있게 하는 연구에 몰두하고 있다. 상상해보라. 더 이상 프로그래머가 필요 없고, 버그를 해결하기 위해 다음 버전이나 패치가 나오기를 기다리면서 한숨 쉬는 일도 없을 것이다. 컴퓨터에게 원하는 것을 명령하기만 하면 스스로 알아서 프로그램을 짠다. 만약 컴퓨터가 '밀레니엄 버그' 문제를 일으킨다면, 우리는 그저 "이 소프트웨어를 1999 년이 지난 후에 실행하라" 고 말만 하면 컴퓨터는 저절로 프로그램을 다시 만든다. 이것이 '자동 프로그래밍' 이다.
그러나 안타깝게도
컴퓨터가 스스로 프로그램을 만드는 것은 상당히 어려운 문제이다. 언어 생활에서
우리가 무한수의 단어를 말할 수 있는 것처럼, 하나의 프로그래밍 언어를 이용하여
표현할 수 있는 프로그램의 수도 무한하다. 어느 프로그램을 이용해야 하는가를 생각해내는
일은 모래사장에서 바늘을 찾는 것만큼이나 어렵다.
다행히 우리는 이 어려운
문제를 손쉽게 해결하는 방법을 알고 있다. 바로 진화이다. 유전 알고리즘을 약간만
수정하면 컴퓨터 프로그램을 진화시킬 수 있다. 이 알고리즘을 '유전 프로그래밍'
이라 하는데, 유전 프로그래밍에 대한 연구는 이미 하나의 분야로 인정받고 있다.
유전 프로그래밍, 즉 GP 는 프로그램 명령어를 변경하는 데 진화를 이용한다. 앞장의 예에서 소개했던 프로그램에는 '더하라', '저장하라', '출력하라' 등의 간단한 명령어가 사용되었다. GP 는 이러한 명령어들을 진화시킨다. GP 가 진화를 이용하여 적절한 명령어들을 함께 묶으면, 이 명령어들이 실행되어 컴퓨터로 하여금 목표했던 행동을 하도록 만들 수 있다. 어떤 의미에서 그것은 하나의 디지털 세계에서 진화가 일어나 자동으로 다른 디지털 세계를 창조하는 것과 같다.
이것은 매우 어려운 문제이다. 진화 자체만도 어려운 과정이지만, GP 알고리즘도 몇 가지 문제가 그 발전을 가로막고 있다. 지금까지 과학자들은 수학적으로 표현되는 간단한 프로그램들을 어렵게 개발해왔고, 반복과 함수 호출을 이용한 최초의 프로그램들은 아직도 완성되지 않은 실정이다. 그럼에도 불구하고 GP 는 훌륭하게 작동하여 인상적인 결과를 생산하고 있다. 스탠퍼드 대학 GP 연구의 대가인 존 코자 (John Koza) 는 이 방법에 커다란 자신감을 보이고 있다. 그의 회사인 제네틱 프로그래밍 사에서는 해결책 진화라는 단 한 가지 목적을 위해 1 천 개의 처리장치를 가진 슈퍼컴퓨터를 가동하고 있다. 이것은 세계에서 가장 빠른 컴퓨터 중 하나로, 그 속도는 GP 에 대한 존의 야심만큼이나 높다. 그는 이렇게 말한다. "현재 우리가 연구하고 있는 분야는, 아날로그 전기 회로와 제어기, 컴퓨터 분자 생물학의 문제들, 그 밖의 셀룰라 오토마타 (자세한 설명은 7 장 참조) 나 멀티 에이전트 시스템, 동작 연구, 설계 분야 등과 관련된 다양한 문제들, 그리고 새롭고 유용한 발명 특허를 창조하기 위해 자동 '발명 기계' 와 같은 유전 특허를 얻었을 정도이다. 오늘날 이 분야의 과학자들은 어느 진화된 발명품의 최초로 특허를 취득할 것인지에 큰 관심을 가지고 지켜보고 있다.
GP 를 성공적으로 이용하고 있는 사람은 존 코자만이 아니다. 나는 7 장 성장에서 몇 명의 다른 사람들에 대해 이야기할 것이다. 그러나 지금은 예술에 눈을 돌려보자. 최근의 영화에서 볼 수 있듯이, 컴퓨터 그래픽은 놀라운 특수 효과를 만들어낸다. 또한 대부분의 책표지, 그리고 신문과 잡지를 장식하는 그림들이 컴퓨터에 의해 만들어지거나 조작된다. 이와 같이 컴퓨터는 분명 놀라운 이미지들을 만들어낼 수 있다. 이 생각을 더욱 진지하게 받아들인 몇몇 예술가들이 있었다. 컴퓨터 프로그램을 이용하여 예술작품을 창조한다면 어떨까? 그리고 그런 프로그램은 어떻게 만들까?
문제가 되는 것은 두 번째 질문이다. 컴퓨터에게 '예술적인' 표현을 명령하려면 어떤 명령어를 사용해야 하는가를 결정하기가 좀처럼 쉽지 않기 때문이다. 이 문제를 용케 해결했다고 해도, 예술가는 새로운 작품을 만들 때마다 새 프로그램을 만들거나 기존의 것을 수정해야 한다. 그것은 너무 부담스런 일이다. 우리가 컴퓨터에게 "새로운 작품을 생산하는 프로그램을 하나 만들어달라" 고 명령할 수 있다면 얼마나 좋겠는가?
해답은 바로 GP 에 있다. 전세계 수많은 예술가들이 GP 나 GP 의 순열을 이용하여 예술적 이미지를 생산하는 프로그램을 진화시키고 있다. MIT 의 칼 심스 (Karl Sims) 도 맨 처음 이 분야에 뛰어든 사람 중 한 명이다. GP 가 탄생한 직후인 1990 년대 초에 칼은 자신이 개발한 시스템을 이용해, 주목할 만한 2 차원 이미지를 생산하는 프로그램들을 진화시켰다. 각 프로그램의 적합성을 평가하기 위해 그는 그 이미지들을 사용자에게 보여주었고 사용자들은 '이것보다 저것이 마음에 든다' 는 식으로 이미지들을 평가했다. 더 좋은 이미지를 만든 프로그램들이 더 많은 자식 (결과물) 을 낳았고, 여러 세대에 걸쳐 진화가 진행된 후 예술이라고 볼 수밖에 없는 그림들이 그 프로그램들에서 나오기 시작했다. 진화의 예측 불가능한 특성 때문에 매번 다른 프로그램이 진화해 나왔고, 그때마다 다른 예술 작품이 나왔다. 마침내 자동 예술 생성기가 창조된 것이다.
예술 분야에서는 논쟁이 다반사이다. 컴퓨터 예술도 현재 뜨거운 논쟁거리이며, 진화된 이미지를 예술로 인정하지 않는 사람이 아주 많은 실정이다. 그러나 자동 예술 생성기라는 개념은 최근 몇 년 동안 커다란 인기를 누리고 있다. 모든 사람이 예술가는 아니다. 그러나 대부분의 사람들은 좋아하는 것과 싫어하는 것을 구별할 줄 안다. 진화가 우리에게 개성있고 독창적인 그림을 보여주는 것 이상 무엇이 필요하겠는가?
최초로 예술을 진화시킨 사람은 칼이 아니었다. 1980 년대 말 왕립 예술대학의 전직 교수였던 윌리엄 라탐 (William Latham) 은 IBM 의 과학자 스티븐 토드 (Stephen Todd) 와 팀을 이뤄, 서로 다른 진화 알고리즘으로 아주 멋진 2 차원 그림과 3 차원 그림을 진화시켰다. 그리고 현재 활동중인 '진화예술가' 로는 단연 스티븐 루크 (Steven Rooke) 를 꼽을 수 있다. 스티븐은 진화 예술의 최고라는 찬사에 걸맞게 매우 열정적인 활동을 펼치고 있다. 지금까지 7 년 동안 그는 대단히 강렬한 이미지들을 진화시켜왔다. 이 주제에 대한 그의 열정은 그가 쓴 글에서도 확연히 드러난다.
"멈출 수가 없다. 이 작업에는 사람을 끌어들이는 어떤 힘이 있다. 이 이미지들은 금방이라도 초공간에서 물리적 세계로 뛰쳐나올 것만 같다. 이 이미지들을 보고 있으면 마치 꿈을 꾸는 것 같고 다른 세계에 있는 것 같다. 슬라이드나 멀티미디어를 이용한 전시회에서 청중들이 숨을 죽이며 지켜보는 것을 볼 때, 나는 어느 괴팍한 예술과학자의 변덕이 아닌 그 이상의 어떤 일이 일어나고 있음을 느낄 수 있다. 결국 시간과 시장이 진실을 말해줄 것이다."
진화 예술에 대한 스티븐의 믿음은 컴퓨터를 이용한 이미지들로 표출되었다 (그림 1 참조). 모든 사람이 그런 그림을 벽에 걸고 싶어하지는 않을 것이다. 그러나 대부분의 사람들은 그것들이 매우 인상적인 작품이라는 사실에 동의한다. 컴퓨터에서 진화하면서 그런 이미지를 만들어내는 프로그램들도 대단히 인상적이다. 인상적일 뿐 아니라 너무 복잡해서 그 작용을 제대로 이해하기가 불가능하다. 인간이 설계한 프로그램과 진화한 프로그램 사이에 최고의 예술을 창작하는 경쟁이 벌어진다면, 후자가 쉽게 승리할 것이다.
컴퓨터 스스로 프로그램을 만들게 하는 기술은 이런 종류의 디지털 생물학에서 거둔 여러 성공 사례 중 하나에 불과하다. 매우 흥미로운 또 하나의 분야는 컴퓨터를 이용하여 전자회로를 - 심지어 다른 컴퓨터를 - 설계하는 기술이다.
몇 년 전부터 새로운 설계를 개발하거나 창조하는 데 진화가 이용되고 있다. 사실 진화적 설계는 나의 취미이기도 하다 (걱정할 필요는 없다. 자세한 이야기로 여러분을 지루하게 만들 생각은 없으니까). 전자회로 설계에 진화를 이용하는 것은 아주 보편화된 일이어서, 이제는 자신의 이름을 가진 하나의 독립된 분야로 인정받고 있다. 우리는 그 분야를 '진화 가능 하드웨어' 라 부른다.
과학자들이 이 분야에서
올린 최초의 성과는 비교적 단순한 것이었다. 실리콘 칩 위에 초소형 부품들을 정확히
놓는 일이야말로 전자공학 기술자들에게는 항상 까다로운 일이었다. 실리콘 전체를
낭비 없이 사용할 수 있는 방법은 무엇인가? 맨 처음 이 문제에 진화가 적용된 것은
부품들을 실리콘 위에 합리적으로 배치하기 위한 것이었다. 효과는 아주 좋았지만,
그 자체만으로는 크게 주목할 만한 성과가 없었다. 그러나 이 기술은 곧 소박한 출발점을
벗어났다. 서식스 대학의 에이드리언 톰슨 (Adrian Thompson) 을 비롯한 몇몇 과학자들이,
진화가 전자공학을 어떻게 뒤흔들 수 있는가를 여실히 보여주기 시작했다.
에이드리언은
진화에게 상당히 똑똑한 일을 맡겼다. 그는 장 프로그램 가능 게이트 어레이 (field
programmable gate array, FPGA) 라는 신기술을 이용하여, 한 컴퓨터 안에서 새로운
회로 설계도들을 진화시켰고, 즉시 그것을 실제 실리콘에 시험할 수 있었다. 이 책에서
FPGA 의 자세한 속사정까지 살펴볼 필요는 없을 듯하다. 중요한 것은, 그 설계들은
전기적 신호를 가하면 재구성되어 다른 회로처럼 작동할 수 있다는 사실이다. 그래서
매번 값비싼 실리콘 칩 생산공장에 새 회로를 주문하지 않아도, FPGA 하나만 있으면
새로운 회로 설계를 즉시 재구성해낼 수 있다.
에이드리언은 진화에 큰 자유를
부여했다. 그가 단지 컴퓨터에게 "어떤 일을 하는 회로가 필요하다" 고
말한 다음 회로 생성 작업을 진화에게 맡기면, 진화는 스스로 FPGA 를 이용했다.
그 결과물은 과학계를 뒤흔들었다. 원했던 기능을 수행했지만, 어떻게 작동하는지는
분명치 않았다. 더 자세히 관찰하던 중 에이드리언은 아주 재미있는 점을 발견했다.
디지털 전자공학에서는 회로 내에서 전기의 흐름을 켜고 끄기 위해 작은 부품들을
이용한다. 전자공학 기술자는 그 부품들이 예정된 일을 정확히 수행할 것이라는 가정하에
디지털 회로를 설계한다. 그러나 그 부품들은 바라는 만큼 완벽하지 못하다. 한 부품이
온에서 오프로 또는 오프에서 온으로 전환되는 동안, 전기의 흐름이 충분히 켜지거나
꺼지지 않는 대단히 작은 시간적 틈들이 발생하게 된다. 오늘날 우리는 회로를 설계할
때 그 '중간' 행동을 이용할 만큼 실리콘의 특성을 충분히 알지 못한다. 그러나 진화는
그것을 안다.
에이드리언은 진화가 자신의 회로들을 진짜 실리콘 위에 시험하기
때문에, 칩마다 다르게 나타나는 그 '중간' 전환 상태와 그런 상태를 야기하는 작은
결함들을 금방 이용할 줄 알게 된다는 사실을 발견한 것이다. 진화는 모든 회로를
만들 때 그러한 특성들을 이용했고, 그로부터 만들어진 디지털 회로는 원하는 기능을
수행하기 위해 주기적 진동과 아주 이상한 행동을 보이는 등 마치 아날로그 회로처럼
행동했다. 회로의 설계는 인간이 한 것이 아니었다. 그것은 치밀하고 효율적이었으며,
어떤 설계자도 상상할 수 없을 정도로 정밀한 원칙에 따라 작동했다. 사실 진화는
회로의 작동을 효율적으로 만들기 위해 칩 각각의 구체적 특성을 매우 정밀하게 파악하기
때문에, 에이드리언은 똑같은 회로가 두 개의 칩 윙 만들어지기 힘들다는 사실을
발견했다. 다행스럽게도 이 문제는 진화가 진행되는 과정에서 여러 개의 칩 표면을
동시에 시험하는 방식으로 극복되었다. 그럼에도 불구하고 진화된 회로들 중 많은
것들이 여전히 분석을 거부하고 있다. 에이드리언은 심지어 회로가 가동될 때 칩의
어느 부분이 실제로 이용되고 있는가를 확인하기 위해 칩의 온도를 측정하는 방법에
의존하고 있다. 마치 신경학자가 뇌의 기능을 알아내기 위해 스캐너로 뇌를 검사하는
방법과 유사하다.
진화 가능 하드웨어에서 놀라운 결과가 나온 예는 이것뿐만이 아니다. 버밍엄 대학의 줄리언 밀러 (Julian Miller) 도 회로 설계를 진화시키는 방법을 연구하고 있다. 그는 자신의 회로들을 실제 실리콘이 아닌 컴퓨터의 디지털 세계에서 실험한다. 줄리언은 얼마나 새롭고 신기한 회로들이 진화하여 다양하게 응용될 수 있는가를 보여주고 있다. 과거에는 솔루션을 설계하기 위해 전통적인 대수학을 이용했으나 줄리언의 회로들은 그러한 울타리에 얽매이지 않는다. 진화는 '전통적 지식' 이나 회로 설계 이론을 알지도 못하고 관심도 없기 때문에, 그런 것쯤은 쉽게 무시해버린다. 그러면서도 새롭고 효율적인 회로들, 우리에게 무엇인가를 가르쳐줄 수 있는 설계들을 생산해낸다. 줄리언은 이렇게 말한다. "(나는) 우리가 맹목적인 진화의 과정을 통해 새로운 원리들을 배우는 과정은 불가피하다고 확신한다. 그것은 시간문제이다."
진화적 컴퓨터 사용의 모든 분야가 그렇듯이 진화 가능 하드웨어도 꾸준히 그 범위를 넓히고 있다. 스위스 연방 과학기술 연구소의 과학자 모슈시퍼 (Moshe Sipper) 는 현재, 손상을 입을 것 같으면 스스로를 재구성하는 회로를 연구하고 있다. 나사를 비롯한 전세계 연구 개발 부서들의 관심 속에, 진화를 이용한 자체 회복 회로들이 앞으로 5 ~ 10 년 내에 실현될 가능성이 높아지고 있다. 오늘날 과학자들이 과연 무엇을 연구하고 있는가를 구체적으로 알아보기 위해, 진화 가능 하드웨어에 관한 최근의 한 회의에 나왔던 주제들을 살펴보기로 하자. 그 대부분이 <스타 트렉> 의 대사와 아주 흡사하다.
<제 3 차 진화 가능 체제에 대한 국제학술회의>
생물학에서 하드웨어까지 (주제는 다음과 같지만, 그것을 제한되지는 않음)
디지털 세계 안에서 진화가 할 수 있는 일들이 나날이 증가했다. 우리는 진화의 가능성과 그 이용 방법을 이제야 이해하기 시작하고 있다. 그리고 진화를 이용하여 여러 가지 다양한 디지털 생명체들을 창조할 때 우리는 컴퓨터의 가능성을 더욱 높이게 될 것이다.
우리는 가상의 영화에서, 자연의 진화가 보여준 창조의 힘이 놀랄 정도로 강력하고 다양하다는 사실을 보았다. 그리고 자연의 진화가 아주 단순한 세 가지 과정인 유전ㆍ선택ㆍ변이로부터 발생한다는 사실도 보았다. 이 과정들이 우리의 유전자에 작용하여 지구상의 생명을 끊임없이 변화시킨다.
그러나 진화는 유전자에만 영향을 미치지 않는다. 단어의 진화와 함께 우리의 언어가 진화하고, 개념의 진화와 함께 우리의 생각도 진화할 것이다. 그리고 우리는 유전ㆍ선택ㆍ변이가 컴퓨터 안에 존재하는 비트에 작용하면 그 비트 또한 진화한다는 사실을 보았다.
커피 탁자에서 비너스 파리잡이 풀에 이르기까지 다양한 측면에서 진화적 컴퓨터 사용은 무시할 수 없는 힘을 발휘한다. 이제 컴퓨터는 프로그램을 진화시킴으로써 자기 스스로의 프로그램을 만들고, 그렇게 진화된 프로그램들은 예술을 생산한다. 또한 컴퓨터는 매우 독창적인 전자회로를 설계하고 만든다.
매우 실제적인 의미에서, 진화는 우리의 창조주이다. 그와 마찬가지 의미에서 오늘날 진화는 우리의 과학기술을 변화시키고 있다. 다음 장에서는 진화가 설계한 최고의 걸작인 뇌를 소개하고자 한다.