Siamese网络

Siamese网络是用来计算相似度的网络

输入:图像,矩阵,向量等

输出:向量

对于两个不同的输入X1, X2获取他们的输出Y1, Y2

通过计算Y1,Y2的欧氏距离或者他们的余弦相似度等方法取获取X1,X2的相似度

这个网络结构还是很清楚的,通过ROI_pooling等方法很容易就可以做到

那么Siamese网络的关键就在于训练了

训练

输入:(X1,X2,Y)

X1,X2表示一组输入,Y表示X1,X2是否为同一类 1为同一类, 0为不同类

将X1,X2 输入获得Y1, Y2

若X1,X2 为同一类,则Y1Y2 之间的距离越小越好,否则Y1, Y之间的距离越大越好

也就是说随着loss的减少 为同一类之间的距离要减小,不为同一类之间的距离要加大

那么就有如下的loss函数

距离计算的函数是可以替换的,可以替换成欧氏距离,余弦相似度都可以

原文地址:https://www.cnblogs.com/shensobaolibin/p/10542250.html