一、triplet loss 原理
triplet:一个三元组,这个三元组是这样构成的:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor (记为x_a)属于同一类的样本和不同类的样本,这两个样本对应的称为Positive (记为x_p)和Negative (记为x_n),由此构成一个三元组。
triplet loss:针对三元组中的每个元素(样本),训练一个参数共享或者不共享的网络,得到三个元素的特征表达,分别记为:f(x_a)、f(x_p)、f(x_n)。通过学习,让x_a和x_p特征表达之间的距离尽可能小,而x_a和x_n的特征表达之间的距离尽可能大,并且要让x_a与x_n之间的距离和x_a与x_p之间的距离之间有一个最小的间隔
。
目标函数:距离用欧式距离度量,+表示[]内的值大于零的时候,取该值为损失,小于零的时候,损失为零。
二、triplet loss 实现
1、caffe中triplet loss layer的实现
http://blog.youkuaiyun.com/tangwei2014/article/details/46812153
2、视频应用
https://github.com/xiaolonw/caffe-video_triplet
本文详细介绍了Triplet Loss的工作原理,并提供了在Caffe中实现Triplet Loss Layer的步骤,帮助读者深入理解这一深度学习中的关键损失函数。
773

被折叠的 条评论
为什么被折叠?



