Siamese Networks
- 0 Collaborators
Using Neural Network for One-Shot classification ...learn more
Project status: Published/In Market
Overview / Usage
Siamese-Networks is an architecture from more then 20 years ago, originally designed to solve the one shot classification problem (see https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf for details). In the one shot classification we get some training data (i.e some classified images) but in test time we get new images from new classes which we want to distinguish. The intuition to why we should believe it is possible to generalize a whole class from just one object is the ability of humans to do so.
Methodology / Approach
Siamese-Networks are a way to deal with this problem - given 2 objects, we pass them through identical networks to get some features vector, we then say those objects are from the same class if the feature vectors are similar (have distance smaller than some threshold).
In my work I used the standard dataset for this problem, Omniglot, which contains 1623 different handwritten characters from 50 different alphabets, each of the 1623 characters was drawn online by 20 different people. In the problem we allowed to use only 30 alphabets for training and validating, leaving our test data to be 20 characters. In the harder case we allowed only 5 alphabets.
Technologies Used
I developed this project in python using the pytorch library