Проблема классификации открытого мира в задаче классификации изображений карт лояльности

Исследование модели, основанной на использовании сверточных нейронных сетей. Выбор модели ResNet18 с финальной функцией активации Softmax и функцией потерь CrossEntropy. Особенность использования языка программирования Python и библиотеки PyTorch.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.12.2019
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Правительство Российской Федерации

Федеральное государственное автономное образовательное

учреждение высшего образования

«Национальный исследовательский университет

«Высшая школа экономики»

Факультет Санкт-Петербургская школа физико-математических и компьютерных наук

Основная образовательная программа

«Анализ больших данных в бизнесе, экономике и обществе»

Выпускная квалификационная работа

На тему: Проблема классификации открытого мира в задаче классификации изображений карт лояльности

Выполнил

Черкес Никита Викторович

Санкт-Петербург 2019

Оглавление

Введение

1. Теоретическая постановка задачи

1.1 Выбор базовой модели

1.2 Softmax Loss

1.3 Sigmoid Loss

1.4 Label Smoothing

1.5 Triplet Loss

1.6 L2-constrained Softmax Loss

2. Реализация

2.1 Структура данных

2.2 Используемые технологии

2.3 Метрики качества

3. Результаты

3.1 Softmax Loss

3.2 Sigmoid Loss

3.3 Softmax Loss + Label Smoothing

3.4 Sigmoid Loss + Label Smoothing

3.5 Triplet Loss

3.6 L2-constrained Softmax Loss

3.7 Ensemble of models: L2-constrained Softmax Loss + Sigmoid Loss

3.8 Ensemble of models: L2-constrained Softmax Loss + Triplet Loss

3.9 Общие результаты моделей

Выводы

Литература

Введение

Классические методы обучения с учителем делают предположение закрытого мира о том, что классы, представленные в тестовой выборке, должны так же быть представлены в обучающей выборке [6], [1], [12]. Однако, при работе с реальным миром, модель должна уметь отличать типы объектов, которые она видела раньше (на которых обучалась), от типов, которые она ранее не встречала. Такая парадигма обучения называется классификация открытого мира [9], [5], [7]. В последнее время становятся всё более популярными такие продукты машинного обучения, как умные помощники либо автомобили с автоматическим управлением [18], которые в реальном мире сталкиваются с проблемой определения неизвестных классов, поэтому необходимость классификации открытого мира становится всё более важной.

Например, с ростом числа продаваемых продуктов в интернет площадке Amazon, необходимо иметь модель классификации открытого мира, способную автоматически определять категорию товара, основываясь на некотором наборе категорий S. При этом, появившийся новый продукт, который не относится ни к одной из категорий набора S должен быть помечен как “не встречался” и остаться без категории. Либо, на примере приложения Vivino, нам необходимо по фотографии этикетки вина выдавать полное описание товара вместе с рейтингом пользователей. Для этого необходимо уметь классифицировать фото этикетки товара в нужную категорию, если модель раньше видела подобный класс. Либо отклонять фото, если пользователь по ошибке сфотографировал не товар, либо сфотографированный товар не относится к целевой категории (например, мы классифицируем этикетки вин, а пользователь по ошибке сфотографировал этикетку газировки).

В данной работе мы будем решать проблему открытого мира в задаче классификации изображений карт лояльности на примере компании Cardsmobile.

Необходимость выполнения данной задачи состоит в следующем: компания `CardsMobile' занимается оцифровкой карт лояльности по их изображению, что позволяет пользователям просто сфотографировать карту лояльности через приложение `Кошелёк' и та окажется у него в телефоне с распознанной фирмой, выдавшей карту, штрих кодом и номером карты. Однако помимо карт лояльности пользователи могут также фотографировать свои банковские карты, проездные в метро, визитки и прочие предметы, не относящиеся к картам лояльности. И чтобы не получить негативный пользовательский опыт, когда сфотографированный пользователем проездной в метро будет распознан как бонусная карта какой-нибудь торговой сети, необходимо отклонять все нецелевые фотографии.

Таким образом, цель данной работы - найти алгоритм классификации открытого мира в задаче классификации изображений карт лояльности.

Для решения данной задачи необходимо выполнить следующие пункты:

1. Рассмотреть какие существуют решения в задаче классификации открытого мира.

2. Собрать и описать данные на которых мы будем решать проблему открытого мира

3. Выбрать архитектуры моделей, которые подходят для решения данной задачи, обучить модели и проанализировать полученные результаты

4. Найти архитектуру модели, которая наилучшим образом подходит под решение данной задачи.

Постановка задачи:

Имеется обучающий набор данных:

,

где:

· - это изображение

· - метка класса.

Мы хотим построить модель f(x), которая будет классифицировать объект тестового набора x в один из m обучающих или “известных” классов в , либо отклонять его, что означает, что объект не принадлежит ни к одному из обучающих классов, то есть это “неизвестный” класс. Другими словами, мы хотим построить классификатор f(x) на (m + 1) класс со следующими метками классов:

,

Обзор литературы

Одним из первых подходов к открытой классификации был One-class SVM [15]. Данный метод вычислял центр для каждого класса и строил гиперсферу радиусом R на основе полученных признаков. Таким образом, всё, что лежало в пределах радиуса, относилось к классу, а всё, что лежало вне гиперсферы, определялось как неизвестный объект. Однако данный алгоритм был нацелен на поиск аномалий в данных, нежели на определение известных классов среди произвольного набора входных данных, поэтому он показал не лучшие результаты.

Множество решений задачи классификации открытого мира базируется на классических моделях обучения с учителем [4], [13], выставляя порог вероятности на выходящий слой (после активационных функций Softmax/Sigmoid). Таким образом будут отклоняться неизвестные классы, опираясь на утверждение, что для неизвестных классов модель будет менее уверена, и поэтому будет предсказывать меньшую вероятность. Такой подход имеет свои плюсы и минусы. С одной стороны его легко реализовать на основе общедоступных фреймворков, таких как Torch [17], или TensorFlow[2]. И в отличии от Triplet Loss [3] такой подход быстро сходится. Но, с другой стороны, он не учитывает негативные экземпляры неизвестных классов, и, повышая точность на известных классах, начинает больше ошибаться на неизвестных классах.

С другой стороны, в данной работе будет показано, что данную задачу можно решить алгоритмами идентификации лиц [3], [8], [11], так как данные алгоритмы также решают проблему открытого мира. Используя в качестве функции ошибки Triplet Loss, модель учится проецировать признаки объектов одного класса как можно ближе друг к другу по L2 норме, при этом увеличивая отступ от признаков других классов. Либо можно обучать модель используя Softmax Loss вместе со вспомогательной функцией потерь (Triplet/Center Loss) чтобы повысить способность модели отклонять экземпляры неизвестного класса [9], [12], [8].

1. Теоретическая постановка задачи

1.1 Выбор базовой модели

Так как мы работаем с классификацией изображений, оптимальной моделью для решения данной задачи является модель, основанная на использовании свёрточных нейронных сетей. Начиная с 2012 года они показывают лучшие результаты в задаче классификации изображений в соревновании ImageNet [1]. Для решения нашей задачи была выбрана модель ResNet-18 [20]. Архитектура данной модели была представлена в 2015 году и данная модель была одним из лидеров в соревновании ImageNet за 2015 год. Отличие данной архитектуры свёрточной сети заключается в наличии Residual блоков, которые позволяют уменьшить затухание градинетов, что в свою очередь позволяет строить более глубокие сети, а так же сходиться к минимуму быстрее.

Данная архитектура была выбрана по двум причинам:

1. Она демонстрирует хорошие результаты в соревновании ImageNet

2. Данная сеть довольно быстро обучается на GPU, что позволяет нам проверять больше гипотез и различных комбинаций гиперпараметров.

1.2 Softmax Loss

Первой архитектурой для решения данной задачи выбрана модель ResNet18 с финальной функцией активации Softmax и функцией потерь CrossEntropy. Данная архитектура является наиболее распространенной для решения классической задачи обучения с учителем в закрытом мире. Данной моделью мы бы хотели продемонстрировать какие результаты показывает классическая модель в задаче классификации открытого мира.

Предположим, что у нас имеется классов. Функция активации Softmax преобразует вектор таким образом, что его значения оказываются в диапазоне (0, 1), а сумма элементов будет равна 1. Когда мы используем функцию Softmax в нейронной сети для классификации, она применяется к выходному вектору значений S финального слоя. Так как каждое значение финального вектора значений представляет класс, то после применения функции Softmax мы можем интерпретировать получившиеся активации как вероятность принадлежности к тому или иному классу. Функция активации Softmax не может применяться независимо к каждому элементу вектора , так как её значение зависит от всех элементов S.

Для полученного выходного значения нейрона , функция Softmax будет посчитана следующим образом:

,

где:

· - значение нейрона, для которого считается активация Softmax;

· - значение сети для каждого класса из C;

·

Получив значения для каждого класса, мы можем посчитать значение функции ошибки следующим образом:

,

где:

· - значение нейрона, для которого считается активация Softmax;

· - истинное значение класса (0 либо 1)

·

И так как у нас задача классификации, все метки классов представлены в виде One Hot Encoding, поэтому только значение позитивного класса влияет на значение функции ошибок.

,

где:

· - значение сети для позитивного класса

· - значение сети для каждого класса из C;

Определив функцию потерь, мы можем посчитать градиенты относительно выходов нейросети, чтобы обновить параметры сети. Значение ошибки для нецелевых классов равно нулю, однако градиенты для нецелевых классов не обнуляются, так как в функции Softmax значение целевого класса зависит от значений нецелевых классов.

Следовательно, градиент для позитивного класса будет иметь следующий вид:

,

где:

· - производная ошибки относительно позитивного класса

· - значение сети для позитивного класса

· - значение сети для каждого класса из C;

И градиенты для негативных классов будут следующие:

,

где:

· - производная ошибки относительно негативного класса

· - значение сети для негативного класса

· - значение сети для каждого класса из C;

1.3 Sigmoid Loss

Sigmoid Loss называют объединение функции активации Sigmoid на выходе и Binary CrossEntropy Loss в качестве функции ошибок. Подобный выбор функции активации и функции потерь используют для решения задачи Multi-label Classification: задача, в которой каждый экземпляр данных может быть отнесен сразу к нескольким целевым меткам.

Функция Sigmoid применяется независимо к каждому выходу нейросети, поэтому активация одного нейрона не зависит от значений других выходных нейронов. Для каждого нейрона значение функции Sigmoid будет посчитано следующим образом:

,

где:

· - значение нейрона, для которого считается активация Sigmoid;

·

Так как мы используем функцию потерь Binary CrossEntropy Loss, мы будем решать C независимых задач бинарной классификации для каждого выхода нейросети. И затем просуммируем ошибку с каждой задачи.

Вычисление ошибки для позитивного класса будет выглядеть следующим образом:

,

где:

· - значение нейрона позитивного класса до активации;

·

Вычисление ошибки для негативного класса будет выглядеть следующим образом:

,

· - значение нейрона негативного класса до активации;

·

Так как значение функции активации не зависит от значений других выходных нейронов, то полученные градиенты для каждого значения Si в S будут зависеть только от значения функции потерь в бинарной задаче данного нейрона.

Следовательно, градиенты могут быть посчитаны следующим образом:

,

,

,

где:

· - производная ошибки относительно класса

· - значение выходного нейрона до активации

· - истинное значение класса (0 либо 1)

·

1.4 Label Smoothing

В данном случае процесс обучения сети будет таким же, как и в предыдущем пункте, однако будет добавлена регуляризация Label Smoothing, которая используется при обучении на шумных данных [18].

Когда в качестве функции потерь в задаче классификации мы используем CrossEntropy Loss, мы ожидаем, что позитивные классы будут представлены 1, а негативные 0. В таком случае модель модель может стать слишком уверенной в своём предсказании, что в свою очередь приводит к переобучению модели.

Применяя регуляризацию Label Smoothing мы незначительно меняем значения позитивного и негативных классов. Тем самым не позволяем значениям нейронов до активации становиться слишком большими, тем самым предотвращаем переобучение сети под некоторый набор признаков.

Допустим, что при работе с моделью значения позитивного и негативного классов будут и соответственно.

Тогда вычисление ошибки для позитивного класса будет выглядеть следующим образом:

,

где:

· - значение нейрона позитивного класса до активации;

· - небольшая величина, порядка 0.01

·

Вычисление ошибки для негативного класса будет выглядеть следующим образом:

,

где:

· - значение нейрона негативного класса до активации;

· - небольшая положительная величина, порядка 0.01

·

1.5 Triplet Loss

Данный подход был разработан для алгоритма идентификации лиц авторами Florian Schroff, Dmitry Kalenichenko, James Philbin и представлен в модели FaceNet. При обучении модели с CrossEntropy Loss, модель учится только на позитивных экземплярах данных и поэтому ей сложно учесть и отсеять негативные экземпляры. Если же мы обучаем модель с Triplet Loss, то она может видеть негативные экземпляры, тем самым обучаясь отличать целевые классы от нецелевых.

Обучение происходит следующим образом - на вход к сети подается 3 изображения: два изображения позитивного класса (anchor и positive) и одно изображение негативного класса (negative). Задача Triplet Loss - минимизировать расстояние между векторами признаков двух позитивных изображений, и при этом максимизировать расстояние между изображениями двух разных классов (anchor и negative). Поэтому мы хотим следующего:

,

где:

· -изображение позитивного класса (anchor), с которым будут сравниваться два других изображения

· - изображение позитивного класса (positive)

· - изображение негативного класса (negative)

· - набор триплетов в обучающей выборке

· - это желаемый отступ между позитивными и негативными парами векторов изображений

В таком случае ошибка, которую мы будем минимизировать, будет выглядеть следующим образом:

,

где:

· -изображение позитивного класса (anchor), с которым будут сравниваться два других изображения

· - изображение позитивного класса (positive)

· - изображение негативного класса (negative)

· - нормализованный вектор признаков изображения позитивного класса (anchor)

· - нормализованный вектор признаков изображения позитивного класса (positive)

· - нормализованный вектор признаков изображения негативного класса (negative)

· - это желаемый отступ между позитивными и негативными парами векторов изображений

Таким образом модель учится проецировать признаки изображений одного класса как можно ближе друг другу, и при этом отдалять облака признаков разных классов как можно дальше друг от друга.

1.6 L2-constrained Softmax Loss

Данный алгоритм так же был разработан для идентификации лиц авторами Rajeev Ranjan, Carlos D. Castillo, Rama Chellapp [19]. В своей работе они указали, что при обучении классификатора с Softmax Loss модель не заботится о том, чтобы позитивные пары были ближе, а негативные пары были дальше в пространстве нормализованных признаков. И чтобы избежать данной проблемы, они предложили применить нормализацию к финальному вектору признаков, перед полносвязным слоем, отвечающим за классификацию. Таким образом полученный вектор признаков будет лежать на гиперсфере фиксированного радиуса. В таком случае при минимизации Softmax Loss будет максимизироваться косинусное подобие для положительных пар, и минимизироваться для негативных пар, что повышает способность модели определять необходимые классы.

Предложенная авторами L2-constrained Softmax Loss выглядит следующим образом:

,

,

где:

· - входное изображение из минибатча размера M

· - соответствующая метка класса

· - вектор признаков изображения

· - количество классов

· - веса финального слоя сети, который выступает в роли классификатора

· - это гиперпараметр, который задает радиус гиперсферы, на которой будет лежать вектор признаков

Регуляризация, созданная добавлением нормы на финальный вектор признаков изображена на рисунке 1.1.

Рис 1.1. Нормализация вектора признаков

При этом значение параметра играет важную роль при обучении модели. Так, например, при , модель не способна в достаточной мере обучиться на данных, так как гиперсфера с маленьким радиусом () имеет недостаточную поверхность для эмбединг векторов, чтобы спроецировать пары одного класса вместе, а пары разных классов далеко друг от друга.

2. Реализация

2.1 Структура данных

В нашей задаче данные представлены в виде фотографий, на которых изображены карты лояльности различных торговых сетей. Примеры фотографий различных классов карт лояльности, присылаемых пользователями, представлены на рисунке 2.1.

Рис. 2.1 Пример входных данных

При этом количество различных текстур карт внутри одного класса может варьироваться от нескольких штук до нескольких десятков (Рисунок 2.2)

Рис. 2.2. Пример экземпляров данных одного класса

Однако помимо карт лояльности пользователи могут фотографировать свои проездные карты, визитки, банковские карты, что-либо не являющееся картой или карты новых, неизвестных торговых сетей. И в случае с такими фото нам необходимо их отклонять. Примеры таких изображений представлены на рисунке 2.3

Рис. 2.3. Пример нецелевых классов

Для обучения было взято 500 классов по 500 изображений. Выборка была разделена на обучающую и валидационную в соотношении 4:1. Так же была был взят тестовый набор данных, содержащий 5000 изображений известных классов и 5000 изображений неизвестных классов. По данной выборке в 10000 тестовых изображений будут оцениваться целевые метрики и сравниваться между собой архитектуры выбранных моделей. Все изображения были представлены в виде трехканального RGB изображения размером 224 х 224.

2.2 Используемые технологии

В качестве языка программирования для реализации проекта был использован Python. сверточный нейронный сеть программирование

Данный язык программирования отлично подходит для исследовательских проектов в силу своей простоты и большого количества библиотек машинного обучения.

Основным инструментом выступала библиотека PyTorch. С помощью данной библиотеки можно быстро построить, обучить и протестировать свою архитектуру свёрточной сети. Так же в ней имеются загруженные архитектуры победителей на Imagenet, такие как ResNet или Inception.

Работа производилась на GPU сервере со следующими параметрами:

· 8 CPU

· 64 GB RAM

· GPU - NVIDIA GeForce GTX 1080 (8 GB)

· SSD 500 GB

2.3 Метрики качества

Для того, чтобы оценивать модели и сравнивать их между собой нам необходимо определить метрики качества. Мы будем оценивать качество по двум метрикам: Recall и Error Rate.

Метрика Recall будет показывать какую долю изображений мы распознали правильно, относительно всех изображений, которые мы могли классифицировать. Будет считаться следующим образом:

,

где:

· - число изображений, которые были правильно классифицированы (True Positive)

· AP - количество всех позитивных изображений, то есть тех, которые принадлежат известным модели классам (All Positive)

Метрика Error Rate показывает, насколько часто модель уверено выставляет неправильный класс. В случаях с изображениями неизвестных классов модель должна ничего не предсказывать, либо предсказывать что-нибудь с небольшой вероятностью, чтобы мы могли отклонить данное предсказание. Если же модель уверено предсказывает неизвестное изображение в какой-нибудь класс, то не происходит отклонения предсказания и мы ошибаемся. Метрика Error Rate будет считаться следующим образом:

,

где:

· - число случаев, когда мы неверно классифицировали изображение. Это может быть как неправильная классификация целевого класса, так и уверенная классификация нецелевого класса (False Positive)

· AP - количество всех позитивных изображений, то есть тех, которые принадлежат известным модели классам (All Positive)

· - количество всех негативных изображений, то есть тех, которые принадлежат неизвестным классам (All Negative)

3. Результаты

3.1 Softmax Loss

Для начала посмотрим как выглядят метрики Recall и Error Rate при обучении на 10ти эпохах. Так как в тестовом наборе данных было 5000 изображений целевых классов и 5000 изображений нецелевых классов, то нам необходимо как-то отсеивать нецелевые классы. Выберем порог отклонения , то есть мы будем отклонять изображение, если максимальная предсказанная вероятность менее 95%.

Рис. 3.1. Softmax Loss. Метрика качества Recall при пороге отклонения 0.95

Как видно из графиков на рисунках 3.1 и 3.2, чем больше эпох модель обучается, тем больше становится её Recall, однако она начинает делать всё более уверенные предсказания для нецелевых классов, поэтому Error Rate так же растет. Поэтому давайте мы будем смотреть не на качество модели при фиксированном пороге отклонения, а зафиксируем максимально допустимый Error rate, и на основе него будем вычислять порог отклонения и рассчитывать метрику Recall.

Рис. 3.2. Softmax Loss. Метрика качества Error rate при пороге отклонения 0.95

В таком случае пусть максимальный Error Rate не превышает 0.01, то есть мы можем ошибиться в предсказании только в 100 изображениях среди 10000, которые присутствуют в нашей тестовой выборке.

Тогда график Recall будет выглядеть следующим образом, как показано на рисунке 3.3.

Рис. 3.3. Softmax Loss. Метрика качества Recall при максимальном допустимом значении Error rate = 0.01

Лучшее значение метрики Recall = 0.9459

3.2 Sigmoid Loss

Теперь оценим качество сети, обученной с функцией активации Sigmoid на выходе и с функцией потерь Binary CrossEntropy Loss. Как и в предыдущем случае, модель обучалась на 10ти эпохах. Результаты сети продемонстрированы на рисунке 3.4.

Рис. 3.4. Sigmoid Loss. Метрика качества Recall при максимальном допустимом значении Error rate = 0.01

Можно увидеть, что при данных параметрах обучения модель продемонстрировала качество предсказания немного хуже, чем при обучении с Softmax Loss.

Лучшее значение метрики Recall = 0.9285

3.3 Softmax Loss + Label Smoothing

В данном случае модель обучалась так же, как и в пункте 3.1, однако теперь была добавлена регуляризация Label Smoothing. Параметр . Результаты сети представлены на рисунке 3.5.

Рис. 3.5. Softmax Loss + Label Smoothing. Метрика качества Recall при максимальном допустимом значении Error rate = 0.01

Лучшее значение метрики Recall = 0.9384

3.4 Sigmoid Loss + Label Smoothing

В данном случае модель обучалась так же, как и в пункте 3.2, однако теперь была добавлена регуляризация Label Smoothing. Параметр . Результаты сети представлены на рисунке 3.6.

Рис. 3.6. Sigmoid Loss + Label Smoothing. Метрика качества Recall при максимальном допустимом значении Error rate = 0.01

Лучшее значение метрики Recall = 0.947

3.5 Triplet Loss

Так как на выходе из сети, обученной с помощью функции потерь Triplet Loss, у нас есть лишь вектор признаков поданного на вход изображения, то при тестировании сети есть несколько различных подходов к тому, как делать классификацию.

Одним из подходов является добавление полносвязного слоя на выход из сети, который будет выступать в роли классификатора. Для этого мы обучаем нашу сеть с Triplet Loss, а затем замораживаем все слои, не позволяя весам сети меняться. Затем мы добавляем полносвязный слой и дообучаем сеть, меняя параметры только полносвязного слоя, который выступает в качестве классификатора. При обучении полносвязного слоя можно использовать Softmax Loss либо Sigmoid Loss как указано в пунктах 3.1 - 3.4.

При обучении сети с Triplet Loss были выставлены следующие гиперпараметры:

· Количество триплетов на обучение: 200000

· Количество триплетов на валидацию: 30000

· Размер батча: 64

· Отступ

Обучение происходило на протяжении 20 эпох. График значения функции ошибки на обучающей и валидационной выборке изображен на рисунке 3.7.

Затем мы взяли обученную сеть, полученную на 17й эпохе, заморозили её веса и добавили полносвязный слой с 1024 нейронами и функцией активации ReLU, отвечающий за классификацию. И обучили данную сеть на 10ти эпохах с функцией ошибок Sigmoid Loss и регуляризацией Label Smoothing.

Рис. 3.7. Triplet Loss. Значения функции ошибки для обучающей и валидационной выборки на каждой эпохе

Результаты сети представлены на рисунке 3.8.

Рис. 3.8. Triplet Loss. Метрика качества Recall при максимальном допустимом значении Error rate = 0.01

Лучшее значение метрики Recall = 0.945

3.6 L2-constrained Softmax Loss

В данном случае модель обучалась так же, как и в пункте 3.1, однако была добавлена L2 нормализация на финальный вектор признаков и затем полученный вектор был умножен на параметр . Результаты сети представлены на рисунке 3.9.

Рис. 3.9. L2-constrained Softmax Loss. Метрика качества Recall при максимальном допустимом значении Error rate = 0.01

Лучшее значение метрики Recall = 0.9528

3.7 Ensemble of models: L2-constrained Softmax Loss + Sigmoid Loss

В нашей работе мы рассматриваем классификацию, при которой часть изображений отклоняется, так как максимальная вероятность, предсказанная для данного изображения меньше порога отсечения по вероятности. Тогда, если для данного изображения модель не предсказала метку класса, тогда мы можем отправить изображение в модель , которая, возможно, сможет сделать верное предсказание.

В таком случае, мы можем использовать для предсказания ансамбль из нескольких моделей. Предсказания ансамбля будет выглядеть следующим образом: возьмем набор изображений и отправим в модель . Из изображений было отклонено штук. Тогда отправим отклонённых изображений в модель и затем посчитаем сумму правильно предсказанных изображений. При этом от ансамбля моделей будем требовать такой же максимально допустимый Error rate, как и при предсказании с помощью одной модели.

В данном случае мы взяли две модели: модель L2-constrained Softmax Loss как в пункте 3.6 и модель Sigmoid Loss как в пункте 3.2. Сначала все тестовые изображения отправлялись в модель L2-constrained Softmax Loss, а затем все отклоненные изображения отправлялись в модель Sigmoid Loss. При этом мы варьировали допустимый уровень Error rate для каждой модели, таким образом, чтобы суммарный Error rate не превышал 0.01 как в предыдущих случаях.

Значение recall при разных допустимых значениях Error rate для каждой модели изображено на рисунке 3.10.

Рис. 3.10. Recall ансамбля моделей L2-constrained Softmax Loss и Sigmoid Loss. Ось X - максимально допустимый Error rate для модели L2-constrained Softmax Loss. Если для модели L2-constrained Softmax Loss допустимый Error rate = 0, то для модели Sigmoid Loss допустимый Error rate = 0.01 соответственно.

Лучшее значение метрики Recall для ансамбля = 0.9580

3.8 Ensemble of models: L2-constrained Softmax Loss + Triplet Loss

В данном случае мы взяли две модели: модель L2-constrained Softmax Loss как в пункте 3.6 и модель Triplet Loss как в пункте 3.2. Сначала все тестовые изображения отправлялись в модель L2-constrained Softmax Loss, а затем все отклоненные изображения отправлялись в модель Triplet Loss. При этом мы варьировали допустимый уровень Error rate для каждой модели, таким образом, чтобы суммарный Error rate не превышал 0.01 как в предыдущих случаях.

Значение recall при разных допустимых значениях Error rate для каждой модели изображено на рисунке 3.11.

Рис. 3.11. Recall ансамбля моделей L2-constrained Softmax Loss и Triplet Loss. Ось X - максимально допустимый Error rate для модели L2-constrained Softmax Loss. Если для модели L2-constrained Softmax Loss допустимый Error rate = 0, то для модели Triplet Loss допустимый Error rate = 0.01 соответственно.

Лучшее значение метрики Recall для ансамбля = 0.9564

3.9 Общие результаты моделей

В таблице 3.1 представлены результаты метрики Recall всех моделей при максимально допустимом уровне Error rate = 0.01

Model

Recall

Softmax Loss

0.9459

Sigmoid Loss

0.9285

Softmax Loss + Label Smoothing

0.9384

Sigmoid Loss + Label Smoothing

0.9470

Triplet Loss

0.9450

L2-constrained Softmax Loss

0.9528

Ансамбль: L2-constrained Softmax Loss + Sigmoid Loss.

0.9580

Ансамбль: L2-constrained Softmax Loss + Triplet Loss.

0.9564

Таблица 3.1. Метрика Recall всех моделей при максимальном допустимом уровне Error rate = 0.01

Выводы

В ходе работы была проанализирована проблема Open World Classification в задаче классификации изображений карт лояльности. Были рассмотрены различные существующие подходы к решению проблемы классификации открытого мира, и некоторые из них были выбраны для решения нашей задачи. Мы продемонстрировали данные, на которых мы обучали и тестировали наши модели, а также определили метрики, по которым мы оценивали качество той или иной модели

Работая с различными моделями, мы показали, как меняется качество предсказаний в зависимости от используемых функций активации и функции ошибки. Таким образом, в нашем случае лучше сработала комбинация Softmax Loss, нежели Sigmoid Loss, однако при добавлении регуляризации Label Smoothing лучшее качество показала модель Sigmoid Loss + Label Smoothing. При этом мы также оценили качество моделей, используемых для идентификации лиц, а именно модель с Triplet Loss и модель с L2-constrained Softmax Loss. Лучшее качество метрики Recall при допустимом уровне Error rate показала модель L2-constrained Softmax Loss, у которой значение метрики Recall = 0.9528. К тому же в работе было показано, что при использовании ансамбля нескольких моделей, обученных разными подходами, мы получим ощутимый прирост в качестве. Таким образом, лучшей моделью в решении нашей задачи оказался ансамбль моделей L2-constrained Softmax Loss и Sigmoid Loss, у которого значение метрики Recall = 0.9580.

В целом, полученные результаты являются удовлетворительными для решения поставленной задачи, однако также имеется несколько возможностей улучшения качества алгоритмов. Например, в качестве базовой архитектуры мы можем использовать более мощную модель, например Inception V4, либо строить ансамбль из большего числа моделей.

Литература

[1] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR09, 2009.

[2] M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen,C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, S. Ghe-mawat, I. Goodfellow, A. Harp, G. Irving, M. Isard, Y. Jia,R. Jozefowicz, L. Kaiser, M. Kudlur, J. Levenberg, D. Man мe,R. Monga, S. Moore, D. Murray, C. Olah, M. Schuster,J. Shlens, B. Steiner, I. Sutskever, K. Talwar, P. Tucker,V. Vanhoucke, V. Vasudevan, F. Vi мegas, O. Vinyals, P. War-den, M. Wattenberg, M. Wicke, Y. Yu, and X. Zheng. Tensor-Flow: Large-scale machine learning on heterogeneous sys-tems, 2015.

[3] F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A uni-fied embedding for face recognition and clustering. InPro-ceedings of the IEEE Conference on Computer Vision andPattern Recognition, pages 815-823, 2015.

[4] Lei Shu, Hu Xu, and Bing Liu. 2017. DOC: Deep Open Classification of Text Documents. In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. Association for Computational Linguistics, Copenhagen, Denmark, 2911-2916.

[5] A. Bendale and T. E. Boult. Towards open set deep networks. In 2016 IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2016, Las Vegas, NV, USA, June 27-30, 2016, pages 1563-1572, 2016.

[6] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems 25, pages 1097-1105, 2012.

[7] “Multi-Class Open Set Recognition Using Probability of Inclusion,” Lalit P. Jain, Walter J. Scheirer, Terrance E. Boult, Proceedings of the European Conference on Computer Vision (ECCV),

[8] Y. Sun, X. Wang, and X. Tang. Deeply learned face representations are sparse, selective, and robust. /CoRR/, abs/1412.1265, 2014.

[9] Y. Wen, K. Zhang, Z. Li, and Y. Qiao. A discrimina-tive feature learning approach for deep face recognition. InEuropean Conference on Computer Vision, pages 499-515.Springer, 2016.

[10] W. J. Scheirer, A. Rocha, A. Sapkota, and T. E. Boult. Towards open set recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence (T-PAMI), 36, July 2013.

[11] Y. Taigman, M. Yang, M. Ranzato, and L. Wolf. Deepface: Closing the gap to human-level performance in face verifica- tion. In /IEEE Conf. on CVPR/, 2014.

[12] Y. Wen, Z. Li, and Y. Qiao. Latent factor guided convo-lutional neural networks for age-invariant face recognition.InProceedings of the IEEE Conference on Computer Visionand Pattern Recognition, pages 4893-4901, 2016.

[13] Geli Fei, Shuai Wang, and Bing Liu. 2016. Learning cumulatively to become more knowledgeable. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 1565-1574

[14] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In IEEE Conference on Computer Vision and Pattern Recognition, pages 770-778, June 2016.

[15] One-Class SVMs for Document Classification, Larry M. Manevitz, Malik Yousef, Journal of Machine Learning Research 2, pages 139-154, 2001

[16] R. Collobert, K. Kavukcuoglu, and C. Farabet. Torch7: Amatlab-like environment for machine learning. InBigLearn,NIPS Workshop, 2011

[17] On a Formal Model of Safe and Scalable Self-driving CarsShai Shalev-Shwartz, Shaked Shammah, Amnon Shashua

[18] Rethinking the Inception Architecture for Computer Vision, Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, 2015

[19] L2-constrained Softmax Loss for Discriminative Face Verificatio, Rajeev Ranjan, Carlos D. Castillo, Rama Chellapp, 2017

[20] Deep Residual Learning for Image Recognition, Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, 2015

Размещено на Allbest.ru

...

Подобные документы

  • Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.

    реферат [158,2 K], добавлен 16.03.2011

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Программное обеспечение для получения исходных данных для обучения нейронных сетей и классификации товаров с их помощью. Алгоритм метода обратного распространения ошибки. Методика классификации товаров: составление алгоритма, программная реализация.

    дипломная работа [2,2 M], добавлен 07.06.2012

  • Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.

    реферат [162,9 K], добавлен 30.09.2013

  • Назначение и типы роботов-андроидов. Функции обнаружения объектов в робототехнике; машинное, электромагнитное зрение, датчики препятствий на ИК лучах. Разработка концептуально-функциональной модели робота типа "шагающий" с функцией обнаружения объекта.

    курсовая работа [3,0 M], добавлен 20.12.2012

  • Технология разработки веб–ориентированных систем. Выбор языка программирования, фреймворка и СУБД. Создание сайта в виде текстового форума с функцией оповещения о важных новостях по почте. Выбор хостинга, доменного имени и размещение его в Интернет.

    курсовая работа [1,9 M], добавлен 10.11.2015

  • Обработка изображений на современных вычислительных устройствах. Устройство и представление различных форматов изображений. Исследование алгоритмов обработки изображений на базе различных архитектур. Сжатие изображений на основе сверточных нейросетей.

    дипломная работа [6,1 M], добавлен 03.06.2022

  • Модели оценки кредитоспособности физических лиц в российских банках. Нейронные сети как метод решения задачи классификации. Описание возможностей программы STATISTICA 8 Neural Networks. Общая характеристика основных этапов нейросетевого моделирования.

    дипломная работа [1,4 M], добавлен 21.10.2013

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

  • Анализ выбора средств разработки и создания сайта интернет-магазина спортивных товаров с функцией форума. Информационное, программное и техническое обеспечение веб-сайта. Сущность основ программирования на языке PHP. Принципы работы с базой данных.

    дипломная работа [2,4 M], добавлен 12.12.2013

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Модели нейронных сетей и их реализации. Последовательный и параллельный методы резолюции как средства логического вывода. Зависимость между логическим следованием и логическим выводом. Применение технологии CUDA и реализация параллельного алгоритма.

    дипломная работа [1,5 M], добавлен 22.09.2016

  • Изучение принципа работы интернет-аукциона (на примере сайта molotok.ru). Способ получения информации с веб-ресурсов. Разработка программного обеспечения с целью создания исходных данных для обучения нейронных сетей и классификации товаров с их помощью.

    дипломная работа [2,0 M], добавлен 29.06.2012

  • Исследование задачи и перспектив использования нейронных сетей на радиально-базисных функциях для прогнозирования основных экономических показателей: валовый внутренний продукт, национальный доход Украины и индекс потребительских цен. Оценка результатов.

    курсовая работа [4,9 M], добавлен 14.12.2014

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Теоретические основы сверточных нейронных сетей. Исследование зависимости качества работы сети от изменения различных характеристик. Сравнение результатов работы сетей типа многослойный персептрон в определении пола и возраста человека по фотографии лица.

    курсовая работа [2,5 M], добавлен 18.07.2014

  • Эффективность применения нейронных сетей при выборе модели телефона. История искусственного интеллекта. Сущность нейросетевых технологий, обучение нейросимулятора. Пример выбора по определенным параметрам модели сотового телефона с помощью персептрона.

    презентация [93,8 K], добавлен 14.08.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.