Автор молодец, просто работа не нужна больше
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
ВВЕДЕНИЕ 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
ПРИЛОЖЕНИЯ 47
ВВЕДЕНИЕ
Нейронные сети - одна из тенденций в развитии систем искусственного интеллекта. Идея этой концепции похожа на человеческую нервную систему, а именно способность учиться и исправлять ошибки. Главная особенность любой нейронной сети - это способность действовать на основе предыдущего опыта, делая меньше ошибок со временем.
Нейронная сеть имитирует не только активность, но и структуру нервной системы человека. Сеть состоит из большого количества отдельных вычисли- тельных элементов (нейронов). В большинстве случаев каждый нейрон отно- сится к определенному слою сети. Входные данные обрабатываются последо- вательно на всех уровнях. Различие между нейронными сетями и другими алго- ритмами машинного обучения заключается в подходе к обучению, но в основ- ном они могут решать схожие проблемы.
По мере роста популярности нейронных сетей и расширения их использо- вания ставятся новые задачи, которые эффективно решаются применением се- тей.
...
Цель и задачи дипломного проекта.
Целью данной работы является разработать интеллектуальную систему на базе сверточной нейронной сети, которая будет способна классифицировать загружаемые в графическом виде изображения на 10 классов и озвучивать результат. Разработать клиент-серверное приложение на языке Python с использованием фреймворка Django. В основе приложения будет лежать разработанная с использованием библиотеки Keras нейронная сеть, способная классифицировать загружаемые изображения минимум на 10 классов.
Для выполнения поставленной цели необходимо решить следующие зада-
чи:
1. Изучение теоретических основ машинного обучения, глубинного обучения.
2. Выбор и изучение инструментов для создания классифицирующей модели.
3. Создание и обучение сверточной нейронной сети.
4. Выбор и изучение инструментов для создания клиент-серверного приложения.
5. Проектирование модели приложения, описание модулей системы и проектирование ее интерфейса.
6.
...
1.1.1. Оценочная функция
Первым компонентом этого подхода является определение оценочной функции, которая отображает значения пикселей изображения в оценки для каждого класса. Рассмотрим экземпляры из обучающей выборки: 𝒙𝒊 ∈ 𝑹𝑫, каж- дый из которых имеет метку 𝒚𝒊 . Здесь i = 1 ... N и 𝒚𝒊 ∈1 …K. То есть, мы имеем N экземпляров (каждый размерностью D) и K различных категорий. Например, в CIFAR-10 есть обучающий набор из N = 50 тыс. изображений, каждый с D = 32x32x32 = 3072 пикселя, и K = 10, так как данный набор содержит 10 различ- ных классов (собака, кошка, автомобиль и т. д.). Теперь мы определим оценоч-
ную функцию 𝒇: 𝑹𝑫 → 𝑹𝑲, которая отображает пиксели изображений в оценки классов.
𝒇(𝒙𝒊, 𝑾, 𝒃) = 𝑾𝒙𝒊 + 𝒃
Параметры в W часто называют весами, а b называется вектором смеще- ния, поскольку он влияет на выходные оценки, но не взаимодействует с дан- ными 𝒙𝒊.
...
1.1.2. Функция потерь
Чтобы измерить величину «некорректности» оценок для некоторого клас- са, используется функция потерь (или функция стоимости). Величина потери будет большой - если наш классификатор работает плохо, будет малой - если классификатор работает хорошо.
SVM(Support Vector Machine) является одним из двух широко известных классификаторов. Другим популярным классификатором является Softmax, ко- торый имеет другую функцию потерь. Мы рассмотрим Softmax.
Классификатор Softmax является обобщением бинарного классификатора логистической регрессии на несколько классов. В отличие от SVM, выходы
𝒇(𝒙𝒊, 𝑾) которого - оценки для каждого класса (некалиброванные и трудно ин- терпретируемые), классификатор Softmax дает более интуитивный выход (ве- роятности класса).
...
1.1.3. Оптимизация: стохастический градиентный спуск
Итак, наша задача подобрать такую матрицу W, при которой значение функции потерь будет минимальным.
Существует множество способов нахождения минимума этой функции. Например, можно назначать весам произвольные случайные числа и выбирать тот набор параметров, на которых значение функции потерь меньше.
Но оказывается, более эффективным способом поиска является способ свя- занный с вычислением градиента функции потерь.
Вычисления градиента аналитически позволяет получить прямую формулу для градиента (без приближений), которая также очень быстро вычисляется. Однако, в отличие от численного градиента, он больше подвержен ошибкам при вычислениях, поэтому на практике очень часто приходится вычислять ана- литический градиент и сравнивать его с численным градиентом, чтобы прове- рить правильность реализации. Это называется градиентной проверкой(gradient check).
...
1.2. Разбор особенностей построения CNN и их преимуществ Сверточные нейронные сети(Convolutional Neural Networks/CNNs / Con-
vNets) очень похожи на обычные нейронные сети: они также состоят из нейро- нов, которые имеют обучающиеся веса и смещения. Каждый нейрон имеет не- которое входное значение, выполняет скалярное произведение и, возможно, применяет нелинейность. Вся сеть по-прежнему выражает одну дифференциру- емую оценочную функцию(score function): от пикселей исходного изображения на одном конце до оценки класса на другом. И у них также есть функция потерь (например, SVM/Softmax) на последнем (полносвязном) слое, и все особенно- сти/трюки, связанные с обучением обычных Neural Networks.
Архитектура ConvNet делает явное предположение, что входы представ- ляют собой изображения, что позволяет нам вносить некоторые особенности в архитектуру. Эти особенности делают forward function более эффективной для реализации и значительно уменьшают количество параметров в сети.
...
1.2.4. Типовые шаблоны слоёв ConvNet
Мы увидели, что сверточные сети обычно состоят только из трех типов слоев: CONV, POOL и FC (сокр. для полносвязного слоя). Мы будем писать RELU, для обозначения слоя активации, который поэлементно применяет не- линейность. В этом разделе мы обсудим, как элементы должны быть сложены вместе для формирования целых ConvNets.
Наиболее распространенная форма архитектуры ConvNet складывается из нескольких слоев CONV-RELU, за которыми следует слой POOL и всё это по- вторяется до тех пор, пока изображение не будет приведено пространственно к небольшим размерам. Последний полносвязный слой содержит выходные дан- ные - оценки классов. Наиболее распространенная архитектура ConvNet следу- ет шаблону:
INPUT -> [[CONV ->RELU] * N ->POOL?] * M -> [FC -> RELU] * K ->FC
Где * указывает на повторение, и POOL? указывает опциональный слой объединения. N >= 0 (и обычно N <= 3), M >= 0, K >= 0 (и обычно K < 3).
...
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/, свободный.
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
ВВЕДЕНИЕ 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
ПРИЛОЖЕНИЯ 47
ВВЕДЕНИЕ
Нейронные сети - одна из тенденций в развитии систем искусственного интеллекта. Идея этой концепции похожа на человеческую нервную систему, а именно способность учиться и исправлять ошибки. Главная особенность любой нейронной сети - это способность действовать на основе предыдущего опыта, делая меньше ошибок со временем.
Нейронная сеть имитирует не только активность, но и структуру нервной системы человека. Сеть состоит из большого количества отдельных вычисли- тельных элементов (нейронов). В большинстве случаев каждый нейрон отно- сится к определенному слою сети. Входные данные обрабатываются последо- вательно на всех уровнях. Различие между нейронными сетями и другими алго- ритмами машинного обучения заключается в подходе к обучению, но в основ- ном они могут решать схожие проблемы.
По мере роста популярности нейронных сетей и расширения их использо- вания ставятся новые задачи, которые эффективно решаются применением се- тей.
...
Цель и задачи дипломного проекта.
Целью данной работы является разработать интеллектуальную систему на базе сверточной нейронной сети, которая будет способна классифицировать загружаемые в графическом виде изображения на 10 классов и озвучивать результат. Разработать клиент-серверное приложение на языке Python с использованием фреймворка Django. В основе приложения будет лежать разработанная с использованием библиотеки Keras нейронная сеть, способная классифицировать загружаемые изображения минимум на 10 классов.
Для выполнения поставленной цели необходимо решить следующие зада-
чи:
1. Изучение теоретических основ машинного обучения, глубинного обучения.
2. Выбор и изучение инструментов для создания классифицирующей модели.
3. Создание и обучение сверточной нейронной сети.
4. Выбор и изучение инструментов для создания клиент-серверного приложения.
5. Проектирование модели приложения, описание модулей системы и проектирование ее интерфейса.
6.
...
1.1.1. Оценочная функция
Первым компонентом этого подхода является определение оценочной функции, которая отображает значения пикселей изображения в оценки для каждого класса. Рассмотрим экземпляры из обучающей выборки: 𝒙𝒊 ∈ 𝑹𝑫, каж- дый из которых имеет метку 𝒚𝒊 . Здесь i = 1 ... N и 𝒚𝒊 ∈1 …K. То есть, мы имеем N экземпляров (каждый размерностью D) и K различных категорий. Например, в CIFAR-10 есть обучающий набор из N = 50 тыс. изображений, каждый с D = 32x32x32 = 3072 пикселя, и K = 10, так как данный набор содержит 10 различ- ных классов (собака, кошка, автомобиль и т. д.). Теперь мы определим оценоч-
ную функцию 𝒇: 𝑹𝑫 → 𝑹𝑲, которая отображает пиксели изображений в оценки классов.
𝒇(𝒙𝒊, 𝑾, 𝒃) = 𝑾𝒙𝒊 + 𝒃
Параметры в W часто называют весами, а b называется вектором смеще- ния, поскольку он влияет на выходные оценки, но не взаимодействует с дан- ными 𝒙𝒊.
...
1.1.2. Функция потерь
Чтобы измерить величину «некорректности» оценок для некоторого клас- са, используется функция потерь (или функция стоимости). Величина потери будет большой - если наш классификатор работает плохо, будет малой - если классификатор работает хорошо.
SVM(Support Vector Machine) является одним из двух широко известных классификаторов. Другим популярным классификатором является Softmax, ко- торый имеет другую функцию потерь. Мы рассмотрим Softmax.
Классификатор Softmax является обобщением бинарного классификатора логистической регрессии на несколько классов. В отличие от SVM, выходы
𝒇(𝒙𝒊, 𝑾) которого - оценки для каждого класса (некалиброванные и трудно ин- терпретируемые), классификатор Softmax дает более интуитивный выход (ве- роятности класса).
...
1.1.3. Оптимизация: стохастический градиентный спуск
Итак, наша задача подобрать такую матрицу W, при которой значение функции потерь будет минимальным.
Существует множество способов нахождения минимума этой функции. Например, можно назначать весам произвольные случайные числа и выбирать тот набор параметров, на которых значение функции потерь меньше.
Но оказывается, более эффективным способом поиска является способ свя- занный с вычислением градиента функции потерь.
Вычисления градиента аналитически позволяет получить прямую формулу для градиента (без приближений), которая также очень быстро вычисляется. Однако, в отличие от численного градиента, он больше подвержен ошибкам при вычислениях, поэтому на практике очень часто приходится вычислять ана- литический градиент и сравнивать его с численным градиентом, чтобы прове- рить правильность реализации. Это называется градиентной проверкой(gradient check).
...
1.2. Разбор особенностей построения CNN и их преимуществ Сверточные нейронные сети(Convolutional Neural Networks/CNNs / Con-
vNets) очень похожи на обычные нейронные сети: они также состоят из нейро- нов, которые имеют обучающиеся веса и смещения. Каждый нейрон имеет не- которое входное значение, выполняет скалярное произведение и, возможно, применяет нелинейность. Вся сеть по-прежнему выражает одну дифференциру- емую оценочную функцию(score function): от пикселей исходного изображения на одном конце до оценки класса на другом. И у них также есть функция потерь (например, SVM/Softmax) на последнем (полносвязном) слое, и все особенно- сти/трюки, связанные с обучением обычных Neural Networks.
Архитектура ConvNet делает явное предположение, что входы представ- ляют собой изображения, что позволяет нам вносить некоторые особенности в архитектуру. Эти особенности делают forward function более эффективной для реализации и значительно уменьшают количество параметров в сети.
...
1.2.4. Типовые шаблоны слоёв ConvNet
Мы увидели, что сверточные сети обычно состоят только из трех типов слоев: CONV, POOL и FC (сокр. для полносвязного слоя). Мы будем писать RELU, для обозначения слоя активации, который поэлементно применяет не- линейность. В этом разделе мы обсудим, как элементы должны быть сложены вместе для формирования целых ConvNets.
Наиболее распространенная форма архитектуры ConvNet складывается из нескольких слоев CONV-RELU, за которыми следует слой POOL и всё это по- вторяется до тех пор, пока изображение не будет приведено пространственно к небольшим размерам. Последний полносвязный слой содержит выходные дан- ные - оценки классов. Наиболее распространенная архитектура ConvNet следу- ет шаблону:
INPUT -> [[CONV ->RELU] * N ->POOL?] * M -> [FC -> RELU] * K ->FC
Где * указывает на повторение, и POOL? указывает опциональный слой объединения. N >= 0 (и обычно N <= 3), M >= 0, K >= 0 (и обычно K < 3).
...
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/, свободный.
Купить эту работу vs Заказать новую | ||
---|---|---|
2 раза | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
900 ₽ | Цена | от 3000 ₽ |
Не подошла эта работа?
В нашей базе 55690 Дипломных работ — поможем найти подходящую