【论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering

FaceNet: A Unified Embedding for Face Recognition and Clustering
https://www.sentiance.com/2018/05/03/loc2vec-learning-location-embeddings-w-triplet-loss-networks/
本篇主要是用于人脸识别的“三重损失”——triplet,博客中的例子也用到三重损失,所以简单整理一下

本文将人脸“图片”以粗匹配组和不匹配组组成“三元组”样本,通过“深度卷积网络”嵌入到128维的欧式空间中,使人脸图片可欧式距离度量,实现人脸识别(KNN)、验证和聚类(K-means)任务。

通常人脸识别问题用CNN训练,PCA降维,SVM分类

这里写图片描述

triplet loss

  • 三重损失的思想在于在嵌入空间中,使Anchor样本和Positive样本尽可能近、与Negative样本尽可能远,其中 α α 是强制约束正负样本对之间的最小距离, []+ [ ] + 表示max(0,value)

    xai(anchor);xpi(positive);xni(negative) x i a ( a n c h o r ) ; x i p ( p o s i t i v e ) ; x i n ( n e g a t i v e )

    f(xai)f(xpi)22+α<f(xai)f(xni)22 ‖ f ( x i a ) − f ( x i p ) ‖ 2 2 + α < ‖ f ( x i a ) − f ( x i n ) ‖ 2 2

    所以,损失即最小化
    L=iN[f(xai)f(xpi)22f(xai)f(xni)22+α]+ L = ∑ i N [ ‖ f ( x i a ) − f ( x i p ) ‖ 2 2 − ‖ f ( x i a ) − f ( x i n ) ‖ 2 2 + α ] +

  • 本文中在每个mini-batch中采样了40张脸,并随机采样负样本
    选择难区分的正负样本可以更快收敛,但也容易陷入局部最优,本文随机选择了较多的半难的样本

  • 对于好判断的样本,损失为负,所以损失设置最小值为0,即[]+;对于难判断的样本,一般损失为正;对于略高于正样本的负样本,为了有效学习,添加间隔 α α ,也是期望anchor和positive的距离要比anchor和negative距离多至少 α α 间隔,则正负样本不会挨得很近。


(盗了个图)

  • 本文中每个batch用了1800样本,AdaGrad,初始学习率0.05,随机初始化模型, α=0.2 α = 0.2

https://zhuanlan.zhihu.com/p/35560666
easy triplets(简单三元组): triplet对应的损失为0的三元组

d(a,n)>d(a,p)+margin d ( a , n ) > d ( a , p ) + m a r g i n

hard triplets(困难三元组): negative example 与anchor距离小于anchor与positive example的距离
d(a,n)<d(a,p) d ( a , n ) < d ( a , p )

semi-hard triplets(一般三元组): negative example 与anchor距离大于anchor与positive example的距离,但还不至于使得loss为0,
d(a,p)<d(a,n)<d(a,p)+margin d ( a , p ) < d ( a , n ) < d ( a , p ) + m a r g i n

softPN

这个主要参考了loc2vec的博客,里面除了三重损失外,引用了该损失函数(大概思路,具体见博客)

三重损失的主要思想是

d(a,p)<d(a,n) d ( a , p ) < d ( a , n )

对于难分离的负样本,通过添加偏置要求到正负样本间有一定距离
d(a,p)+margin<d(a,n) d ( a , p ) + m a r g i n < d ( a , n )

有可能导致a和p,n都很远的情况,因此考虑np的距离,实现的d(a,n)和d(n,p)都比较大
d(a,p)<min(d(a,n),d(n,p)) d ( a , p ) < m i n ( d ( a , n ) , d ( n , p ) )

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值