Home Page
1987년 9월, 인공생명(artificial life)이라는 새로운 과학의 문을 열기 위해 로스앨러모스(Los Alamos)에 모였다. 이 생명의 재료는 비유기체 물질이며, 그 본질은 정보이다. 인공생명의 목적은 광활한 우주에서 생명이 지니고 있는 공통적인 정보의 메커니즘 또는 과정을 명료하게 이해하기 위함이다. 인공생명을 연구하는 사람 들은 현재 지구상에 나타난 생명이 무수히 많은 생명 형태 중 하나에 불과하다는 전제를 깔고 있다. 따라서 인공생명에 대한 연구는 하나뿐인 우주, 하나뿐인 생명 형태라는 식의 고정관념과 ‘인간 중심주의’를 거부한다. 우주에 무수히 많은 생명 형태가 존재할 것이며, 따라서 현재의 탄소에 기초한 생명 형태 이후의 생명 형태의 고찰이 가능해진다.
인공생명의 이해
인공생명의 직관적인 이해를 돕기 위해 예시 몇 개 제시하고자 한다. 아래 그림을 확인해보자. 나무 비스무리 한 그림이지만 실제 나무 사진은 아니다. (혹 저작권 문제가 있을 수 있으니 출처는 위키피디아임을 명시함) L-시스템 (1968)이라는 알고리즘만으로 그려낸 것이다. 경이롭지 않은가. 좀 더 자료를 찾아보면 3D 화면에서 그련 낸 것도 있다.

다음은 보이드(boid)를 예로 들어 보자. 보이드는 Craig Reynolds 가 1986년에 만든 인공생명 프로그램이다. 새들이 무리지어 날라가는 모습을 컴퓨터 안에서 알고리즘으로 표현한 것이다.

위 예시들의 공통점은 무엇일까? 살아 있는 생명체가 아닌 주로 컴퓨터를 통하여 생명의 신비를 해명하고자 하는 노력들의 산물이다. 크리스토퍼 랭턴(Cristopher Langton)은 이와 같은 노력들의 연구 산물들을 묶어 최초로 인공생명이라는 분야를 만들어낸 사람이다.
인공생명의 원리
인공지능과 달리 인공생명(들)에게는 공통적으로 적용되는 원리가 있다. (물론 위 예들도 적용된다.)
- bottom-up 처리
- 창발성
- 단순함, 그러나 복잡함을 유도함
인공생명의 주요 특징
인공생명은 분명 실제 생명과는 다르다. 우선 대부분의 생명처럼 단백질로 구성되어 있지 않고 주로 컴퓨터의 0,1 비트 위주로 구성되어 있다. 그러나 인공생명에도 생명과 같은 특징이 있다.
- 자기 복제 : 생명은 DNA 정보를 통해 그 형상의 정확한 복제를 이루어 낸다. 좀 더 복잡한 생명에서는 두 개의 개체의 유성 복제에 의해 각각의 유전자 일부가 다음 세대의 유전자에 공헌되는 식도 가능하다. 인공생명도 놀랍게도 복제를 한다. 모든 인공생명(인공생명 학문에서 논의되고 있는 수많은 결과물들)들이 전부 복제를 하는 것은 아니지만 보통 인공생명들은 복제를 중요한 특징으로 고려한다.
- 진화 : 생명은 환경 속에서 적응하는 특징이 있다. 적응하기 위해 지능이 필요한 것이 아니다. 생명이라면 진화를 할 수 있는 특징이 부여된다. 결국 진화하지 못한 생명들은 자연적으로 도태되고 살아남아 생존에 우수한 특징을 가진 생명들만 살아남게 되는 것이다.
- 감각 및 행동 : 환경에 대해 생명은 주어진 감각 기관으로 환경을 파악하고 행동에 대해 반응할 수 있는 기관들이 있다. 물론 수준에는 차이가 있다. 인공생명도 동일하다. 다만, 감각 기관과 행동하는 부분이 비트 처리기로 되어 있다는 것 뿐이다.
- 먹이 탐색 : 생명이 살아가기 위한 주 행동으로 먹이를 얻기 위함이다.
- 학습 : Michael Travers (MIT)는 학습을 생존의 가능성을 높이기 위해 행동을 변화시키는 것 이라 정의하였다. 생명에 있어 학습은 중요한 요소이다. 진화와 달리 학습 결과는 유전자를 통해서 전달되진 않지만 생명 공동체 속에서 전달되기도 한다.
인공생명 알고리즘 (또는 소프트웨어 도구)
인공생명이 살아가는 공간은 주로 컴퓨터이다. 따라서 인공생명 나름대로의 공통적인 몇 가지 방법론이 있다. 인공생명을 실현하기 위해 종종 사용되는 알고리즘 내지는 소프트웨어 도구이다.
셀룰라 오토마턴 (CA, Cellular Automaton)
셀에 0, 1 등 유한의 상태가 있고 주변셀들의 규칙 조합에 따라 셀들이 변화되는 시스템을 CA 라 한다. 아무것도 아닌 시스템인 듯 하지만, 간단한 규칙으로 심지어는 혼돈스러운 패턴을 만든다는 사실이 알려지고 나서 생명의 근본적 규칙을 밝히고자하는 도구(알고리즘)로 활용되고 있다. 간단한 규칙으로 혼돈 또는 복잡한 패턴을 이끌어낼 수 있는 사실이 놀라울 뿐이다. 더욱이 콘웨이의 라이프 게임은 2차원 CA의 대표적 예인데, 그라이더라고 하는 움직임을 발견하여 더욱 더 CA는 인공생명에 있어 중요한 도구가 되었다. 그리고 셀룰라 오토마턴 시스템에서 셀들의 주변 규칙에 대한 조합으로 아래와 같은 패턴 조합이 있음을, 스티븐 울프램 (Stephen Wolfram)이 발견하였다.
- class 1 : 모든 '사' 세포 또는 모든 '생' 세포 같은 무의미한 보편자를 만드는 규칙들.
- class 2 : 안정되고 반복되는 배열을 만드는 규칙들.
- class 3 : 혼돈스러운 패턴을 만드는 규칙들. 어느 것이나 인식 가능한 패턴을 만들지 않음
- class 4 : 복잡하고 논리적으로 구성된 패턴을 만드는 규칙들.
진화적 알고리즘
인공생명에 가장 밀접하게 관계하는 알고리즘은 존 홀랜드(John Holland)에 의해 시작된 유전자 알고리즘일 것이다. 유전자 알고리즘도 역시 bottom-up 방식을 사용하며, 이러한 점은 인공생명이 취하는 접근 방식과 동일하다.
LISP
인공지능 분야에서 널리 사용되고 있는 함수형 언어로 리스트가 기본 데이터로 사용된다.
바이오모르프(biomorph)
생명이 최초에 발생하고 나서 어떻게 진화하는가에 대한 해답을 설명하고자 하는 옥스퍼드의 과학자인 리처드 도킨스 (Richard Dawkins)는 바이오모르프라는 프로그램을 만들었다. 간단하게는 마치 나무가 자라는 듯 한 모습으로 변화하기도 하고 때로는 벌레같은 모습으로 진화하기도 한다. 기본적인 알고리즘은 9개의 유전자 (속성)를 준비하여 가로, 세로, 그리고 가지의 수를 결정하고 진화속에 유전자가 점차 변화(1개추가 또는 삭제 등) 되어 모양이 변화하는 것이다.

참고
- 진화하는 비트생명의 불가사의한 인공생명 (Ellen Thro 지음, 이현열 옮김)
- 위키피디아
- Introduction to Artificial Life and Java Illustration
Recent Comments