Назад в библиотеку

Генетические алгоритмы для автоматизированного поиска архитектур нейронных сетей

Арцыбашев И.А., Ефименко К.Н.

Донецкий национальный технический университет

Источник: Арцыбашев И.А. Генетические алгоритмы для автоматизированного поиска архитектур нейронных сетей / И.А. Арцыбашев, К.Н. Ефименко // Материалы XIV Международной научно-технической конференции «Информатика, управляющие системы, математическое и компьютерное моделирование» (ИУСМКМ-2025).

Введение

Актуальность задачи автоматизированного проектирования нейронных сетей обусловлена постоянным увеличением сложности и объема данных, с которыми работают современные системы машинного обучения. Для эффективной работы моделей необходимо оптимизировать архитектуры нейронных сетей, что позволяет улучшить их точность, вычислительную эффективность и потребление ресурсов. Одним из методов автоматизации этого процесса является использование генетических алгоритмов, которые эффективно решают задачу поиска оптимальных архитектур, избегая локальных минимумов и находя глобально оптимальные решения [1].

Целью данной статьи является исследование применения генетических алгоритмов для автоматизированного поиска архитектур нейронных сетей.

Задачами статьи являются:

  1. Описание задач поиска оптимальной архитектуры нейронной сети.
  2. Обоснование использования генетических алгоритмов для поиска архитектур.
  3. Изучение процесса кодирования архитектуры нейронной сети для генетического алгоритма.
  4. Рассмотрение основных этапов работы генетического алгоритма в контексте оптимизации нейронных сетей


Задачи поиска оптимальной архитектуры нейронной сети

При автоматизированном проектировании архитектуры нейронных сетей основная задача заключается в достижении баланса между точностью модели, эффективностью вычислений и потреблением ресурсов. Точность модели критична, так как она определяет способность сети правильно классифицировать или предсказывать значения на основе обучающих данных [2]. Для улучшения точности важно настроить такие параметры, как количество и тип слоев, число нейронов в каждом слое и функции активации.

Вторым важным фактором является вычислительная эффективность, которая определяет время, затраченное на обучение и инференс сети. Для многих задач, особенно в реальном времени или мобильных приложениях, необходимо минимизировать вычислительные ресурсы. Генетический алгоритм может помочь в поиске архитектуры, оптимизируя баланс между сложностью модели и вычислительными затратами при сохранении приемлемой точности.

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

Таким образом, оптимизация гиперпараметров является важной частью создания эффективных моделей машинного обучения. Гиперпараметры (например, скорость обучения, количество слоёв, параметры регуляризации) значительно влияют на производительность и точность предсказаний модели, что показано в таблице 1.

Таблица 1 – Гиперпараметры алгоритмов машинного обучения

Алгоритм Гиперпараметры Описание
Линейная регрессия Коэффициент регуляризации Избегает переобучения модели
Метод оптимизации Влияет на эффективность обучения
Логистическая регрессия Параметр регуляризации Балансирует точность и обобщение
Скорость обучения Определяет шаг изменения весов
Количество итераций Определяет максимальное число итераций обучения
Нейронные сети Количество слоёв Влияет на способность обучаться сложным паттернам
Количество нейронов в слое Влияет на вычислительную сложность
Функция активации Влияет на нелинейность и обучаемость
Скорость обучения Регулирует изменение весов модели
Параметр регуляризации Предотвращает излишнюю сложность модели
Метод опорных векторов Параметр регуляризации Балансирует сложность модели и ошибки
Ядро Трансформирует данные для улучшения разделимости
Параметры ядра Контролирует гибкость модели
Деревья решений Глубина дерева Ограничивает уровни дерева, предотвращая переобучение
Минимальное количество образцов в листе Помогает избежать подгонки к шуму
Минимальное количество образцов для разделения Контролирует переобучение
Случайный лес Количество деревьев Влияет на точность предсказаний
Максимальная глубина дерева Ограничивает глубину каждого дерева
Минимальное количество образцов в листе Предотвращает мелкие разделения
Максимальное количество признаков для разделения Помогает снизить переобучение
k-средних Количество кластеров Влияет на точность кластеризации
Инициализация центроидов Влияет на сходимость алгоритма
Максимальное количество итераций Ограничивает шаги до завершения алгоритма
Генетические алгоритмы Размер популяции Влияет на разнообразие решений и скорость эволюции
Вероятность мутации Влияет на исследовательский процесс
Вероятность кроссовера Определяет вероятность обмена генетической информацией
Количество поколений Определяет количество поколений для оптимизации

Каждый алгоритм машинного обучения имеет специфические параметры, что требует индивидуальной настройки. Процесс оптимизации гиперпараметров является сложной задачей с высокой вычислительной нагрузкой.

При проектировании архитектуры нейронной сети важно учитывать ограничения, такие как доступные вычислительные ресурсы, время обучения и целевые показатели производительности, что определяет баланс между точностью, скоростью работы модели и затратами на её реализацию, а именно:

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

Таким образом, оптимизация гиперпараметров должна учитывать эти ограничения, обеспечивая баланс между точностью, вычислительными затратами и временем работы модели.


Кодирование архитектуры нейронной сети для генетического алгоритма

При использовании генетического алгоритма для оптимизации нейронных сетей, архитектура сети представляется в виде хромосомы, где каждый ген кодирует один из параметров сети. Таким образом, генетический код является компактным и структурированным представлением конфигурации нейронной сети, что позволяет эффективно исследовать пространство возможных решений и находить оптимальные параметры [4]. Каждая хромосома состоит из набора генов, которые могут варьироваться в процессе эволюции, что позволяет генетическому алгоритму находит наилучшую архитектуру сети.

На рисунке 1 представлена структура искусственной нейронной сети и хромосомы, которая кодирует её архитектуру и связи для применения генетического алгоритма.

Структура хромосомы

Рисунок 1 – Структура хромосомы

Элемент (a) показывает топологию сети, где каждый узел представляет нейрон, а стрелки обозначают связи между ними, отражая их организацию и направление передачи сигналов. Элемент (б) отображает структуру хромосомы, которая содержит информацию о нейроне, где, например, «N5» – это идентификатор нейрона, «вход 2» обозначает количество входов, а «выход 1» – количество выходов. В свою очередь, элемент (в) представляет структуру хромосомы, которая кодирует данные о связях между нейронами, где «в N5» указывает, что связь ведёт к нейрону N5, «входной порт 1» обозначает входной порт, а «из N3» показывает, что нейрон N3 является источником.

Для полносвязных нейронных сетей, хромосома может содержать такие параметры, как число скрытых слоёв, количество нейронов в каждом слое и функции активации для каждого из этих слоёв. Для каждого слоя также можно закодировать функцию активации, такую как ReLU, Sigmoid или Tanh. Такая схема позволяет генетическому алгоритму исследовать различные комбинации слоёв и их настроек.

Для сверточных нейронных сетей, структура хромосомы будет немного отличаться и каждый ген будет представлять параметры сверточных слоёв (размер фильтра, количество фильтров и шаг свертки). Хромосома может также содержать информацию о полносвязных слоях после сверточных слоёв, а также о размерах этих слоёв. Таким образом, генетический алгоритм может искать оптимальную конфигурацию фильтров и слоёв для обработки изображений.

Для рекуррентных нейронных сетей хромосома будет кодировать информацию о типах рекуррентных слоёв, таких как LSTM или GRU, а также их размеры и число временных шагов, которые сеть будет учитывать. Важно, чтобы генетический код учитывал особенности работы с последовательными данными, что является ключевым для рекуррентных сетей.

Гиперпараметры также важны для эффективной работы нейронной сети, и их можно закодировать в генах хромосомы. Например, коэффициент обучения, который регулирует скорость обновления весов модели, может быть представлен как вещественное число, указывающее величину шага при оптимизации. Для этого ген может быть вещественным числом, которое будет варьироваться в процессе эволюции. Также можно закодировать параметры регуляризации, такие как коэффициенты L2 или L1 регуляризации, которые будут препятствовать переобучению и улучшать обобщающую способность модели.

Для функций активации, таких как ReLU, Sigmoid или Tanh, генетический код может использовать категориальные переменные, которые указывают, какая именно функция будет применяться в каждом слое. Это позволяет гибко настроить каждый слой сети, выбирая наиболее подходящую функцию активации для различных типов данных.

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


Основные этапы генетического алгоритма для поиска архитектур

На начальном этапе генетического алгоритма создается набор случайных архитектур нейронных сетей, который будет служить основой для дальнейшего поиска. Эти случайные архитектуры обеспечивают разнообразие начальных решений, что важно для эффективного поиска оптимальной архитектуры.

Каждая из архитектур оценивается с помощью фитнес-функции, которая измеряет её производительность и эффективность [5]. Оценка может включать такие критерии, как точность на валидационном наборе данных, время обучения и ресурсоемкость. Этот этап позволяет определить, какие из архитектур являются более подходящими для задачи.

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

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

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

Мутация – это случайное изменение некоторых генов хромосомы с целью увеличения разнообразия в популяции. Мутация помогает избежать застревания алгоритма в локальных минимумах, способствуя исследованию новых решений, которые могли бы быть упущены в процессе кроссовера. Это расширяет пространство возможных решений и улучшает результаты поиска оптимальных параметров.

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

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

Генерация фитнес-функции и эволюция программы

Рисунок 2 – Генерация фитнес-функции и эволюция программы

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

Выводы

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

Литература

  1. Васильев, А.Н. Тархов Д.А. Принципы и техника нейросетевого моделирования / А.Н. Васильев. – Москва: Наука, 2017. – 999 c.
  2. Галушкин, А. И. Нейрокомпьютеры. Учебное пособие / А.И. Галушкин. – М.: Альянс, 2018. – 528 c.
  3. Гелиг, А. Х. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие / А.Х. Гелиг, А.С. Матвеев. – М.: Издательство СПбГУ, 2018. – 224 c.
  4. Кащенко, С. А. Модели волновой памяти / С.А. Кащенко, В.В. Майоров. – М.: Либроком, 2019. – 288 c.
  5. Круглов, В. В. Искусственные нейронные сети. Теория и практика / В.В. Круглов, В.В. Борисов. – М.: Горячая линия - Телеком, 2019. – 382 c.