1. 개요[편집]
| 입자 군집 최적화 Particle Swarm Optimization | |
|---|---|
| 약칭 | PSO |
| 계열 | 군집 지능 / 메타휴리스틱 |
| 제창 | Kennedy & Eberhart (1995) |
| 상태 변수 | 입자별 위치·속도·개인 최고점 |
새 떼가 먹이를 찾는 걸 보고 최적화 알고리즘을 만들었다. 놀랍게도 잘 됐다. 더 놀랍게도 30년째 왜 잘 되는지 완전히는 모른다.
입자 군집 최적화(Particle Swarm Optimization, PSO)는 설계 공간을 날아다니는 입자 집단이 각자의 최고 기록과 무리 전체의 최고 기록에 동시에 끌리면서 최적해를 찾아가는 확률적 전역 최적화 기법이다. 1995년 사회심리학자 James Kennedy와 전기공학자 Russell Eberhart가, 새 떼의 군집 거동을 사회 모델로 시뮬레이션하다가 “이거 최적화에 쓸 수 있는데?”를 깨달으며 태어났다.1
계보상 군중 시뮬레이션의 Boids와 사촌이지만, 목적이 다르다. Boids는 예쁜 무리를 만드는 게 목표고 PSO는 최솟값을 찾는 게 목표라, 응집·정렬 규칙 대신 기억이 들어갔다. 각 입자는 자기가 지나온 최고점을 기억한다.
유전 알고리즘과 함께 기울기 없는(gradient-free) 최적화의 양대 산맥으로 불린다. GA와의 결정적 차이는 해를 죽이지 않는다는 것 — PSO의 입자는 선택압으로 도태되지 않고 끝까지 살아서 계속 날아다닌다.
2. 알고리즘[편집]
각 입자 는 위치 와 속도 를 갖는다. 매 반복마다 속도를 갱신하고, 그 속도로 위치를 옮긴다. 갱신식이 이 알고리즘의 전부다.
- — 입자 가 여태 방문한 최고 위치(personal best). “내 경험”
- — 무리 전체(또는 이웃)의 최고 위치(global best). “남들 얘기”
- — 관성 가중치. 이전 속도를 얼마나 유지할지
- — 인지 계수와 사회 계수
- — 난수 벡터. 는 성분별 곱
Kennedy와 Eberhart는 세 항을 각각 “관성”, “기억”, “협력”으로 읽었다. 통째로 보면 감쇠가 있는 스프링-질량계에 확률적 외력이 걸린 꼴이고, 실제로 감쇠 진동의 언어로 수렴을 해석하는 연구가 많다.
2.1. 파라미터[편집]
PSO의 매력은 튜닝 노브가 셋뿐이라는 것이다. 그리고 함정도 거기 있다 — 이 셋을 잘못 잡으면 입자가 발산해 설계 공간 밖 우주로 날아간다.
- 관성 가중치 — Shi와 Eberhart(1998)의 추가. 초기 0.9에서 0.4로 선형 감소시키는 스케줄이 고전적 처방이다. 큰 는 넓게 훑고 작은 는 국소를 다듬는다. 담금질 모사의 온도 스케줄과 역할이 정확히 같다.
- 수축 계수(constriction factor) — Clerc와 Kennedy(2002)가 발산 문제를 이론적으로 정리한 결과. 일 때
를 속도 전체에 곱하면 속도 클램핑 없이 수렴이 보장된다. , 즉 이면 이고, 이걸 관성식으로 환산하면 , 가 된다. 이 숫자 세트가 문헌에 지겹도록 등장하는 이유다.
- 입자 수 — 20~50이 관례. GA의 집단 크기보다 대체로 작게 잡는다.
2.2. 위상 구조[편집]
를 무리 전체에서 뽑는가(gbest), 이웃 몇에서만 뽑는가(lbest)가 성능을 크게 가른다.
| 위상 | 정보 전파 | 수렴 | 국소해 |
|---|---|---|---|
| gbest(완전 연결) | 즉시 | 빠름 | 잘 빠짐 |
| ring(좌우 이웃) | 느림 | 느림 | 잘 버팀 |
| von Neumann(격자) | 중간 | 중간 | 균형 좋음 |
gbest는 좋은 점 하나가 나오면 온 무리가 그리로 몰려가 다양성이 순식간에 증발한다. 다봉성(multimodal) 문제에서는 느린 ring이 오히려 이긴다. “정보가 느리게 도는 사회가 더 나은 답을 찾는다”는 이 결과는 원저자들이 사회심리학자였다는 걸 생각하면 꽤 의미심장하다.
3. GA와의 비교[편집]
| 항목 | PSO | 유전 알고리즘 |
|---|---|---|
| 해의 생존 | 전원 생존, 계속 이동 | 선택으로 도태 |
| 상태 | 위치 + 속도 + 개인 기록 | 위치만 |
| 연속 변수 | 자연스러움 | SBX 등 별도 연산자 필요 |
| 이산·범주 변수 | 어색함(별도 변형 필요) | 강함 |
| 파라미터 수 | 3개 내외 | 다수 |
| 다목적 | MOPSO 등 있으나 NSGA-II만큼 표준화 안 됨 | NSGA-II가 사실상 표준 |
거칠게 요약하면 연속 변수는 PSO, 이산·조합 변수는 GA가 무난하다. 다목적 파레토 프론트가 필요하면 성숙도로 보아 NSGA-II 쪽이 여전히 안전한 선택.
4. 응용[편집]
PSO는 구현이 20줄이고 목적함수를 블랙박스로만 요구해서, 시뮬레이션 위에 얹기가 아주 쉽다.
- 모델 캘리브레이션 — 난류 모델링 계수, 힘장 파라미터, 재료 상수 역산. 역문제 계열에서 특히 인기다. 실험값과 해석값의 잔차 제곱합을 목적함수로 걸면 끝이다.
- 형상 최적화 — 익형 파라미터, 안테나 형상. 안테나 해석 쪽은 PSO를 즐겨 쓰는 편이다.
- 제어 게인 튜닝 — PID 계수 같은 저차원 연속 문제. PSO의 홈그라운드.
- 대리 모델 하이퍼파라미터 — 크리깅의 상관 길이 스케일 추정처럼 목적함수가 뾰족한 최대우도 문제.
제약 조건은 GA와 마찬가지로 페널티 함수나 실현가능성 우선(feasibility-first) 규칙으로 처리한다. 설계 변수 범위를 벗어난 입자는 경계에 반사시키거나(reflect) 벽에 붙이거나(absorb) 그냥 놔두고 적합도만 무한대로 주는데, 어느 게 나은지는 문제마다 다르다. 정답이 없다.
5. 한계[편집]
- 전역 최적해 보장 없음. GA와 똑같다. 수렴 증명은 “정지점으로 수렴한다”는 것이지 “그 점이 전역해다”가 아니다. 이 구분을 흐리는 논문이 이 바닥에 놀랄 만큼 많다.
- 차원의 저주. 변수가 수백을 넘어가면 성능이 급격히 떨어진다. 위상 최적화처럼 변수 수십만짜리 문제에 PSO를 붙이겠다는 생각은 접는 게 좋다. 그런 문제는 민감도 해석으로 수반 기울기를 뽑아 기울기 기반으로 푼다.
- 정체(stagnation). 모든 입자가 에 모이면 속도의 두 유도항이 0이 되고, 남은 건 감쇠하는 관성뿐이라 무리가 그 자리에서 굳는다. 그게 국소해여도 나갈 방법이 없다. 재초기화나 돌연변이 항을 붙이는 변종들이 이 문제 때문에 나왔다.
- “신종 메타휴리스틱” 인플레이션. PSO 이후 늑대·박쥐·반딧불이·고래·수확개미 등 온갖 생물을 이름표만 갈아 붙인 알고리즘이 쏟아졌고, 상당수가 PSO나 진화 전략의 재포장에 불과하다는 비판을 받는다.2 새 알고리즘 논문을 볼 땐 비유가 아니라 갱신식을 보자.
6. 현업에서의 현실[편집]
- 코드가 짧아서 “그냥 짜서 돌리는” 최적화의 대명사다. 그리고 짧아서 아무도 검증을 안 한다. 벤치마크 함수(Rastrigin, Rosenbrock)로 한 번은 돌려보고 쓰자.
- 입자 수 × 반복 수 = 해석 횟수. GA와 똑같이 여기서 예산이 다 나간다. 세대 내 병렬은 마찬가지로 부끄러울 만큼 쉬우니 병렬 컴퓨팅을 안 쓸 이유가 없다.
- , , 를 “튜닝했다”며 소수점 셋째 자리까지 보고하는 문서를 종종 본다. 대개 그 정밀도는 난수 시드 하나로 사라진다. 서로 다른 시드 30개를 돌려 통계로 말하는 게 정직하다.3
- PSO와 GA 중 뭐가 좋냐는 질문에 대한 정직한 답: 둘 다 30분이면 돌려볼 수 있으니 둘 다 돌려봐라.
7. 관련 문서[편집]
- 유전 알고리즘 · 담금질 모사
- 형상 최적화 · 위상 최적화
- 대리 모델 · 실험계획법 · 민감도 해석
- 역문제 · 최소자승법
- 몬테카를로 방법
- 군중 시뮬레이션 · 파티클 시스템
- 병렬 컴퓨팅
8. Footnotes[편집]
-
원 논문(Proc. IEEE ICNN, 1995)은 원래 새 떼가 어떻게 동시에 방향을 바꾸는지를 사회 모델로 시뮬레이션하던 작업이었다. 코드에서 “먹이” 항을 목적함수로 바꿨더니 최적화기가 되어 있었다는 것. 알고리즘의 유래가 최적화 이론이 아니라 사회심리학이라는 점은, 이 분야가 왜 이론적 뒷받침보다 경험적 성능으로 먼저 팔렸는지를 설명한다. ↩
-
Sörensen(2015)의 “Metaheuristics — the metaphor exposed”가 이 비판의 대표 격이다. 비유를 걷어내고 수식만 남기면 기존 알고리즘과 구분이 안 되는 경우가 많다는 지적. 그럼에도 매년 새로운 동물이 등장한다. 지구 생물 다양성이 논문 생산의 병목이 아니라는 점이 다소 두렵다. ↩
-
메타휴리스틱은 확률적 알고리즘이라 단일 실행 결과는 사실상 아무 정보가 없다. 여러 독립 실행의 중앙값·사분위수, 그리고 시드를 논문에 박아두는 것이 최소한의 예의다. 검증 및 확인 정신은 CFD에만 필요한 게 아니다. ↩