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

Функция потери триплетов используется для обучения сиамской сети распознаванию сходства между двумя входными данными. Он делает это путем сравнения входных данных «привязки» с «положительными» входными данными, которые похожи друг на друга, и «отрицательными» входными данными, которые не похожи на входные данные привязки. Цель состоит в том, чтобы сеть изучила функцию встраивания, которая отображает входные данные в пространство признаков, где расстояние между похожими входными данными меньше, чем расстояние между разнородными входными данными.

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

L(a, p, n) = max(d(a, p) — d(a, n) + поле, 0)

Где «a» представляет ввод привязки, «p» представляет собой положительный ввод, «n» представляет отрицательный ввод, «d» представляет расстояние между входами, а «маржа» представляет собой гиперпараметр, который представляет минимально допустимую разницу между расстояниями. между привязкой и положительными входными данными, а также привязкой и отрицательными входными данными.

На основе этого определения существует три категории триплетов:

  1. Легкие тройки: тройки, в которых потери равны 0, потому что d(a, p) + запас ‹ d(a, n)
  2. Жесткие тройки: тройки, в которых потери не равны нулю, потому что d(a, p) ‹ d(a, n) + запас
  3. Полужесткие тройки: тройки, в которых потери не равны нулю, потому что d(a, n) ‹ d(a, p) ‹ d(a, n) + запас

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

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

Ссылки:
1. https://medium.com/@enoshshr/triplet-loss-and-siamese-neural-networks-5d363fdeba9b
2. https://medium.com/vitrox -publication/understanding-circle-loss-bdaa576312f7
3. https://towardsdatascience.com/siamese-network-triplet-loss-b4ca82c1aec8