one-shot learningSiamese网络Triplet loss面部验证和二分类

Posted 劳埃德·福杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了one-shot learningSiamese网络Triplet loss面部验证和二分类相关的知识,希望对你有一定的参考价值。

目录

1.one-shot learning(一次学习)

one-shot learning就是对某一类别只提供一个或者少量的训练样本。

而很小的训练集不足以训练一个稳健的神经网络。

为了解决这个问题,需要首先训练一个 similarity function:d(img1,img2),用于表示两张图片的差异程度

d(img1,img2)<=,我们认为两张图一样(为设定的阈值)。

待识别图片分别和数据库中的人脸图片进行上述这样一个判断,就能达到人脸识别的效果。

2.Siamese网络

该神经网络定义了一个编码函数(encoding):,给定输入为的话。

如果图片是同一个人,d(img1,img2)=要尽可能得小

我们需要做的就是通过反向传播去不断调整网络的参数。

3.Triplet loss(三元组损失函数)

该函数的定义基于anchor、positive、negative三张图片(简写为A,P,N),A和P相像,A和N不相像。

定义loss 函数,α为间隔参数,>0(为了防止所有图像的f都是0向量)。

定义cost 函数,使用该成本函数进行梯度下降,来训练你的网络。

如何选择训练的三元组(A,P,N)?

如果随机选择的话,d(A,P)+α<=d(A,N)很容易满足,这样网络很难从中学到什么。

所以要选择那些难训练的(A,P,N),比如d(A,P)≈d(A,N)这种情况。

4.面部验证和二分类(face verification and binary classification)

将人脸验证转换为二分类问题。

输入一对图片,输入0或1。最后一个单元可以是逻辑回归单元。

人脸验证vs人脸识别:人脸验证是提供人脸图片和name/ID,判断是否一致。人脸识别是提供人脸图片,输出name/ID。

以上是关于one-shot learningSiamese网络Triplet loss面部验证和二分类的主要内容,如果未能解决你的问题,请参考以下文章

Understanding One-Shot NAS2018-ICML-Understanding and Simplifying One-Shot Architecture Search-论文阅

使用暹罗{(Xiānluó),泰国的旧称 one-shot} 网络进行人脸识别

实施 One-Shot Attention 示例

one-shot 检测算法YOLOSSD

人脸识别如何做到one-shot learning?(转)

单例(One-Shot) | 仅需一张查询样本,即可实现新类别的目标检测