본문 바로가기
  • AI와 함께 세상을 아름답게
인공지능(AI)이란? - 기초 개념 및 이론

유전 알고리즘(GA; Genetic Algorithm) (2)

by neo-Lee 2023. 5. 29.

2023.05.27 - [인공지능(AI; Artificial Intelligence)] - 인공지능(AI): 진화연산(2) - 유전 알고리즘(GA; Genetic Algorithm) (1)

   

    (앞편의 유전자 알고리즘(1)에서 이어집니다)

 

3) 돌연변이(mutation)

    돌연변이(mutation)는 랜덤으로 유전정보를 바꾸는 조작입니다. 유전정보의 최소 단위인 유전자자리에 주목해서 낮은 확률로 유전자자리의 0과 1을 전향시키는 방법(reverse) 또는 두 개의 유전자라리 사이의 유전정보를 바꾸는 방법(exchange)입니다. 일반적으로 돌연변이를 발생하게 하는 확률값은 몇 % 정도의 낮은 수치를 지정합니다. 이 값이 너무 크면 유전적인 조작으로 획득한 형질이 금방 망가져버려서 진화가 멈춥니다. 반대로 너무 작으면 유전정보의 탐색 범위가 확장되지 못해서 진화가 정체됩니다. 설정값의 크기도 대상이 되는 문제의 성질이나 유전자의 표현 방법 또는 유전적인 조작 방법과 균형을 맞추어 결정되기 때문에 실험적으로 정할 수밖에 없습니다.

4) 선택(selection)

    교차 돌연변이로 후대의 유전자 후보가 될 유전자 집단이 생성되면 그 집단 중에서 실제로 후대에 남길 유전자를 선택(selection) 해야 합니다. 이때 기본적으로 적응도가 높고 환경에 잘 적응하는 유전자를 선택해야 합니다. 그러나 단순히 적응도가 높은 유전자만 선택하면 유전정보의 다양성을 잃게 되므로 진화가 정체될 수도 있습니다. 그러므로 후대의 유전자 선택은 다양성을 고려하여 적응도가 높은 것은 물론 낮은 것도 골라야 합니다.

    선택 방법에는 룰렛 선택, 토너먼트 선택(tournament selection), 랭크 선택(rank selection), 엘리트 보전 방법  여러 가지 선택 방법이 있습니다.

    룰렛 선택(roulette wheel selection)은 유전자의 적응도에 따라 구분된 룰렛을 이용하여 확률적으로 유전자를 선택하는 방법입니다. 아래 (그림)은 룰렛 선택의 한 가지 예입니다.

 

(그림) 6개의 유전자의 적응도에 따라 구성된 룰렛 (출처. 네이버 블로그 Teach IT)

 

    룰렛 선택(roulette selection)에서는 (그림)처럼 각각의 유전자의 적응도에 따른 비례로 면적을 룰렛 상에 할당하고 그 룰렛을 이용하여 선택 대상인 유전자를 고릅니다. 이런 방법으로 적응도가 높은 유전자를 중심으로 확률에 따라 유전자를 골라내어 다양성을 확보할 수 있습니다.  

    토너먼트 선택(tournament selection)은 랜덤으로 고른 소수의 유전자 중에서 적응도가 높은 것을 고르는 방법입니다. 이것을 반복하면서 랜덤성에 적응도까지 높은 유전자를 선택합니다.

    랭크 선택(rank selection)은 유전자를 적응도 순으로 나열하여 상위부터 정해진 유전자를 고르는 방법입니다. 이 방식은 유전자 집단의 적응도 값에 별로 큰 차이가 없을 때 효과적인 방법입니다.

    엘리트 보존 방법은 적응도가 가장 높은 값을 우선적으로 선택하고, 나머지 값들도 추가 선택합니다. 이 방식의 장점은 적합도가 높은 유전자를 확정적으로 선택할 수 있고, 나머지 값들도 추가로 선택할 수 있어서 유전자의 다양성과 효율성 모두 좋다는 것입니다.

 

    이처럼 교차 돌연변이 그리고 선택의 과정을 거치면서 유전자 집단은 부모세대에서 자식세대로 세대교체를 합니다. 이렇게 얻어진 자식 세대의 유전자 집단에 대해서도 같은 조작을 계속하면서 세대교체를 합니다. 그리고 세대가 바뀌면서 유전자 집단의 평균 적응도가 점진적으로 상승한다는 기대를 가질 수 있습니다.

    지금까지 살펴보았듯이 유전자 알고리즘은 확률적인 탐색 방법이기 때문에 최적해를 구할 수 있다는 보장은 없지만, 유전자 단 전체 적응도의 평균값을 향상하는데 목적이 있습니다.

 

    이제까지 유전자 알고리즘에 대한 대략적인 설명이었습니다. 위에서 공부한 기본적인 방법에 의한 유전자 조작으로 이루어진 유전자 알고리즘을 단순 GA(Simple Genetic Algorithm)라고 합니다. 엘리트 보존 방법단순 GA에서 진일보한 방법 중의 하나입니다. 

 

2.3 유전 프로그래밍(GP; Genetic Programming)

    단순 GA는 유전자를 표시할 때 0과 1의 이진법을 사용하거나 각 유전자자리에 여러 정수나 실수를 사용할 수도 있습니다. 이러한 표현뿐만이 아니라, 유전자 표현트리(tree) 구조를 도입하여 다양한 데이터 구조를 표현하게 확장할 수도 있습니다.

 

트리형태의 유전자 표현 (예)

    유전자 표현트리(tree) 구조를 이용하도록 확장한 유전자 알고리즘유전 프로그래밍(GP; Genetic Programming)이라고 합니다. 유전 프로그래밍에서는 트리구조로 표현된 유전자에 대해 부분 트리 단위로 유전적인 조작을 할 수 있으며, 단순 GA에 비해 더욱 다양한 데이터 구조를 다를 수 있습니다. 그래서 대상으로 삼은 문제에 따라 유전자 표현이 쉬워지고 각 문제 대응하는 유전자 조작도 가능합니다.

 

2023.05.27 - [인공지능(AI; Artificial Intelligence)] - 인공지능(AI): 진화연산(2) - 유전 알고리즘(GA; Genetic Algorithm) (1)

728x90

댓글