Applications of siamese networks
As we understood, a siamese network learns by finding similarity between two input values using identical architecture. It is one of the most commonly used few-shot learning algorithms among tasks that involve computing similarity between two entities. It is powerful and robust and serves as a solution for a low data problem.
In the first paper in which siamese networks were published (https://papers.nips.cc/paper/769-signature-verification-using-a-siamese-time-delay-neural-network.pdf), the author depicts the significance of the network for the signature verification task. The objective of the signature verification task is to identify the authenticity of the signature. So, the author trained the siamese networks with genuine and imposite pairs of signatures and used a convolutional network for extracting features from the signature. After extracting features, they measured the distance between two feature vectors for identifying the similarity. So, when a new signature comes in, we extract the features and compare them with the stored feature vector of the signer. If the distance is less than a certain threshold, then we accept the signature as authentic, or else we reject the signature.
Siamese networks are also used extensively in NLP tasks. There is an interesting paper (http://www.aclweb.org/anthology/W16-1617) where the authors used a siamese network for computing text similarity. They used siamese networks as bidirectional units and used cosine similarity as an energy function for computing the similarity between texts.
The applications of siamese networks are endless; they've been stacked with various architectures for performing various tasks such as human action recognition, scene change detection, and machine translation.