Разработка интеллектуальной системы обработки и анализа информации
ВВЕДЕНИЕ
Нейронные сети - одна из тенденций в развитии систем искусственного интеллекта. Идея этой концепции похожа на человеческую нервную систему, а именно способность учиться и исправлять ошибки. Главная особенность любой нейронной сети - это способность действовать на основе предыдущего опыта, делая меньше ошибок со временем.
Нейронная сеть имитирует не только активность, но и структуру нервной системы человека. Сеть состоит из большого количества отдельных вычисли- тельных элементов (нейронов). В большинстве случаев каждый нейрон отно- сится к определенному слою сети. Входные данные обрабатываются последо- вательно на всех уровнях. Различие между нейронными сетями и другими алго- ритмами машинного обучения заключается в подходе к обучению, но в основ- ном они могут решать схожие проблемы.
По мере роста популярности нейронных сетей и расширения их использо- вания ставятся новые задачи, которые эффективно решаются применением се- тей. В то же время возникает большое разнообразие нейронных се- тей(сверточные, рекуррентные), разнообразие в их структурных элементах, применяемых алгоритмах.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 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
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
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/, свободный.
Наша сеть будет состоять из четырех слоев Convolution2D с cлоем Max- Pooling2D после второй и четвертой свертки. После первого слоя объединения мы удваиваем количество ядер. Впоследствии выход второго слоя объединения сглаживается до 1D (слоем Flatten) и проходит через два полносвязных слоя. Активизация ReLU будет использоваться для всех слоев, кроме выходного пол- носвязного слоя, который будет использовать активацию softmax (для целей вероятностной классификации).
Чтобы улучшить(избежать переобучения) нашу модель, слой Dropout при- меняется после каждого слоя объединения и после первого слоя Dense. Это еще один момент, где Keras удобнее по сравнению с другими фреймворками: у него есть внутренний флаг, который автоматически включает или отключает отсев, в зависимости от того, используется ли в настоящее время модель для обучения или тестирования.