神经网络只需要学习一个函数d
d(img1, img2) = degree of difference between imags
d将输出两张图片的差异,如果有新人加入,则不需要重新训练网络,只需要用新人的照片与数据库中的去作比较
如果输出的差异小于某个阈值,则判断为是同一个人
Siamese network
输入是一张图片,输出是一个向量,这个向量就代表了这个图片,且向量为函数d 的输入
通过将两张图片的向量输入的函数d,就能算出两者的差异
因此,只需训练一个统一的网络用以输出向量即可
三元组损失
一个有很多组的数据集,其中每一组是有三张图片,分别用A P N表示
其中A和P是同一个人
训练的目的就是使|f(A) - f(P)|^2 - |f(A) - f(N)|^2 + k <= 0, k是一个超参数,目的是让同一个人图片与不同人图片的差异尽量大
规范化式子为 max(|f(A) - f(P)|^2 - |f(A) - f(N)|^2 + k, 0) 即使式子接近或等于0