Модель RetinaNet
Модель RetinaNet [1] существенно обогнала в качестве работы модели YOLO и SSD.
В этой модели использовалась сеть FPN для генерации представлений изображения в разном разрешении. Это позволило производить детекцию как в малых, так и в больших пространственных разрешениях, эффективно выделяя как большие, так и малые объекты соответственно. Причём детекторы на каждом слое работали над высокоуровневыми признаками.
Схема модели RetinaNet:
К каждому слою декодера FPN сети применялись две независимые сети: детектор и локализатор со своими параметрами. Таким образом, локализация формально не зависела от детекции. При этом к каждому слою декодера применялсся детектор с одними и теми же параметрами, то же касалось и локализатора.
Классификатор и локализатор представляли собой последовательное применение 4х свёрток 3x3. После первых 3х свёрток шла ReLU нелинейность.
Классификаторы и локализаторы для каждой позиции применялись раз для шаблонных рамок. Рассматривались рамки
-
малого, среднего и большого размера;
-
вытянутых вбок, квадратных и вытянутых вверх соответственно.
Это давало вариантов для каждой пространственной позиции.
Выходы классификатора и локализатора
Последней нелинейностью в классификаторе была сигмоидная активация, чтобы выдавать вероятности каждого из детектируемых классов. Таким образом, классификатор выдавал выходов. Если все активации были близки к нулю, это трактовалось как отсутствие объекта.
Последней нелинейностью в локализаторе была тождественная функция, локализатор выдавал выходов: смещение по вертикали и горизонтали центра шаблонной рамки, а также изменение её стандадртной ширины и высоты.
Функция потерь
Сопоставление детекций
Поскольку в каждой пространственной позиции для шаблонных рамок предсказываются рамки и классы объектов, для расчёта функции потерь необходимо сопоставить предсказанные детекции с реальными.
Предсказанные детекции сопоставлялись реальным, если мера IoU их пересечени я была выше 0.5. Если она была ниже 0.4, то сопоставлялся фоновый класс (отсутствие класса). Случаи IoU игнорировались.
Типы потерь
В RetinaNet использовалась функция потерь, состоящая из 2х компонент:
-
функция потерь локализации (определение местоположения объектов)
-
функция потерь классификации (корректность угадывания класса)
В качестве функции потерь локализации использовалась функция потерь Хубера, как дифференцируемая и устойчивая к выбросам.
Классификатор выдавал независимых вероятностей классов (рейтингов, пропущенных через сигмоиду). Фоновому классу отвечала ситуация, когда вероятности всех интересуемых классов равны нулю. Каждый выход классификатора можно было бы настраивать бинарной кросс-энтропийной функцией потерь:
где - индикатор присутствия целевого класса.
Авторы модели RetinaNet обратили внимание, что в огромном количестве детекций присутствуют ложные срабатывания (активация на фоновый класс), при том, что целевых объектов на каждом изображении сравнительно немного. Фоновый класс детектируется достаточно уверенно, но за счёт того, что число срабатываний на фоновый класс существенно превосходит число обнаружений целевого класса, оптимизация нейросети сосредотачивается не на улучшении обнаружений целевых классов, а на повышении точности распознавания фоновых классов. Для того, чтобы так не происходило, в RetinaNet предлагается новый вид потерь классификации - focal loss:
Домножение на сн ижает вклад в совокупные потери обнаружений с высоким уровнем уверенности в классе, а домножение на снижает вклад обнаружений с высоким уровнем уверенности в присутствии фона. За счёт такого перевзвешивания большое количество обнаружений фона перестаёт доминировать в общей сумме, и оптимизация начинает больше внимания сосредотачивать на обнаружении более редких целевых классов.
Ниже показан пример влияния дополнительного множителя на логарифм вероятности истинного класса :
Как видно из графика, потери уменьшаются при существенно быстрее, чем для стандартных кросс-энтропийных потерь.
В работе предлагалось брать , а вес каждого слагаемого в focal loss дополнительно домножался на веса, принижающие вклад частотных классов.