∣∣f(A)−f(P)∣∣2)是d(A,P),∣∣f(A)−f(N)∣∣2是d(A,N)
如果所有的图片都是零向量,即f(A)=0,f(P)=0,f(N)=0那么上述不等式也满足。但是对进行人脸识别没有任何作用,所以添加一个超参数α,且α>0,对上述不等式做出如下修改:
间隔参数α也被称为边界margin,类似于支持向量机中的margin,拉大了Anchor和Positive图片对和Anchor与Negative图片对之间的差距。若d(A,P)=0.5,α=0.2,则d(A,N)≥0.7
如果∣∣f(A)−f(P)∣∣2−∣∣f(A)−f(N)∣∣2+α≤0,最终会得到∣∣f(A)−f(P)∣∣2−∣∣f(A)−f(N)∣∣2+α,即正的损失值。通过最小化这个损失函数达到的效果就是使这部分∣∣f(A)−f(P)∣∣2−∣∣f(A)−f(N)∣∣2+α成为0,或者小于等于0
如何选择三元组来形成训练集:如果从训练集中随机地选择A、P和N,遵守A和P是同一个人,而A和N是不同的人这一原则。那么约束条件(d(A,P)+α≤d(A,N))很容易达到,因为随机选择的图片,A和N比A和P差别很大的概率很大,而且差距远大于α,这样网络并不能从中学到什么
想要所有的三元组都满足条件(d(A,P)+a≤d(A,N)),A、P和N的选择应使得d(A,P)很接近d(A,N),即d(A,P)≈d(A,N),这样学习算法会竭尽全力使右边式子变大(d(A,N)),或者使左边式子(d(A,P))变小,这样左右两边至少有一个α的间隔。并且选择这样的三元组还可以增加学习算法的计算效率