吴恩达老师深度学习视频课笔记:人脸识别

2023-11-01

        什么是人脸识别:人脸验证和人脸识别的区别,如下图:


        One-shot learning:人脸识别所面临的挑战就是需要解决一次学习(one-shot learning)问题。这意味着在绝大多数人脸识别应用中你需要通过单单一张图像或者单单一个人脸图像就能去识别这个人,因为大多数人脸识别系统中每个人可能只有一张图像。要让人脸识别能够做到一次学习,需要做的是学习相似(similarity)函数,如下图,输入两张图像然后输出两张图像的差异值。在识别过程中,如果两张图像的差异值小于某个阈值τ(是一个超参数),那么这时就能预测两张图像是同一个人,如果差异值大于τ,就能预测这是不同的两个人。这是解决人脸验证问题的一个可行办法。


        Siamese网络:学习相似函数的一个方式是用Siamese网络,如下图,输入图像x1,然后通过一系列卷积、池化和全连接层,最终得到特征向量,假如它的长度为128,图像编码。假如你要比较两张图像的话,例如这里的第一张和第二张图像,你需要做的就是将第二张图像输入到有同样参数的同样的神经网络,然后得到一个不同的128维向量。然后你需要定义这两种图像的距离d,可把d看作距离函数,即范数来计算它们的差值,这一般被称为Siamese神经网络架构。如DeepFace系统。


        Triplet loss:要想通过学习神经网络的参数来得到优质的人脸图像编码,一个方法就是定义三元组损失函数(triplet loss function)然后应用梯度下降。为了应用三元组损失函数,你需要比较成对的图像,如下图,看一个anchor图像和一个positive图像距离很接近;看一个anchor图像和一个negative图像距离很远。三元组损失代表你通常会同时看三张图像。你想要的网络的参数或编码能够满足以下特性:‖||f(A)-f(P)||2+α≤‖||f(A)-f(N)||2, α也是超参数。为了确保网络对于所有的编码不会总是输出0,也为了确保它不会把所有的编码都设成互相相等的,需要一个α。


        三元组损失函数的定义基于三张图像A、P、N,如下图,L(A,P,N)=max(||f(A)-f(P)||2-||f(A)-f(N)||2+α, 0),最小化损失函数L(A,P,N)。代价函数(cost function)是训练集中单个三元组损失的总和。训练学习算法,对代价函数应用梯度下降。为了定义三元组的数据集,需要成对的A和P。为了构建训练集,尽可能选择难训练(hard to train)的三元组A、P、N,即所有的三元组都满足条件:d(A, P)+ α≤d(A,N)并且d(A,P)≈d(A,N),不能随机地选择三元组。


    Face verification and binary classification:将人类识别当成一个二分类问题,可以选取Siamese网络,如下图,使其同时计算比如128维的向量,然后将其输入到逻辑回归单元,然后进行预测,如果是相同的人,输出为1,若是不同的人输出为0,这就把人脸识别问题转换成一个二分类问题。训练这种系统时,可以替换triplet loss的方法。


        GitHubhttps://github.com/fengbingchun/NN_Test 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

吴恩达老师深度学习视频课笔记:人脸识别 的相关文章

  • 深度学习知识体系学习大全 牛!!

    搬来了大牛的博客 点击直接前往 https www yuque com angsweet machine learning jian jie 配一张大牛的思维导图 具体内容点进去都能看到 数学 机器学习 语言 算法 深度学习 书籍推荐 东西
  • 序列模型——自然语言处理与词嵌入(理论部分)

    1 词汇表征 深度学习已经给自然语言处理 Natural Language Process NLP 带来革命性的变革 其中一个很关键的概念是词嵌入 word embedding 这是语言表示的一种方式 可以让算法自动的了解一些类似的词 例如
  • 3D人体重建方法漫谈

    转自 https blog csdn net Asimov Liu article details 96442990 1 概述 2 模型匹配的方法 2 1SMPL Skinned Multi Person Linear model 模型 2
  • word2vector学习笔记(一)

    word2vector学习笔记 一 最近研究了一下google的开源项目word2vector http code google com p word2vec 其实这玩意算是神经网络在文本挖掘的一项成功应用 本文是看了论文 Distribu
  • 朴素贝叶斯分类器简介及C++实现(性别分类)

    贝叶斯分类器是一种基于贝叶斯定理的简单概率分类器 在机器学习中 朴素贝叶斯分类器是一系列以假设特征之间强 朴素 独立下运用贝叶斯定理为基础的简单概率分类器 朴素贝叶斯是文本分类的一种热门 基准 方法 文本分类是以词频为特征判断文件所属类别或
  • 深度学习论文:Deep Residual Learning for Image Recognition

    论文 He Kaiming et al Deep residual learning for image recognition Proceedings of the IEEE conference on computer vision a
  • 深度神经网络中的Inception模块介绍

    深度神经网络 Deep Neural Networks DNN 或深度卷积网络中的Inception模块是由Google的Christian Szegedy等人提出 包括Inception v1 Inception v2 Inception
  • libsvm库简介及使用

    libsvm是基于支持向量机 support vector machine SVM 实现的开源库 由台湾大学林智仁 Chih Jen Lin 教授等开发 它主要用于分类 支持二分类和多分类 和回归 它的License是BSD 3 Claus
  • Tensorflow错误InvalidArgumentError see above for traceback): No OpKernel was registered to support Op

    调用tensorflow gpu运行错误 错误信息如下 2023 06 21 15 36 14 007389 I tensorflow core platform cpu feature guard cc 141 Your CPU supp
  • pytorch 入门 DenseNet

    知识点0 dense block的结构 知识点1 定义dense block 知识点2 定义DenseNet的主体 知识点3 add module 知识点 densenet是由 多个这种结构串联而成的 import torch import
  • Transformer——《Attention is all you need》

    本文是Google 机器翻译团队在2017 年发表 提出了一个新的简单的网络模型 Transformer 该模型基于纯注意力机制 Attention mechanisms 完全抛弃了RNN和CNN网络结构 在机器翻译任务上取得了很好的效果
  • Dilated Conv and Deformable Conv. 空洞卷积和可变形卷积

    空洞卷积论文地址 https arxiv org pdf 1511 07122 pdf 可变形卷积论文地址 https arxiv org pdf 1703 06211 pdf 之前一直知道这两个方法 一直没时间看论文和实现 后面碰到越来越
  • 深度学习中的验证集和超参数简介

    大多数机器学习算法都有超参数 可以设置来控制算法行为 超参数的值不是通过学习算法本身学习出来的 尽管我们可以设计一个嵌套的学习过程 一个学习算法为另一个学习算法学出最优超参数 在多项式回归示例中 有一个超参数 多项式的次数 作为容量超参数
  • cs231n: How to Train a Neuron Network 如何训练神经网络

    CS231N第六第七课时的一些笔记 如何训练神经网络是一个比较琐碎的事情 所以整理了一下 以后训练Neuron Network的时候可以看一下 Activation Functions ReLu good ELU leaky ReLu no
  • 16个车辆信息检测数据集收集汇总(简介及链接)

    16个车辆信息检测数据集收集汇总 简介及链接 目录 1 UA DETRAC 2 BDD100K 自动驾驶数据集 3 综合汽车 CompCars 数据集 4 Stanford Cars Dataset 5 OpenData V11 0 车辆重
  • 决策树(Decision Tree)简介

    决策树 Decision Tree 及其变种是另一类将输入空间分成不同的区域 每个区域有独立参数的算法 决策树分类算法是一种基于实例的归纳学习方法 它能从给定的无序的训练样本中 提炼出树型的分类模型 树中的每个非叶子节点记录了使用哪个特征来
  • 深度学习中的优化算法之AdaGrad

    之前在https blog csdn net fengbingchun article details 123955067 介绍过SGD Mini Batch Gradient Descent MBGD 有时提到SGD的时候 其实指的是MB
  • 【深度学习】模型评价指标

    一 分类任务 分类任务一般有二分类 多分类和多标签分类 多分类 表示分类任务中有多个类别 但是对于每个样本有且仅有一个标签 例如一张动物图片 它只可能是猫 狗 虎等中的一种标签 二分类特指分类任务中只有两个类别 多标签 一个样本可以有多个标
  • OpenFace库(Tadas Baltrusaitis)中基于HOG进行正脸人脸检测的测试代码

    Tadas Baltrusaitis的OpenFace是一个开源的面部行为分析工具 它的源码可以从https github com TadasBaltrusaitis OpenFace下载 OpenFace主要包括面部关键点检测 facia
  • CATransform3D 可以用来获取 Face Mesh 中的眼睛尺寸吗?

    我正在尝试使用 ARKit 的 3D Face Mesh 获取眼睛的宽度和 2 只眼睛的距离 我用过CA变换3D of ARAnchor struct CATransform3D CGFloat m11 m12 m13 m14 CGFloa

随机推荐