유전 알고리즘, '그네 대환장파티' 구현?!
유전 알고리즘, '그네 대환장파티' 구현?!
  • 김진솔
  • 승인 2018.06.08 10:18
  • 조회수 10226
  • 댓글 1
이 기사를 공유합니다

시뮬레이션으로 장난을 치는 장면을 준비해봤습니다. '무니무니교수'라는 유튜버가 만든 '유전적 알고리즘'으로 그네타는 법을 학습시켰다'라는 영상인데요. 특정값을 입력해 시뮬레이션 대상이 변화하는 상을 분석했습니다. 세대와 세대에 걸쳐 어떤 변화가 나타나는지도 확인할 수 있는데요. 하나하나 차근차근 알려드릴게요. 풀 영상이 궁금하신 분들은 여기를 클릭하세요.

 

그네를 타는 사람을 '그네인'이라고 정하겠습니다.

 

사람이 만든 그네인과 출현한 그네인.

영상에서 초록색 사람은 사람이 그네를 타는 것처럼 무니무니 교수가 프로그래밍한 그네인입니다. 움직임이 오늘날 인간과 비슷하죠. 자연스럽습니다.

 

분홍색 그네인은 무작위로 출현했습니다. 보시다시피 움직임이 부자연스러운데요. 무작위로 다리를 '굽혔다 폈다'하고 있습니다. 달리 말하면 초록색은 영화 <가타카> 속 사람들처럼 처음부터 잘 '빚어' 태어난 그네인계의 '웰메이드'지만, 영원히 살고 자손을 남기거나 개인이 발전할 수 없습니다. 반면 분홍색 그네인은 '무작위'로 출현한 그네인입니다.

 

그런데 분홍색 그네인이 자손을 남기기 시작합니다.

 

그네인의 유전자

 

이제 분홍색 그네인이 발전하도록 할 건데요. 이를 위해 조건, 즉 '유전자'를 설정해 줍니다. 그네인은 왕복 운동을 하는데요. 왔다가는 순간에 다리를 펼지 말지 정하는 겁니다. 아래 영상을 보면 조금 더 이해되실 거에요.

 

왕복을 이렇게 하겠죠?

그 구간을 32등분 합니다. 각각 순간에 다리를 펼지 접을지를 유전자로 설정합니다.

 

32등분하고 각각을 유전자로 설정해요!

다리 펴는 걸 1, 접는 걸 0이라고 합니다. 그리고 64명을 준비합니다.

 

0세대. 꿈틀꿈틀

이 분홍색 '꿈틀이' 64명은 태초의 그네인, 0세대입니다. 

 

이제 진화해봅시다

 

진화의 조건은 '적자생존'이죠. 우리 그네인은 그네를 잘 타야 살아남을 수 있습니다. 64명 중 단 4명만이 살아남아 자손을 남길 수 있죠.

 

따라서 완전 무작위로 태어난 0세대의 그네인 중 가장 흔드는 폭이 컸던 4명을 추려 다음 세대를 만듭니다. 나머지 60명은 그 자손들로 채워요. 즉, 유전자가 반반 섞인 거죠. 이전이 환웅과 웅녀였다면 이제 단군 세대랄까요.

 

1세대! 

교차와 돌연변이도 넣습니다. 교차와 돌연변이는 자손의 다양성을 더 높혀주죠. 이제 이 과정을 반복합니다. 화면 아래 써있는 BEST GENE이라는 문구를 잠깐 보실까요? 이 세대에서 가장 그네를 잘 타는 사람의 유전자인데요. 앞의 8개만 분석하면 '펴고, 펴고, 구부리고, 구부리고, 구부리고, 펴고, 펴고, 구부리고, 구부리고'로 타는 게 가장 낫다는 해석이 가능합니다.

 

여기서는 40초마다 한 세대가 끝나고 새로운 세대가 태어난다고 설정했어요. 너무 짧은 인생, 그네만 타다 가는군요. 어쨌거나 쭉 돌려보고 변화를 봅시다.

 

빨리감기!

8세대까지 쭉쭉 진행시켰어요. 그네인의 그네 실력은 좀 늘었을까요?

 

오 좀 나아졌나 싶네요?

좀 더 늘었습니다. 얼추 그네 타는 모양이 나와요. 그러나 아직 잘 타지는 못합니다. 그네는 자고로 그네 체인에 장력이 풀리고 텅텅 떨어지는 느낌이 나야 그네 좀 탄다고 할 수 있지 않겠어요? 그래서 더 돌려봅니다.

 

2차 빨리감기!

쭉쭉 진행시키고 어느 정도까지 좋아지나 관찰합니다. 영상을 참고하면 22세대에서 멈췄는데요. 이 이상으로 세대를 진행시켜도 딱히 나아지지는 않는다고 하네요. 그럼 그네인 세계의 호모 사피엔스, 22세대는 어떻게 타는지 볼까요?

 

펄~럭

이제 꿈틀거리지 않고 앞뒤로 펄럭거리는 모양새가 나옵니다. 하늘로 솟구친 각도도 꽤 높습니다. 이제 그네인의 진화를 멈춰봅니다.

 

웰메이드 그네인과 대결해봅시다

 

경주 시작!

이제 두 그네인이 경주를 시작했습니다. 아직은 좀 더 두고봐야 할 것 같은데요. 다시 한 번 말씀드리면 영원한 생을 사는 웰메이드 그네인과, 자손에 자손을 번식하며 선조의 복수를 꿈꿨던 진화형 그네인의 대결입니다.

 

진화계의 최고의 유전자는 11111110010011111110001001000000이라고 합니다.

진화형 그네인 대표의 유전자는 11111110010011111110001001000000이라고 합니다. 1 사이에 0이 끼어있어 불필요하게 앉았다 일어나는 것처럼 보이네요. 그나저나 우리의 진화형 그네인, 힘을 내기 시작하는데요! 결과는 어떨까요?

 

진화형 그네인 잘 타는데요!

대결 결과는 진화형 그네인의 승리로 끝났습니다! 확연한 높이 차를 보이네요. 그 다음에 그들은 어떻게 됐냐고요?

 

행복하게 살았답니다..

평생 그네를 타며 행복하게 살았습니다.

 

이웃님들 재밌게 보셨나요? 무니무니 교수 유튜브에 들어가보면 유전 알고리즘으로 이족보행, 엉금엉금 기기 등 다양한 시뮬레이션을 하는데요.

 

참고로 이러한 유전 알고리즘은 실제 시뮬레이션에서 쓰이는 방법입니다. 요즘은 인공지능, 딥러닝 분야에서 활발히 사용될 뿐 아니라, 최근 <이웃집과학자>에서 소개해드린 단백질 , 돌연변이가 만든 ‘경첩 운동’으로 진화했다에도 비슷한 원리가 쓰였습니다.

 

여기서 그네를 잘 타는 것처럼, 생존에 도움이 되는 돌연변이가 생기면 그 돌연변이는 남아있고, 그렇지 않다면 도태되는 식으로 알아서 목표에 맞는 개선점을 찾아가는 식입니다.


관련기사

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 1
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.
빽도 2018-08-23 20:42:04
무니무니 교수는 유튜버가 아닙니다. 유튜브 영상은 한국 사람이 무니무니 교수의 니코동 영상을 퍼와서 한글 자막을 달아 업로드하는 것입니다.