Эволюционный алгоритм
Материал из MachineLearning.
| | Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Д. Жумабеков 21:28, 19 июля 2026 (MSD) |
Введение
Выбор структуры модели — числа и состава входящих в неё признаков, конфигурации базисных функций, топологии композиции — принципиально отличается от настройки числовых параметров уже фиксированной модели. Пространство поиска в задаче настройки параметров непрерывно, и минимум функционала качества может отыскиваться градиентными методами, использующими локальную информацию о производной. Пространство поиска в задаче выбора структуры, напротив, дискретно и комбинаторно: например, для задачи отбора признаков из общего набора ,
, каждое подмножество
— отдельная точка пространства поиска, а таких точек
. Понятие производной функционала качества по «направлению» в этом пространстве не определено, что делает градиентные методы неприменимыми в принципе, а не только вычислительно невыгодными.
Единственный точный способ решения такой задачи — полный перебор всех подмножеств — становится практически неосуществим уже при умеренных
(десятки признаков дают число вариантов, на много порядков превышающее любые доступные вычислительные ресурсы). Эволюционный (генетический) алгоритм — представитель широкого класса методов случайного поиска с адаптацией, предлагающих альтернативу полному перебору[1]: вместо исчерпывающего просмотра пространства поиска поддерживается конечная популяция кандидатных решений, которая на каждой итерации преобразуется операциями, стохастически смещающими её в сторону более качественных решений, при сохранении управляемого уровня случайного разнообразия, предотвращающего преждевременную сходимость к локальному, но не глобальному оптимуму.
Историческая справка
Задача отбора признаков и, шире, задача построения оптимальной по сложности модели по ограниченной выборке — центральная тема научной школы А. Г. Ивахненко, предложившего метод группового учёта аргументов (МГУА)[1]. Ключевая идея МГУА — принцип самоорганизации моделей по внешнему критерию: вместо единственной модели, обучаемой по всей выборке и оцениваемой по той же выборке (что систематически завышает оценку качества сложных моделей), строится множество кандидатных моделей возрастающей сложности, и отбор среди них производится по внешнему критерию — вычисленному на данных, не участвовавших непосредственно в настройке параметров конкретной модели. Такая процедура выявляет оптимальную сложность модели как точку, в которой внешний критерий достигает минимума, тогда как внутренний критерий (ошибка на обучающих данных) продолжал бы монотонно улучшаться при неограниченном росте сложности.
Методологической основой такого подхода служит принцип неокончательных решений Габора[1]: на каждом этапе построения модели сохраняется не единственный «лучший» на данный момент вариант, а некоторое множество перспективных кандидатов, между которыми окончательный выбор откладывается до получения дополнительной информации на последующих этапах. Этот принцип, изначально сформулированный Д. Габором применительно к последовательному принятию решений в условиях неполноты информации, прямо соответствует идее поддержания популяции (а не единственного текущего решения) в эволюционном поиске, а также идее сохранения нескольких кандидатов на каждом «ряду» многорядных алгоритмов МГУА, рассматриваемых в следующем разделе.
Постановка задачи отбора признаков по внешнему критерию
Пусть — полный набор доступных признаков,
, и для любого подмножества
определена процедура обучения модели
исключительно по признакам из
. Внешний критерий
— функционал качества модели
, вычисленный на данных, не использованных при её обучении (например, по скользящему контролю или на отложенной контрольной выборке). Задача отбора признаков формулируется как задача дискретной оптимизации:
Принципиальная сложность этой задачи — не только комбинаторный рост числа вариантов с , но и немонотонность зависимости
от числа отобранных признаков
. При малом
модель недообучена — доступной информации недостаточно для восстановления зависимости, и
велико. По мере добавления информативных признаков
, как правило, убывает. Однако после достижения некоторого оптимального объёма признакового описания дальнейшее добавление признаков — в первую очередь малоинформативных, шумовых или дублирующих уже включённые, — увеличивает эффективную сложность модели без пропорционального увеличения полезной информации, что приводит к переобучению и последующему росту внешнего критерия
. Такая немонотонная, U-образная в типичном случае зависимость исключает применение методов, опирающихся на предположение о монотонности (например, последовательное наращивание признаков до первого ухудшения критерия не гарантирует нахождения глобального минимума), и мотивирует полноценный комбинаторный поиск по всему пространству подмножеств.
Поиск в ширину (beam search) как переходный метод
Промежуточным по вычислительной сложности между полным перебором и жадным пошаговым наращиванием служит усечённый поиск в ширину (beam search): на каждом шаге сохраняется не единственный текущий вариант, а лучших по критерию
кандидатов (луч ширины
); от каждого из них порождаются все допустимые расширения (добавление одного нового признака к уже отобранному подмножеству), из объединённого множества расширений вновь отбирается
лучших, и процедура повторяется до заданной глубины или до отсутствия улучшения критерия. При
метод вырождается в жадный пошаговый отбор признаков, при
приближается к полному перебору.
Этот метод — прямая формализация принципа неокончательных решений Габора применительно к многорядным алгоритмам МГУА: на каждом «ряду» селекции сохраняется ограниченное число частных моделей возрастающей сложности (частных подмножеств признаков или промежуточных полиномиальных членов), которые передаются на следующий ряд для дальнейшего комбинирования, вместо немедленного окончательного выбора единственной модели. Поиск в ширину, однако, остаётся в существенной мере локальным: набор кандидатов на очередном ряду порождается исключительно расширением кандидатов предыдущего ряда, что ограничивает исследуемую часть пространства подмножеств и мотивирует переход к эволюционному алгоритму, оперирующему популяцией решений произвольной, не обязательно монотонно растущей структуры.
Терминология эволюционного алгоритма
Эволюционный алгоритм заимствует терминологию из теории естественного отбора, придавая каждому термину точный формальный смысл применительно к задаче отбора признаков.
Индивидом называется одно кандидатное решение задачи — в задаче отбора признаков это конкретное подмножество . Хромосомой называется кодировка индивида в виде, пригодном для применения генетических операторов, — бинарный вектор
,
, находящийся во взаимно однозначном соответствии с подмножеством:
то есть ген хромосомы кодирует включение (
) или исключение (
) признака
из отбираемого подмножества. Поколением (популяцией) называется конечный набор из
хромосом
, одновременно рассматриваемых на данной итерации алгоритма; смена поколений — переход от текущей популяции к новой посредством отбора и генетических операторов, рассматриваемых в следующем разделе.
Генетические операторы
Скрещивание
Скрещивание (кроссовер) порождает потомка на основе двух родительских хромосом и
. Рассмотрим два способа его реализации.
Усредняющее скрещивание. Разыгрывается единственный случайный вес , общий для всех генов хромосомы, и ген потомка получается взвешенным усреднением значений генов родителей с последующим округлением до ближайшего целого (бинаризацией):
При , близком к
или
, потомок практически совпадает с одним из родителей; при
потомок наследует ген от каждого родителя с сопоставимым вкладом (для различающихся генов
результат бинаризации при
требует отдельного правила разрешения неопределённости, например случайного выбора одного из родительских значений).
Одноточечное скрещивание. Разыгрывается точка разрыва , равномерно распределённая на множестве
; потомок наследует гены до точки разрыва от первого родителя, а после неё — от второго:
В отличие от усредняющего варианта, одноточечное скрещивание не требует бинаризации: результат по построению остаётся корректной бинарной хромосомой. Частный случай этой схемы при точках разрыва, разыгрываемых независимо для каждого гена (ген наследуется от первого или второго родителя с вероятностью
независимо от прочих генов), называется однородным скрещиванием и лучше подходит для задач без содержательного порядка признаков в хромосоме, тогда как одноточечное скрещивание предпочтительно, если соседние по индексу признаки содержательно связаны (например, получены из одного источника данных или являются последовательными во времени измерениями).
Мутация
Мутация вносит в хромосому потомка независимый от родителей случайный элемент, предотвращающий вырождение популяции в набор идентичных или близких друг к другу решений. Для каждого гена хромосомы, полученной скрещиванием, независимо разыгрывается индикатор мутации
— бернуллиевская случайная величина, принимающая значение
с вероятностью
(вероятность мутации одного гена) и значение
с вероятностью
. Итоговое значение гена после мутации:
При (мутация произошла) формула даёт
— инверсию гена: включённый признак исключается, исключённый — включается. При
(мутации не произошло) формула даёт
— ген сохраняется без изменений. Таким образом, приведённая формула — компактная запись стандартного побитового инвертирования с вероятностью
на каждый ген, применительно к отбору признаков интерпретируемая как случайное включение ранее не рассматривавшегося признака или исключение уже отобранного, независимо от того, что определило исходный состав подмножества
.
Эволюционный (генетический) алгоритм
Вход: набор признаков ,
; внешний критерий
; размер популяции
; вероятность мутации
; предельное число поколений без улучшения
.
Выход: наилучшее найденное подмножество признаков .
- Инициализировать популяцию
случайными бинарными хромосомами (например, каждый ген независимо равен
с фиксированной начальной вероятностью).
- Вычислить
для каждого индивида популяции; положить
равным
с наименьшим значением
; счётчик поколений без улучшения
.
- Повторять:
- Ранжировать текущую популяцию по возрастанию
.
- Сформировать новое поколение размера
:
- сохранить в новом поколении без изменений
лучших индивидов текущей популяции (элитизм);
- для оставшихся
позиций — выбрать пару родителей из текущей популяции (например, пропорционально рангу или турнирным отбором среди лучших индивидов), применить к ним операцию скрещивания и затем операцию мутации, поместить полученного потомка в новое поколение.
- сохранить в новом поколении без изменений
- Вычислить
для всех новых индивидов поколения.
- Если наименьшее значение
в новом поколении меньше значения
, обновить
и обнулить
; иначе
.
- Если
, завершить цикл.
- Ранжировать текущую популяцию по возрастанию
- Вернуть
.
Критерий остановки по числу поколений без улучшения — стандартный способ практического ограничения времени работы эволюционного алгоритма, не имеющего, в отличие от градиентных методов на выпуклых функционалах, формальной гарантии сходимости за конечное число итераций к глобальному оптимуму: алгоритм останавливается не по достижении теоретического критерия оптимальности, а по признаку исчерпания улучшений в пределах разумного вычислительного бюджета.
Эвристики управления процессом эволюции
- Адаптивная вероятность мутации. Вероятность
не обязана оставаться постоянной на протяжении всего поиска: типичная стратегия — увеличивать
по мере роста числа поколений без улучшения (сигнал приближающейся стагнации популяции) и уменьшать её после успешного улучшения
, возвращаясь к более консервативному, преимущественно эксплуатационному режиму поиска в окрестности уже найденного хорошего решения.
- Накопление оценок информативности признаков. В процессе работы алгоритма для каждого признака
может накапливаться статистика — например, среднее значение критерия
среди индивидов, включающих данный признак, по сравнению со средним значением среди индивидов, его не включающих. Такая статистика используется для смещения вероятностей инициализации и мутации в сторону более информативных признаков, ускоряя сходимость по сравнению с полностью равновероятными операторами.
- Элитизм. Гарантированный перенос нескольких лучших индивидов текущего поколения в следующее без применения к ним генетических операторов (шаг 3.2.1 псевдокода) предотвращает случайную потерю уже найденного хорошего решения в результате неудачного скрещивания или мутации — без элитизма значение критерия для лучшего индивида популяции не гарантированно монотонно не возрастает от поколения к поколению.
- Увеличение разнообразия при стагнации. При достижении порогового числа поколений без улучшения (до срабатывания основного критерия остановки
) применяется частичный или полный рестарт — замена существенной доли популяции новыми случайными индивидами либо резкое временное увеличение
, — что позволяет алгоритму покинуть окрестность локального оптимума, в которой популяция преждевременно сконцентрировалась.
- Островная модель эволюции. Вместо единственной популяции поддерживается несколько независимо эволюционирующих субпопуляций («островов»), между которыми с некоторой периодичностью происходит миграция — перенос нескольких лучших индивидов одного острова в другой. Такая схема поддерживает более высокое суммарное разнообразие генетического материала, чем единственная популяция того же общего размера, и допускает естественную параллелизацию вычислений по островам.
Смежные задачи, решаемые эволюционными алгоритмами
Формализм индивида, хромосомы и генетических операторов, изложенный выше применительно к бинарной маске признаков, непосредственно обобщается на более широкий класс задач поиска структуры модели: хромосомой может кодироваться, например, набор используемых базисных функций, топология связей в композиции моделей или значения дискретных гиперпараметров алгоритма обучения — во всех случаях внешний критерий вычисляется по результату обучения модели, соответствующей данной хромосоме, а генетические операторы применяются к тому же типу кодировки (бинарной, целочисленной или смешанной), что и в задаче отбора признаков.
Более общее обобщение — генетическое программирование[1], в котором индивидом служит не вектор фиксированной длины, а произвольное синтаксическое дерево, кодирующее программу или математическое выражение; операции скрещивания и мутации в этом случае определяются как обмен и случайная замена поддеревьев соответственно. Частный, но практически значимый случай генетического программирования — Символьная регрессия: поиск не параметров фиксированной функциональной формы, а самой этой формы (выражения из элементарных функций и арифметических операций), наилучшим образом приближающей зависимость по данным, с тем же внешним критерием качества, что и в задаче отбора признаков, но определённым на пространстве синтаксических выражений, а не на пространстве бинарных масок. Оба направления рассматриваются как обобщение единого эволюционного подхода, кодировка индивида в котором подбирается под структуру конкретного пространства поиска.
Сравнение с альтернативными методами дискретной оптимизации
| Критерий | Точный полный перебор | Поиск в глубину (жадный) | Стохастический локальный поиск | Эволюционный алгоритм |
|---|---|---|---|---|
| Вычислительная сложность | | | управляется числом итераций, независимо от | управляется размером популяции и числом поколений, масштабируется на большие |
| Гарантия глобального оптимума | даёт точный глобальный оптимум по построению | не даёт: чувствителен к немонотонности | не даёт формальной гарантии, но допускает выход из локального оптимума за счёт случайных шагов и приёма ухудшающих решений с некоторой вероятностью | не даёт формальной гарантии; практическая близость к оптимуму определяется размером популяции, числом поколений и балансом операторов |
| Использование структуры популяции решений | отсутствует (перебираются одиночные решения) | отсутствует | как правило, отсутствует (одна текущая точка поиска) либо ограниченная память недавних решений | центральный механизм: одновременное параллельное исследование множества решений с обменом информацией через скрещивание |
| Типичная область применения | малое число признаков (единицы — первые десятки) | умеренное число признаков при доверии к приблизительной монотонности | широкий класс комбинаторных задач без выраженной структуры пространства поиска | большое число признаков, немонотонная зависимость |

