Автор молодец, просто работа не нужна больше
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
Введение 3
Определение хода выполнения работы и выделение подзадач 4
1. Теоретические основы 6
1.1. Методы нахождения человеческих лиц на фотографии 6
1.1.1. Метод Виолы-Джонса 6
1.1.2. Метод Направленных Градиентов 10
1.2. Приведение изображения лица к единому стандарту. Аффинные преобразования 11
1.3. Нейронные сети 12
1.3.1. Понятие нейрона, нейронной сети 12
1.3.2. Функция активации 14
1.3.3. Понятие глубокой нейронной сети 14
1.3.4. Структура сверточной нейронной сети 15
1.3.5. Обучение сверточных нейронных сетей 19
1.3.8. Метод обратного распространения ошибки 25
1.3.9. Стохастический градиентный спуск 35
1.3.10. Регуляризация нейронной сети 37
2. Практическая часть 39
2.1. Выбор обучающих данных 39
2.2. Выбор программного обеспечения 40
2.3. Подготовка данных для обучения нейронной сети 42
2.4. Загрузка данных для обучения 44
2.5. Ошибки в задаче идентификации 46
2.6. Архитектура нейронной сети для извлечения bottleneck признаков 50
2.7. Реализация функции потерь на основе триплетов 52
2.8. Процесс обучения и тестирования и тестирования 53
2.9. Реализация обученной нейронной сети как функции в виде API на python 57
Заключение 58
Список литературы 59
Приложения 60
Введение
Существует множество задач, которые связаны с нахождением неявных характеристик у наблюдаемого объекта, на основании которых можно сделать некоторые выводы относительно его. В работе с изображениями одной из самых популярных считается задача идентификация человека по его фотографии, то есть выявление характеристик, с помощью которых, с определённой долей вероятности, можно будет сделать вывод о том, какому человеку принадлежит изображение на фотографии. Она возникает во многих сферах деятельности человека: от социальных сетей, где необходимо определить и отметить всех знакомых и друзей, кто изображен на фото, до обнаружения опасных субъектов в видеопотоке с камер уличного наблюдения и мест большого скопления людей. Ее суть заключается в том, чтобы, имея некоторую базу с именами людей и их изображениями, определить кто именно из базы является владельцем нового изображения или же такого человека вообще нет в базе.
...
Определение хода выполнения работы и выделение подзадач
Исходными данными, с которым придется работать программе: база с изображениями людей и новое поступающее на «вход» изображение, относительно которого необходимо сделать вывод о том, есть ли человек, который изображен на этой фотографии на изображениях из базы или нет и сообщить это, как результат работы программы. Если на фото не один человек,
выявить всех людей и вернуть уже список с опознанными и неопознанными лицами. На первый взгляд задача, которую необходимо решить напоминает задачу классификации, но не при условии постоянного пополнения/уменьшения изображений в базе. Это условие потребует постоянного переобучения нейронной сети из-за изменения количества классов. При постоянном использовании сервиса в работе некоторого ресурса или предприятия недопустимы такие частые отказы в его работе.
...
1.1.1. Метод Виолы-Джонса
Метод Виолы-Джонса позволяет находить лица на обрабатываемом изображении. Он был предложен в начале 2000-х годов Паулем Виолой и Майклом Джонсом. Алгоритм способен находить на изображении объекты разных классов, хотя основной целью его разработки было именно нахождение лиц. Он относится к методам машинного обучения, а значит перед применением
нуждается в тренировке. Сам процесс обучения проходит долго, однако находит лица обученный детектор очень быстро. К его плюсам можно отнести низкий процент ложных срабатываний и угол, под которым из изображения безошибочно извлекаются лица.
...
1.1.2. Метод Направленных Градиентов
Гистограмма направленных градиентов (англ. Histogram of Oriented Gradients, HOG) – это методика, используемая в компьютерном зрении и обработке изображений в целях распознавания объектов. Данный подход основан на подсчете направлений градиента яркости (интенсивности) в локальных областях изображения и базируется на том факте, что распределение градиентов яркости на каком-либо участке изображения дает представление о внешнем виде и форме объекта, расположенного на этом участке (даже без учета точного расположения этих направлений). Суть метода состоит в том, что изображение плотной равномерной сеткой разбивается на области, для каждой из которых строится локальная гистограмма направлений градиентов яркости. Для обеспечения инвариантности по отношению к освещению гистограммы подвергаются нормализации по контрасту с мерой яркости, вычисленной по большему фрагменту.
...
1.3.1. Понятие нейрона, нейронной сети
Желание человека воспроизвести работу нейронов головного мозга привело к созданию искусственных нейронных сетей. Принцип, лежащий в их основе – это умение обучаться на ошибках и в дальнейшем их не допускать. Архитектурное строение искусственных нейронных сетей отдаленно напоминает строение их биологических прототипов – нейронов головного мозга. Впервые в 1943 году У. Маккалок и У.Питтс в статье [3] предложили модель искусственного нейрона. Его модель представлена на Рис.4:
Рис 4 – Изображение искусственного нейрона, который имеет несколько входов, ядро обработки информации и один выход.
Искусственный нейрон получает входные сигналы через несколько входных каналов. Каждый входной сигнал проходит через соединение, имеющее определенный вес. Вычисляется взвешенная сумма входов и ее смещение. В результате получается величина активации нейрона.
...
1.3.3. Понятие глубокой нейронной сети
Глубокая сеть прямого распространения, называемая так же многослойный персептрон, является типичным примером модели глубокого обучения. Глубокое обучение – это набор алгоритмов машинного обучения для моделирования высокоуровневых абстракций, применяя архитектуры, включающие многочисленные нелинейные преобразования. Многослойный персептрон используется для аппроксимации некоторой функции 𝑓∗. Он определяет некоторое отображение 𝑦 = 𝑓(𝑥, 𝜃) и в ходе обучения находит такое значение 𝜃, которое дает наилучшую аппроксимацию. Эти выводы являются следствием теоремы Колмогорова-Арнольда. С учетом введенных определений, можно выразить вывод из теоремы следующим образом: непрерывную функцию нескольких переменных можно аппроксимировать с любой точностью 𝜀 > 0 c
помощью двухслойного персептрона с достаточным количеством нейронов в скрытом слое и их нелинейной активационной функцией.
...
1.3.4. Структура сверточной нейронной сети
Основной причиной успеха сверточных нейронных сетей стала концепция общих весов. Несмотря на большой размер, эти сети имеют небольшое количество настраиваемых параметров по сравнению с их предком – многослойным персептроном.
Сверточная нейронная сеть строится из слоев, имеющих следующий вид: сверточные (convolutional) слои, субдискретизирующие (subsampling, подвыборка) слои. На выходе сети обычно используется персептрон. Стоит заметить, что в современных архитектурах сверточных сетей отказались от
использования полносвязных слоев, так как у них есть неприятное свойство – огромное количество связей между нейронами, что увеличивает вычислительную сложность. Сверточные и субдискретизирующие слои чередуясь между собой, формируют входной вектор признаков для многослойного персептрона или другого выходного слоя сети.
В пояснении нуждается определение свертки. Для того чтобы его дать необходимо ввести понятие ядра свертки.
...
1.3.5. Обучение сверточных нейронных сетей
После доказательства применимости нейронных сетей к поставленной задачи необходимо пояснить каким образом нейронная сеть будет осуществлять аппроксимацию искомой функции и учиться выдавать нам желаемый результат. В самом начале, при описании искусственной нейронной сети, было определено требование, как способность обучаться на ошибках. Так же была обозначена
функция 𝑓(𝑥, 𝜃), с помощью которой и будет осуществляться аппроксимация к неизвестной функции 𝑓, которая описывает существующие зависимости. Таким образом задача сводится к корректировке параметра 𝜃 на основании ошибок, которые нейронная сеть допускает при обучении. Обучением нейронной сети называют процесс обработки нейронной сетью различных помеченных объектов и корректировка внутренних параметров сети таким образом, чтобы выдаваемое ей значение совпадало с меткой объекта. Рассмотрим подробнее, как происходит процесс обучения.
...
1.3.8. Метод обратного распространения ошибки
Для корректировки весовых коэффициентов в ходе обучения сверточных сетей используется алгоритм обратного распространения ошибки (backpropagation). Этот метод обучения многослойной нейронной сети называется обобщенным дельта-правилом, является первым и основным практически применимым для обучения многослойных нейронных сетей. Веса скрытых нейронов должны изменяться прямо пропорционально ошибке тех нейронов, с которыми данные нейроны имеют связи. Вот почему обратное распространение этих ошибок через сеть позволяет корректно настраивать веса связей между всеми слоями. В этом случае величина функции ошибки уменьшается и сеть обучается.
Рассмотрим теоретическое описание метода, а затем покажем, как будет рассчитываться ошибка для функции активации Softmax и функции потерь Triplet Loss.
...
1.3.9. Стохастический градиентный спуск
Градиентный спуск – это процесс нахождения локальных экстремумов функции с помощью движения вдоль градиента. Градиент — это вектор который определяет угол наклона гиперплоскости и указывает его направление относительно какой-либо из точек, которые принадлежат этой гиперплоскости. Градиент вычисляется как производная функции в точке, относительно которой ведется исследование. Двигаясь по направлению этого градиента, мы будем плавно скатываться к экстремуму функции. Начальной точкой принято считать ошибку, полученную при некоторой начальной инициализации весовых коэффициентов нейронной сети. По мере обучения мы корректируем все обучаемые структурные элементы нейронной сети с помощью градиентов, которые мы вычислили при обратном распространении ошибки.
...
1) D. G. Lowe. Distinctive image features from scale-invariant keypoints. IJCV, 60(2):91-110, 2004.
2) Vahdat Kazemi and Josephine Sullivan. One millisecond face alignment with an ensemble of regression trees. In Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, pages 1867–1874. IEEE, 2014.
3) Bull. Math. Biophys. – 1943. – v.5. – pp.115–133. Русский перевод • первоначальная публикация: Мак-Каллок У.С., Питтс В. Логическое исчисление идей, относящихся к нервной активности
4) Горбань А. Н. Обучение нейронных сетей. – М. : ПараГраф, 1990.
5) F. Schroff, D. Kalenichenko, and J. Philbin, “Facenet: A unified embedding for face recognition and clustering,” in CVPR, 2015.
6) S. Sankaranarayanan, A. Alavi, C. D. Castillo, and R. Chel-lappa. Triplet probabilistic embedding for face verificationand clustering. In Biometrics Theory, Applications and Sys-tems (BTAS), 2016 IEEE 8th International Conference on,pages 1–8. IEEE, 2016.
7) Q. Cao, L. Shen, W. Xie, O. M. Parkhi, and A. Zisserman. Vggface2: A dataset for recognising faces across pose and age. arXiv preprint arXiv:1710.08092, 2017.
8) Ян Гудфеллоу. Глубокое обучение / Ян Гудфеллоу, Аарон Курвилль, Иошуа Бенджио. – М.: ДМК Пресс, 2017. – С. 21-314.
9) Антонио Джулли. Библиотека Keras – инструмент глубокого обучения/ Антонио Джулли, Суджит Пол. – М.: ДМК Пресс, 2017. – С. 20-290
10) Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke. Inception- v4, Inception-ResNet and the Impact of Residual Connections on Learning
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
Введение 3
Определение хода выполнения работы и выделение подзадач 4
1. Теоретические основы 6
1.1. Методы нахождения человеческих лиц на фотографии 6
1.1.1. Метод Виолы-Джонса 6
1.1.2. Метод Направленных Градиентов 10
1.2. Приведение изображения лица к единому стандарту. Аффинные преобразования 11
1.3. Нейронные сети 12
1.3.1. Понятие нейрона, нейронной сети 12
1.3.2. Функция активации 14
1.3.3. Понятие глубокой нейронной сети 14
1.3.4. Структура сверточной нейронной сети 15
1.3.5. Обучение сверточных нейронных сетей 19
1.3.8. Метод обратного распространения ошибки 25
1.3.9. Стохастический градиентный спуск 35
1.3.10. Регуляризация нейронной сети 37
2. Практическая часть 39
2.1. Выбор обучающих данных 39
2.2. Выбор программного обеспечения 40
2.3. Подготовка данных для обучения нейронной сети 42
2.4. Загрузка данных для обучения 44
2.5. Ошибки в задаче идентификации 46
2.6. Архитектура нейронной сети для извлечения bottleneck признаков 50
2.7. Реализация функции потерь на основе триплетов 52
2.8. Процесс обучения и тестирования и тестирования 53
2.9. Реализация обученной нейронной сети как функции в виде API на python 57
Заключение 58
Список литературы 59
Приложения 60
Введение
Существует множество задач, которые связаны с нахождением неявных характеристик у наблюдаемого объекта, на основании которых можно сделать некоторые выводы относительно его. В работе с изображениями одной из самых популярных считается задача идентификация человека по его фотографии, то есть выявление характеристик, с помощью которых, с определённой долей вероятности, можно будет сделать вывод о том, какому человеку принадлежит изображение на фотографии. Она возникает во многих сферах деятельности человека: от социальных сетей, где необходимо определить и отметить всех знакомых и друзей, кто изображен на фото, до обнаружения опасных субъектов в видеопотоке с камер уличного наблюдения и мест большого скопления людей. Ее суть заключается в том, чтобы, имея некоторую базу с именами людей и их изображениями, определить кто именно из базы является владельцем нового изображения или же такого человека вообще нет в базе.
...
Определение хода выполнения работы и выделение подзадач
Исходными данными, с которым придется работать программе: база с изображениями людей и новое поступающее на «вход» изображение, относительно которого необходимо сделать вывод о том, есть ли человек, который изображен на этой фотографии на изображениях из базы или нет и сообщить это, как результат работы программы. Если на фото не один человек,
выявить всех людей и вернуть уже список с опознанными и неопознанными лицами. На первый взгляд задача, которую необходимо решить напоминает задачу классификации, но не при условии постоянного пополнения/уменьшения изображений в базе. Это условие потребует постоянного переобучения нейронной сети из-за изменения количества классов. При постоянном использовании сервиса в работе некоторого ресурса или предприятия недопустимы такие частые отказы в его работе.
...
1.1.1. Метод Виолы-Джонса
Метод Виолы-Джонса позволяет находить лица на обрабатываемом изображении. Он был предложен в начале 2000-х годов Паулем Виолой и Майклом Джонсом. Алгоритм способен находить на изображении объекты разных классов, хотя основной целью его разработки было именно нахождение лиц. Он относится к методам машинного обучения, а значит перед применением
нуждается в тренировке. Сам процесс обучения проходит долго, однако находит лица обученный детектор очень быстро. К его плюсам можно отнести низкий процент ложных срабатываний и угол, под которым из изображения безошибочно извлекаются лица.
...
1.1.2. Метод Направленных Градиентов
Гистограмма направленных градиентов (англ. Histogram of Oriented Gradients, HOG) – это методика, используемая в компьютерном зрении и обработке изображений в целях распознавания объектов. Данный подход основан на подсчете направлений градиента яркости (интенсивности) в локальных областях изображения и базируется на том факте, что распределение градиентов яркости на каком-либо участке изображения дает представление о внешнем виде и форме объекта, расположенного на этом участке (даже без учета точного расположения этих направлений). Суть метода состоит в том, что изображение плотной равномерной сеткой разбивается на области, для каждой из которых строится локальная гистограмма направлений градиентов яркости. Для обеспечения инвариантности по отношению к освещению гистограммы подвергаются нормализации по контрасту с мерой яркости, вычисленной по большему фрагменту.
...
1.3.1. Понятие нейрона, нейронной сети
Желание человека воспроизвести работу нейронов головного мозга привело к созданию искусственных нейронных сетей. Принцип, лежащий в их основе – это умение обучаться на ошибках и в дальнейшем их не допускать. Архитектурное строение искусственных нейронных сетей отдаленно напоминает строение их биологических прототипов – нейронов головного мозга. Впервые в 1943 году У. Маккалок и У.Питтс в статье [3] предложили модель искусственного нейрона. Его модель представлена на Рис.4:
Рис 4 – Изображение искусственного нейрона, который имеет несколько входов, ядро обработки информации и один выход.
Искусственный нейрон получает входные сигналы через несколько входных каналов. Каждый входной сигнал проходит через соединение, имеющее определенный вес. Вычисляется взвешенная сумма входов и ее смещение. В результате получается величина активации нейрона.
...
1.3.3. Понятие глубокой нейронной сети
Глубокая сеть прямого распространения, называемая так же многослойный персептрон, является типичным примером модели глубокого обучения. Глубокое обучение – это набор алгоритмов машинного обучения для моделирования высокоуровневых абстракций, применяя архитектуры, включающие многочисленные нелинейные преобразования. Многослойный персептрон используется для аппроксимации некоторой функции 𝑓∗. Он определяет некоторое отображение 𝑦 = 𝑓(𝑥, 𝜃) и в ходе обучения находит такое значение 𝜃, которое дает наилучшую аппроксимацию. Эти выводы являются следствием теоремы Колмогорова-Арнольда. С учетом введенных определений, можно выразить вывод из теоремы следующим образом: непрерывную функцию нескольких переменных можно аппроксимировать с любой точностью 𝜀 > 0 c
помощью двухслойного персептрона с достаточным количеством нейронов в скрытом слое и их нелинейной активационной функцией.
...
1.3.4. Структура сверточной нейронной сети
Основной причиной успеха сверточных нейронных сетей стала концепция общих весов. Несмотря на большой размер, эти сети имеют небольшое количество настраиваемых параметров по сравнению с их предком – многослойным персептроном.
Сверточная нейронная сеть строится из слоев, имеющих следующий вид: сверточные (convolutional) слои, субдискретизирующие (subsampling, подвыборка) слои. На выходе сети обычно используется персептрон. Стоит заметить, что в современных архитектурах сверточных сетей отказались от
использования полносвязных слоев, так как у них есть неприятное свойство – огромное количество связей между нейронами, что увеличивает вычислительную сложность. Сверточные и субдискретизирующие слои чередуясь между собой, формируют входной вектор признаков для многослойного персептрона или другого выходного слоя сети.
В пояснении нуждается определение свертки. Для того чтобы его дать необходимо ввести понятие ядра свертки.
...
1.3.5. Обучение сверточных нейронных сетей
После доказательства применимости нейронных сетей к поставленной задачи необходимо пояснить каким образом нейронная сеть будет осуществлять аппроксимацию искомой функции и учиться выдавать нам желаемый результат. В самом начале, при описании искусственной нейронной сети, было определено требование, как способность обучаться на ошибках. Так же была обозначена
функция 𝑓(𝑥, 𝜃), с помощью которой и будет осуществляться аппроксимация к неизвестной функции 𝑓, которая описывает существующие зависимости. Таким образом задача сводится к корректировке параметра 𝜃 на основании ошибок, которые нейронная сеть допускает при обучении. Обучением нейронной сети называют процесс обработки нейронной сетью различных помеченных объектов и корректировка внутренних параметров сети таким образом, чтобы выдаваемое ей значение совпадало с меткой объекта. Рассмотрим подробнее, как происходит процесс обучения.
...
1.3.8. Метод обратного распространения ошибки
Для корректировки весовых коэффициентов в ходе обучения сверточных сетей используется алгоритм обратного распространения ошибки (backpropagation). Этот метод обучения многослойной нейронной сети называется обобщенным дельта-правилом, является первым и основным практически применимым для обучения многослойных нейронных сетей. Веса скрытых нейронов должны изменяться прямо пропорционально ошибке тех нейронов, с которыми данные нейроны имеют связи. Вот почему обратное распространение этих ошибок через сеть позволяет корректно настраивать веса связей между всеми слоями. В этом случае величина функции ошибки уменьшается и сеть обучается.
Рассмотрим теоретическое описание метода, а затем покажем, как будет рассчитываться ошибка для функции активации Softmax и функции потерь Triplet Loss.
...
1.3.9. Стохастический градиентный спуск
Градиентный спуск – это процесс нахождения локальных экстремумов функции с помощью движения вдоль градиента. Градиент — это вектор который определяет угол наклона гиперплоскости и указывает его направление относительно какой-либо из точек, которые принадлежат этой гиперплоскости. Градиент вычисляется как производная функции в точке, относительно которой ведется исследование. Двигаясь по направлению этого градиента, мы будем плавно скатываться к экстремуму функции. Начальной точкой принято считать ошибку, полученную при некоторой начальной инициализации весовых коэффициентов нейронной сети. По мере обучения мы корректируем все обучаемые структурные элементы нейронной сети с помощью градиентов, которые мы вычислили при обратном распространении ошибки.
...
1) D. G. Lowe. Distinctive image features from scale-invariant keypoints. IJCV, 60(2):91-110, 2004.
2) Vahdat Kazemi and Josephine Sullivan. One millisecond face alignment with an ensemble of regression trees. In Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, pages 1867–1874. IEEE, 2014.
3) Bull. Math. Biophys. – 1943. – v.5. – pp.115–133. Русский перевод • первоначальная публикация: Мак-Каллок У.С., Питтс В. Логическое исчисление идей, относящихся к нервной активности
4) Горбань А. Н. Обучение нейронных сетей. – М. : ПараГраф, 1990.
5) F. Schroff, D. Kalenichenko, and J. Philbin, “Facenet: A unified embedding for face recognition and clustering,” in CVPR, 2015.
6) S. Sankaranarayanan, A. Alavi, C. D. Castillo, and R. Chel-lappa. Triplet probabilistic embedding for face verificationand clustering. In Biometrics Theory, Applications and Sys-tems (BTAS), 2016 IEEE 8th International Conference on,pages 1–8. IEEE, 2016.
7) Q. Cao, L. Shen, W. Xie, O. M. Parkhi, and A. Zisserman. Vggface2: A dataset for recognising faces across pose and age. arXiv preprint arXiv:1710.08092, 2017.
8) Ян Гудфеллоу. Глубокое обучение / Ян Гудфеллоу, Аарон Курвилль, Иошуа Бенджио. – М.: ДМК Пресс, 2017. – С. 21-314.
9) Антонио Джулли. Библиотека Keras – инструмент глубокого обучения/ Антонио Джулли, Суджит Пол. – М.: ДМК Пресс, 2017. – С. 20-290
10) Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke. Inception- v4, Inception-ResNet and the Impact of Residual Connections on Learning
Купить эту работу vs Заказать новую | ||
---|---|---|
7 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
900 ₽ | Цена | от 3000 ₽ |
Не подошла эта работа?
В нашей базе 55693 Дипломной работы — поможем найти подходящую