Differential Evolution 간단 소개

    목차
반응형

2024.02.02 - [데이터 분석/최적화 알고리즘] - 유전 알고리즘 python 코드를 통해 알아보기

2024.01.31 - [데이터 분석/최적화 알고리즘] - 유전 알고리즘 간단 소개

Nelder-Mead Method 한 줄 요약

유전 알고리즘처럼 유전자를 가지고 진화하는 최적화 기법, 변화 방식이 유전 알고리즘과 다르다.

 

https://en.wikipedia.org/wiki/Differential_evolution

 

주요 용어

- 유전자(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

728x90
반응형