Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиП_Лекция_КЗ_Отчет.docx
Скачиваний:
1
Добавлен:
23.06.2024
Размер:
59.83 Кб
Скачать

10.2. Функции схожести и потерь часть 1

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

Мы хотим, чтобы похожие объекты лежали близко друг к другу, а непохожие далеко.

Мы рассмотрим несколько функций, реализующих данный функционал.

Контрастная функция потерь:

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

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

Но у обоих этих функций есть недостаток — они могут стать 0 при выборе правильно работающих примеров, из — за чего модель перестает учиться.

Для этого триплеты делят на 3 категории: сложные, средние и легкие, после чего доучивают сеть на сложных триплетах.

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

10.3. Функции схожести и потерь часть 2

Альтернатива обучения признаков напрямую — ArcFace – софтмакс классификация. Для нее строится сеть, где добавляется слой, переводящий все лица(если нужно распознавать лица) в отдельные классы, после чего softmax присваевает классам в вероятности.

Недостатки метода:

Обучение классификации требует набор данных со специальной разметкой.

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

10.4. Ранжирование

Ранее мы размечали базу данных с фотографиями. Но как же производить поиск по базе? Обычный перебор слишком долог при большом наборе данных и для нас не подходит. Для этого используют приближенный поиск.

Рассмотрим самый популярный алгоритм приближенного поиска — Annoy.

У нас есть фото с большим набором точек. Задача — найти ближайшую точку к случайно выбранной. Мы выбираем две случайные точки, проводим линию между ними и разделяем фото на 2 области. Продолжаем процедуру до критерия остановки — недостатка точек для дальнейшего разделения.

В итоге у нас получилось бинарное дерево, во которому мы и будем искать соседей!