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

1. Введение

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

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

Традиционно нейронная сеть учится предсказывать несколько классов. Это создает проблему, когда нам нужно добавить/удалить новые классы к данным. В этом случае нам нужно обновить нейронную сеть и переобучить ее на всем наборе данных. Кроме того, глубоким нейронным сетям для обучения требуется большой объем данных, но, с другой стороны, в случае сиамской нейронной сети (SNN) модель обучается функции сходства, и мы можем обучите его, чтобы увидеть, равны ли два образца или нет. Это позволяет нам классифицировать новые «классы» данных без повторного обучения сети.

2. Что такое сиамская нейронная сеть?

Как было сказано ранее, сиамская нейронная сеть — это класс архитектуры нейронной сети, который содержит две или более идентичныхподсетей. Под идентичными мы подразумеваем, что они имеют одинаковую конфигурацию слоев и общие параметры и веса. Фактически, даже обновление параметров зеркально отражается в обеих подсетях. Перед этими подсетями стоит задача выполнить извлечение признаков из входных данных, чтобы иметь сопоставимые векторы признаков. Затем сеть может изучить функцию подобия из этих векторов признаков. В статистике мера сходства — это функция, которая количественно определяет сходство между двумя объектами, и в некотором смысле она является обратной метрике расстояния.

3. Плюсы и минусы

Основными преимуществами такой сети являются:

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

Недостатки:

  • Сиамские сети требуют больше времени на обучение, чем обычные сети, поскольку для обучения используются квадратичные пары.
  • Выход сети - это расстояние от каждого класса, а не вероятности прогноза, поскольку обучение включает попарное обучение.

4. Функции потерь

Поскольку для обучения такого типа сети используется пара входов, в этом случае нельзя использовать классические и широко распространенные потери. Основные используемые функции потерь:

Triplet Loss – это функция потерь, в которой якорь используется в качестве базовой линии и сравнивается с положительным и отрицательным входными данными. Расстояние от привязки и положительного входа сведено к минимуму, а расстояние от базовой линии и отрицательного значения максимально.

В этом уравнении альфа — это предельный термин, используемый для улучшения различий в расстоянии между сходными и непохожими парами в триплете. f(A) — это вложения признаков для привязки, f(P) — вложения признаков для положительного, а f(N) — вложения признаков для отрицательного входа.

Контрастные потери – это функция потерь, основанная на расстоянии, в отличие от более традиционных потерь, основанных на предсказании ошибок. Эта потеря используется для изучения вложений, в которых две похожие точки имеют малое евклидово расстояние, а две разные точки имеют большое евклидово расстояние.

Приведенное выше уравнение представляет собой уравнение контрастных потерь, используемое Ле Канном, в котором Dw — это евклидово расстояние.

5. Вывод

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

В следующей статье я представлю архитектуру для проверки говорящего и руководство по реализации этой нейронной сети. Следите за обновлениями!

6. Ссылки

SigNet: сверточная сиамская сеть для независимой от автора проверки подписи в автономном режиме

Сиамские нейронные сети для одноразового распознавания изображений

Интуиция тройной потери