Изменения

Перейти к: навигация, поиск

Сиамская нейронная сеть

3512 байт добавлено, 00:56, 28 декабря 2020
Добавлен раздел "Мотивация"
'''Сиамская нейронная сеть''' (англ. Siamese neural network) — это разновидность [[Нейронные сети, перцептрон|искусственной нейронной сети]] (англ. neural network), которая состоит из двух идентичных нейронных подсетей с одинаковыми наборами весов. Данный вид сетей позволяет сравнить вектора признаков двух объектов с целью выделить их семантическое сходство или различие. Сиамская нейронная сеть представляет собой нелинейное [[Отображения|отображение]] данных с целью приблизить друг к другу схожие объекты и разнести на максимально возможное расстояние различные объекты. Сиамские сети получили свое название от сиамских близнецов, физически приросших друг к другу, из-за использования сразу двух подсетей, разделяющих один набор весов. Эти подсети могут быть представлены многослойными [[Нейронные сети, перцептрон|перцептронами]] (англ. multilayer perceptron), [[Сверточные нейронные сети|сверточными нейронными сетями]] (англ. convolutional neural network) и другими.
 
== Мотивация ==
 
Рассмотрим следующую ситуацию: некоторая компания хочет создать систему, которая, основываясь на фотографии лица человека, могла бы установить, является ли он ее сотрудником, и, если это так, разрешить ему доступ на территорию предприятия. Для этого может быть обучена сверточная нейронная сеть, которая, например, основываясь на входной фотографии человека, пыталась бы классифицировать его как одного из сотрудников предприятия или как не сотрудника. Если в компании работает <math>n</math> сотрудников, такая сеть могла бы возвращать вектор размерности <math>n+1</math>, который бы представлял один из указанных выше классов (<math>n</math> классов сотрудников и один класс не сотрудника) записанный с помощью one-hot кодирования. Однако число сотрудников компании может меняться, старые работники могут увольняться, а на их место приходить новые. Каждое такое изменение потребовало бы переобучения всей сети, что может быть накладно для крупных компаний. Более того, не все сотрудники имеют большое количество своих фотографий (необходимое для обучения сети), или не желают делиться большей их частью.
 
Решением данной проблемы может быть обучение сети не распознавать каждого отдельного сотрудника, а находить сходство между фотографией человека, который пытается попасть на территорию предприятия, и фотографией одного из сотрудников компании. Например, мы можем задаться некоторым пределом <math>\tau</math> и обучить сеть так, чтобы она возвращала значение <math>\phi < \tau</math>, если фотографии похожи, и <math>\phi \geq \tau</math>, если они разные. В таком случае нам будет достаточно попарно сравнить с помощью нашей сети фотографию посетителя с фотографиями сотрудников компании, и, если выходное значение для одной из пар будет меньше <math>\tau</math>, мы можем с высокой уверенностью сказать, что наш посетитель является сотрудником компании. Такое решение может быть реализовано с помощью сиамских нейронных сетей, которые рассмотрены ниже.
== Сиамская нейронная сеть ==
Анонимный участник

Навигация