Differential Evolution 간단 소개
- 목차
2024.02.02 - [데이터 분석/최적화 알고리즘] - 유전 알고리즘 python 코드를 통해 알아보기
2024.01.31 - [데이터 분석/최적화 알고리즘] - 유전 알고리즘 간단 소개
Nelder-Mead Method 한 줄 요약
유전 알고리즘처럼 유전자를 가지고 진화하는 최적화 기법, 변화 방식이 유전 알고리즘과 다르다.
주요 용어
- 유전자(Gene): 각 해의 값(feature)
- 세대(Population): 최적해를 탐색하기 위한 후보해
- PN(Population Size): 일반적으로 PN=10n (n=x의 차원)
- 적합도(Fitness): 후보해가 최적해인지 구하는 함수
- ex) Find x s.t. f(x) = 10 → fitness(x) = | f(x) - 10 |
- 변이(Mutation): 랜덤한 세 개의 후보해를 선정하여 변이 시킴
- Donor Vector Vi = X1 + F*(X2 - X3)
- F(Differential Weight): 일반적으로 F=0.8
- 교차(Crossover): Donor Vector와 선택된 개체의 유전자를 CR:(1-CR)의 확률로 섞는다.
- CR(Crossover Probability): 일반적으로 CR=0.9
- 선택(Selection): 다음 세대에 유전자 정보를 넘길 후보해를 선택
- 종료 조건: 목표를 달성하거나(허용 범위 이내) 세대를 반복하여도 적합도가 좋아지지 않는 경우
Pseudo Code
모식도
자세한 수식 설명과 코드 구현 → github
'데이터 분석 > 최적화 알고리즘' 카테고리의 다른 글
PSO 알고리즘 간단 소개 (0) | 2024.02.08 |
---|---|
Nelder-Mead Method 간단 소개 (0) | 2024.02.03 |
유전 알고리즘 python 코드를 통해 알아보기 (0) | 2024.02.02 |
수치 최적화 알고리즘 정리 (0) | 2024.02.02 |
Lagrange Polynomial Interpolation 설명 (python 구현) (0) | 2024.02.02 |