유전자 알고리즘은 더 좋은 전파로 좋은 유전자를 보상 할 방법이 필요합니다. 나쁜 유전자에서 좋은 유전자를 말할 방법이 없다면 유전자 알고리즘을 전혀 사용할 수 없었습니다.
유전자 알고리즘이 작동하려면 적합하지 않은 솔루션보다 선호도가 높은 솔루션을 우선적으로 재생산해야합니다. 그렇지 않으면 임의의 솔루션을 시도하고 있습니다.
다음은 제 자신의 경험에서 얻은 전형적인 예입니다. 최초의 음성 다이얼링 시스템 중 하나를 개발하면서 음성 이름을 같은 이름의 저장된 사본과 일치시키는 알고리즘을 찾는 데 어려움을 겪었습니다. 우리는 25 명 중 하나의 이름을 고르는 95 %의 정확도로 충분하다고 들었습니다. 우리는 25 명의 이름을 각각 10 번씩 말하는 사람들이 모여있었습니다.
먼저, 우리는 몇 개의 정규화 된 청크에서 구어의 길이와 주파수 에너지를 측정하는 입력 시스템을 개발했습니다. 그런 다음 해당 매개 변수의 일치 항목에 가중치를 할당하고 해당 가중치를 통해 두 매개 변수 집합을 비교하는 알고리즘을 개발했습니다.
이제 우리는 마지막 단계를 가졌습니다. 그 무게의 가치는 무엇입니까?
우리는 1,000 개의 무작위 가중치를 생성하고 코퍼스에 대해 테스트했습니다. 최악의 성능을 발휘 한 500을 버렸습니다. 나머지 500 명에 대해, 우리는 각각을 복제하고 그중 하나에서 가중치 중 하나를 무작위로 올리거나 내 렸습니다.
우리는 95 % 정확도 기준을 만족하는 일련의 무게를 가질 때까지 약 2 주 동안 컴퓨터에서이 과정을 반복했습니다. 그런 다음 코퍼스가 아닌 데이터에서 테스트했습니다. 약 92 % 정확했습니다. 우리는 말뭉치에서 98 %의 정확도를 달성하기 위해 더 오래 달렸으며, 그 가중치 세트는 말뭉치가 아닌 데이터에서 95 %의 정확도를 생성했습니다.
따라서 요점은 유전자 알고리즘을 실행하려면 피트니스 기능이 있어야한다는 것입니다. 나쁜 유전자에서 좋은 유전자를 말할 방법이 없다면, 좋은 유전자를 재생산하고 나쁜 유전자가 그렇지 않은지 어떻게 확인할 수 있습니까?