- AI Dev - 인공지능 개발자 모임
- 정보공유
- 유전 알고리즘
글 수 12
딥러닝이 뇌의 뉴런을 시뮬레이션 하였다면 유전 알고리즘은 생명체의 진화 과정을 컴퓨터로 구현한 것입니다. 아시다시피 생명체의 정보는 DNA안에 ACGT 핵염기를 사용해서 4진법으로 구성되어 있습니다. 그리고 생식을 할때 남성과 여성의 염색차가 중간에 끊어지면서 조합되는 교차와 특정 유전자가 변형되는 돌연변이에 의해서 유전 정보가 바뀌면서 조금씩 진화합니다.
유전 알고리즘도 교차와 돌연변이 방법을 그대로 사용하는데요. 보통 0과 1로 된 유전 정보를 만들고 각각을 특정 형질과 매칭합니다. 예를 들어, 미로를 찾는 생쥐의 움직임을 유전자로 만든다면 0일때 왼쪽 이동, 1일때 오른쪽 이동으로 정의하고 각 순서별로 n번째 갈림길에서의 행동을 나타내도록 설정합니다. 그리고 출구에 가까이 다가간 유전자는 다음 세대로 이어질 확률이 높아집니다. 이렇게 진화를 반복하면 결국 미로를 빠져나가는 행동 유전자를 얻을 수 있습니다.
흔히 진화론을 공격하기 위한 예로 타이핑을 치는 원숭이를 들곤 합니다. 아무렇게나 글자를 입력하는 원숭이가 셰익스피어의 작품을 작성할 가능성은 거의 제로라는 것입니다. 하지만 여기에는 큰 모순이 있는데요. 바로 진화의 가장 큰 특징인 형질의 누적을 고려하지 않았기 때문입니다.
만약 순서대로 타이핑을 할때 그 위치에 입력한 단어가 책과 일치한다면 그 단어를 고정합니다. 그리고 나머지 부분에 대해서 반복적으로 랜덤하게 입력을 한다면 아주 빠르게 책과 동일한 글을 작성할 수 있습니다.