- AI Dev - 인공지능 개발자 모임
- 정보공유
- 유전 알고리즘
글 수 12
유전 알고리즘은 인간의 진화 과정을 컴퓨터로 시뮬레이션 하는 방법입니다. 이를 사용하여 자동차가 길을 찾는 과정을 보여주는 영상입니다.
유전자는 010020112 같은 숫자의 나열로 이루어져 있습니다. 이를 유전형(genotype)이라 부릅니다. 각 유전자는 개체의 모양이나 행동을 나타냅니다. 여기서는 0->직진, 1->좌회전, 2->우회전 입니다. 이렇게 유전형의 실제 의미가 표현형(phenotype)입니다.
초기 유전자풀에서 임의로 두 개씩 짝지어서 교차(crossover)를 수행합니다. 특정 위치를 기준으로 서로 유전자를 교환하는 것을 말합니다. 예를 들어, 다음과 같습니다.
1번 유전자 : 00112001
2번 유전자 : 11000201
4번째 위치에서 교차 : 00110201, 11002001
그다음 각 유전자를 랜덤하게 다른 유전자로 돌연변이(mutation) 시킵니다.
원본 : 00110201
수정 : 00210201 (3번째 위치에서 돌연변이)
이렇게 교차와 돌연변이를 거친 다음 세대를 실제 환경에서 돌립니다. 여기서는 차가 얼마나 멀리 갔는지를 가지고 평가합니다. 이를 적응도(fitness)라고 합니다. 그리고 적응도가 높은 개체들만 뽑아서 다시 위의 과정을 반복합니다.
실제 생명체들은 환경에서 적자생존을 거쳐 진화를 합니다. 마찬가지로 유전 알고리즘도 주어진 적응도에 최적화된 개체를 찾아냅니다. 이 유전자가 바로 문제의 정답인 파라미터값이 됩니다.