ВВЕДЕНИЕ 3
Актуальность дипломной работы 3
Цель и задачи дипломного проекта 4
Глава 1. Теоретические основы сверточных нейронных сетей 5
1.1. Изучение необходимых методов и элементов нейронных сетей 6
1.1.1. Оценочная функция 6
1.1.2. Функция потерь 8
1.1.3. Оптимизация: стохастический градиентный спуск 10
1.2. Разбор особенностей построения CNN и их преимуществ 13
1.2.1. Сверточный слой 15
1.2.2. Слой объединения 23
1.2.3. Техника исключения 25
1.2.4. Типовые шаблоны слоёв ConvNet 26
1.2.5. Принципы установки параметров 27
1.2.6. Метод адаптивного обучения по параметру скорость обучения 27
Глава 2. Подготовка инструментов для работы 29
2.1. Используемые программные средства и технологи 29
2.2. Подготовка программной среды разработки 31
Глава 3. Создание и обучение сверточной нейронной сети 32
Глава 4. Описание работы созданного на Django клиент-серверного
приложения 38
ЗАКЛЮЧЕНИЕ 44
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 46
ПРИЛОЖЕНИЯ
Нейронные сети - одна из тенденций в развитии систем искусственного
интеллекта. Идея этой концепции похожа на человеческую нервную систему, а
именно способность учиться и исправлять ошибки. Главная особенность любой
нейронной сети - это способность действовать на основе предыдущего опыта,
делая меньше ошибок со временем.
Нейронная сеть имитирует не только активность, но и структуру нервной
системы человека. Сеть состоит из большого количества отдельных вычислительных элементов (нейронов). В большинстве случаев каждый нейрон относится к определенному слою сети. Входные данные обрабатываются последовательно на всех уровнях. Различие между нейронными сетями и другими алгоритмами машинного обучения заключается в подходе к обучению, но в основном они могут решать схожие проблемы.
По мере роста популярности нейронных сетей и расширения их использования ставятся новые задачи, которые эффективно решаются применением сетей. В то же время возникает большое разнообразие нейронных сетей(сверточные, рекуррентные), разнообразие в их структурных элементах,
применяемых алгоритмах.
В данной работе будет решаться задача классификации изображении с
применением сверточной нейронной сети. Будут разобраны теоретические аспекты структуры сети, её слоёв, принципы их работы. В качестве практического примера будет реализовано клиент-серверное приложение, представляющее
собой интеллектуальную систему обработки и анализа информации, в основе
которой лежит сверточная нейронная сеть.
Актуальность дипломной работы.
Прогнозирование, принятие решений, распознавание образов, оптимизация
и анализ данных являются одними из основных приложений нейронных сетей.
Большинство крупных ИТ-компаний используют их, чтобы предоставлять более удобные и полезные услуги. Они используются в некоторых навигацион4
ных системах, алгоритмах промышленных роботов или беспилотных летательных аппаратов. Алгоритмы, основанные на нейронных сетях, также защищают
информационные системы от вредоносных атак и помогают выявлять незаконный интернет-контент. Например, Facebook использует нейронные сети для автоматического проставления тегов, Amazon для рекомендаций по продуктам,
Pinterest для персонализации домашних страниц пользователей и Instagram для
своей поисковой инфраструктуры.
Цель и задачи дипломного проекта.
Целью данной работы является разработать интеллектуальную систему на
базе сверточной нейронной сети, которая будет способна классифицировать загружаемые в графическом виде изображения на 10 классов и озвучивать результат. Разработать клиент-серверное приложение на языке Python с использованием фреймворка Django. В основе приложения будет лежать разработанная
с использованием библиотеки Keras нейронная сеть, способная классифицировать загружаемые изображения минимум на 10 классов.
Для выполнения поставленной цели необходимо решить следующие задачи:
1. Изучение теоретических основ машинного обучения, глубинного обучения.
2. Выбор и изучение инструментов для создания классифицирующей модели.
3. Создание и обучение сверточной нейронной сети.
4. Выбор и изучение инструментов для создания клиент-серверного приложения.
5. Проектирование модели приложения, описание модулей системы и проектирование ее интерфейса.
Машинное обучение – быстро развивающаяся область в компьютерных
науках. Оно имеет приложения практически во всех других областях и уже реализуется на коммерческой основе, потому что машинное обучение может решать проблемы, слишком сложные или трудоемкие для людей. В общих чертах,
машинное обучение использует различные модели для распознавания шаблонов в данных и для точного прогнозирования на основе наблюдаемых моделей.
Были рассмотрены глубокие нейронные сети, которые имеют несколько
скрытых слоев. Сверточные нейронные сети - это вариация простой нейронной
сети. Преимущество использования сверточной нейронной сети заключается в
том, она лучше справляется с задачами распознавания изображении и речи.
Особенными скрытыми слоями сверточной нейронной сети являются сверточный и слой объединения. Именно из-за этих слоев сверточные нейронные сети
предпочтительнее для распознавания изображении и речи. Именно к решению
задачи распознавания изображений сводилась данная дипломная работа.
Подводя итоги, можно сказать, что созданная интеллектуальная система
соответствует требованиям поставленной цели. Система классифицирует изображения на 10 заданных классов и выводит результат классификации слово –
метку с озвучиванием.
1. Хайкин, С., Нейронные сети: полный курс, 2-е изд., испр. : Пер. с англ./С. Хайкин - М. : ООО “И.Д. Вильямс”, 2006. - 1104 с.
2. James, G., An Introduction to Statistical Learning: with Applications in R (Springer Texts in Statistics)/ G. James, D. Witten, T. Hastie, R. Tibshira- ni, 2013. - 441 c.
3. Bishop, C. M. Neural networks for pattern recognition / C. M. Bishop - CLARENDON PRESS - Oxford, 1995. - 498 c.
4. Goodfellow, I., Deep Learning (Adaptive Computation and Machine Learning series)/ I. Goodfellow, Y. Bengio, A. Courville - The MIT Press (November 18, 2016). - 800 с.
5. Stanford CS class CS231n: Convolutional Neural Networks for Visual
Recognition notes [Электронный ресурс] - Режим доступа:
http://cs231n.github.io/ , свободный.
6. Keras Documentation [Электронный ресурс] - Режим доступа: https://keras.io/ , свободный.
7. TensorFlow Documentation [Электронный ресурс] - Режим доступа: https://www.tensorflow. org/, свободный.