본문 바로가기

Robotics/Think about

로봇의 유전자, 그리고 진화...

사실 진학을 위해 research proposal을 쓰고자, 떠올렸던 것인데, 이것이 실현가능성 문제와 이미 다수의 연구진행이 있었던점, 그리고, 생소한 개념은 아니라는 점에서 스스로 판단해서 그냥 블로그에 올리자라고 생각했다. 뭐 자세하게 연구논문들을 survey해본건 아니지만, 본인이 판단하기에 독특할 만한 아이디어(?)는 아닌것 같다는 생각..... 그리고, 이글을 관련 전공자가 읽는다면 좀더 최신의 정보와 자세한 내용을 얻고싶은 마음.. 등등..^^

나름 시도해보면 재미있을 것같다는 생각이 자꾸들어 잊어버리기 전에 그것을 정리하고 구체화시켜보려고 한다.

박사과정 진학을 위해서 research proposal을 써보려고 한다. 어떤 연구를 어떻게 진행하겠다라는 계획서 같은 것인데, 막연한 계획보다는 조금 상세한 계획이 필요할 것같다. 이것은 어쩌면 나의 의지이자 그 연구실, 아니 그 교수에 대한 성의(?) 정도로 볼 수 있을것 같다. 아무런 계획없이 무작정 박사를 하겠다는 사람에게 어느 교수가 눈길을 주겠는가....

하고싶은건 많은데, 내가 잘 할 수 있거나, 잘 할수 있을것 같은 분야.. 그리고, 그 랩에서 연구와의 연관성, 내가 그들에게 필요한 존재로 인식시키기 위해서는 무엇보다 연구의 topic을 잘 정해야 할것같다.(뭐 내가 능력이 출중하여 서포터가 자금을 대고 너는 그 연구만해라..라고 한다면야 이런 고민따윈 안하겠지만...ㅡ,.ㅡ) 그렇다고, 내가 할 수 있는것을 완전히 무시한다면 그것또한 내 의지에 대한 배신일것이다. 단순히 학위가 중요한것보다, 내가 어느부분의 선구자 또는 최고의 연구자, 또는 독특한(?) 연구자가 되기위해서니깐...

그러면 어떤 아이디어(?)를 가지고 있는가...(아이디어라고 말하고 나니 스스로 좀 부끄러운...그냥 생각이라고 해두자..)

상상력을 가장 빨리 현실화 시킬수 있어서, 무한한 아이디어의 개념들을 사람들에게 이해시킬 수 있는 분야가 뭘까?... 컴퓨터 그래픽으로 그려낸 SF영화나 만화가 최고일 것이다. 돈이야 들겠지만, 현실에서 불가능한 것들을 그저 상상력만 있으면 만들어낼 수 있다. 그래서 우리는 많은 아이디어들을 만화영화나 공상과학 영화에서 많이 얻곤한다.

내가 생각하고 있는 아이디어또한 어떻게보면 그런 매체를 통해서 힌트를 얻었다. 영화 아이로봇에 나온 미묘한 인간의 감정을 표현하는 로봇, 트랜스포머에서 나온 괴상하게 생긴 나쁜 로봇(핸드폰으로 변했다가, 라디오로 변했다가..등등).. 그런것들을 가상이 아니라 실제로 구현한다면 어떻게 해야할까에 대한 고민에서부터 내 아이디어는 출발한 것이다. 난 사람은 태어나면서부터 어느정도 결정된 personality가 있다고 믿는다. 우리가 혈액형으로 그 사람의 성격을 대략 짐작할 수 있는 것처럼.. 하지만, 그것은 세월이 지나면서.. 부모에 의해서.. 또는 주변 환경에 의해서.. 변한다. '우리 아이가 달라졌어요'라는 TV프로에서 그 문제 아이들이 태어날때부터 그런 성격을 가졌을 거라고는 생각하지 않는다. 주변 환경이 그를 그렇게 만든것이지... 뭐.. 태어날때부터 선천적으로 특별한 능력이나 어떤 증후군을 가지고 태어나는 경우도 있다. 일단 이건 특수한 경우라고 생각하고, 일반적인 경우에는 그렇지 않다고 본다. 난 이것을 좋은 의미, 나쁜 의미를 떠나서 그들은 자신에게 주어진 환경에서 생활하기 위해 최적의 해답을 스스로 찾으면서, '진화'하는 것이라고 생각한다. 세대를 거듭하면서 부모에게 능력을 물려받는 진화의 개념을 좀더 짧은 시간의 개념으로 본 '진화'라는 의미는, 스스로 방법을 찾아내서 터득한다는 의미가 아닐까한다.

언젠가 TV에서 동물원에서 양이 우리밖을 탈출하는 장면을 보여준 적이 있다. 그 양이 당나귀인가? 등에 올라타고 난뒤에 철조망을 뛰어넘어 탈출하는 장면인데, 우리는 그냥 웃으면서, 대단한 양이군.. 신기하군.. 이라고 생각하면서 그냥 웃어넘긴다.. 하지만!!! 내가 생각하는 그 양은... 진화한것이라고 생각한다. 그 진화의 과정은 이러하지 않을까...

그 양은 우리안이 좁다고 느낀다. → 그곳을 벗어나고 싶다.(명령단계) → 하지만, 우리를 감싸고 있는 철조망이 자신의 키보다 높이 설치되어 있다. (환경인식단계) → 철조망을 뛰어넘으면 이곳을 벗어날 수 있다.(환경인식) → 나는 같은 우리안에서 지내는 당나귀의 등에 올라갈 수 있는 능력이 있다. 또는 길러졌다.(능력인지+경험+시행착오에의한 진화) → 당나귀위에 올라간다음에 철조망을 뛰어넘었다.(시행착오에 의한 또한번의 진화)

그러면, 위에서 말한 이야기와 생각한 아이디어의 연관성이 무엇인가?



난 그들의 종(species)이 가진 선천적 personality를 '고유유전자'라고 보고, 그들은 학습을 통해 살아가는 방법을 터득하는, 이른바 '진화'를 통해 자신의 유전자를 그 환경에 맞게 바꾸는 체계를 로봇에 적용시켜보자라는 것이다.(유전알고리즘이 그것이다.) 그 로봇은 자신의 기본적인 identity를 가지고 있다. 어떤 로봇의 identity는 다리가 4개이고, 한 다리에는 2축으로 구성되어있고, 빛의 세기를 알 수 있는 능력이 있고.. 기타 등등... 우리가 로봇을 개발하면서 시리즈를 구성하는 것을 물리적 진화라고 보자. 그것은 사람에 의해 진화되는 것이다.(스스로 물리적 진화를 할 수 있다면 대단한 일이겠지만, 불가능하지 않겠는가...)

자.. 이런 고유유전자를 주고 로봇에게 가장 빨리 앞으로 갈수있는 방법을 터득하라고 명령을 줘보자. 어떻게 움직일까.. 상상해보자. 로봇은 명령을 받은즉시, 모터를 움직여 볼것이다. 속도를 변화시켜보기도 하고, 관절의 각도를 변화시켜보기도 할테고, 여러 관절을 동시에 움직여 보기도 할테고..(이렇게 움직일 수 있는것은 고유유전자에 그 정보가 있기때문이라고 가정한다.) 어떻게 움직였더니 자신이 앞으로 이동하는 것을 감지했다고 한다면, 일단 그 로봇은 한번의 진화과정을 한 것이다. 그리고, 그 경험을 바탕으로 또 다시 각 관절의 움직임을 통해 지금보다 더 빨리 이동할 수 있는 방법을 시행착오를 통해 찾는다... 이러면서 진화한다. 어떻게보면 단순 반복으로 특정 task의 threshold값을 넘냐 안넘냐를 따져서 진화하는 거라고 인정하는 것과 무슨 차이가 있느냐라고 생각할 수 있다. 하지만, 유전 알고리즘의 특징처럼 진화하는 과정에 교배, 변이가 있기때문에 의도한 결과가 나오지 않을수 있다는 것이다. 이렇게 로봇의 움직임을 진화시키고자 한다. 사실 위에서 이야기한 사항만 해도, 상당한 제약조건이 있을것이다. 로봇이 자신이 앞으로 간다는 것은 어떻게 인식하는가.. 로봇이 빠르게 이동하는 방법을 찾는도중에 물리적 스트레스로 인한 특정부분의 성능저하는 어떻게 따질것인가.. 등등... 어떤 조건은 그 로봇이 어느정도 성장할때까지 인큐베이터에서 길러질수도 있을테고, 어떤 로봇은 많은 센서들과 엑츄에이터를 가져서 인식할 수 있는 능력을 가질 수도 있고.. 그건 어떤 로봇을 만들것이고 어떻게 진화되게 할것이냐의 계획단계에서 결정되고 제약사항을 걸어야 할 문제인것 같다.

다만, 로봇에게 기본적인 identity만을 주고, 학습을 통해 어떤 방법을 터득하게 하고, 그렇게 진화된 유전자를 동일한 로봇에 심었을때, 그 로봇또한 그렇게 움직여야 한다는 것이 가장 큰 목표이자, 핵심 아이디어이다.

그런데, 왜 이런것이 필요한가... 로봇을 만드는 주체는 사람이고, 사람은 그 로봇을 만들었으니 정보를 다 가지고 있을테고, 가장 잘 움직이는 방법, 가장 효율적으로 움직일 수 있는 방법을 계산하여 프로그램으로 입력해 놓을테고.. 그 프로그램이 로봇에 다운로드 되자마자 그 로봇은 선천적으로 훌륭한 로봇이 될 수 있을텐데 말이다..

장애물을 잘 넘는 로봇, 점프를 잘하는 로봇, 숲이 우거진 곳을 잘 헤쳐다니는 로봇, 좁은 곳을 잘 다니는 로봇들은 특수한 상황에서는 아주 훌륭한 성능을 발휘한다. 좋다. 우리가 로봇을 만든 목표에 잘 부합된다. 위험한 곳에서 사람들을 대신해서 사람만큼 일의 능률을 갖춘 로봇을 투입하여 작업하게 한다는 것은 아주 효율적이다. 하지만, 이럴때는 이런 로봇, 저럴때는 저런 로봇을 개발하는 것처럼, 실제로 사람이 알지못하는 미지의 공간에서 스스로 진화하여 방법을 터득하게 한후, 가장 효율적인 방법을 아는 유전자를 업로드받고, 다음에 개발되는 차세대 로봇에 다운로드하고 다시 그 미지의 세계에 보내고, 이렇게 반복을 통해 우리가 미지의 공간 또는 알고는 있었지만 당연하다고 생각했던 공간내에서 새로운 이동방법을 찾을 수 있다면 좋지 않겠나라는 조금은 황당한 생각이다.ㅎ 예를들어볼까.. 수십, 수백대의 똑같은 로봇을 달 또는 화성에 뿌렸다. 어떻게 이동하라고 기억시켜두지는 않았다. 이 로봇들은 스스로 그곳에서 이동하는 방법을 터득할 것이고, 우리는 그들의 유전자정보를 기반으로 좀더 효율적인 로봇을 개발할 수 있을것이다...... 라고 생각한다.ㅋ

아직은 조금은 말도 안될것 같고, 이것을 해야만 하는 타당성도 부족하고... 그렇다. 하지만, 로봇도 하나의 생명체로 생각한다면, 새로운 종족(?)을 탄생시킬 수 있는 발판이 되지 않을까 생각한다.

--------------------------------------------------
(*) 내가 적어놓고 가만히 생각하니, 로봇에 경험도 없는 사람이 무슨 SF영화를 보고 말도 안되는 황당한 소리한다고 할지도 모르겠다.ㅋㅋ

(*) 사람이 로봇을 개발하고 진화시키는 것이 효율적일까... (현실로 가능하다면)스스로 진화하게 하여 세대물림을 하게하는 것이 효율적일까.... (어떻게 생각하면 동일한 출발선상에 두 경우가 존재하는 것은 아닌것 같지만....)

(*) 진화와 반대로 퇴화는?

(*) KAIST 김종환교수, 유전자.염색체 갖는 로봇, 세계 최초 개발 (http://kaistnews.plani.co.kr/boards/view/research/86)