Эта история предназначена для того, чтобы записать то, что я недавно узнал об убытке Additive Margin Softmax (AM-softmax).
Прежде чем говорить об AM-Softmax, нам нужно рассмотреть, что такое Angular Softmax (A-Softmax).
Исходный софтмакс
Здесь f — входные данные последнего полносвязного слоя. W — параметры последнего слоя.
Угловой Софтмакс
https://arxiv.org/pdf/1704.08063.pdf
По сравнению с оригинальным softmax авторы вносят следующие изменения:
- нормализовать веса ‖W‖ = 1
- обновить вычисление целевого логита
Таким образом, потери 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 хорошо работать в контрастном обучении.