【AI面试】CNN 和 transformer 的问题汇总

news2025/1/31 11:02:36

CNN卷积神经网络和transformer相关的知识,是AI的一个基础的,也是前言的知识点。一般面试官会从以下这些问题入手:

  1. 卷积神经网络,有什么特点?
  2. 1*1卷积核有什么作用?
  3. 计算经过卷积的输出尺寸大小
  4. 空洞卷积你了解吗?有什么特点
  5. CNN和transformer两者相比,有什么优缺点?

后面,我们就带着这些问题,一一找到答案。

一、CNN

首先是听到卷积神经网络,立马就会顾名思义,卷积+神经网络

0

1.1、卷积

卷积我们知道,在信息论里面都会提到这个名词,在这里就根据要描述的内容,要处理的是输入图像,卷积是对图像和卷积模板做内积。

在这里,对单纯的一个像素做卷积就没什么意义了,这里不是对每个输入像素的信息做处理,而是对整幅图像中,其中的一小部分像素区域。也就是一小块图像,是大幅图片的一个真子集。

随着卷积核在图像中的不断以步长为1的移动,它将与矩阵不断的进行卷积运算,输出卷积后的计算结果。

在这里输出的结果,是经过11+10+11+00+11+10+01+00+1*1=4。通过它不断的按找步长stride移动,就能够输出图像经过卷积后的结果了。
[点击并拖拽以移动]

1.2、神经网络

这里所说道的神经网络,我们可以把它与人脑的神经网络来做一个类比。

我们观察过千奇百怪的猫,但总是能得出一些猫的独有的特征来,比如说尖耳朵,猫脸,还有毛茸茸的样子,在下次拿给你一个即便你不知道它是一只什么品种的猫,但是你知道,她肯定是只猫就行了。

每个神经元拥有多个实际值的输入(从小到大见过了很多的猫),并产生了一个实际值的输出(由过往认识猫的了解,总结的特征,得出这个不认识的动物也是猫的结论),这就是仿生物的神经网络。

有了卷积和神经网络的概念,下面该怎么将两者和输入图像联系在一起呢?怎么与普通的神经网络做对比呢,慢慢道来。

还不要着急,先看看CNN在整个AI时代,处于什么样子的一个层次,或者说位置。

1.3 CNN与模式识别、机器学习、深度学习的关系

1

一张表没有看到CNN,因为卷积神经网络只是深度学习算法的一个基础模型,它是深度学习中一种新的特征抽取的方法。

而深度学习又是机器学习中的一个新的领域,其模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。

这时候我们就该思考一个问题了,不知道你们有没有思考过。为什么要深度学习?为什么要用卷积神经网络的方式来做深度学习。

因为CNN具有别的一般方法所没有的优势,否则它不可能出现而被推崇的。

1.4、CNN有什么特点?

2

看着这个鸟,我们都知道它是一只鸟,尽管我们不知道它是一只什么鸟。那为什么我们会异口同声的说它就是一只鸟呢,Why is a bird?

因为它的一些鸟的特征呗,什么特征:,

  1. 鸟嘴,尖尖的
  2. 还有翅膀
  3. 还有锋利的爪子

可能还有别的一些特征,那下面我们再看一个图:

3

这里呢变成了三幅图了,最左边还是上面的那个鸟,有尖嘴,锋利的爪子,还有翅膀。首先,看右下的部分,那个鸟,有什么相同的地方?有什么不同的地方?

图片变小了,鸟嘴和翅膀,锋利的爪子都在,我们也知道它也是一只鸟,就是尺寸变小了而已。

你有没有发现,我们在解读这幅带有鸟的图片的时候,关注了更多的是小鸟这个动物本身。如果更具体点是关注的鸟嘴,翅膀等等。

那图片那么大,像素那么多,还有绿色的图像部分,我们好像熟视无睹,根本就没有关于那些地方。

既然我们都不关注那些地方,那它对于我们解读这幅图像是不是就是没那么重要,我们是不是可以不要它了,不看他了。即便它存在,我们也不关注它,因为它对于我们关注的问题没有那么重要了。总结起来,就是:

  1. 这里就是说,同样的一个图案只需要看一小部分,而不是整个部分。
  2. 对像素进行抽样,而不改变对象本身

然后,再看下右上角的那个动物,也是一只鸟,尽管我看它长的有点像雏鸡,那它就是一只不一样的鸟。我们也找到了鸟的一些基本特征, 比如:鸟嘴,尖尖的,翅膀,锋利的爪子,它都有。

可是,细心看就会发现,1和2进行对比,鸟的站姿变了,鸟嘴在图像中的相对位置也变了,一个在图像的左上角,另一个在图像的右上角。鸟嘴尽管都是尖尖的,但是颜色也变了,但是我们还是说它是一只鸟。这里就引出来了CNN的一些专有的特点属性了

1.4.1、局部感知

卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知野。一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是与周围局部的像素联系较为紧密,距离较远的像素相关性则较弱。

因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。

在这里,将CNN与全连接full connect(FC)网络进行一个对比。

假设一次训练样本中输入图像像素大小为1000*1000,隐藏层神经元为100个(这里就不选用上面图中提到的一百万个了,当时一直以为这个隐藏层单元数量与输入图像的像素数目是有关系的,纠结了好久)

在全连接网络中:每个隐层神经元都连接图像的每一个像素点,就有1000*1000*100=10^8个连接,也就是会有10^8个权值参数

在局部连接(CNN)网络中:假设CNN中每一个节点与上层节点同位置附件10x10的窗口相连接,每一个隐藏层的神经元只关注于这个卷积窗口,此时就是会有10*10*100=10^4 个连接,也就是会有10^4个权值参数,其权值连接个数比原来减少了四个数量级。

下图直观的描述了全连接网络和CNN局部感知网络的神经元连接方式:
4

1.4.2 、权值共享

先来看一下全连接神经网络的一般情况,就如下面这样:

5

全连接fc中,上一次的输入节点,会与下一层的所有输出节点,都产生连接,故名全连接。这样,节点与节点之间的权重,是独立的,是不会共享的。

但是,在卷积神经网络中,一个3*3卷积核,就可以便利一个channel的整幅图像,与所有的像素节点产生了联系。此时,相比于FC层,CNNInput layer中的值,就是共享了权重参数的。也就是一个卷积核,在channel维度上,会应用到输入数组所有的计算上。输出多少个channel,也就会有多少个卷积核。

共享权值和不共享之间最大差别,就是参数量降低了很多。同时,一套权值也使得目标无论是在图像中的哪个位置,经过卷积后得到的特征,是一样的。

1.5、1*1卷积核有什么作用?

我们一直都在说3*3卷积核,或者是1*1卷积核。其实,这里描述的都是在一个channel维度上的大小。而真正的大小,应该还要算上channel的数量。

比如:

  1. 输入尺寸是256*256*3
  2. 输出的channel维度为32
  3. 那么卷积核的大小就该是3*3*32。这样3*3的卷积核,分别在输入的3个channel上进行卷积操作,得到3个卷积后的值;
  4. 再把分别在不同channel上卷积得到的值,求和得到1个输出的channel

那此时,要求的输出,是要有32个channel,那是不是意味着要有32个类似的3*3卷积核,上述的方式做32次,输出的channel就变成了32

上述的这个过程,可以发现,卷积操作改变了channel的维度,由3维变成了32维,并且在每一个channel上,都是融合了输入的3个channel得到的,起到了在通道维度上的特征融合

1*1卷积核的作用汇总

  • 增加非线性:1x1的卷积核的卷积过程,相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性,使得网络可以表达更加复杂的特征。

  • 特征维度改变:通过控制卷积核的数量,达到通道数大小的放缩。特征降维带来的好处是可以减少参数和减少计算量。

降维有什么好处?

  • 减少权重个数
  • 减少计算量

1.6、卷积核输出尺寸计算

问题如下:假设输入一个维度为224x224x3的数据,然后采用5个大小为7x7卷积核stride为1,没有padding的进行数据操作。那么神经网络下一层所接收到的数据维度是多少?

A、218x218x5

B、217x217x8

C、217x217x3

D、220x220x5

解析:选A,计算方式如下:

  1. 首先,输入数据,经过5个卷积核操作,输出的channel肯定等于5,排除BC;
  2. 其次,不采用padding形式进行填补,故经过7x7的卷积之后,上下左右均少了3个数据,故224-3x2=218,所以是218x218x5。(如果没有给stride,默认stride=1)

计算公式:
7

二、transformer

​自注意力机制(Self-Attention Mechanism)是深度学习中一种用于捕捉序列间依赖关系的重要技术,常用于自然语言处理和计算机视觉等领域。在自注意力机制中,transformer模型(或称为"Attention Is All You Need"模型)是一种典型的应用。

1

transformer模型中,自注意力机制被用于处理输入序列的编码和解码。下面是transformer模型中自注意力机制的基本流程:

  1. 输入表示:

输入序列首先通过线性变换,将每个输入元素(如单词或像素)映射到一个较低维度的向量表示,分别称为查询(Query)键(Key)值(Value)向量。这三种向量通常是通过对输入向量进行线性变换得到的。

  1. 相似度计算:

对于每个查询向量,计算它与所有键向量之间的相似度得分。通常使用点积(dot product)或其他方法(如缩放点积)来计算相似度得分。

  1. 注意力权重计算:

将相似度得分进行归一化,得到注意力权重,用于衡量键向量对于当前查询向量的重要性。较高的相似度得分对应于较高的注意力权重。

  1. 上下文向量计算:

使用注意力权重对值向量进行加权求和,得到上下文向量。上下文向量综合考虑了与当前查询向量相关的所有值向量。

  1. 多头注意力机制(Mult Self-Attention):

为了提高模型的表达能力泛化性能,通常会使用多个独立的自注意力机制,称为多头注意力机制。每个注意力头都有自己的查询、键和值向量,并生成一个独立的上下文向量。

  1. 输出表示:

最后,将多个头的上下文向量进行拼接线性变换,得到最终的输出表示。这个输出表示可以进一步传递给下一层的自注意力机制,或者用于其他任务,如语言建模、机器翻译等。

自注意力机制通过计算序列中每个元素与其他元素的关联度,从而能够捕捉到元素之间的长程依赖关系。这种机制使得transformer模型在处理序列数据时具有较好的并行性学习能力,因此在自然语言处理领域的许多任务中取得了显著的成功。

https://www.nowcoder.com/discuss/352537292575174656

三、CNN 和 transformer 对比

卷积神经网络(Convolutional Neural Network,CNN)Transformer是两种在图像视觉深度学习中常用的模型。它们各自具有不同的优点和缺点。

CNN的优点:

  1. 层次化特征学习:CNN通过使用卷积层、池化层和全连接层的组合,能够自动学习输入图像的层次化特征表示。这使得CNN在处理图像等二维数据时非常有效。
  2. 参数共享:CNN中的卷积层使用了参数共享的策略,即在整个图像中共享卷积核的权重。这大大减少了网络中需要学习的参数数量,从而降低了模型的复杂性和计算成本
  3. 位置不变性:由于卷积操作在图像的不同位置上共享权重,CNN对于输入图像的平移和部分尺度变化具有一定程度的位置不变性,这对于处理图像中的物体识别和检测任务非常有用。

CNN的缺点:

  1. 局限于固定大小的输入:CNN通常需要固定大小的输入图像,这对于处理不同尺寸的图像可能存在问题。在处理变形或不规则形状的图像时,需要进行额外的预处理或使用更复杂的网络结构。
  2. 缺乏全局上下文信息:由于卷积和池化操作的局部性质,CNN在处理图像时可能缺乏全局上下文信息。这对于一些需要全局信息的任务,如图像分割,可能限制了CNN的性能。

Transformer的优点:

  1. 全局上下文建模:Transformer通过自注意力机制(self-attention)可以在输入序列中捕捉全局依赖关系,有效地对输入进行全局建模。这使得Transformer在处理长序列数据时表现优异,包括图像中的像素序列。
  2. 可扩展性:Transformer的结构非常灵活,可以通过增加或减少层、调整隐藏层的大小等方式进行扩展和定制。这使得Transformer在处理不同规模和复杂度的任务时非常适用。

Transformer的缺点:

  1. 计算和内存开销:相对于CNN,Transformer在处理图像等高维数据时通常需要更多的计算和内存资源。这使得Transformer在大规模图像数据集上的训练和推理过程更加昂贵。
  2. 需要位置编码:Transformer无法直接处理空间结构的数据,如图像。为了将图像输入Transformer,需要额外的位置编码来表示像素之间的空间关系。这增加了模型的复杂性和计算成本。
  3. 对于小数据集的欠拟合:相对于CNN,Transformer在小数据集上的表现可能不如预期。

总的来说,CNN在处理图像等二维数据时具有天然的优势,能够有效地学习层次化特征表示和处理空间不变性。而Transformer在处理图像时需要额外的预处理和较大的计算资源,但在处理长序列数据和全局上下文建模方面具有优势。选择适当的模型取决于具体的任务和数据集特征。在实践中,也可以结合两种模型的优点,如使用CNN提取图像特征,然后使用Transformer进行全局建模和推理。

transformer这种在小数据集上,相对于CNN较差的原因是什么?

ViT原论文中最核心的结论是,当拥有足够多的数据进行预训练的时候,ViT的表现就会超过CNN,突破transformer缺少归纳偏置的限制,可以在下游任务中获得较好的迁移效果。

但是当训练数据集不够大的时候,ViT的表现通常比同等大小的ResNets要差一些,原因是什么呢?

因为Transformer和CNN相比缺少归纳偏置(inductive bias),即一种先验知识,提前做好的假设。CNN具有两种归纳偏置:

  1. 一种是局部性共享(locality/two-dimensional neighborhood structure),即图片上相邻的区域具有相似的特征
  2. 一种是平移不变形(translation equivariance)先进行卷积再平移,和先平移再卷积,得到的结果是一样的,其中g代表卷积操作,f代表平移操作。

CNN具有以上两种归纳偏置,就有了很多先验信息,需要相对少的数据就可以学习一个比较好的模型。Transformer模型在没有足够数据支撑的情况下,由于其自由度较高、参数较多,可能无法充分捕捉到数据中的复杂模式和规律

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习之朴素贝叶斯三、拉普拉斯平滑技术、优化改进情感分析

文章目录 一、前文问题1. 先看下改进前我们的代码计算部分2. 问题分析: 二、针对问题进行解决1. 什么是拉普拉斯平滑技术2. 拉普拉斯优化-下溢上溢问题3. 改进地方分析:4.改进优化1.优化一,对条件概率计算进行优化2.优化二,对后延…

从小白到黑客高手:一份全面详细的学习路线指南

前言 黑客从入门到精通需要经过深入的学习和实践,这是一个需要长时间投入和大量精力的过程。在这份学习路线中,我将为你介绍黑客学习的基本知识和技能,帮助你逐步掌握黑客技能。 黑客 一、入门阶段 1.了解计算机基础知识 学习计算机基础知…

红黑树(小白教学)

分享一个动画展示的网址:Red/Black Tree Visualization (lerogo.com) 将红黑树之前,我们先来了解一下什么叫做2-3树!!! 在我们以前学习的过程中(二分搜索树、完全二叉树等)结点都是存放了一个元…

Auto_GPT:如何使用Auto-GPT、安装、开发

文章目录 前言一、使用前提二、如何在您的 PC 上安装 Auto-GPT第 1 步:安装 Python第 2 步:获取 Auto-GPT 源代码和 OpenAI API 密钥第 3 步:在 Windows、MacOS和 Linux上安装 Auto-GPT 三、如何在你的 PC 上运行Auto-GPT总结 前言 Auto-GPT…

Redis消息队列(1)

一)消息队列:从字面意思上来看是存储消息的队列,最简单的消息队列包含三个元素: 1)消息队列:存储和管理消息,也被称之为是消息代理 2)生产者:发送消息到消息队列 3)消费者:从消息队列中获取消息并处理消息 4)当有用户想要进行秒杀下单的时候,…

CENTO OS上的网络安全工具(二十一)Hadoop HA swarm容器化集群部署

如果使用swarm来构建Hadoop、Spark之类的集群,一个绕不过去的问题每个容器都需要支持SSH免密互联——因为Hadoop需要。这就需要事先准备可以一键进行集群化部署的SSH镜像。 一、SSH集群及镜像的构建 1. 准备更换镜像源的Centos7 由于Centos7已经停止维护&#xff0c…

stm32 iic驱动ds1307实际使用驱动

本文使用的工程代码如下: (1条消息) stm32iic驱动ds1307实际使用驱动,参考博客:资源-CSDN文库 上次我记得写了一个使用开发板测试DS1307的测试例程,DS1307也是使用测试板,后面项目上具体使用了,又优化了驱…

HelloSpring

1.beans.xml配置文件 在resource资源文件夹下创建beans.xml文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

我们的愿景是在个人计算机上实现量子霸权

奥维尔号量子计算机 简介 采用扩展的量子二进制算法。在经典计算机上实现量子计算机。我们的景愿是在个人计算机上实现量子霸权。 此计算机的字长是64位&#xff0c;等效数据位为32位字长的量子计算机。我们采用量子扩展二进制&#xff0c;共有&#xff14;个字符:0,1,Q,P可以…

Redis---主从复制 哨兵

目录 一、主从复制 1、什么是主从复制呢&#xff1f; 2、案例演示 2.1 配置文件 2.2 一主二仆 2.2.1 相关题目&#xff1a; 2.3 薪火相传 & 反客为主 3、复制原理和工作流程 3.1、slave启动&#xff0c;同步清初 3.2 首次连接&#xff0c;全量复制 3.…

【CNN】卷积神经网络(LeNet)是什么?如何实现LeNet?

系列文章目录 第一章 深度学习 CNN中的卷积神经网络&#xff08;LeNet&#xff09; 目录 系列文章目录 文章目录 前言 一、卷积神经网络&#xff08;LeNet&#xff09;是什么&#xff1f; 二、LeNet的网络结构 三、实现LeNet模型 ​​​​ 总结 前言 本文主要是介绍卷…

【改进粒子群优化算法】自适应惯性权重粒子群算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【软考|软件设计师】某计算机系统的CPU主频为2.8GHz

目录 题&#xff1a; CPI MIPS 题&#xff1a; 某计算机系统的CPU主频为2.8GHz。某应用程序包括3类指令&#xff0c;各类指令的CPI &#xff08;执行每条指令所需要的时钟周期&#xff09;及指令比例如下表所示。执行该应用程序时 的平均CPI为______&#xff1b; 运算速度…

面试了一个00后,绝对能称为是内卷届的天花板

前言 公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。令我印象最深的是一个00后测试员&#xf…

DelphiMVCFrameWork 源码分析(三)

中间件(MiddleWare) 文档中是这样说的&#xff1a; Middleware is a powerful and flexible layer within DMVCFramework. Middleware allows you to write SOLID code and separate the processing or each request into smaller steps to be invoked during the request ha…

二本4年测试经验,5面阿里(定薪38K),分享我的心得

年前准备跳槽&#xff0c;先后面试了各大小公司&#xff0c;拿了一些offer&#xff0c;有阿里&#xff0c;滴滴&#xff0c;快手&#xff0c;达达&#xff0c;得物等公司。面试的公司大部分都能过&#xff0c;所以这里给大家分享下自己的经验&#xff0c;也给自己做个归档&…

新书推荐:《AIGC未来已来——迈向通用人工智能时代》

新书推荐&#xff1a;《AIGC未来已来——迈向通用人工智能时代》 导言 AIGC为何引发关注&#xff1f; ChatGPT会成为人工智能的拐点吗&#xff1f; GPT-4未来已来&#xff0c;奇点时刻该如何面对&#xff1f; 人类的创新能力会被AIGC替代吗&#xff1f; 当下有哪些典型的AIGC变…

单片机GD32F303RCT6 (Macos环境)开发 (二十)—— 光感芯片veml7700的使用

光感芯片veml7700的使用 1、veml有7个寄存器&#xff0c;每个十六位&#xff0c;见图。 00是config寄存器&#xff0c; 01 02 是中断设置的阈值 03是节能模式的设置 04 是得到的光的亮度值 05是得到的data of whole WHITE 06是中断设置值。 2、我们只测试得到光的亮度值&…

86盒IP对讲一键报警器

86盒IP对讲一键报警器 86盒IP对讲一键报警器&#xff1a;革命性保障生命安全的利器&#xff01; 随着科技的飞速发展&#xff0c;我们的生活变得越来越方便和智能化。而86盒IP对讲一键报警器更是在这种背景下应运而生。这款产品不仅无缝对接各种手机APP&#xff0c;也可以在智…

Linux系统crash后定位方法-PCIE举例

crash解释 在Linux操作系统中&#xff0c;"crash"通常是指一种用于分析系统崩溃&#xff08;crash&#xff09;的工具或方法。当系统发生崩溃时&#xff0c;可能会产生一些关键信息&#xff0c;如错误日志、内存转储文件等。使用crash工具可以分析这些信息&#xff…