Тип работы:
Предмет:
Язык работы:


РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ И СПОСОБЫ УПРАВЛЕНИЯ

Работа №162265

Тип работы

Магистерская диссертация

Предмет

информатика

Объем работы86
Год сдачи2024
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
32
Не подходит работа?

Узнай цену на написание


Реферат
ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ 5
ВВЕДЕНИЕ 6
1 Анализ предметной области 8
1.1 Г енетические алгоритмы 8
1.2 Описание методов селекции в генетических алгоритмах 10
1.4.1 Метод рулетки 10
1.4.2 Метод стохастической универсальной выборки 12
1.4.3 Ранговый отбор 13
1.4.4 Турнирный отбор 14
1.4.5 Отбор устойчивого состояния 16
1.3 Описание методов скрещивания в генетическом алгоритме 17
1.5.1 Одноточечное скрещивание 17
1.5.2 Двухточечное скрещивание 18
1.5.3 Равномерное скрещивание 18
1.4 Описание методов мутации в генетическом алгоритме 19
1.6.1 Мутация инверсией 19
1.6.2 Мутация обменом 20
1.5 Градиентный спуск 20
1.6 Преимущества генетического алгоритма перед градиентным спуском 22
1.7 Выводы 24
2 Реализация генетических алгоритмов 25
2.1 Используемый язык программирования 25
2.1.1 Возможности реализации генетических алгоритмов на языке
программирования C++ 25
2.1.2 Возможности реализации генетических алгоритмов на языке
программирования Python 26
2.1.3 Сравнительный анализ языков программирования 27
2.2 Используемые библиотеки 29
2.3 Используемая среда разработки 30
2.4 Описание обучающей выборки 31
2.5 Описание структуры нейронной сети 33
2.6 Описание программы генетического алгоритма 36
2.7 Описание программы градиентного спуска 41
2.8 Выводы 44
3 Анализ результатов 45
3.1 Результаты обучения нейронной сети с помощью генетических
алгоритмов 45
3.2 Результаты обучения нейронной сети с помощью градиентного
спуска 57
3.3 Выводы 59
ЗАКЛЮЧЕНИЕ 60
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 61
ПРИЛОЖЕНИЕ А Листинг программы 64
Приложение А.1 Файл Genetic_algorithm.py 65
Приложении А.2 Файл Gradient_Descent.py 70
ПРИЛОЖЕНИЕ Б Презентация 76

Машинное обучение глубоко укоренилось в различных сферах жизни в последние годы. Развитие и распространение данный инструмент получил в ряде отдельных задач, не требующих абсолютной точности и имеющих низкую стоимость ошибки. Например, такие задачи как прогнозирование, классификация и консультация по каким-либо вопросам. В данном случае результат прогнозирования и консультирования можно расценивать как дополнительную рекомендацию в решении какого-либо вопроса, а не абсолютно верный ответ.
С ростом популярности машинного обучения остро встаёт вопрос оптимизации этого процесса, с целью получить большую эффективность за меньшее время обучения. Большое внимание в данном вопросе имеет метод оптимизации функции потерь. Наряду с градиентного спуском, стохастическим градиентным спуском, адаптивного момента, имитацией отжига, одним из таких методов является генетический алгоритм.
Выбор метода оптимизации функции потерь является очень важным этапом машинного обучения. Каждый метод имеет свои преимущества и недостатки из-за чего нет единого решения и в каждой отдельной задаче тот или иной метод проявляет себя по-разному. В том случае, если специалист решил воспользоваться генетическими алгоритмами в данном вопросе, тогда требуется настроить все параметры генетического алгоритма. Благодаря широкому набору параметров и различных методов генетические алгоритмы позволяют решать более широкий круг задач, чем аналогичные методы оптимизации функции.
В данной работе генетические алгоритмы будут применены в задаче обучения искусственной нейронной сети в качестве метода оптимизации функции потерь. Также будет выполнено сравнение эффективности обучения нейронной сети при использовании различных методов отбора, скрещивания и мутации генетического алгоритма. Выполнив обучение нейронной сети, будет составлена сводная таблица по результатам, позволяющая оценить значение и влияние на результат каждого метода. Затем будет выполнено обучение идентичной нейронной сети с помощью градиентного спуска для сравнения результатов обучения нейронной сети с помощью генетического алгоритма с градиентным спуском в данной задаче.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной выпускной квалификационной работы были проведены исследования генетических алгоритмов и способов управления генетическими операциями. Исследование проводилось на примере реализации генетических алгоритмов в качестве метода оптимизации функции потерь в процессе обучения искусственной нейронной сети. Было выполнено 30 тестовых запусков, и каждому тесту соответствовала собственная комбинация методов отбора, скрещивания и мутации. Собрав информацию о различных генетических операциях, можно сделать выводы о скорости и эффективности того или иного метода. Для более объективного анализа результатов, полученных в ходе тестирования генетических алгоритмов, был выполнен запуск программы обучения с использованием аналогичного метода - градиентного спуска. В результате выполненной работы было доказано, что генетические алгоритмы - это конкурентноспособный инструмент для оптимизации функции потерь, по эффективности обучения искусственной нейронной сети не уступающий градиентному спуску, но проигрывающий в плане скорости обучения.
Применение генетического алгоритма в обучении нейронных сетей обосновывается его преимуществами по сравнению с другими оптимизационными методами:
• обширная область поиска,
• устойчивость к локальным оптимумам,
• имеется возможность распараллелить процесс,
• область применения шире, чем у аналогичных методов.
Полученные результаты обладают научной ценностью. Ценность заключается в перспективе дальнейших исследований в области генетических алгоритмов. Поставленные в работе научные и практические задачи выполнены полностью.


1. Панченко, Т. В. Генетические алгоритмы [Текст]: учебно­методическое пособие / под ред. Ю. Ю. Тарасевича. — Астрахань: Издательский дом «Астраханский университет», 2007. — 87 [3] с.
2. Тищенко Е. Н., Мушта Е. Е., Жилина Е. В. Анализ особенностей объективно-ориентированного программирования С++. Актуальные исследования. 2022. №50 (129). Ч.1. С. 60-62. URL: https://apni.ru/article/5180- analiz-osobennostej-obektno-orientirovannogo
3. Давыдов А.В., Жусупова А.К., Салыкова О.С. Сравнение различных языков программирования в машинном обучении. Международный научный журнал «ВЕСТНИК НАУКИ» №2 (59) Т.3.
4. openGA [Электронный ресурс] - URL: https://github.com/neal- nie/openGA/tree/master. (дата обращения: 24.03.2024).
5. GAlib. A C++ Library of Genetic Algorithm Components [Электронный ресурс] - URL: http://lancet.mit.edu/ga/. (дата обращения: 24.03.2024).
6. Welcome to openGA’s documentation! [Электронный ресурс] - URL: https://openga.readthedocs.io/en/latest/. (дата обращения: 24.03.2024).
7. Arash Mohammadi, Houshyar Asadi, Shady Mohamed, Kyle Nelson, Saeid Nahavandi. «openGA, a C++ Genetic Algorithm Library». 2017 IEEE International Conference on Systems, Man, and Cybernetics (SMC)
8. GAlib Documentation. [Электронный ресурс] - URL:
http://lancet.mit.edu/galib-2.4/. (дата обращения: 24.03.2024).
9. Бессонов, Д. В. С++ библиотека компонентов генетических алгоритмов. Молодой ученый. — 2014. — № 6 (65). — С. 73-77. — URL: https://moluch.ru/archive/65/10815/. (дата обращения: 24.03.2024).
10. EasyGA [Электронный ресурс] - URL:
https://github.com/danielwilczak101/EasyGA. (дата обращения: 24.03.2024).
11. DEAP EasyGA [Электронный ресурс] - URL: https://github.com/deap/deap. (дата обращения: 24.03.2024).
12. PyGAD - Python Genetic Algorithm! [Электронный ресурс] - URL: https://pygad.readthedocs.io/en/latest/index.html. (дата обращения: 24.03.2024).
13. EasyGA [Электронный ресурс] - URL:
https://github.com/danielwilczak101/EasyGA/wiki/Introduction. (дата
обращения: 24.03.2024).
14. Exploring EasyGA - Genetic algorithms in Python made easy? Let's find
out ... [Электронный ресурс] - URL:
https://www.youtube.com/watch?v=XYBhgCxPhUQ. (дата обращения:
24.03.2024).
15. DEAP documentation [Электронный ресурс] - URL: https://deap.readthedocs.io/en/master/ . (дата обращения: 24.03.2024)...26


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ