Программа для поиска и оптимизации архитектуры нейронной сети с помощью генетического алгоритма с визуализацией полученных результатов
2025661782
13.05.2025
2025660475
28.04.2025
Программа предназначена для поиска и оптимизации архитектуры нейронной сети с помощью генетического алгоритма. Программа работает с тестовой выборкой данных, генерируемой случайным образом по ранее заданной формуле (тестовые данные можно заменить на свои собственные). В ходе работы программы создается начальная популяция со случайными стартовыми параметрами для нейронных сетей. В качестве основных параметров архитектуры нейронной сети выбраны: количество слоев, количество нейронов в каждом слое и типы активационных функций, критерием точности модели или функцией приспособленности выбрана среднеквадратичная ошибка для выхода. Затем запускается цикл по количеству поколений – этот параметр настраивается в зависимости от желаемой точности результата. В цикле строится нейронная сеть на текущей обучающей выборке несколько раз, для каждого набора параметров из популяции. В качестве результата получается нейронная сеть для каждого набора из популяции с ее оцененной точностью по среднеквадратичной ошибке к выходу. Далее сортируются полученные оценки и оставляются только половина лучших. Затем формируется новая популяция путем скрещивания двух случайных оставшихся лучших значений с усреднением. После чего происходит мутация этих параметров нейронной сети путем добавления или удаления случайного значения для каждого из них, с ограничением по максимальному и минимальному порогу. Получившаяся новая популяция отправляется в начало цикла. В результате всей работы алгоритма на выходе формируется оптимизированная архитектура для предложенной обучающей выборки данных. Рассчитанные результаты визуализируются в виде графика с двумя легендами: исходное значение и предсказанное значение, а также выводятся на консоль оптимальная архитектура нейронной сети: количество слоев, количество нейронов в каждом слое и вид активационной функции для каждого слоя.