ВВЕДЕНИЕ 5
ГЛАВА 1. КРАТКИЙ ОБЗОР ТЕОРЕТИЧЕСКИХ ОСНОВ 7
1.1. Понятие искусственных нейронных сетей 7
1.2. Виды нейронных сетей 14
1.2.1. Сеть Кохонена 14
1.2.2. Сети обратного распространения ошибки 14
1.2.3. Перцептрон 15
1.2.4. Сети Хопфилда и Хэмминга 15
1.3. Обучение нейронных сетей 17
1.4. Поиск и обзор существующих подобных решений 19
ГЛАВА 2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ 22
2.1. Постановка задачи 22
2.2. Требования к ПО 22
2.3. Процесс проектирования 24
2.3.1. Алгоритм работы пользователя с системой 24
2.3.2. Алгоритм генерации сетей 29
ГЛАВА 3. РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ 37
3.1. Модульная декомпозиция 37
3.1.1. Модуль задания параметров 37
3.1.2. Модуль предварительной подготовки 37
3.1.3. Модуль построения сети 38
3.1.4. Модуль генерации сетей 38
3.1.5. Модуль работы с сетями 39
3.2. Архитектура базы данных 39
3.3. Выбор средств разработки 39
3.4. Интерфейс программного комплекса 44
3.5. Тестирование программного комплекса 49
ЗАКЛЮЧЕНИЕ 50
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 52
ПРИЛОЖЕНИЕ
Формирование искусственного интеллекта как науки произошло в 1956 году[1]. Д. Маккарти, М. Минский, К. Шеннон и Н. Рочестер организовали двухмесячный семинар в Дартмуте для американских исследователей, занимающихся теорией автоматов, нейронными сетями, интеллектом. Хотя исследования в этой области уже активно велись, но именно на этом семинаре появились термин и отдельная наука - искусственный интеллект.
С тех пор постоянно велись исследования в этой области, разрабатывались новые алгоритмы обучения, новые топологии сетей. Технологии искусственного интеллекта все глубже проникали не только в науку, но и в повседневную жизнь. В качестве примера можно привести создание роботов-пылесосов, различных технологий распознавания речи (как распознавание из звуковой информации, так и считывание движения губ), ИИ противников в компьютерных играх (противники могут вести себя по-разному в зависимости от окружающей обстановки и стиля игры реального игрока) и т.д. Довольно часто технологии искусственных нейронных сетей используются как альтернатива или дополнение для статистических методов исследования в различных областях, таких как медицина, экономика, управление предприятиями и другие[2,3,4,5].
Однако, до сих пор проблемой остается подбор топологии и структуры сети для каждой конкретной задачи. Для данной задачи не существует четкого алгоритма, все решения принимаются только на основании проведения соответствующих опытов с теми или иными сетями. Исходя из каких-либо личных соображений исследователя, выбирается структура, сеть обучается, тестируется, и, исходя из полученных результатов, принимается решение либо о принятии выбранной топологии, либо об ее корректировке, либо о полном отказе от нее. Так как процесс обучения сети является довольно длительной процедурой, то процесс получения необходимой структуры сети, может отнять много времени у исследователя. Таким образом, встает вопрос об автоматизации подбора необходимой структуры[6].
Целью данной работы является разработка автоматизированного генератора искусственных нейронных сетей. Исходя из вышесказанного, актуальность данной работы очевидна. Объектом исследования является технологии искусственного интеллекта, а предметом - создание нейроимитатора. В рамках выполнения работы для достижения поставленной цели были сформулированы следующие задачи:
• краткий обзор теоретических основ:
о обзор литературы об искусственных нейронных сетях;
о понятие искусственных нейронных сетей;
о поиск и обзор существующих подобных решений;
• разработка алгоритма генерации сетей, с возможностью применения различных топологий;
• реализация разработанных алгоритмов в программном коде.
На сегодняшний день исследования в области искусственного интеллекта продолжают бурно развиваться. Несмотря на то, что данной проблемой занимаются уже более полувека, до создания полноценного интеллекта, который сумеет пройти тест Тьюринга, еще очень далеко.
Однако, уже существующие знания и наработки активно используются во многих областях, от исследования лингвистических особенностей языков и до создания роботов, который смогут торговать на фондовых биржах. При этом, время на создание нейронной сети, подходящей для конкретной задачи может быть достаточно велико, так как выбор архитектуры сети осуществляется методом проб и ошибок.
Также, на сегодняшний день практически нет разработок, позволяющих построить нейронную сеть, провести ее обучение и тестирование в автоматическом или, хотя бы, автоматизированном режиме.
Ввиду этого, разработка программного комплекса, представляющего такую возможность, является достаточно актуальной задачей. Такой комплекс позволит сократить время на создание сети, уменьшить вероятность ошибки (за счет уменьшения влияния человеческого фактора), предоставить несколько вариантов архитектуры сети, наиболее подходящих для конкретной задачи, что позволит исследователю, в случае сомнения в правильности полученных результатов, перепроверить их на другой подобной сети.
В результате выполнения выпускной квалификационной работы магистра был разработан алгоритм генерации семейства нейронных сетей на основании заданных диапазонов нейросетевых параметров. В основе алгоритма лежит клиент-серверный подход, позволяющие процессу генерации быть более интерактивным для пользователя, позволяя последнему отслеживать прогресс процесса генерации и затрачивать минимальное количество времени при обнаружении ошибки. На основании этого алгоритма был разработан и реализован программный комплекс, состоящий из нескольких модулей и позволяющий задать параметры для набора сетей, произвести предварительную подготовку параметров, запустить процесс генерации сетей, сохранить подходящие сети для возможности дальнейшей работы с ними. Также, для алгоритмов обучения и генерации была проведена оптимизация, в целях увеличения скорости работы генератора. Разработанный программный комплекс поддерживает генерацию и работу с несколькими нейропарадигмами.
Также было осуществлено выступление на международной научно-практической конференции «МНОГОЯДЕРНЫЕ ПРОЦЕССОРЫ, ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ, ПЛИС, СИСТЕМЫ ОБРАБОТКИ СИГНАЛОВ (МППОС- 2017)» и на IV Региональной конференции «Мой выбор - НАУКА!». с докладом по теме выпускной квалификационной работы магистра.
[Электронный ресурс] - http://rockefeller100.org/files/original/ab461efeeb9ca28fd3de943abdd30b00.pdf - Режим доступа: http://rockefeller100.org, свободный - Загл. с экрана.
2. Джонс М. Т. Программирование искусственного интеллекта в приложениях / Пер. с англ. Осипов А. И. — М.: ДМК Пресс, 2006. — 312 с.
3. Дасгупта Д. Искусственные иммунные системы и их применение / под ред. Д. Дасгупты; пер. с англ. под ред. А. А. Романюхи. — М.: ФИЗМАТЛИТ, 2006. — 344 с.
4. Ежов А. А., Шумский С. А. Нейрокомпьютинг и его применение в экономике и бизнесе: Учеб. пособие — М.: МИФИ, 1998. — 222 с.
5. Кофман А., Алуха Х. Хил. Введение в теорию нечётких множеств в управлении предприятиями — Минск: Вышейш. шк., 1992. — 222 с.
6. Шайдуров А.А., Харитонов А.А., Зацепин П.М., Шатохин А.С., Пиянзин А.И. Применение нечеткой логики в нейросетевом моделировании // Нейроинформатика и ее приложения XII Всероссийский семинар. Редакторы: А.Н.Горбань, Е.М.Миркес; Ответственный за выпуск: Г.М.Садовская. 2004. С. 173-174.
7. Мак-Каллок У. С., Питтс В. Логическое исчисление идей, относящихся к нервной активности // Автоматы / Под ред. К. Э. Шеннона и Дж. Маккарти. — М.: Изд-во иностр. лит., 1956. — С. 363—384.
8. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. = Neural Computing. Theory and Practice — М.: Мир, 1992. — 240 с
9. Mitchell, Tom M. Machine Learning. — WCB-McGraw-Hill, 1997
10. Круглов В. В., Дли М. И., Голунов Р. Ю. Нечёткая логика и искусственные нейронные сети. — М.: Физматлит, 2001. — 221с.
11. Kohonen, T. Self-Organizing Maps. Third extended edition — Berlin-Heidelberg, Germany, 2001
12. Д. Рутковская, М. Пилиньский, Л. Рутковский. Нейронные сети, генетические алгоритмы и нечёткие системы— М.: Горячая линия — Телеком, 2006. — 452 с.
13. Галушкин А. И. Синтез многослойных систем распознавания образов. — М.: «Энергия», 1974.
14. Розенблатт, Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга = Principles of Neurodynamic: Perceptrons and the Theory of Brain Mechanisms. — М.: Мир, 1965. — 480 с
15. Минский, М., Пейперт, С. Персептроны = Perceptrons. — М.: Мир, 1971. — 261 с
16. J. J. Hopfield, «Neural networks and physical systems with emergent collective computational abilities», Proceedings of National Academy of Sciences, vol. 79 no. 8 pp. 2554-2558, April 1982
17. Короткий С. Нейронные сети Хопфилда и Хэмминга [Электронный ресурс] -ftp://ftp.asu.ru/incoming//NT/doc/N4.pdf- Режим доступа: ftp://ftp.asu.ru/, свободный - Загл. с экрана.
18. Заенцев И. Нейронные сети: основные модели. Учебное пособие. Воронежский государственный университет, 1999.
19. Ясницкий Л.Н. Введение в искусственный интеллект. М.: Издательский центр «Академия», 2005. - 176с.
20. STATISTICA Automated Neural Networks Автоматизированные нейронные сети [Электронный ресурс] - http://statsoft.ru/products/STATISTICA_Neural_Networks/- Режим доступа: http://statsoft.ru/, свободный - Загл. с экрана.
21. Яхъяева Г.Э. Нечеткие множества и нейронные сети: учебное пособие. Москва, 2006. Сер. Основы информационных технологий
22. Шайдуров А.А. Нейроинформационные технологии: учебное пособие. - Барнаул: Изд- во Алт. ун-та, 2014. -138 с.
23. Липский В. Комбинаторика для программиста. — М.: Мир, 1988. — 213 с.
24. Стив Макконнелл. Совершенный код = Code complete. — СПб.: Питер, 2005. — С.
896.
25. Спецификации продукции Семейство процессоров Intel Xeon E7 v4 [Электронный ресурс] - http://ark.intel.com/ru/products/series/93797/Intel-Xeon-Processor-E7-v4-Family
- Режим доступа: http://intel.com, свободный - Загл. с экрана.
26. Спецификации продукции Процессоры Intel Core™ i7 7-го поколения [Электронный ресурс] - http://ark.intel.com/ru/products/series/95544/7th-Generation-Intel-Core-i7- Processors- Режим доступа: http://intel.com, свободный - Загл. с экрана.
27. Дистрибутивы Linux - Для сервера. [Электронный ресурс] -http://pingvinus.ru/distributions/type/server- Режим доступа: http://pingvinus.ru, свободный - Загл. с экрана.
28. Windows Server 2016 | Microsoft [Электронный ресурс] - https://www.microsoft.com/ru- ru/cloud-platform/windows-server- Режим доступа: https://www.microsoft.com, свободный - Загл. с экрана.
29. MySQL [Электронный ресурс] - https://www.mysql.com- Режим доступа: https://www.mysql.com/, свободный - Загл. с экрана.
30. BeginnersGuide - Python Wiki [Электронный ресурс] -https://wiki.python.org/moin/BeginnersGuide- Режим доступа: https://wiki.python.org, свободный - Загл. с экрана.
31. PHP: Возможности PHP - Manual [Электронный ресурс] -http://php.net/manual/ru/intro-whatcando.php- Режим доступа: http://php.net, свободный
- Загл. с экрана.
32. О Ruby - [Электронный ресурс] - https://www.ruby-lang.org/ru/about/- Режим доступа: https://www.ruby-lang.org/, свободный - Загл. с экрана.
33. Ruby vs PHP (64-bit Ubuntu quad core) | Computer Language Benchmarks Game [Электронный ресурс] -http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=yarv&lang2=php- Режим доступа: http://benchmarksgame.alioth.debian.org, свободный - Загл. с экрана.
34. PHP vs Python 3 (64-bit Ubuntu quad core) | Computer Language Benchmarks Game [Электронный ресурс] - http://benchmarksgame.alioth.debian.org/u64q/php.html- Режим доступа: http://benchmarksgame.alioth.debian.org, свободный - Загл. с экрана.
35. PHP: FANN - Manual [Электронный ресурс] - http://php.net/manual/ru/book.fann. php Режим доступа: http://php.net, свободный - Загл. с экрана.