news 2026/4/18 13:31:05

人脸识别(吴恩达深度学习笔记)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
人脸识别(吴恩达深度学习笔记)

目录

1.人脸识别

(1)人脸验证 与 人脸识别

2.一次学习(One-shot learning)

(1)一次学习问题

(2)Similarity函数

3.Siamese网络

(1)概念

(2)原理

4.Triplet 三元组损失函数

(1)三元组损失函数

5.训练集构成

6.二分类问题的人脸验证

(1)原理

(2)总结


1.人脸识别
(1)人脸验证 与 人脸识别
  • 人脸验证:一张输入图片,以及某人的ID或者是名字,验证输入图片是否是这个人(一对一问题)

  • 人脸识别:有数据库存储很多人的数据,根据输入图片,识别图片是谁或识别不出(一对多问题)

  • 假设有一个验证系统,准确率是99%。如果你把这个验证系统应用在100个人的人脸识别上,犯错的机会就是100倍了。事实上,对于人脸识别,如果我们有一个100人的数据库,正确率可能需要远大于99%,才能得到很好的效果

2.一次学习(One-shot learning)
(1)一次学习问题
  • 一次学习问题:在大多数人脸识别应用中,往往需要通过一张图片或者一个人脸样例就能去识别这个人。
  • 而当深度学习只有一个训练样例时,它的表现并不好。
(2)Similarity函数
  • 如上图,假设数据库里有4张员工照片(,分别是Kian,Danielle,Younes和Tian。现在Danielle来到办公室,并且她想通过带有人脸识别系统的栅门,现在系统需要做的就是,仅仅通过一张已有的Danielle照片,来识别前面这个人确实是她。

  • 有一种办法是,将人的照片放进卷积神经网络中,使用softmax单元来输出5种,分别对应这4个人和都不是,但实际上这样效果并不好,因为如此小的训练集不足以去训练一个稳健的神经网络。

  • 要让人脸识别能够做到一次学习,为了能有更好的效果,我们要让神经网络学习Similarity函数(d(img1,img2))

  • d(img1,img2)输出为两张图片的差异程度,r为阈值

  • 当d ≤ r,认为是同一个人

  • 当d>r,认为不是同一个人

3.Siamese网络
(1)概念
  • 使用similarity函数:输入两张人脸图片,然后输出相似度。实现这个功能的一个方式就是用Siamese网络
  • 对于两个不同的输入,运行相同的卷积神经网络,然后比较它们,这一般叫做Siamese网络架构(Siamese neural network architecture)
(2)原理
  • 上图是常见的卷积网络,输入图片x(1),然后经过卷积层、池化层和全连接层,最终得到特征向量。假如f(x(1))有128个数,可以看成是图像x(1)的编码。
  • 如果要比较两个图片的话,把第二张图片x(2)喂给有同样参数的神经网络,然后得到一个不同的128维向量。
  • 接下来定义d,将x(1)和x^(2)的距离定义为这两种图片编码之差的范数:d(x1,x2)=‖f(x1) - f(x2) ‖²
4.Triplet 三元组损失函数
(1)三元组损失函数
  • 要通过学习神经网络的参数来得到优质的人脸图片编码,方法之一就是定义三元组损失函数(triplet loss function),然后应用梯度下降。

  • 为了应用三元组损失函数,你需要比较成对的图像。通常是看三个图片,一个 Anchor 图片,Positive图片,Negetive图片,通常把它们简写成A、P、N。

  • 让Anchor图片和Positive图片(Positive意味着是同一个人)的距离很接近;同时Anchor图片与Negative图片(Negative意味着是非同一个人)的距离远一点。这就是为什么叫做三元组损失。

  • 我们需要满足‖f(A) - f(P)‖² ≤ ‖f(A) - f(N)‖²,为了减小这个等式相等的概率,或者为了拉大Anchor和Positive 图片组与Anchor与Negative 图片组之间的差距,我们一般加一个参数α(也叫margin),使等式变为‖f(A) - f(P)‖² - ‖f(A) - f(N)‖² +α ≤ 0

  • 定义损失函数:三元组损失函数的定义基于三张图片,即anchor样本、positive样本和negative样本,其中positive图片和anchor图片是同一个人,但是negative图片和anchor不是同一个人。

  • 三元组损失函数:L(A, P, N)=max(‖f(A) - f(P)‖² - ‖f(A) - f(N)‖² +α,0)

  • 我们要尽可能让损失函数小,max可以使损失函数为正,当‖f(A) - f(P)‖² - ‖f(A) - f(N)‖² +α<0的时候模型训练效果就不错了,所以用max取0,但当‖f(A) - f(P)‖² - ‖f(A) - f(N)‖² +α>0时,说明模型还有优化空间,损失函数还可以继续减小趋于0。

  • 整个网络的成本函数J应该是训练集中这些单个三元组损失的总和。假如你有一个10000个图片的训练集,里面是1000个不同的人的照片,你要做的就是取这10000个图片,然后生成这样的三元组,然后训练你的学习算法,对这种代价函数用梯度下降。

5.训练集构成
  • 为了训练你的系统你确实需要一个数据集,里面有同一个人的多个照片。如果你只有每个人一张照片,那么根本没法训练这个系统。对于训练集,你需要确保有同一个人的多个图片。
  • 随机地选择A、P和N,遵守A和P是同一个人,而A和N是不同的人这一原则,很容易满足,因为A和N比A和P差别很大的概率很大,这样网络很难从中学到什么。所以要尽可能的选择难训练的A、P和N,使得d(A,P)≈d(A,N)
6.二分类问题的人脸验证
(1)原理
  • 除了Triplet loss,将人脸识别当成一个二分类问题也是一个学习参数、训练网络的方法。
  • 上图,选取Siamese网络,输入两张图片,然后进行预测,如果是相同的人,那么输出是1,若是不同的人,输出是0。
  • 最后的逻辑回归单元主要处理编码之间的差异,比如:
  • 划线部分也可以卡方公式来代替,如图中所示(卡方平方相似度)
(2)总结
  • 如上图,把人脸验证当作一个监督学习,创建一个只有成对图片的训练集,输入不是三元组,而是成对的图片,目标标签是1表示一对图片是一个人,0表示图片中是不同的人。利用不同的成对图片,使用反向传播算法去训练神经网络,训练Siamese神经网络。处理人脸验证和人脸识别扩展为二分类问题,效果也很好。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:04:40

LeagueAkari智能辅助完全手册:英雄联盟游戏体验终极优化指南

LeagueAkari智能辅助完全手册:英雄联盟游戏体验终极优化指南 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 作…

作者头像 李华
网站建设 2026/4/18 11:04:36

DLSS指示器完整指南:3分钟快速开启与性能优化秘诀

DLSS指示器完整指南:3分钟快速开启与性能优化秘诀 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS指示器是NVIDIA DLSS技术的重要调试工具,通过DLSS Swapper软件可以轻松启用,让…

作者头像 李华
网站建设 2026/4/18 11:05:47

Blender MMD Tools插件安装指南:3步解决版本兼容性难题

Blender MMD Tools插件安装指南:3步解决版本兼容性难题 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools …

作者头像 李华
网站建设 2026/4/18 2:03:25

零代码体验:BGE-M3 WebUI一键分析文本相似度

零代码体验:BGE-M3 WebUI一键分析文本相似度 1. 项目背景与核心价值 在当前AI应用快速落地的背景下,语义理解能力已成为构建智能系统的核心基础。特别是在检索增强生成(RAG)、知识库问答、推荐系统等场景中,如何准确…

作者头像 李华
网站建设 2026/4/18 3:47:49

LeagueAkari英雄联盟辅助工具完全攻略:从菜鸟到大神的终极指南

LeagueAkari英雄联盟辅助工具完全攻略:从菜鸟到大神的终极指南 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari …

作者头像 李华
网站建设 2026/4/18 3:51:01

bge-large-zh-v1.5实战项目:构建个性化推荐系统

bge-large-zh-v1.5实战项目:构建个性化推荐系统 1. 引言 在当前信息过载的互联网环境中,个性化推荐系统已成为提升用户体验、增强用户粘性的核心技术之一。传统的协同过滤方法虽然有效,但在冷启动和语义理解方面存在明显短板。随着深度学习…

作者头像 李华