人脸识别正则化系列之normface

2023-11-17

今天介绍一下NormFace: L2 Hypersphere Embedding for Face Verification

Motivation

希望利用正则化解决两个问题:1. 人脸识别任务里面的loss有softmax、contrastive、triplet、pairwise等等,其中softmax是单个样本输入就可以训练的,其他的都是需要sample的,尤其是metric-learning每次要sample 3个样本才能算出一个loss,这会导致采样空间为N^3,速度慢而且采样策略对训练结果影响很大;2. softmax本身优化的是没有归一化的内积结果,但是最后在预测的时候使用的一般是cosine距离或者欧式距离,这会导致优化目标和最终的距离度量其实并不一致。我们之前做的时候用softmax训练做pretrain,然后后面用欧式距离的metric-learning做进一步学习或者finetune其实也是不大合理的,用一个欧式距离优化目标去finetune一个内积空间最优的模型应该不容易得到好的效果。

基本原理

既然最后在特征对比的时候使用归一化的cosine距离,那么就在训练的时候也把feature做归一化处理,即
,其中e是为了防止除0的较小正数。
对应的BP求导公式:
为了解释一下为什么需要normalize,作者还做了比较漂亮的数学推导并给出了可视化的结果。softmax loss倾向于学习到一个radial分布的特征,其原因在于特征的scale越大就会使得softmax的loss越小,figure.3里面是softmax之前的fc有bias的情况下会使得有些
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

人脸识别正则化系列之normface 的相关文章

随机推荐

  • DDR的VTT有源端接和无源端接(slua886a笔记)

    DDR的VTT有源端接和无源端接 slua886a笔记 背景 对于DDR的VTT端接 一直有说法是有源端接可降低功耗 之前一直没仔细理解其中原因 现在找了些相关的资料来介绍和对比有源和无源端接 理解有源端接的优点和降低功耗的原理 主要基于读
  • 微信小程序之模版的使用(template)

    WXML提供模板 template 可以在模板中定义代码片段 然后在不同的地方调用 分为两部分 定义模板和使用模板 1 定义模板 使用 name 属性 作为模板的名字 然后在
  • python散点图圆形区域_python – Matplotlib;散点图标记,圆内点

    我正在使用Matplotlib散点绘图仪进行绘图 对于标记 我理想地喜欢内部有圆点的圆形轮廓 外圆圈清楚地表明那里有东西 然后点更精确 我可以实现这个 如果我只是绘制两次 一次用轮廓然后再用点 但那时我的传说是不正确的 所以我的问题是 有什
  • 划分训练集、验证集和测试集代码

    输入需要划分的数据所在的文件夹 返回一个划分好的包含train val和test的文件夹 val ratio 和test ratio分别为验证集和测试集所占的比例 test ratio 0表示不划分测试集 import os import
  • Java - Stream流详解

    目录 前言 一 Stream流是什么 二 流的分类 顺序流 并行流 区别 三 获取流的常用方式 1 通过集合获取流 2 通过数组获取流 3 通过Stream of 方法获取流 四 常用方法用法 1 filter Predicate pred
  • 线性代数 - 特征向量和特征值

    今天在看到这个马汉诺拉距离的时候 又看到了这个东西 就是利用特征值来进行协方差方向上的伸缩 突然感觉到了线性代数的作用了 但是实际上 我今天看到了非常多的内容 但是都没有吸收完 很多内容都是线性代数的东西 但是这些东西我都忘了 这里先挖个坑
  • Java8 stream对List<Map<String,Object>>常用的数据处理

    java 8 在推出stream 之后 对于集合等数据的处理用了就回不去了 在此处做个笔记 查数据 List
  • 数据库出现“评估期已过”问题怎么解决?

    问题 SQL server 2012年版 打开SQL Server时 出现问题 评估期已过 有关如何升级您的测试版软件的信息 请访问http www microsoft com sql howtobuy 问题原因 SQL Server安装时
  • Android Automotive概述

    Android开发者的新赛道 在智能手机行业初兴起时 包括BAT在内许多传统互联网企业都曾布局手机产业 但是随着手机市场的基本定型 造车似乎又成了各大资本下一个追逐的方向 百度 小米先后宣布造车 阿里巴巴则与上汽集团共同投资创立了 面向汽车
  • threejs-纹理贴图

    前言 threejs中的纹理贴图使用方法 参考 threejs开发指南 文章目录 前言 纹理的基本使用 纹理的常用属性 常用纹理的种类 1 普通贴图map 2 凹凸贴图bumpMap 3 法线贴图normalMap 4 位移贴图displa
  • 大数据量JSONObject.fromObject性能问题(大数据传给前台)

    最近项目中我负责了一个jms打印log信息的功能模块 大体需求是 用jms接受log信息 然后前台请求的时候 发给前台最新的log信息 前台会不断的刷新获取数据 个人思路是写一个静态的固定长度的list保存log信息 如果list满了清空
  • 通信端口感叹号_PCI简易通讯控制器有黄色感叹号怎么办?

    近日有网友新安装了Win7系统 安装完成后感觉电脑都顺畅了很多 不过在打开设备管理器的时候发现 在其他设备下的PCI简易通讯控制器有个黄色感叹号 出现这个感叹号也意味着这个控制器的驱动未安装 对此我们该如何解决呢 解决方法 1 打开设备管理
  • android 功能模块之通讯模块三

    Android通讯录开发之解决快速搜索联系人线程同步问题 2013年1月13日 上一篇博客介绍的是如何实现搜索 在PhoneUtil中已经定义好了search方法 开发者直接拿来用就ok了 但用的时候肯定会遇到线程同步问题 如何解决搜索的时
  • 区块链节点和网络的实现

    文章目录 1 介绍 1 1 区块链的基本概念回顾 1 2 区块链节点的作用和重要性 1 3 区块链网络的组成和结构 2 实现区块链节点 2 1 节点的角色和功能 2 2 使用Python创建区块链节点 2 3 定义区块和区块链数据结构 2
  • linux 内核笔记之watchdog

    watchdog 简而言之 watchdog是为了保证系统正常运行 或者从死循环 死锁等一场状态退出的一种机制 看门狗分硬件看门狗和软件看门狗 硬件看门狗是利用一个定时器电路 其定时输出连接到电路的复位端 程序在一定时间范围内对定时器清零
  • Vscode中JS输出乱码问题的解决

    一直很好用vscode突然不好用了 原来输出正常的JS代码在输出中都是乱码 于是上网查答案 试了很多奇奇怪怪的答案 然而没有一款能够解决我这个问题 仔细琢磨 既然以前好用 现在不好用 应该是某个电脑操作 误伤 友军 VScode执行代码原理
  • 五、Linux系统中的用户管理

    五 Linux系统中的用户管理 5 1 用户及用户组存在的意义 5 1 1 用户存在的意义 系统资源是有限的 如何合理分配系统资源 在这个问题解决时必须要有连个资源配合 1 身份 account 2 授权author 3 认证auth 3A
  • JS算法--整数反转

    1 需求介绍 给出一个 32 位的有符号整数 需要将这个整数中每位上的数字进行反转 注意 假设我们的环境只能存储得下 32 位的有符号整数 则其数值范围为 231 231 1 请根据这个假设 如果反转后整数溢出那么就返回 0 反转什么鬼 举
  • matlab 生成不重复的随机整数 打乱数据排列 生成深度学习数据集

    Matlab自带函数randperm n 可以产生1到n的整数的无重复的随机排列 利用它就可以得到无重复的随机数 例如 randperm n 产生一个1到n的随机顺序 gt gt randperm 10 ans 6 4 8 9 3 5 7
  • 人脸识别正则化系列之normface

    今天介绍一下NormFace L2 Hypersphere Embedding for Face Verification Motivation 希望利用正则化解决两个问题 1 人脸识别任务里面的loss有softmax contrasti