핵심 인사이트 (3줄 요약)
- 본질: 유전 알고리즘(GA, Genetic Algorithm)은 찰스 다윈의 "적자생존(Survival of the Fittest)" 진화론을 컴퓨터 코드로 옮겨, 무작위로 만든 수만 개의 정답 후보(유전자) 중 가장 훌륭한 놈들만 짝짓기시키고 돌연변이를 일으켜 수만 세대에 걸쳐 가장 완벽한 정답으로 진화시키는 최적화 기법이다.
- 가치: 미분이 불가능하거나, 수학 공식으로 도저히 풀 수 없는 최악의 NP-Hard 문제(예: 외판원 순회 문제, 로봇 다리 관절 설계) 앞에서, 수학을 포기하고 무식하게 세대를 거듭하며 해답을 때려 맞추는 가장 현실적이고 강력한 휴리스틱(Heuristic)이다.
- 판단 포인트: 부모를 고르는 룰렛 휠 선택(Selection), 부모의 유전자를 섞는 교차(Crossover), 그리고 웅덩이(Local Minima)에 빠지지 않기 위해 가끔 엉뚱한 짓을 하는 돌연변이(Mutation)의 확률을 도메인에 맞게 절묘하게 튜닝하는 것이 아키텍처의 전부다.
Ⅰ. 개요 및 필요성
로봇 청소기에게 "방을 가장 빨리 청소하는 경로"를 짜주려 한다. 장애물이 너무 많아 수학 공식(미분, 경사 하강법)으로는 절대 경로를 구할 수 없다.
그럼 어떻게 할까? 1) 일단 아무렇게나 움직이는 멍청한 로봇 100마리를 풀어놓는다(초기 세대). 2) 그중에서 우연히 청소를 조금이라도 잘한 10마리를 고른다(적합도 평가). 3) 이 똑똑한 10마리의 '경로(유전자)'를 반씩 섞어 새로운 로봇 100마리를 만든다(교차). 4) 가끔 청소 코스를 엉뚱하게 꺾는 이상한 놈도 1마리 섞어준다(돌연변이). 이 짓을 1,000번 반복하면 결국 세상에서 청소를 제일 잘하는 완벽한 로봇 1마리가 탄생한다. 이것이 수학을 버리고 생물학을 선택한 최적화 알고리즘, **유전 알고리즘(GA)**이다.
📢 섹션 요약 비유: 처음엔 침팬지(무작위 정답) 100마리로 시작하지만, 똑똑한 놈들끼리만 계속 결혼시켜서 수만 세대가 지나면 결국 아인슈타인(최적해)이 태어나게 만드는 우생학적(?) 알고리즘이다.
Ⅱ. 아키텍처 및 핵심 원리
유전 알고리즘은 생물학의 DNA 복제 과정을 4단계의 파이프라인으로 완벽하게 흉내 낸다.
┌────────────────────────────────────────────────────────┐
│ [ 유전 알고리즘(GA) 4대 진화 파이프라인 ] │
├────────────────────────────────────────────────────────┤
│ 1. 적합도 함수 (Fitness Function) : "누가 제일 잘났나?" │
│ - 수만 개의 정답 후보(염색체) 각각에 점수를 매기는 채점표 │
│ - 점수가 높은 상위 10%의 유전자는 다음 세대로 살아남을 확률 업!│
│ │
│ 2. 선택 (Selection) : "누구를 짝짓기시킬 것인가?" │
│ - 룰렛 휠(Roulette Wheel) 빙빙 돌리기 │
│ - 적합도 점수가 100점인 놈은 룰렛판의 50% 면적을 차지하고, │
│ 10점인 놈은 5%만 차지함 (우월한 놈이 부모가 될 확률 높음) │
│ │
│ 3. 교차 (Crossover) : "엄마 반, 아빠 반 섞기" │
│ - 선택된 두 부모의 DNA 배열을 잘라서 이어 붙임 (자식 생성) │
│ - 1점 교차: [0 1 1 | 0 0] + [1 0 0 | 1 1] -> [0 1 1 1 1]│
│ │
│ 4. 변이 (Mutation) : "가끔은 미친 척하고 엉뚱한 짓 하기" │
│ - 자식의 DNA 중 1% 확률로 0을 1로 뒤집어버림 (돌연변이) │
│ - 왜? 우물 안 개구리(Local Minima)에 빠지는 걸 막으려고! │
└────────────────────────────────────────────────────────┘
- 탐색 (Exploration)과 활용 (Exploitation): 교차(Crossover)는 똑똑한 부모의 유전자를 물려받아 현재의 좋은 정답 근처를 샅샅이 뒤지는 '활용'이다. 변이(Mutation)는 아예 엉뚱한 유전자를 만들어 아무도 안 가본 새로운 우주를 개척하는 '탐색'이다. 이 둘의 밸런스가 GA의 생명이다.
- 엘리트주의 (Elitism): 룰렛을 돌리다 보면 재수가 없어서 1등 유전자가 선택받지 못하고 죽어버리는 대참사가 생긴다. 이를 막기 위해 "이번 세대 1등은 무조건 짝짓기 없이 다음 세대로 1명 그대로 복제시킨다"는 엘리트주의(Elitism)를 필수적으로 적용해야 그래프가 뒤로 후진하지 않는다.
📢 섹션 요약 비유: 선택과 교차는 "서울대생끼리 결혼하면 서울대생이 나오겠지!"라며 유전자를 섞는 작업이고, 변이는 "가끔 돌연변이 천재가 태어나면 세상을 바꿀지도 몰라!"라며 유전자를 강제로 비틀어버리는 작업이다.
Ⅲ. 비교 및 연결
수학 공식으로 풀 수 없는 최적화 문제(NP-Hard)를 푸는 휴리스틱 탐색 기법들을 비교해 본다.
| 비교 항목 | 경사 하강법 (Gradient Descent) | 시뮬레이티드 어닐링 (SA, 모의 담금질) | 유전 알고리즘 (GA) |
|---|---|---|---|
| 기본 철학 | 수학적 미분 (내리막길 찾기) | 열역학 (쇠를 달궜다 식히기) | 진화론 (적자생존, 교배) |
| 탐색 주체 | 1개의 점이 움직임 | 1개의 점이 움직임 | **수만 개의 점(집단)**이 동시에 움직임 |
| Local Minima 탈출 | 모멘텀(관성)으로 탈출 시도 | 온도가 높을 땐 미친 듯이 튕겨 나감 | 돌연변이(Mutation)로 탈출 |
| 속도 및 연산량 | 압도적으로 빠름 | 보통 | 수만 개체 평가로 인해 연산량 폭발 (가장 느림) |
경사 하강법은 산을 내려가는 완벽한 공식이지만 '미분이 되는 예쁜 산'에서만 작동한다. 반면 GA는 미분이고 뭐고 필요 없이 "그냥 여기저기 수백만 명의 클론을 투하해 보고 제일 낮게 내려간 놈을 찾자"는 무식한 군집 지능(Swarm Intelligence)이다.
📢 섹션 요약 비유: 미로를 빠져나갈 때, 경사 하강법은 '바닥의 기울기를 미세하게 느끼며 걷는 1명의 맹인'이고, 유전 알고리즘은 '미로 전체에 1만 명의 사람을 헬기로 쏟아붓고 1시간 뒤 제일 많이 빠져나간 길을 정답으로 채택하는 인해전술'이다.
Ⅳ. 실무 적용 및 기술사 판단
실무 적용 시나리오:
통신사에서 전국 기지국 1만 개의 안테나 각도를 조절해 전파 간섭을 최소화하려 한다. 변수가 1만 개라 수학 연산이 불가능하다. 파이썬 DEAP 라이브러리로 GA 아키텍처를 세팅한다. 안테나 각도 조합을 '1개의 유전자(Chromosome)'로 정의하고, 개체수 500마리, 교차율 80%, 돌연변이율 5%로 설정한다. 밤새 1,000세대를 돌렸더니 적합도 곡선이 우상향하다 수렴한다. 다음 날 아침, 1,000세대에서 살아남은 가장 우월한 '1번 유전자'의 각도표를 통신망에 그대로 배포한다.
기술사 판단 포인트 (Trade-off): GA 파이프라인 설계 시 기술사는 **'돌연변이 확률(Mutation Rate)'**의 딜레마를 제어해야 한다.
- 돌연변이 확률을 1%로 너무 낮게 주면, 50세대쯤 지났을 때 500마리가 모두 똑같은 유전자(근친교배)를 갖게 되어 더 이상 진화하지 않고 로컬 미니마(Local Minima)에 영원히 갇혀버린다 (조기 수렴, Premature Convergence).
- 반대로 돌연변이 확률을 30%로 너무 높게 주면, 애써 똑똑한 유전자를 만들어놔도 다음 세대에서 자꾸 멍청이로 변해버려 수렴 자체가 안 되고 그냥 영원한 랜덤 찍기(Random Search) 놀이가 되어버린다.
- 따라서 기술사는 초반 세대에는 돌연변이율을 20%로 높여 우주 전체를 훑게 하고, 후반 세대로 갈수록 1%로 서서히 낮춰가며 미세 조정을 하는 동적 변이(Dynamic Mutation) 아키텍처를 설계해야 한다.
📢 섹션 요약 비유: 돌연변이율이 너무 낮으면 고인 물이 썩어 발전이 멈추고, 너무 높으면 맨날 뒤집어엎기만 해서 건물이 완성되지 않는다. 초반엔 이것저것 미친 짓(높은 변이율)을 해보게 놔두고, 정답이 보이기 시작하면 얌전히 모범생처럼(낮은 변이율) 공부하게 통제하는 학부모의 리더십이다.
Ⅴ. 기대효과 및 결론
유전 알고리즘은 컴퓨터 과학이 수학의 한계를 생물학적 메타포로 우아하게 뛰어넘은 진화 연산(Evolutionary Computation)의 마스터피스다. 수학 공식 하나 없이 오직 '선택과 교배'라는 단순한 룰만으로 우주선 날개 디자인부터 주식 자동 매매 포트폴리오까지 인류의 가장 끔찍한 최적화 난제들을 묵묵히 썰어버렸다.
결론적으로 GA는 연산량이 너무 많아 실시간 서비스에는 부적합하지만, 서버 뒤에서 며칠씩 돌려서라도 '가장 완벽한 최적의 설계도' 한 장을 뽑아내야 하는 시뮬레이션 환경에서는 대체 불가능한 권력을 가진다. 기술사는 딥러닝(신경망 구조 탐색, NAS)이나 MLOps의 하이퍼파라미터 튜닝의 최전선에서 여전히 이 다윈의 진화론이 딥러닝을 멱살 잡고 캐리하고 있음을 인지해야 한다.
📢 섹션 요약 비유: 수학이 "가장 완벽한 칼날의 각도는 35.2도다!"라고 1초 만에 칠판에 적어내는 엘리트라면, 유전 알고리즘은 1만 개의 서로 다른 칼을 만들어서 벽에 내리쳐본 뒤 살아남은 칼끼리 다시 녹여 10년 동안 칼을 두드려 완성하는 무식하지만 절대 실패하지 않는 대장장이다.
📌 관련 개념 맵
- 상위 개념: 메타 휴리스틱 (Meta-Heuristic), 최적화 (Optimization)
- 하위 개념: 룰렛 휠 선택 (Roulette Wheel), 교차 (Crossover), 돌연변이 (Mutation)
- 연결 개념: 시뮬레이티드 어닐링 (SA), 군집 지능 (PSO), 신경망 아키텍처 탐색 (NAS)
👶 어린이를 위한 3줄 비유 설명
- 가장 튼튼한 종이비행기를 접고 싶은데 방법을 몰라요. 그래서 친구들 100명을 모아 아무렇게나 접어보라고 했어요.
- 100개 중 가장 멀리 날아간 10개를 골라서, 그 10개의 날개 모양과 꼬리 모양을 이리저리 반씩 섞어(교배) 새로운 비행기를 만들어요.
- 가끔은 날개 끝을 일부러 찢어보기도(돌연변이) 하면서 이 짓을 수백 번 반복하면, 결국 세상에서 제일 잘 나는 챔피언 종이비행기가 탄생한답니다!