Ця відповідь вимагає практичного прикладу того, як можна використовувати один, який я спробую надати на додаток до інших відповідей. Їм, здається, належить дуже добре розтлумачити, що таке генетичний алгоритм. Отже, це дасть приклад.
Скажімо, у вас є нейронна мережа (хоча це не єдине її застосування), яка з деяких заданих входів дасть певні результати. Генетичний алгоритм може створити цілу сукупність, і, побачивши, який вихід найкращий, розводити та вбивати членів популяції. Врешті-решт, це повинно оптимізувати нейронну мережу, якщо вона досить складна.
Ось демонстрація, яку я зробив, яка, незважаючи на те, що сильно закодована, може допомогти вам зрозуміти. http://khrabanas.github.io/projects/evo/evo.html
Натисніть кнопку еволюції та розімкніть цілі.
Він використовує простий генетичний алгоритм для розмноження, мутації та визначення того, хто з популяції виживе. Залежно від того, як встановлені вхідні змінні, мережа зможе дістатись до певного рівня їх близькості. Таким чином, населення, швидше за все, стане гомогенною групою, результати якої нагадують цілі.
Генетичний алгоритм намагається створити своєрідну "нейронну мережу", яка, приймаючи RGB, дасть вихідний колір. По-перше, це генерує випадкову сукупність. Потім, беручи 3 випадкових членів з населення, вибираючи одного з найнижчою придатністю та вилучаючи його з популяції. Придатність дорівнює різниці в верхній цілі в квадраті + різниці в нижній цілі в квадраті. Потім він розводить двох інших, що залишилися разом, і додає дитину до того самого місця в популяції, як і мертвий член. Коли відбувається спаровування, є ймовірність, що відбудеться мутація. Ця мутація змінить одне із значень випадковим чином.
Як бічна примітка, через те, як це налаштовано, неможливо, щоб воно було абсолютно правильним у багатьох випадках, хоча це досягне відносної близькості.