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

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

Построить классификационную модель? Нет! Потому что у каждого человека есть только несколько изображений лиц, которых недостаточно для обучения классификации.

Собственно, в глубоком обучении и компьютерном зрении такая задача уже хорошо изучена за последние 15 лет, что называется метрическим обучением.

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

Разница с классификацией изображений

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

Одноразовое (несколько) обучение с помощью метрического обучения

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

Основная концепция

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

Итак, как нам получить скрытый вектор из изображения обучающей выборки? Сверточная нейронная сеть (CNN) - вот ответ. Однако, в отличие от других задач, таких как классификация или семантическая сегментация, в которых одной входной выборки достаточно, чтобы получить один выходной результат оценки, модели CNN для обучения метрикам требуется по крайней мере две входные выборки для получения выходной оценки. Это связано с тем, что модели необходимо знать, принадлежат ли две входные выборки к одной и той же категории, чтобы модель могла научиться кластеризовать два скрытых вектора или удерживать их на заранее определенном расстоянии. В этом духе для метрического обучения обычно используются две сети: сиамская сеть и триплетная сеть.

Сиамская сеть и контрастные потери

Сиамская сеть, как следует из названия, нуждается в паре входных образцов изображений, чтобы получить пару скрытых векторов. Как показано на рис. 1, два образца изображения Xa и Xb подаются в базовые сети одно за другим для получения скрытых векторов G (Xa) и G (Xb). Здесь существует только одна базовая сеть, и ее веса являются общими для двух входных образцов изображений. Затем в скрытом пространстве внедрения вычисляется расстояние D между двумя скрытыми векторами. Наконец, вычисленное расстояние D подставляется в функцию потерь (рис. 2), и базовая сеть настраивается с помощью обратного распространения для лучшего встраивания скрытых векторов.

Чтобы вычислить потери в соответствии с обозначениями того, принадлежат ли две входные выборки к одной и той же категории или нет, Hadsell et al. 15 лет назад. Функция потерь показана на рис. 2, где Y - двоичная метка, где Y = 0 означает, что две входные выборки принадлежат одной и той же категории, в то время как Y = 1 в противном случае. Если вы посмотрите на него поближе, когда Y = 0, существует только первый элемент, а Dw минимизировано; когда Y = 1, существует только второй элемент, а Dw максимизируется до m, который является определяемым пользователем гиперпараметром. Концептуально, когда две входные выборки принадлежат к одной и той же категории, они группируются как можно ближе; в противном случае они разнесены на расстояние m. Если расстояние между двумя скрытыми векторами из разных категорий уже больше m, потеря становится равной нулю, и вообще ничего не будет изучено.

Пыторч реализует контрастную потерю следующим образом:

Триплетная сеть и тройной убыток

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

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

В некоторых приложениях социальной реализации потери триплетов создание данных этикеток является сложной задачей. Фактически обучающий триплет состоит из двух частей: пара якорь-положительный и пара-якорь-отрицательный. Точно так же потеря триплета также состоит из двух частей: потери, вносимой парой с положительным якорем, и потери, вносимой парой с отрицательным якорем. Более того, данные для обучения пары с отрицательным якорем легко получить, а для пары с положительным якорем - сложно. Таким образом, общее количество пар «якорь-отрицательный» намного больше, чем пар «якорь-положительный», что привело бы к переоснащению пар с положительным якорем. Решением этой проблемы является контроль соотношения между двумя типами пар. данные, такие как 1: 3 и т. д. Идея аналогична задачам обнаружения аномалий, в которых количество данных меток аномалий слишком мало.

Реализация потери триплетов в pytorch выглядит следующим образом:

Онлайн майнинг триплетов

Триплетную сеть сложно обучить быстро и эффективно. Основная причина - случайный выбор троек для тренировок онлайн. Как обсуждалось выше, потери становятся равными нулю, если входной триплет уже предсказуем, в котором разница двух расстояний уже достигает альфа и потери исчезают. Следовательно, если многие из обучающих троек уже предсказуемы, параметры сети не будут обновляться вообще, и будет потрачено слишком много времени и вычислительных ресурсов. Чтобы справиться с этой проблемой, люди выбирают для обучения жесткие образцы, которые еще нельзя предсказать. Например, используется большой размер партии, и внутри партии вычисляются все расстояния между привязкой и положительными / отрицательными образцами. Затем выбираются тренировочные тройки в соответствии с рассчитанными дистанциями [Schroff et al.].

использованная литература

Одноразовое обучение, Википедия

Снижение размерности путем изучения инвариантного отображения, Хадселл и др., CVPR 2006

FaceNet: унифицированное встраивание для распознавания лиц и кластеризации, Schroff et al., CVPR 2015