Генетический алгоритм настройки гиперпараметров

Биологическое вдохновение:

Чарльз Дарвин: « Естественный отбор» - это рукопись, в которой он представил свою теорию естественного отбора и его роль в биологической эволюции.

Дарвин считал Естественный отбор своей основной работой, в то время как Происхождение видов было написано для более широкой аудитории. Он всегда намеревался закончить Естественный отбор, но из-за слабого здоровья, рекламы и работы, связанной с публикацией шести выпусков журнала Происхождение видов, а также других исследований и публикаций, он так и не успел закончить это.

Естественный отбор был переписан после смерти Дарвина и впервые опубликован в 1975 году.

« Выживание наиболее приспособленных» - фраза, пришедшая из дарвиновской теории эволюции как способ описания механизма естественного отбора. Биологическая концепция фитнеса определяется как репродуктивный успех. В дарвиновских терминах эту фразу лучше всего понимать как «Выживание формы, которая оставит большинство своих копий в последующих поколениях».

Грегор Мендель: Отец современной генетики. Менделирующая наследственность - это тип биологической наследственности, который следует принципам, первоначально предложенным G Регором Менделем. Рональд Фишер объединил эти идеи с теорией национального отбора в своей книге 1930 года Генетическая теория естественного отбора, поставив эволюцию на математическую основу и заложив основу популяционной генетики в современный эволюционный синтез.

Фишер был первым, кто утверждал, что «менделизм, следовательно, подтверждает дарвинизм», и заявлял в отношении мутаций, что «подавляющее большинство крупных мутаций вредны; небольшие мутации встречаются гораздо чаще и с большей вероятностью будут полезны »

Оптимизация с использованием генетического алгоритма:

Генетические алгоритмы (ГА) - это алгоритмы поиска, основанные на принципах естественного отбора и генетики. Генетические алгоритмы абстрагируют проблемное пространство как совокупность индивидуумов и пытаются исследовать наиболее приспособленных индивидуумов, итеративно создавая поколения. GA превращает популяцию исходных особей в популяцию высококвалифицированных особей, где каждая особь представляет собой решение проблемы, которую необходимо решить. Качество каждого правила измеряется функцией приспособленности как количественным представлением адаптации каждого правила к определенной среде. Процедура начинается с первоначальной популяции случайно сгенерированных особей. В течение каждого поколения три основных генетических оператора последовательно применяются к каждому человеку с определенной вероятностью, то есть отбор, кроссовер и мутация.

Процедура:

  1. [Начало] Сгенерировать случайную популяцию из n хромосом (подходящие решения проблемы).
  2. [Пригодность] Оцените приспособленность f (x) каждой хромосомы x в популяции.
  3. [Новая популяция] Создайте новую популяцию, повторяя следующие шаги, пока новая популяция не будет сформирована.

а. [Выбор] Выберите две родительские хромосомы из популяции в соответствии с их приспособленностью (чем лучше приспособленность, тем больше шанс быть выбранным).

б. [Кроссовер] С вероятностью кроссовера родители перекрещиваются с образованием нового потомства (детей). Если кроссовер не производился, потомство является точной копией родителей.

c. [Мутация] С вероятностью мутации мутировать новое потомство в каждом локусе (положении в хромосоме).

d. [Принятие] Поместить новое потомство в новую популяцию.

4. [Заменить] Используйте новую сгенерированную совокупность для дальнейшего запуска алгоритма.

5. [Тест] Если конечное условие удовлетворяется, остановитесь и верните лучшее решение в текущей популяции.

6. [Loop] Перейти к шагу 2.

Оптимизация моделей машинного обучения с помощью GA:

Библиотека «darwin-mendel» от PyPi использует технику GA для выполнения настройки гиперпараметров для нескольких моделей регрессии и классификации. Ниже приведен пример классификации случайного леса с использованием общего набора данных из sklearn.

Начальная популяция создается путем случайного выбора значений гиперпараметров из универсальных наборов отдельных лиц (предоставляется пользователем как словарь параметров). Размер популяции определяется пользователем (по умолчанию 50). Ниже приведена таблица, в которой указана начальная популяция.

Функция пригодности определяется матрицей точности, выбранной пользователем. Если для регрессионной модели выбран MAPE, то он станет критерием для выбора следующей партии рессор, и именно так достигается минимальное MAPE. Если для модели классификации выбрана точность, то цель алгоритма будет заключаться в выборе и рекомбинации хромосом, которые будут производить детей, чтобы максимизировать точность.

Скорость мутации по умолчанию составляет 5% (пользователь также может это изменить), что делается для извлечения примесей извне для быстрого достижения глобальных минимумов.

Чем больше поколений будет GA, тем выше будет точность, но также увеличится время. Чтобы принять решение, пользователь может построить график между количеством генераций и точностью, точка перегиба будет ясна (значение по умолчанию - 10).

Код для Дарвина-Менделя:

Код для RandomizedSearchCV:

Код для GridSearchCV:

Сравнение:

Сохраняя данные и диапазон гиперпараметров одинаковыми, были опробованы 3 разных алгоритма. ПФБ по результатам им.

Из приведенной выше таблицы видно, что точность и время, затраченные на GA, очень эффективны. В широком диапазоне параметров GA очень быстро достигает наилучшего сочетания, сохраняя при этом оптимизацию точности как цель. Как случайный поиск, так и поиск по сетке не являются разумным способом настройки гиперпараметров, GA - это управляемый способ добиться этого.

Ссылки:

  1. Https://pypi.org/project/darwin-mendel/
  2. Https://www.researchgate.net/publication/309770246_A_Study_on_Genetic_Algorithm_and_its_Applications
  3. Https://arxiv.org/abs/2006.12703
  4. Https://www.sciencedirect.com/science/article/pii/S0377042705000774
  5. Https://en.wikipedia.org/wiki/Charles_Darwin
  6. Https://en.wikipedia.org/wiki/Gregor_Mendel
  7. Https://en.wikipedia.org/wiki/The_Genetical_Theory_of_Natural_Selection