Эта история предназначена для того, чтобы записать то, что я недавно узнал об убытке Additive Margin Softmax (AM-softmax).

Прежде чем говорить об AM-Softmax, нам нужно рассмотреть, что такое Angular Softmax (A-Softmax).

Исходный софтмакс

Здесь f — входные данные последнего полносвязного слоя. W — параметры последнего слоя.

Угловой Софтмакс

https://arxiv.org/pdf/1704.08063.pdf

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

  1. нормализовать веса ‖W‖ = 1
  2. обновить вычисление целевого логита

Таким образом, потери A-Softmax становятся:

Между ними ψ(θ) — кусочная функция, которая определяется как:

Обычно m является интегралом больше 1, а λ является гиперпараметром, который используется для управления сложностью продвижения границы классификации. На этапе обучения λ отжигается от 1000 до небольшого значения, чтобы угловое пространство каждого класса стало больше и компактнее.

Добавочная маржа Softmax

https://arxiv.org/abs/1801.05599

Авторы предлагают специальную функцию, которая вводит дополнительный запас в функцию потерь softmax.

По сравнению с L-Softmax и A-Softmax это определение проще, но более полезно. После нормализации характеристик и весов cos(θ) можно определить следующим образом:

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

s — это гиперпараметр. Изначально авторы пытались сделать его обучаемым. Однако вся сеть сходится очень медленно. Поэтому они решили установить s на большое значение (30), чтобы сделать оптимизацию более стабильной.

Этот -m пытается отодвинуть вложения подальше от других центров классов. Супер интуитивный.

Этот AM-Softmax также можно использовать в задачах на сходство предложений.

Вопрос

Можем ли мы также использовать AM-Softmax в контрастном обучении? Эта потеря довольно близка к InfoNCE. Не уверен, может ли AM-Softmax хорошо работать в контрастном обучении.