<p>My advice is to train your model using either of these two techniques:</p>
<ul>
<li><strong>Metric Learning:</strong> use siamese or triplet networks to compare images with each other. If your dataset is small it is a good option. <a href="https://arxiv.org/abs/1503.03832" rel="nofollow noreferrer">https://arxiv.org/abs/1503.03832</a></li>
<li><strong>Use center loss + softmax:</strong> Present the problem as a classification and train. <a href="https://ydwen.github.io/papers/WenECCV16.pdf" rel="nofollow noreferrer">https://ydwen.github.io/papers/WenECCV16.pdf</a></li>
</ul>
<p>Finally, you should think that you are not going to keep that model, but that you are only going to use it as a feature extractor. In other words, the models will be very good at extracting facial information, not classified (that will not be their task).</p>
<p>Later you fix that model and you can do different things:</p>
<ul>
<li><p><strong>Directly use a distance</strong> as the cosine to identify the closest face with respect to a dataset (it works if you don't require an extremely certain accuracy ). You directly use KNN between the features of your face and your entire database and consider the recognition as the closest face.</p>
</li>
<li><p>You train an additional model that uses the features of the previous one. You can use a neural network again, but in this case my suggestion is to use an SVM (since SVM models as LASVM is an approximation of learning online). Thus, they only have to train a small classifier every so often. <a href="https://machinelearningmastery.com/how-to-develop-a-face-recognition-system-using-facenet-in-keras-and-an-svm-classifier/" rel="nofollow noreferrer">https://machinelearningmastery.com/how-to-develop-a-face-recognition-system-using-facenet-in-keras-and-an-svm-classifier/</a></p>
</li>
</ul>
Incremental learning in facial recognition
<p>I am trying to implement incremental/online learning for a face recognition application. I've trained a model on a dataset and it works perfectly fine, however, I need to capture new faces(classes) over time and add them to the existing dataset. Is there any way that I can train the model with new classes without retraining from the scratch?</p>
<p>I've not found any rich resources so far and really appreciated if anyone can point me out somewhere.</p>