Siamese network 训练神经网络存在两种形式:
第一种:通过Siamese network 和 三元组损失函数 来训练图片之间的间隔
第二种: 通过Siamese network 和 sigmoid函数来实现二分类的训练
第一种情况:
在最后一层使用得是128, 1,
d(x(1), x(2)) = abs(f(x(1) - f(x(2)) 通过对每个维度相减求平方
三元组损失函数
选取目标人物图片和相同人物图片,以及一张不同人物图片。构成两组距离
训练得过程中,使得abs(f(A)- f(P))^ 2+ α < abs(f(A) - f(N)) ^ 2
loss(A, P, N) = max(abs(f(A)- f(P))^ 2 - abs(f(A) - f(N)) ^ 2 + α , 0)
在训练时候,一个人至少需要10张图
为了使得训练得时候更加得有难度,我们在挑选图片得时候尽量使得d(A, P)约等于 d(A, N)
第二种方式:
通过Siamese network + sigmoid函数来实现最终得判别
通过两个图片128维得向量,相减,即求X^2, 进行一次全连接操作,输出结果,根据loss进行训练.