小模型学习(1)-人脸识别

        

【写作背景】因为最近一直在研究大模型,在与客户进行交流时,如果要将大模型的变革性能力讲清楚,就一定要能将AI小模型的一些原理和效果讲清楚,进而形成对比。当然这不是一件简单的事情,一方面大模型分析问题的的本质原理业界依然无法清楚解释,另外一方面理解AI小模型原理本身也有一定门槛,但是我认为必须得试图去理解这些问题。这个背景下,我找出了多年前买的一本《刷脸背后》的书籍重新学习,试图从人脸识别这个场景去理解AI小模型处理问题的思路,进而找出大模型更好的解释之道。

        人脸识别包括三个基本步骤:

        第一步:从图像中检索人脸边框,所用的是人脸检测技术。而人脸检测技术有多种,可以基于肤色的,也可以基于人脸特征点(如眼睛)的方法,等等。

        人脸检测算法主要有DPM、LAEO、Viola&Jones算法,这些算法基本也是通过有标注的图像训练而来;也有基于深度学习的人脸检测算法,如CNN Facial Point Detection人脸检测算法,DDFD人脸检测算法,以及多种算法的混合应用。(类似与当前大模型的MOE,混合专家模型)

        【意外发现,DDFD人脸检测算法是基于基于Alexnet进行微调改造而来的神经网络模型,而Alexnet作为一种深度卷积神经网络模型,其创始人居然是Alex Krizhevsky , Ilya Sutskever and Geoffrey Hinton。Ilya Sutskever 是谁?就是当前火爆的 OpenAI 的联合创始人兼首席科学家,最近联合董事会开除了OPEN AI CEO Sam Altman; Geoffrey Hinton就更厉害了,扫地僧,Ilya Sutskever 的博导)

        第二步:是人脸区域的特征提取。根据算法原理和关注点的不同,人脸特征可以有很多种。深度学习特征是一种特征;还有Gabor,SIFT、HOG等多种特征提取方法。通过PCA、LDA等特征降维的方法得到特征,也可以作为人脸的特征;人脸面部的特征点信息,可以选取5个特征点(双眼中心、鼻子、两个嘴角),或2个特征点(包括眉梢、鼻端、下巴、双眼中心、鼻子、两个嘴角等信息),或30个乃至更多的特征点,每个特征点的位置和像素都可以用于表征人脸的特征。学术界已经有人脸特征点自动定位算法。 人脸特征提取方法,以及最后所使用的特征,对人脸识别的准确度具有关键作用。

        第三步:是训练识别人脸特征与人的标签对应关系的分类模型。经过第二步,训练图像集中每个图像都可以用一个特征向量来表示(如一个4096维的特征向量),最后加上该图像的标签(表示是那个人的人脸)。一个图像对应一行类似与上面所属的记录,如果有m个训练图像,就得到m行这样的记录矩阵。然后,在该矩阵上,使用SVM,KNN,SOFTMAX regression,Logistic regression等方法训练分类模型。利用最后得到的模型,预测测试图像中每个图像对应的人的标签。

        思考:上面人脸识别的三个步骤,可以简单理解为先通过少量特征点找到人脸,然后通过算法提取每个人脸的特征,并用一组特征向量表示,且每个特征向量后面增加一个该人的姓名。比如

【A1,A2,A3,A4,A5,小明】,

如果有m个测试集,就会有一个行的矩阵,就类似构建了数据库,接下来就是使用该数据库。如何使用?把人脸输入,通过特征提取算法提取该人脸的特征向量,然后通过计算与之前构建数据库(就是那个m行的大矩阵)的欧式距离或者余弦相似度,从而找到输入的人脸是谁。

        可以发现,人脸识别的认证,首先必须构建一个全量的人脸特征向量数据库,然后进行识别,那么这类应用其实之中识别已知的对象,对于不在特征库里面的人脸,就没法检出,当然,在人脸识别认证这个场景不存在未知人脸,比如公安部门构建的人脸库,不可能存在漏录(每个人都用身份证)。

关于Alexnet:

 

经常问的问题

Q1. AlexNet有什么用?

答:AlexNet 是一种开创性的卷积神经网络 (CNN),主要用于图像识别和分类任务。它在2012年赢得了ImageNet大规模视觉识别挑战赛,标志着深度学习的突破。AlexNet 的架构凭借其对卷积层和修正线性单元 (ReLU) 的创新使用,为现代深度学习模型奠定了基础,推动了计算机视觉和模式识别应用的发展。

Q2。为什么 AlexNet 比 CNN 更好?

A. AlexNet是CNN的一种特定类型,是一种特别擅长理解图像的神经网络。当 AlexNet 被引入时,它在识别图片中的物体方面表现出了令人印象深刻的结果。它变得流行是因为它更深(有更多层)并使用一些聪明的技巧来提高准确性。所以,AlexNet并不比CNN更好;它是一种 CNN,对使 CNN 在图像相关任务中流行起来具有重要影响。

尾注

快速总结我们在本文中看到的架构。

  • 它有 8 层,具有可学习的参数。
  • 模型的输入是 RGB 图像。
  • 它有 5 个卷积层和最大池化层的组合。
  • 然后它有 3 个全连接层。
  • 所有层使用的激活函数是Relu。
  • 它使用了两个 Dropout 层。
  • 输出层使用的激活函数是Softmax。
  • 该架构中的参数总数为 6230 万个。

参考:

1、《刷脸背后》张重生。

2、【人工智能】回顾人工智能十年发展历程 | 2013-2023 | AlexNet | GAN | Transformer | Resnet | GNN | GPT | Stable Diffusion


3、Introduction to The Architecture of Alexnet 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/234943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flask和Vue框架实现WebSocket消息通信

1 安装环境 1.1 安装Flask环境 主要的安装包 Flask、Flask-SocketIO,注意Python版本要求3.6 # Flask-SocketIO参考地址 https://flask-socketio.readthedocs.io/en/latest/ https://github.com/miguelgrinberg/flask-socketio更新基础环境 # 更新pip python -m …

JVM垃圾回收

文章目录 垃圾回收四种引用引用计数算法可达性分析算法 垃圾回收算法标记清除标记整理复制 分代回收GCGC相关参数GC分析大对象 垃圾回收器串行吞吐量优先响应时间优先 垃圾回收 四种引用 强引用 new创建一个对象,通过等号运算符赋值给一个变量,那么这个…

Vue3中的defineModel

目录 一、vue3的defineModel介绍 二、defineModel使用 (1)在vite.config.js中开启 (2)子组件 (3)父组件 一、vue3的defineModel介绍 为什么要使用到defineModel呢?这里有这样一种场景&…

Java设计模式分类

java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式&am…

vue3中关于echars的使用

今天介绍一个好用的插件echars&#xff0c;一个可视化插件Apache ECharts 一、使用步骤 1、安装 npm install echarts --save 2、导入 import * as echarts from echarts 3、正式使用 echars的使用非常的简单&#xff0c;直接点击官网有现成的代码的可用 代码示例 <t…

【Spring教程24】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC入门案例代码示例

目录 1:创建Maven项目&#xff0c;并导入对应的jar包2:创建控制器类3:创建配置类4:创建Tomcat的Servlet容器配置类5:配置Tomcat环境6:启动运行项目7:浏览器访问8:知识点总结 欢迎大家回到《Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0…

FFmpeg抽取视频h264数据重定向

根据视频重定向技术解析中的 截获解码视频流的思路&#xff0c;首先需要解决如何输出视频码流的问题。 目前只针对h264码流进行获取&#xff0c;步骤如下&#xff1a; 打开mp4文件并创建一个空文件用于存储H264数据 提取一路视频流资源 循环读取流中所有的包(AVPacket),为…

2023团体程序设计天梯赛——模拟赛和总决赛题

M-L1-1 嫑废话上代码 Linux 之父 Linus Torvalds 的名言是&#xff1a;“Talk is cheap. Show me the code.”&#xff08;嫑废话&#xff0c;上代码&#xff09;。本题就请你直接在屏幕上输出这句话。 输入格式&#xff1a; 本题没有输入。 输出格式&#xff1a; 在一行中输出…

Docker Compose(容器编排)——9

目录 什么是 Docker Compose生活案例为什么要 Docker ComposeDocker Compose 的安装Docker Compose 的功能Docker Compose 使用场景Docker Compose 文件&#xff08;docker-compose.yml&#xff09; 文件语法版本文件基本结构及常见指令Docker Compose 命令清单 命令清单如下命…

【网络奇缘系列】计算机网络|数据通信方式|数据传输方式

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 这篇文章是关于计算机网络中数据通信的基础知识点&#xff0c; 从模型&#xff0c;术语再到数据通信方式&#…

C++面试宝典第4题:合并链表

题目 有一个链表&#xff0c;其节点声明如下&#xff1a; struct TNode {int nData;struct TNode *pNext;TNode(int x) : nData(x), pNext(NULL) {} }; 现给定两个按升序排列的单链表pA和pB&#xff0c;请编写一个函数&#xff0c;实现这两个单链表的合并。合并后&#xff0c;…

SqlServer中,数字-null的问题

一、业务描述 叫货单&#xff0c;已知叫货金额&#xff0c;填写本次付款金额&#xff0c;计算待付款金额 二、问题 在计算待付款金额时&#xff0c;偶尔会出现待付款金额为空的情况&#xff0c;百思不得其解 三、解决 仔细检查&#xff0c;发现了猫腻。 简单的说&#xff…

前端开发tips

前端开发tips 关于package.json里面&#xff0c;尖角号&#xff08;^&#xff09;和波浪线&#xff08;~&#xff09;的区别 在package.json里面&#xff0c;我们可以使用尖角号&#xff08;^&#xff09;和波浪线&#xff08;~&#xff09;来表示不同的包版本。这些符号通常被…

gin投票系统3

对应视频v1版本 1.优化登陆接口 将同步改为异步 原login前端代码&#xff1a; <!doctype html> <html lang"en"> <head><meta charset"utf-8"><title>香香编程-投票项目</title> </head> <body> <m…

[GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练

前言 OpenAI的创始人之一,大神Andrej Karpthy刚在微软Build 2023开发者大会上做了专题演讲:State of GPT(GPT的现状)。 他详细介绍了如何从GPT基础模型一直训练出ChatGPT这样的助手模型(assistant model)。作者不曾在其他公开视频里看过类似的内容,这或许是OpenAI官方…

在javaweb项目中resource目录和webapp目录的区别

resource存放的是一些配置文件&#xff0c;这些文件一般都是与java代码相关的配置文件&#xff0c;比如这里的jdbc配置文件,在java中可以使用这个目录下的文件&#xff0c;不用写全路径 webapp存放的是web的资源文件&#xff0c;如jsp,html,css&#xff0c;js文件,在网页请求会…

〖大前端 - 基础入门三大核心之JS篇㊿〗- 面向对象之对象的方法、遍历、深浅克隆

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

基于Java Swing泡泡龙游戏(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

javaSwing酒店管理

一、介绍 在这篇博客中&#xff0c;我们将介绍一个基于MySQL数据库、Java编程语言和Swing图形用户界面的简单酒店管理系统。该系统包括了查询房客信息、查询房客状态、修改房客信息、添加房间信息、添加住户、退房管理、预定管理、退订管理、入账管理、出账管理、修改资料等多…

微信小程序制作-背单词的小程序制作

微信小程序–背单词的 好久没有发过文章了&#xff0c;但是不代表着我不去学习了喽&#xff0c;以下是我最近做的东西&#xff0c;前端的UI由朋友设计的&#xff0c;目前这个是前端使用的是微信小程序后端是Python的一个轻量型框架&#xff0c;FastApi&#xff0c;嗯&#xff…