다섯 살도 알 수 있게 · 시스템SW
유전 알고리즘이 뭐예요?
유전 알고리즘을, 엔진이 가장 잘 나가는 다이얼 설정을 여러 세대에 걸쳐 섞고 비틀어 찾아가는 이야기로 풀어봤어요.
엔진이 가장 잘 나가는 설정을 찾고 싶어요.경우의 수가 너무 많아서 하나하나 다 못 해봐요.
하나씩 손으로 맞춰보면 끝이 없어요.잘 나가는 설정끼리 섞어보는 방법이 필요해요.
유전 알고리즘은 잘 나가는 설정끼리 섞고 비틀어 더 나은 설정을 찾는 방법이에요.여러 세대를 거치며 점점 더 좋은 설정에 가까워져요.
개체군 만들기여러 설정을 한꺼번에 만들어요
적합도 점수 매기기설정마다 엔진이 얼마나 잘 나가는지 매겨요
교배(섞기)잘 나가는 두 설정을 섞어 새 설정을 만들어요
돌연변이(비틀기)가끔 설정 하나를 무작위로 살짝 바꿔요
처음에 설정들을 만든 뒤, ②~⑤를 세대마다 되풀이해요.점수 매기기부터 비틀기까지를 세대마다 반복해요.
유전 알고리즘이 항상 완벽한 설정을 찾는 건 아니에요.유전 알고리즘은 경우의 수가 너무 많을 때 꽤 괜찮은 답을 전부 시험하는 것보다 빨리 찾아요.
한 줄로
유전 알고리즘은 여러 설정(개체군) 중 잘 나가는 것끼리 섞고, 가끔 무작위로 비틀며, 세대를 거듭해 점점 더 나은 답을 찾는 방법이에요.
유전 알고리즘은 생물의 진화 과정(선택·교배·돌연변이)을 본뜬 최적화 기법이에요. 여러 후보 해(개체)로 이루어진 개체군을 만들고, 적합도 함수로 각 개체의 성능을 평가한 뒤, 적합도가 높은 개체들을 선택해 교차(crossover)로 자식 개체를 만들고, 낮은 확률로 돌연변이(mutation)를 가해 다양성을 유지해요. 이 과정을 여러 세대 반복하며 최적해에 가까운 답으로 수렴해 가지만, 전역 최적해를 보장하지는 않아요.
어른들은 이렇게 불러요
- 개체군
Population - 한 세대에 있는 여러 다이얼 설정들. 후보 해들의 모임이에요.
- 적합도 함수
Fitness Function - 얼마나 잘 나가는지 매기는 점수표. 어떤 개체를 남길지 정하는 기준이에요.
- 선택
Selection - 잘 나가는 설정을 골라내는 것. 적합도가 높을수록 뽑힐 확률이 높아요.
- 교배(교차)
Crossover - 두 설정을 섞어 새 설정을 만드는 것. 새 설정이 부모의 좋은 특징을 물려받아요.
- 돌연변이
Mutation - 가끔 무작위로 설정을 살짝 바꾸는 것. 설정이 한 곳에 몰리지 않게 다양성을 유지해요.
- 세대
Generation - 개체군을 한 번 갱신하는 단위. 세대를 거듭할수록 개체군의 점수가 대체로 나아져요.
- 지역 최적해
Local Optimum - 꽤 좋지만 가장 좋진 않은 설정. 유전 알고리즘이 여기 갇힐 수도 있어요.
- 메타휴리스틱
Metaheuristic - 완벽한 답 대신 괜찮은 답을 빨리 찾는 전략군. 유전 알고리즘이 여기 속해요.
다음 이야기
여러 작업대에서 동시에 겹쳐 고치기 →