1. 유전 알고리즘(GA) 및 진화 알고리즘 EA의 기본 개념

진화 알고리즘(Evolutionary algorithms, EAs라고도 함)이라고도 하는 진화 알고리즘 은 특정 알고리즘이 아니라 "알고리즘 클러스터"이며, 유전 알고리즘(GA)은 진화 알고리즘의 한 클래스입니다.

기계 학습의 네 가지 유형의 진화 알고리즘에 대한 자세한 설명: 유전 알고리즘, 차동 진화 알고리즘, 공진화 알고리즘, 분포 추정 알고리즘

기본 사상:

적합

소위 적합도는 본질적으로 비용 함수 또는 규칙으로 이해할 수 있습니다. 초기 모집단의 개인의 적합도를 계산하여 초기 모집단의 개인이 좋은지 나쁜지를 측정할 수 있습니다.

외적 체력, 내적 체력

외적 적합성과 내적 적합성은 진화 생물학 분야의 두 가지 개념입니다.

외인적 적합도(exogenous fitness)란 환경(기후, 기온, 먹이 등 모든 무생물적 요인)에 대한 적응 으로 인해 개인이나 집단에 가해지는 선택적인 압력을 말한다 . 즉, 개인이나 집단의 적합성으로 인한 생존, 번식 또는 기타 성공을 의미합니다.

내재적 적합도(endogenous fitness)는 유전 정보 의 장단점 , 즉 개인 또는 집단 게놈의 기여도를 말한다 . 고유 적합성은 발현, 기능 및 상호 작용을 포함하여 개인 또는 인구 게놈의 다양한 유전자 및 유전자형에 따라 달라집니다.

높은 외부 체력, 높은 내부 체력

높은 외적 적합도와 높은 내재적 적합도는 각각 환경과 유전 정보에 대한 개인 또는 집단의 적응도가 높아 생존율과 번식 성공률이 높은 것을 의미합니다.

높은 외부 적응도는 개인 또는 그룹이 형태, 행동 및 기타 특성에 따라 현재 환경 조건에 더 잘 적응하고 더 높은 생존 및 번식 성공 기회를 얻을 수 있음을 의미합니다. 이것은 그들이 더 효과적으로 적응하고 환경 변화와 위험 요소에 더 잘 대응할 수 있음을 의미합니다.

높은 내적 적합도는 개인 또는 인구 게놈에 포함된 우수한 유전자 및 유전자형을 말하며, 이는 더 나은 생존 및 번식 능력을 가질 수 있습니다. 예를 들어 특정 환경 조건에서 더 강한 면역 체계, 더 빠른 성장 속도, 더 높은 지능 등을 보여줍니다.

선택하다

선택 작업은 모집단에서 개인의 적합도 함수 값으로 측정한 우열의 정도에 따라 다음 세대에 도태될 것인지 유전될 것인지를 결정하는 것이다.

십자가

교차 연산은 선택된 두 개인 p1과 p2를 부모 노드로 사용하고, 둘의 코드 값 중 일부를 교환하는 것입니다. 두 노드의 다음과 같은 이진 코드 표현을 가정합니다.

여기에 사진 설명 쓰기

 3이라고 가정하고 1에서 7 사이의 난수를 임의로 생성한 다음 아래 그림과 같이 p1과 p2의 마지막 3비트를 교환하면 교차 작업이 완료됩니다.

여기에 사진 설명 쓰기

물론 이는 아주 단순한 크로스오버 방식일 뿐이며, 업계에서 일반적으로 사용되는 크로스오버 방식은 아날로그 바이너리 크로스오버이다.

돌연변이

돌연변이 연산은 다음과 같이 노드 p2의 이진 코드의 일부 알려지지 않은 상위 ​​위치의 값을 변경하는 것입니다.

1 1 0 1 1 1 1

1에서 8 사이의 임의의 숫자를 6으로 가정하고 무작위로 생성한 다음 코드의 6번째 비트를 변경하여 아래 그림과 같이 1에서 0으로 변경하면 교차 작업이 완료됩니다.

1 1 0 1 1 0 1

이것은 여전히 ​​간단한 돌연변이 작업이며 업계에서 일반적으로 사용되는 돌연변이 작업에는 Gaussian 돌연변이와 Cauchy 돌연변이가 있습니다.

알고리즘 융합

위의 연산을 통해 유전알고리즘의 일반적인 흐름을 소개하였으므로 이제 알고리즘의 수렴 여부가 알고리즘의 가장 핵심적인 문제라는 의문이 남는다.

Radolph는 문헌[Radolph G. Convergence Analysis of Canonical Genetic Algorithms. IEEE Transactions on Neural Network, 1994,5(1): 96-101.]에서 일반 유전 알고리즘이 반드시 수렴하지 않고 각 세대만이 최적의 알고리즘을 보존한다는 것을 증명했습니다. 개별적인 경우에만 수렴합니다 .

여기에 사진 설명 쓰기
유전 알고리즘 프레임워크

진화 알고리즘

진화 알고리즘에는 유전 알고리즘, 진화 프로그래밍, 진화 프로그래밍, 진화 전략 등이 있다. 진화 알고리즘의 기본 틀은 여전히 ​​단순한 유전 알고리즘으로 기술되는 틀이지만 진화 방식(선택, 교배, 돌연변이, 개체군)에서 큰 차이가 있다. 제어 등) 많은 변화가 있으며 진화 알고리즘의 일반적인 블록도는 아래 그림과 같이 설명할 수 있습니다.

여기에 사진 설명 쓰기

유전알고리즘과 마찬가지로 진화알고리즘의 수렴도 최적의 개체가 보존될 때 일반적인 진화계산이 수렴한다는 점이다. 그러나 진화 알고리즘의 많은 결과는 유전자 알고리즘에서 파생됩니다.

유전자 알고리즘은 교차 연산에 더 많은 관심을 기울이고 돌연변이 연산이 알고리즘의 보조 연산이라고 믿는 반면, 진화 프로그래밍 및 진화 전략은 일반적으로 교차가 돌연변이보다 낫지 않으며 심지어 교차 작업이 필요하지 않을 수 있습니다.

코드: https://github.com/MorvanZhou/Evolutionary-Algorithm

소개: 진화 알고리즘 | 파이썬은 신경쓰지 마세요

추천

출처blog.csdn.net/weixin_43135178/article/details/130724856