深度学习-孪生网络

Siamese network 孪生神经网络--一个简单神奇的结构(入门)

https://zhuanlan.zhihu.com/p/35040994

对上面的博客的添加笔记版

https://www.cnblogs.com/Lee-yl/p/10113386.html

对上面网友的笔记的部分解读:

5、Siamese network 的损失函数:

Softmax当然是一种好的选择,但不一定是最优选择,即使是在分类问题中。【分类问题用交叉熵】

传统的siamese network使用Contrastive Loss【对比损失函数】。

对比损失函数如下:

  • 其中Dw被定义为姐妹孪生网络的输出之间的欧氏距离。Dw欧式距离公式如下:

  • 其中Gw是其中一个姐妹网络的输出。X1和X2是输入数据对。
  • Y值为1或0。如果模型预测输入是相似的,那么Y的值为0,否则Y为1。
  • max()是表示0和m-Dw之间较大值的函数。
  • m是大于0的边际价值(margin value)。有一个边际价值表示超出该边际价值的不同对不会造成损失。这是有道理的,因为你只希望基于实际不相似对来优化网络,但网络认为是相当相似的。

我们可以这样理解,Dw是两个网络输出的差值,当输入的数据不相似,Y=0,那么损失函数只看左边,右边为零。网络之间的差值即是loss,然后调整网络权重。当输入数据相似,Y=1,损失函数看右边,左边为零。然后看到这个max{0,m-Dw}^2,损失值只会是正数,如果相似的数据的差值很大,就是你设定m=5,然后Dw为100,相似的图片之间的差别太大,但不应让网络因为相似数据的巨大差别而调整网络权重,学习差异。这个m边际价值在这里的作用就是忽略相似图片的巨大差异。

发布了65 篇原创文章 · 获赞 8 · 访问量 8160

猜你喜欢

转载自blog.csdn.net/qq_25799253/article/details/103872017