Сиамская нейронная сеть — различия между версиями
(Добавлена заготовка статьи про сиамские нейронные сети) |
(нет различий)
|
Версия 19:53, 22 декабря 2020
Сиамская нейронная сеть (англ. Siamese neural network) — это разновидность искусственной нейронной сети (англ. neural net), которая состоит из двух идентичных нейронных подсетей с одинаковыми наборами весов. Данный вид сетей позволяет сравнить вектора признаков двух объектов с целью выделить их семантическое сходство или различие. Сиамская нейронная сеть представляет собой нелинейное отображение данных с целью приблизить друг к другу схожие объекты и разнести на максимально возможное расстояние различные объекты. Сиамские сети получили свое название от сиамских близнецов, физически приросших друг к другу, из-за использования сразу двух подсетей, разделяющих один набор весов. Эти подсети могут быть представлены многослойными перцептронами (англ. multilayer perceptron), сверточными нейронными сетями (англ. convolutional neural network) и т.д.
Содержание
Сиамская нейронная сеть
Зададимся набором данных
, состоящим из ветров признаков размера с метками . Создадим обучающий набор данных , состоящих из пар и с бинарными метками . Если оба вектора признаков и принадлежат к одному и тому же классу, то , иначе . Разделим обучающий набор данных на два подмножества: одно — со схожими парами (или с ), другое — с различающимися парами (или с ). Будем подавать наши пары векторов на вход сиамской подсети.В общем случае сиамская сеть состоит из двух подсетей, выходы которых подаются на вход другого модуля, который генерирует конечный выход. Рассмотрим Рис. 1, на котором
и — это входы, — общие веса/параметры, а и — выходы обоих подсетей. Сиамская сеть представляет собой отображение , для которого Евклидово расстояние максимально мало́ при и максимально велико при . Сеть возвращает оценку того, насколько различны и .Существует три главных вида структуры сиамских нейронных сетей (см. Рис. 2):
- Входы и подаются на две параллельные подсети, представляющие собой две отдельные сети с одними и теми же весами и смещениями. Для выходов и этих сетей подсчитывается метрика расстояния , которая подается на выходной слой, оценивающий схожесть между входами подсетей.
- Несколько последних слоев подсетей объединены, за ними следуют несколько дополнительных слоев. На последнем слое применяется softmax-преобразование. Данная архитектура известна под названием In-network stacking.
- Оба входа и конкатенируются и подаются на вход единой сети, завершающейся слоем с softmax-преобразованием.
Третья архитектура полезна для детального сравнения двух объектов, необходимого, например, при отслеживании пешеходов[1]. Первые две архитектуры показывают хорошие результаты при классификации.
Существует много различных функций потерь (англ. loss function) для обучения сиамских нейронных сетей. Рассмотрим contrastive loss function:
,
где эмпирический риск (англ. error function) равен
— это заранее заданный предел. Тогда,
где градиентный спуск (англ. gradient descent).
— это член, регуляризующий обобщающую способность сети, — это матрица параметров нейронных подсетей, а — это гиперпараметр, отвечающий за степень регуляризации. Для минимизации этой функции обычно применяетсяСеть триплетов
Сеть триплетов (англ. Triplet network) (см. Рис. 3) представляет собой модификацию сиамской сети с тремя сверточными нейронными подсетями с общими параметрами. В центральную подсеть подается объект [2].
класса , принадлежность которому мы хотим научиться определять (якорь). В одну из двух оставшихся подсетей подается объект того же класса (положительный пример), а в другую — объект , не принадлежащий к классу (негативный пример). Сочетание центральной подсети с каждой из двух других подсетей образует сиамскую сеть. Выходы и обоих сиамских сетей подаются на последний слой-компаратор. Было отмечено, что при обучении сети триплетов в качестве функции потерь удобнее использовать среднеквадратическую ошибкуКак сиамская сеть, так и сеть триплетов показывают хорошие результаты при сравнении изображений. Однако, в отличие от сиамской сети, сеть триплетов не требует калибровки данных.
Применение
Сиамские нейронные сети нашли широкое применение в области компьютерного зрения, распознавания речи и обработки естественных языков. Были предложены модели для распознавания манеры ходьбы[3], поведения пользователя в интернете[4], множественного трекинга пешеходов[1], и т.д.[5][6][7] Данный вид сетей также может быть использован для снижения размерности.
Однако наиболее популярное применение сиамский сетей — это распознавание лиц. Первые автоматизированные решения в этой области появились еще в 1960-е годы. Однако свою популярность распознание лиц приобрело после публикации метода eigenface, использующем алгоритмы снижения размерности (например, PCA) для компактного представления признаков. Позже, данное решение было улучшено с помощью применения сверточных нейронных сетей. Сиамские нейронные сети являются усовершенствованием над нейронными сетями и часто используются в задачах, когда фактическое число классов велико или не известно во время обучения, а количество объектов в классах мало.
См. также
Примечания
- ↑ 1,0 1,1 L. Leal-Taixé, C. Canton-Ferrer and K. Schindler, "Learning by Tracking: Siamese CNN for Robust Target Association," 2016 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), Las Vegas, NV, 2016, pp. 418-425, doi: 10.1109/CVPRW.2016.59.
- ↑ Elad Hoffer, Nir Ailon, "Deep metric learning using Triplet network", 2018.[1]
- ↑ C. Zhang, W. Liu, H. Ma and H. Fu, "Siamese neural network based gait recognition for human identification," 2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Shanghai, 2016, pp. 2832-2836, doi: 10.1109/ICASSP.2016.7472194.
- ↑ Y. Qiao, Y. Wu, F. Duo, W. Lin and J. Yang, "Siamese Neural Networks for User Identity Linkage Through Web Browsing," in IEEE Transactions on Neural Networks and Learning Systems, vol. 31, no. 8, pp. 2741-2751, Aug. 2020, doi: 10.1109/TNNLS.2019.2929575.
- ↑ M. E. Hossain, A. Islam and M. S. Islam, "A Proficient Model to Classify Bangladeshi Bank Notes for Automatic Vending Machine Using a Tıny Dataset with One-Shot Learning & Siamese Networks," 2020 11th International Conference on Computing, Communication and Networking Technologies (ICCCNT), Kharagpur, India, 2020, pp. 1-4, doi: 10.1109/ICCCNT49239.2020.9225405.
- ↑ S. Bhati, L. M. Velazquez, J. Villalba and N. Dehak, "LSTM Siamese Network for Parkinson’s Disease Detection from Speech," 2019 IEEE Global Conference on Signal and Information Processing (GlobalSIP), Ottawa, ON, Canada, 2019, pp. 1-5, doi: 10.1109/GlobalSIP45357.2019.8969430.
- ↑ I. O. de Oliveira, K. V. O. Fonseca and R. Minetto, "A Two-Stream Siamese Neural Network for Vehicle Re-Identification by Using Non-Overlapping Cameras," 2019 IEEE International Conference on Image Processing (ICIP), Taipei, Taiwan, 2019, pp. 669-673, doi: 10.1109/ICIP.2019.8803810.
Источники информации
- Lev V. Utkin, Maxim S. Kovalev, Ernest M. Kasimov, "An explanation method for Siamese neural networks", 2019. [2]
- A. Nandy, S. Haldar, S. Banerjee and S. Mitra, "A Survey on Applications of Siamese Neural Networks in Computer Vision," 2020 International Conference for Emerging Technology (INCET), Belgaum, India, 2020, pp. 1-5, doi: 10.1109/INCET49848.2020.9153977.
- H. Wu, Z. Xu, J. Zhang, W. Yan and X. Ma, "Face recognition based on convolution siamese networks," 2017 10th International Congress on Image and Signal Processing, BioMedical Engineering and Informatics (CISP-BMEI), Shanghai, 2017, pp. 1-5, doi: 10.1109/CISP-BMEI.2017.8302003.