Algorytm genetyczny wymaga jakiegoś sposobu na nagrodzenie dobrych genów większą propagacją. Jeśli nie potrafiłeś odróżnić dobrych genów od złych genów, w ogóle nie mógłbyś użyć algorytmu genetycznego.
Aby algorytm genetyczny zadziałał, musisz pozwolić na reprodukcję rozwiązań bardziej dopasowanych niż na mniej dopasowanych. W przeciwnym razie po prostu próbujesz losowych rozwiązań.
Oto typowy przykład z mojego własnego doświadczenia: Opracowując jeden z pierwszych systemów wybierania głosowego, mieliśmy trudności ze znalezieniem algorytmu dopasowującego nazwę mówioną do przechowywanej kopii o tej samej nazwie. Powiedziano nam, że 95% dokładność wybrania jednej nazwy z 25 jest wystarczająca. Mieliśmy zgromadzony korpus ludzi, którzy wypowiadali po 25 nazwisk po 10 razy.
Najpierw opracowaliśmy system wprowadzania, który mierzył długość wypowiadanego słowa i energię częstotliwości w kilku znormalizowanych częściach. Następnie opracowaliśmy algorytm, który przypisywał wagi do dopasowań tych parametrów i porównywał dwa zestawy parametrów na podstawie tych wag.
Teraz mieliśmy ostatni krok - jaka powinna być wartość tych wag?
Stworzyliśmy 1000 losowych zestawów wag i przetestowaliśmy je na ciele. Wyrzuciliśmy 500, którzy spisali się najgorzej. Dla pozostałych 500 powtórzyliśmy każdy z nich, aw jednym z nich losowo podnosiliśmy lub obniżaliśmy jeden z obciążników.
Powtarzaliśmy ten proces na komputerze przez około dwa tygodnie, aż w końcu miał zestaw wag, które spełniały kryterium dokładności 95%. Następnie przetestowaliśmy go na danych nie w korpusie. Dokładność była około 92%. Pobiegliśmy więc dłużej, aby uzyskać 98% dokładność na korpusie, a ten zestaw wag wytworzył 95% dokładności na danych nie w korpusie.
Chodzi o to, że musisz mieć funkcję fitness, aby uruchomić algorytm genetyczny. Jeśli nie możesz odróżnić dobrych genów od złych genów, jak możesz się upewnić, że dobre geny się rozmnażają, a złe geny nie?