人脸检测中Triplet Loss的训练

本文介绍了Triplet Loss在人脸识别中的应用,解释了其原理和公式,探讨了早期训练的挑战及Batch All和Batch Hard两种优化策略,强调了正确选择和处理训练数据对提高模型性能的重要性。
摘要由CSDN通过智能技术生成

Triplet loss 的理解,实现的大致步骤

Triplet loss 是在论文FaceNet中提出的,用于训练人脸识别和找出同一个人的不同角度、姿势、光线条件下的照片。为了达到这个目标,我们就需要一张ancor图片,即告知模型哪个人面是我们需要识别的或者说是需要找到与之类似的脸部图片,还需要一个positive图片,用于让模型去学习什么样的图片是与ancor类似的,及negative图片,去判断什么样的图片是不同的。而Triplet loss就是模型的损失函数,在机器学习中,判断相似性一般都是用距离来判断,两者的距离越近,则越相似,反之则越不相同。所以,Triplet loss函数,就希望ancor图片与 positive图片通过模型学习到的embedding向量间的距离越短越好,而ancor与negative之间的距离越远越好,并且,为了避免模型偷懒,Triplet loss加了一个Margin,这个类似于 SVM的正负样本间的最大间距。Triplet loss 公式如下:
Loss = max(||f(a) - f( p)||2- ||f(a) - f(n)||2 + Margin, 0)
其中,f(a),f(p ), f(n)表示的是通过模型学习到的三个图片的embedding 向量。

最开始Triplet loss的训练并不容易,它需要训练很长的时间才能收敛。因为最开始是将(ancor, positive, negative) 三张图片为一组,用三个共享weights的模型训练得到它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值