d라이브러리









1. 스스로 진화하는 소프트웨어

돌연변이 자연선택 적용, 최적 결과 구해

지난 2001년 1월, 영국의 과학잡지 ‘뉴사이언티스트’에는 ‘패션 디자이너여 조심하라!’는 다소 도발적인 문구로 시작하는 기사가 실렸다. 자연계의 ‘선택 교배’(selective breeding)를 흉내내 최상의 디자인을 스스로 만들어내는 소프트웨어가 개발됐다는 것. 연구의 주인공은 국내 과학자인 연세대 컴퓨터과학과 조성배 교수였다.

조교수는 옷 맵시를 결정하는 인자를 34가지 모양의 목선과 소매 모양, 소매 끝, 허리 선 등으로 나눴다. 프로그램에서는 이 인자들이 자신과 맞는 모양을 찾아 끝없는 짝짓기를 한다. 짝짓기 결과는 프로그램 내에서 자체적인 평가를 거쳐 사용자의 취향에 꼭 들어맞는 최상의 디자인을 결정한다.

어찌보면 간단한 원리지만 내면을 보면 그렇지 않다. 기존의 프로그램에서는 짝짓기부터 그 결과의 평가까지 일일이 프로그래머가 명령하고 결정해야 한다. 하지만 이 프로그램은 초기 조건(디자인 구성 요소와 사용자의 취향, 올 여름의 패션 경향 등)만 정해주면 나머지 과정은 프로그램이 알아서 스스로 결정한다. 일종의 자기 결정권을 가진 셈이다.

최근 이처럼 컴퓨터 소프트웨어에서 생명체의 특성을 모방하려는 연구가 활발히 이뤄지고 있다. 인간의 의지대로 움직이는 복잡한 명령어 체계의 집합일 뿐인 수동적 프로그램에 생명의 입김을 불어넣으려는 노력이 어떻게 진행중인지 알아보자.


프로그래밍의 새로운 패러다임, 진화 알고리즘

1859년 영국의 의사이자 생물학자인 찰스 다윈은 남태평양의 갈라파고스 군도를 탐사한 뒤, 그 결과를 ‘자연선택에 의한 종의 기원에 관하여’라는 책으로 발표했다. 여기서 그는 생물의 어떤 종에 변이가 생겼을 때, 그 생물이 생활하고 있는 환경에 가장 적합한 개체만 살아남고 부적합한 개체는 사라져 버린다는 ‘자연선택설’을 주장했다.

다윈의 ‘진화론’이 발표된 1백여년 뒤, 몇몇 컴퓨터학자는 컴퓨터에 의한 계산 과정과 자연의 진화 현상이 서로 연관될 수 있다고 생각했다. 이런 생각은 1980-90년대 구체적인 연산모델인 ‘진화 알고리즘’(EA, Evolutionary Algorithm)으로 정립됐다.

진화 알고리즘은 생물의 진화와 유전학에 기반한 계산모델로서 현재 인공생명 연구에 견인차 역할을 하는 도구 중 하나다. 부모의 형질이 자식에게 유전되고 세대 교체를 반복하는 과정에서, 우성형질이 선택적으로 복제돼 환경에 적응한 개체는 살아남고 그렇지 못한 개체는 도태되는 과정을 시뮬레이션한 계산모델이다. 그래서 어떤 문제에 대한 해를 구할 경우, 해가 될 수 있는 집단(개체군)을 정하고 이 집단에 변이(돌연변이) 함수를 도입해 문제의 조건(환경)에 적당한 해(개체)만 선택된다.

여러 세대에 걸쳐 이뤄진 돌연변이 중 최적의 해만 골라내는 과정은 인간이 아니라 프로그램의 ‘의지’다. 인간은 집단을 구성하고 적당한 돌연변이 변수를 도입하며 돌연변이된 개체 중 조건에 적합한 인자를 선택케 하는 과정만 프로그램밍한다. 나머지 과정은 생물의 진화가 그렇듯 프로그램 내에서 자율적으로 이뤄진다. 돌연변이가 생기면 환경에 적합한 개체만 살아남는다는 생물의 진화 과정을 그대로 모방한 것이다.

생물은 실제로 발현되는 모양인 ‘표현형’과 그 정보인 ‘유전형’으로 표현할 수 있다. 멘델이 관찰한 둥근 완두콩(AA, Aa)과 쭈글쭈글한 완두콩(aa)에서 ‘둥근’과 ‘쭈글쭈글’은 표현형에 해당하며, AA와 Aa, aa는 모두 유전형을 가리킨다. 이처럼 생명체는 유전자의 차이를 말하는 유전형과 행동·생리·형태 등의 외부반응 양식인 표현형을 갖는데, 이를 ‘생명의 이중성’이라 한다.
 

인공생명 기법을 이용하면 최신 유행하는 패션 경향을 컴퓨터 프 로그램을 이용해 간편히 디자인할 수 있다.



프로그램에 유전형과 표현형 구현

진화 알고리즘은 실제 프로그램밍 과정에서 생명의 이중성 원리를 이용한다. 즉 해의 후보인 개체군을 유전형과 표현형으로 나눠 구성하는 것이다. 개체군 내에서 한 개체가 유전형의 정보로부터 특정한 형태의 표현형으로 발현되는 과정을 ‘분화’라 하며, 표현형 공간에서 그 개체가 잘 적응해 살아남는 것을 ‘선택’이라 한다. 선택된 개체는 다음 세대에 자신의 유전형을 물려준다. 이를 ‘유전적 생존’이라 하며, 유전형 공간에서 변형이 일어나는 것을 ‘돌연변이’라 한다. 즉 프로그램 내에 자연을 모방한 가상공간을 만들고, 이곳에서 적자생존을 통해 살아남는 개체만 선택하는 것이다.

진화 알고리즘은 사실 하나로 통합돼 있지 않다. 미국의 미시간대에서는 ‘유전자 알고리즘’(GA, Genetic Algorithm)을 제시했고, 독일에서는 ‘진화 전략’(ES, Evolutionary Strategies)을 발표했다. 또한 미국의 포겔 박사는 ‘진화 프로그래밍’(EP, Evolutionary Programing)을 거의 같은 시기에 독자적으로 제시했다.

이름은 조금씩 다르지만 진화 알고리즘은 몇가지 공통점을 갖는다. 모두 개체군에 기반한 탐색을 수행하며 개체의 환경 적합도를 측정하고, 최적 개체를 선택하기 위한 방법을 지닌다. 또한 기존의 개체군을 변형해 새로운 세대를 생성하기 위한 유전 연산자가 포함돼 있다. 일반적으로 환경 적합도가 높은 개체는 적합도가 낮은 개체보다 다음 세대에 선택돼 살아남거나 자손을 생산할 확률이 더 높다. 진화 알고리즘은 보통 원하는 수준의 적합도를 가진 개체가 나타날 때까지 세대 교체를 반복한다.
 

미지 행성 스스로 탐사하는 로봇



미지 행성 스스로 탐사하는 로봇

최근 인기를 얻고 있는 ‘스타크래프트’나 ‘리니지’ 같은 온라인 게임에 진화 알고리즘이 적용될 전망이다. 온라인 게임의 매력은 다른 사람과 상호작용하며 예측불허의 상황에 적당한 전략을 수립하는 재미일 것이다. 그러나 기존의 전통적인 프로그래밍으로는 아무리 복잡한 상황을 만들더라도 어떤 식으로 반응할 것인지 대충 예측할 수 있다. 반면 진화 알고리즘을 사용하면 게임 진행 상황에 따라 각기 다른 환경이 만들어지므로 전혀 예측할 수 없다. 가까운 미래에 스타크래프트나 리니지의 전략은 진화 알고리즘으로 설계돼 더욱 흥미진진하게 될 것이다.

진화 알고리즘은 지능형 로봇의 행동을 제어하는데도 이용된다. 이제까지 예측할 수 없는 상황에도 로봇이 적절히 대처할 수 있는 일반적 제어기를 만들기 위해 인공신경망과 퍼지시스템이 널리 이용됐다. 하지만 이런 기술로 로봇의 창발적 행동을 유도하는데는 많은 한계가 있다. 인공신경망은 로봇의 움직임을 결정하는 변수를 제어기에 일일이 입력하는 방식을 취했기 때문이다. 하지만 최근에는 진화 알고리즘을 이용해 로봇의 지능적 행동을 유발하는 제어기를 개발중이다.

동물의 감각과 행동은 신경망에 의해 제어되고, 이 신경망은 개체의 발생과 학습 그리고 종족의 진화를 통해 획득된다. 따라서 동물의 이런 행동 패턴을 모방하면 환경에 따라 자율적 행동을 취할 수 있는 로봇 제어기를 만들 수 있다. 로봇 내에 설치된 인공신경망 구조는 미지의 환경에 부딪힐 때마다 적당한 행동패턴을 취하게 한다. 상황에 따라 선택된 행동은 기억되며 여러 세대에 걸친 돌연변이와 선택 과정을 통해 최적의 행동패턴으로 진화한다.

미지의 행성이나 하수도 내부는 그 환경에 대한 완전한 정보를 얻을 수 없기 때문에 기존의 프로그래밍으로 로봇을 제어하는데는 한계가 있다. 진화 알고리즘을 사용한 인공신경망은 실제 미 항공우주국(NASA)의 행성탐험용 로봇이나 하수도 청소 로봇의 제어기를 만드는데 이용되고 있다.

또한 최근 각광받고 있는 애완 로봇이나 인간형 로봇 휴머노이드에도 진화 알고리즘이 사용되고 있다. 일본의 소니사가 출시한 로봇강아지 ‘아이보’(AIBO)는 매우 정교한 제어기를 갖고 있어 몇몇 행동은 거의 살아있는 강아지와 유사하다. 하지만 아이보의 제어기 역시 프로그래머가 설계한 것이기 때문에 전체적인 행동은 여전히 부자연스럽다. 이를 진화 알고리즘으로 극복해 좀더 살아있는 강아지와 유사하도록 하고, 주인과 상호작용을 통해 서로 우정을 쌓을 수 있도록 하는 연구가 진행중이다.
 

미 브랜다이스대에서 개발 된 행성탐사용 로봇 ‘골렘’ 의 모습. 이 로봇은 진화 알고리즘을 이용해 움직임을 제어하기 때문에 예측할 수 없는 상황에서도 최적의 행 동을 취한다.



웹 상의 디지털 생물체 ‘티에라’

진화 알고리즘은 실제 생태계를 시뮬레이션하는데에도 적합하다. 생태계를 구성하는 요소는 셀 수 없을 정도로 많고 복잡해 슈퍼컴퓨터나 그리드컴퓨팅으로도 그 변천과정을 알아내기가 쉽지 않다. 진화 알고리즘을 시뮬레이터 프로그램에 응용하면 실제 작동에 필요없는 군더더기 부분은 없어지고 핵심 기능만 골라낼 수 있다. 작동 방식과 계산 과정이 복잡한 거대 프로그램을 슬림화시킬수 있다는 말이다.

진화 생물학자인 토마스 레이가 개발한 ‘티에라’는 웹상에서 인공생명의 가능성을 보여준 예다. 티에라는 시뮬레이터로 일종의 디지털 생물체다. 티에라 안에는 단순히 자신을 복제하는 80바이트 크기의 프로그램이 들어있다. 이 프로그램은 64킬로바이트의 전체 메모리 안에서 마치 생물처럼 자신을 끊임없이 복제한다. 메모리가 꽉 차는 것을 방지하기 위해 오래된 프로그램은 없어지도록 하고, 가끔 돌연변이가 일어나게 해 프로그램 일부를 변경시킨다. 이와 같이 복제와 돌연변이 과정을 수만번 거듭하는 것이 티에라의 작동방식이다.

그런데 티에라를 작동시킨 결과, 놀랍게도 시간이 지날수록 처음의 프로그램과는 전혀 다른 기생충 같은 프로그램이 생겼다. 기생충 프로그램은 바이러스가 숙주의 효소를 이용해 유전자를 복제하듯, 주변 프로그램의 복제기능으로 자신을 복제한다. 이 프로그램이 갖고 있는 것은 생존에 필요한 요소와, 자신이 침입한 원래 프로그램이 작동할 수 없도록 방해하는 기능이다. 결국 자신만 살아남게 된다. 진화의 결과 밖에 볼 수 없었던 인류에게 그 과정을 이해하기 위한 계기가 마련된 것이다.

또한 티에라는 프로그램의 슬림화·최적화 과정에 대한 단서도 제공했다. 메모리를 차지하기 위한 경쟁에서 최종적으로 살아남은 프로그램은 최종 크기가 23바이트로, 복제와 방해 기능만 들어있었다. 80바이트를 23바이트로 줄이는 일은 오늘날의 슈퍼컴퓨터를 이용해도 불가능한 일이다. 티에라는 자연선택을 모방해 생태계를 단순히 시뮬레이션하는데 그치지 않고 거대 프로그램을 정교하게 최적화할 수 있음을 보인 것이다.


진화 앞둔 인공생명 연구

마지막으로 진화 알고리즘을 이용한 인공생명 연구는 예술 분야까지 넘보고 있다. 선두주자는 컴퓨터 그래픽과 디자인 분야.

최근 개봉된 ‘개미’라는 애니메이션 영화를 보면 도저히 만화라고 하기에는 믿기 어려울 정도로 정교한 장면들이 나온다. 특히 수많은 개미들이 떼로 몰려다니는 군집행동은 너무나 자연스러워 감탄을 자아낸다. 바로 진화 알고리즘을 사용한 결과다.

인공생명의 이런 추세는 ‘진화 예술’(evolutionary art)이라는 새로운 분야까지 탄생시켰다. 미국의 진화 예술가 칼 심즈의 작품들을 보면 인공생명 기술을 이용한 진화 예술의 경이로움을 맛볼 수 있다. 그는 3차원 그래픽으로 생성한 가상생물의 최적 움직임을 진화 알고리즘을 사용해 디자인한다. 그가 만든 시뮬레이터 ‘갈라파고스’를 이용해 생성한 오묘한 디자인은 마치 살아있는 듯한 생물체를 보는 것처럼 자연스럽다.

인공생명은 발족한지 겨우 15년 정도밖에 안된 신생분야다. 아직은 이렇다할 성과물이 별로 없는데다, 기존의 프로그램으로도 어느 정도 만족할만한 결과를 얻을 수 있기 때문에 널리 쓰이지 않고 있다. 그러나 진화 알고리즘의 원리대로 돌연변이와 자연선택을 통해 탄생한 인공생명이 세상을 지배할 날도 머지 않은 것으로 보인다.

2002년 07월 과학동아 정보

  • 김대공 기자
  • 진행

    박현정

🎓️ 진로 추천

  • 컴퓨터공학
  • 생명과학·생명공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?