• 『深度应用』一文搞懂深度学习人脸识别模型开发流程


    『深度应用』深度学习人脸识别模型开发与应用流程综述


    0. 概念简介

    度量学习(Metric Learning),也称距离度量学习(Distance Metric Learning,DML) 属于机器学习的一种。其本质就是相似度的学习,也可以认为距离学习。因为在一定条件下,相似度和距离可以相互转换。比如在空间坐标的两条向量,既可以用余弦相似度的大小,也可以使用欧式距离的远近来衡量相似程度。

    常见的人脸识别与声纹识别都属于度量学习。

    一般的度量学习包含以下步骤:

    1. Encoder编码模型:用于把原始数据编码为特征向量(重点如何训练模型
    2. 相似度判别算法:将一对特征向量进行相似度比对(重点如何计算相似度,阈值如何设定

    1.编码模型训练

    通过使用大量数据集进行网络模型训练。使编码模型可以实现对原始数据提取特征向量的功能。

    基于深度学习的度量学习算法中,可以分为两个流派:

    1. 网络设计派:代表孪生神经网络(Siamese network)
    2. 损失改进派:代表 xx-softmax

    本文主要讲整体开发流程,具体细节请自行查阅。

    通过对编码模型训练,得到了具备提取特征的encoder模型,让原始数据通过encoder模型就可以对应特征向量:

    X = Encoder(row)

    下面就是利用这个encoder模型,作为特征提取器,进行相似度判别。

    2.相似度判别算法

    在第一步(1.编码模型训练)完成后,获得了具备特征提取的编码模型,就可以利用此encoder网络进行验证系统开发。

    首先要对在第一步得到的编码模型进行性能测试。步骤如下:

    1. 使用测试数据生成测试对,需要保证尽量随机取对和正负数据平衡,同一种标签为1,不同种为0
    2. 使用编码模型得到所有特征向量
    3. 根据测试对的特征向量计算相似度,可选余弦距离度/欧式距离
    4. 根据测试对的相似度与标签,设置合理阈值范围,分辨率取0.0001,遍历阈值计算 FAR(错误接受率)FRR(错误拒绝率),两者相等得到EER(等错误概率),此时的阈值也是较优阈值。(也可以使用类似方法验证准确率)

    通过上述步骤就可以获得模型的识别性能和应用阈值。

    如若想提高阈值的泛化能力,可以采用测试与验证的方法计算阈值:

    1.  将测试对分为10组,用来确定阈值并验证精读。
    2. 使用其中1组,同种判断错误和不同种判定错误的个数。
    3. 选择错误个数最少的那个阈值,用剩余9组,判断识别精度。
    4. 步骤2和3执行10次,将每次3获取的精度进行累加并求平均,得到最终判定精度。记录下精度最高的那次的阈值,记为最优阈值

    References:

    1.https://blog.csdn.net/fuwenyan/article/details/74943248

  • 相关阅读:
    QML控件设置style样式
    QML:ListElement: cannot use script for property value
    内存更换乌龙事件
    服务器的寿命到底有多长
    这些年渠道管理系统上发生的那些事
    IT囧事之误删测试环境的生产库
    旁观一个软件产品的终结
    一根网线引发的血案
    论代码规范命名的重要性
    服务器故障之内存损坏
  • 原文地址:https://www.cnblogs.com/xiaosongshine/p/11062641.html
Copyright © 2020-2023  润新知