«Глубокая концепция»: изучение и глубокое понимание функций потерь в метрическом обучении

искусственный интеллект глубокое обучение

«Глубокая концепция»: изучение и глубокое понимание функций потерь в метрическом обучении


0. Введение концепции

 

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

Общее метрическое обучение состоит из следующих шагов:

  1. Модель кодирования кодировщика: используется для кодирования необработанных данных в векторы признаков (Сосредоточьтесь на том, как обучать модель)
  2. Алгоритм распознавания сходства: сравнить пару векторов признаков на предмет сходства (Как рассчитать сходство и как установить порог)

è¿éåå¾çæè¿°

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

  1. Школа сетевого дизайна: представление сиамской сети
  2. Школа улучшения убытков: представляет xx-softmax

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

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

Будь то функция потерь SphereFace, CosineFace или ArcFace, она модифицируется на основе потерь Softmax.

 

Base line Softmax loss
Различные расширенные алгоритмы Triplet loss, center loss
последний алгоритм A-Softmax Loss(SphereFace),  Cosine Margin Loss, Angular Margin Loss, Arcface

1.Softmax loss

 

    \large L_1 = -\frac{1}{m}{\sum\limits_{i=1}^m}\log\left(\frac{e^{W^T_{y_i}x_i+b_{y_i}}}{ {\sum\limits_{j=1}^n}e^{W^T_jx_i+b_j} }\right)

 

Это функция потерь softmax,{W^T_{j}x_i+b_{j}}представляет собой выход полностью связанного слоя. В процессе расчета Loss drop положим{W^T_{j}x_i+b_{j}}Доля больше, так что число в скобках log() становится больше и ближе к 1, тогда log(1) = 0, и весь убыток уменьшится.

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

è¿éåå¾çæè¿°

Как понять картинку ниже? Разве предпоследний слой не должен быть многомерным?

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

Как это сделать?Это должно быть методом уменьшения размерности.

Как проводится классификация?

Мы знаем, что классификация softmax принимает самый большой класс (argmax), если целевой класс больше, чем другие классы. Отраженное на карте расстояние между каждой точкой и каждым типом центра (определяемое W и b), в зависимости от того, какой центр ближе всего к нему, будет разделено на какую категорию.

 

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

(присоединиться[Концепция глубины] Анализ преимуществ и недостатков Softmax)

  • L2 расстояние: Чем меньше расстояние L2, тем выше сходство векторов. Возможно, расстояние по собственным векторам одного и того же класса (желтый) больше, чем расстояние по собственным векторам разных классов (зеленый).

  • cos расстояние: Чем меньше прилежащий угол, тем больше косинусное расстояние и выше сходство векторов. Возможно, собственные векторы одного класса имеют больший угол (желтый), чем собственные векторы разных классов (зеленый).

заключить:

  1. Глубинные функции обучения Softmax разделят все гиперпространство или гиперсферу в соответствии с количеством категорий, чтобы гарантировать, что категории являются разделимыми, что очень подходит для задач с несколькими классификациями, таких как MNIST и ImageNet, потому что категория теста должна быть в категория обучения. .
  2. Но Софтмакс неВнутриклассовое уплотнение и межклассовое разделение не требуются, это очень не подходит для задач распознавания лиц, потому что 1W количество людей в обучающей выборке очень незначительно по сравнению с 7 миллиардами человек всего мира в тестовой выборке, и мы не можем получить все обучающие выборки. Более того, общее. Мы также требуем, чтобы обучающая и тестовая выборки не перекрывались.
  3. Поэтому необходимо преобразовать Softmax.Помимо обеспечения разделимости, класс вектора признаков должен быть максимально компактным, а классы должны быть максимально разделены.

 

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

 

2. Center loss

    \large L_C = -\frac{1}{2}{\sum\limits_{i=1}^m}{||x_i-c_{y_i}||}^2

    \large \Delta{c_j}=\frac{​{\sum\limits_{i=1}^m}{\delta{(y_i=j)}\cdot{(c_j-x_i)}}}{1+{\sum\limits_{i=1}^m}{\delta{(y_i=j)}}}

Потери центра учитывают не только классификацию, но и определенное расстояние между классами. в приведенной выше формуле\large c_{y_i}представляет собой центр класса,\large x_iПредставляет собственные значения каждой грани. Автор добавил на основе softmax loss\large L_C, при использовании параметра\large \lambdaДля контроля внутриклассового расстояния общая функция потерь выглядит следующим образом:

    \large L_2=L_S+L_C= -\frac{1}{m}{\sum\limits_{i=1}^m}\log\left(\frac{e^{W^T_{y_i}x_i+b_{y_i}}}{ {\sum\limits_{j=1}^n}e^{W^T_jx_i+b_j} }\right)+\frac{\lambda}{2}{\sum\limits_{i=1}^m}{||x_i-c_{y_i}||}^2

 

3. Triplet Loss

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

    \large L_3 = {\sum\limits_{i}^N}{\left [ ||f(x_i^a) - f(x_i^p)||^2_2 - ||f(x_i^a)-f(x_i^n)||_2^2 \right + \alpha ]}

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

Приведенные выше алгоритмы относительно старые и традиционные, поэтому давайте поговорим о более новых алгоритмах.


 

4. L-softmax

Предыдущая функция потерь Softmax не учитывает расстояние между классами.Функция потерь Center может сделать класс компактным, но между классами нет разделения, а функция потерь Triplet требует много времени, поэтому генерируется новый алгоритм.

Функция L-softmax с самого начала претерпела относительно мелкие изменения, судя по журналу функции softmax.\large e^{W^T_{y_i}x_i+b_{y_i}преобразовать в\large e^{||W_{yi}|| ||x_i||\psi{(\theta_{y_i})}}. Функция L-softmax не только надеется увеличить расстояние между классами, но и уменьшить расстояние между классами более компактно.

    \LARGE L_4 = \frac{1}{N}\sum_{i=1}^N L_i = \frac{1}{N}\sum_{i=1}^N -log(\frac{e^{f_y_i}}{\sum_{j}e^{f_i}}) 

    \LARGE L_i = -log(\frac{e^{||W_{yi}|| ||x_i||\psi{(\theta_{y_i})}}} {e^{||W_{yi}|| ||x_i||\psi{(\theta_{y_i})}} + \sum_{ j\neq y_i}{e^{||W_j|| ||x_i||cos(\theta_j)}}})

Измените cosθ на cos(mθ),

    \large \psi(\theta) = \left\{\begin{matrix} \cos (m\theta ), 0\leqslant \theta \leqslant \frac{\pi }{m}& & \\ D(\theta), \frac{\pi}{m}\leqslant \theta \leqslant \pi & & \end{matrix}\right.

m, умноженное на θ, приводит к увеличению запаса, делая расстояние внутри класса более компактным, а расстояние между классами больше. Чем больше m, тем больше межклассовое расстояние, поскольку функция cos монотонно убывает в интервале (0, π), и чем больше m, тем cos(mθ) стремится к 0.

 

5. SphereFace(A-Softmax)

A-softmax — это небольшая модификация функции L-softmax, которая добавляет два ограничения при рассмотрении маржи: нормализовать вес W||W|| = 1, б = 0. Это делает предсказания модели зависящими только от угла между W и X.

    \LARGE L_5 = -\frac{1}{N}\sum_{i=1}^{N}log( \frac{e^{||x_i||\cos(m\theta_{y_i})}} {e^{||x_i||\cos(m\theta_{y_i})} + \sum_{j \neq y_i}{e^{||x_i||cos(\theta_j)}}})

 

6. CosFace

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

    \LARGE L_6 = -\frac{1}{N} \sum_{i=1}^{N} log( \frac{e^{s(cos(\theta_{yi})-m)}}{e^{s(cos(\theta_{yi})-m)}+ \sum_{j=1, j\neq y_i}^k e^{scos \theta_j}})

В приведенной выше формуле s — радиус гиперсферы, а m — край.

 

7. ArcFace

Сравнивая две функции arcface и cosface,Обнаружено, что дуга максимизирует предел классификации непосредственно в угловом пространстве, а косинус максимизирует предел классификации в косинусном пространстве.Эта модификация связана с тем, что угловое расстояние оказывает более непосредственное влияние на угол, чем косинусное расстояние.  

\LARGE L_7= -\frac{1}{N} \sum_{i=1}^{N} log(\frac{e^{s(cos(\theta_{yi}+m))}}{e^{s(cos(\theta_{yi}+m))}+\sum_{j=1,j\neq y_i}^k e^{scos\theta_j}})

 

Граница решения для классификации выглядит следующим образом:

Поток алгоритма дуги выглядит следующим образом:

 


References:

 

[1] blog.CSDN.net/Jiangningwei/AR…

[2] blog.CSDN.net/U012505617/…