当前位置: 代码网 > 科技>人工智能>机器学习 > 【自用】计算机视觉面试基础(持续更新)

【自用】计算机视觉面试基础(持续更新)

2024年07月31日 机器学习 我要评论

一、神经网络

1.1 神经网络为什么需要引入非线性?

(1)线性函数的叠加仍然只能表示线性关系,如果神经网络只由线性函数组成,则输出只能为线性,网络的表达能力受到限制,无法学习和表示复杂的非线性模式和关系。

(2)引入非线性,提高网络的表示能力和学习能力,同时能够有助于避免梯度在反向传播过程中逐层缩小导致的梯度消失现象,从而更好地进行训练和优化。

1.2 rulu激活函数在零点处不可导,在反向传播的方法是?

在反向传播过程中,当使用relu作为激活函数时,当输入为零时relu函数是不可导的,因为在该点处梯度是未定义的。可以人为的将relu函数的导数定义为0或者1。

(1)将rulu函数在零点处的导数定义为0

当输入小于等于零时,梯度将被设置为0。当输入大于零时,梯度仍然为1。

(2)将rulu函数在零点处的导数定义为1

在输入小于等于零时的梯度被设定为一个小的非零值(比如0.01)。即允许一小部分负值通过,来避免relu函数丢失梯度。这种方法也称为带有“leaky relu”的变体。

1.3 什么是卷积神经网络(cnn)?它在计算机视觉中的应用是什么?

卷积神经网络是一种可以有效提取图像特征的神经网络结构,通过卷积层和池化层来实现特征提取和降维。在计算机视觉中,cnn广泛应用于图像分类、目标检测、图像生成等任务。

1.4  介绍一下常用的图像特征提取方法。

常用的图像特征提取方法包括:sift、hog、surf、lbp 等,这些方法可以用来描述图像的局部纹理和形状特征。

1.5 什么是非极大值抑制(non-maximum suppression)?它在目标检测中的作用是什么?

非极大值抑制是一种目标检测中常用的技术,用于抑制重叠的目标框,保留最具代表性的目标框,避免重复检测目标。

1.6 解释一下池化层(pooling layer)的作用和常用的池化方法。

池化层用于降低特征图的空间尺寸和参数数量,常用的池化方法有最大池化(max pooling)和平均池化(average pooling)。

1.7 什么是数据增强(data augmentation)?它在训练深度学习模型中的作用是什么?

数据增强是一种通过对训练数据进行随机变换扩大数据集的方法,可以提高模型的泛化能力,减少过拟合风险。

1.8 什么是残差网络(residual network)?为什么残差连接(residual connection)对深度神经网络有益?

残差网络是由微软研究院提出的一种深度神经网络结构,它引入了残差块(residual block)和残差连接,通过跳级连接将输入与输出相加,帮助解决深度神经网络的梯度消失和梯度爆炸问题,促进了模型的训练和收敛。

1.9 介绍一下目标检测中的 iou(intersection over union)指标,它在目标检测中的作用是什么?

iou是一种评价目标检测算法性能的指标,计算检测框与真实标注框的交集面积与并集面积的比值,评估检测结果与真实目标的重叠程度,通常用于衡量目标检测算法的准确度。

1.10 什么是语义分割(semantic segmentation)?常用的语义分割模型有哪些?

语义分割是将图像中的每个像素分配到特定的类别或物体实例的任务。常用的语义分割模型包括 u-net、fcn(fully convolutional network)、deeplab 等,它们可以有效地实现像素级别的分类和分割。

1.11 常用常用的归一化和标准化的方法有哪些?

(1)min-max 归一化(min-max normalization):

将数据线性地缩放到指定范围(通常是 [0, 1] 或 [-1, 1])。

适用于数据分布有明显边界约束的情况,如图像数据的像素值范围为 [0, 255]。

(2)z-score 标准化(standardization):

将数据转换成均值为 0,标准差为 1 的标准正态分布。

适用于数据分布在一个范围内,但没有明显的边界约束的情况。

(3)小数定标标准化(decimal scaling):

将数据通过移动小数点的方式缩放,使得绝对值最大的数的绝对值小于 1。

,其中 j 是使得最大的 |x_{norm}| < 1 的整数。

(4)中心化(mean centering):

将数据转换成以均值为中心的数据分布,而不改变其范围和形状。

(5)范围标准化(scaling to unit length):

将向量缩放到单位长度,常用于处理文本向量等。

,其中 ||x|| 是向量 x 的长度(范数)。

1.12 介绍一下空洞卷积的原理和作用。

空洞卷积(dilated convolution)是一种在卷积神经网络(cnn)中常用的卷积操作,它通过在卷积核中引入间距(dilation rate)参数来扩大感受野(receptive field)的范围。

原理:

(1)空洞卷积在传统卷积操作的基础上引入了一个称为间距的参数,该参数指定了卷积核中各个位置之间的间隔。

(2)在传统卷积中,卷积核的每个元素只与输入张量的一个位置做卷积操作;而在空洞卷积中,卷积核的元素之间具有特定的间隔,可以扩大每个卷积核的感受野。

作用:

(1)扩大感受野:空洞卷积通过控制间距参数,可以有效地扩大每个卷积核在输入张量上覆盖的区域,从而增加感受野的大小。

(2)减少参数数量:相比于增大卷积核的尺寸来扩大感受野,空洞卷积在不增加参数量的情况下实现了感受野的扩大,有利于减少网络的参数数量和计算量。

(3)保持尺度信息:空洞卷积在进行感受野扩大的同时,仍保留了输入张量的分辨率信息,有利于在图像分割、密集预测等任务中保持空间细节。

1.13 判断模型是否过拟合的方法:

(1)训练集和验证集的误差对比:监控模型在训练集和验证集上的表现。当模型在训练集上表现较好但在验证集上表现下降时,可能存在过拟合。

(2)学习曲线:绘制模型的学习曲线,观察训练误差和验证误差的变化趋势。如果模型在训练集上的误差迅速减小但在验证集上的误差停止下降或开始增加,可能出现过拟合。

(3)验证集上的性能:比较模型在训练集和验证集上的性能差异。如果模型在验证集上的性能远远低于在训练集上的性能,可能存在过拟合。

1.14  防止过拟合的策略:

(1)数据扩增(data augmentation):通过对训练数据进行翻转、旋转、缩放等变换,增加数据多样性,有助于提高模型的泛化能力。

(2)正则化(regularization):包括 l1 正则化、l2 正则化等手段,通过在损失函数中加入惩罚项来限制模型参数的大小,避免模型过度拟合训练数据。

(3)早停(early stopping):在训练过程中监控验证集的表现,当验证误差不再下降甚至开始上升时停止训练,防止模型过拟合。

(4)dropout:在训练过程中随机丢弃部分神经元,减少神经元之间的依赖关系,有助于提高模型的泛化能力。

(5)集成学习(ensemble learning):通过结合多个模型的预测结果来减少过拟合风险,提高模型的稳定性和泛化能力。

1.15 对于深度学习的优化算法简单介绍:

(1)随机梯度下降(stochastic gradient descent,sgd)

计算每个训练样本的梯度来更新模型参数,每次更新只考虑一个训练样本,计算速度快,适用于大数据集。存在剧烈震荡和收敛速度慢的问题,尤其是深度神经网络。

(2)自适应矩估计(adaptive moment estimation,adam)

结合了动量优化和自适应学习率,能够自动调整学习率,加速收敛。能够适应不同参数的学习率,对于多数深度学习任务都有较好的表现。训练速度相对较快,适用一些中小规模的数据集和模型训练。

(3)动量优化(momentum)

在更新参数时结合当前梯度于上一次更新的动量,加速收敛,并减少在梯度方向变化时的抖动。

(4)adagrad

自适应学习率算法,根据参数的历史梯度信息调整学习率,对频繁更新的参数学习率进行缩放,适合处理稀疏数据问题。

(5)rmsprop

自适应学习率算法,根据参数的历史梯度平方的移动平均调整学习率,在adagrad的基础上解决学习率下降过快的问题。

(6)adadelta

自适应学习率算法,同时像rmsprop一样利用梯度平方的指数衰减平均,但不需要预先设置全局学习率。

(7)nag(nesterov accelerated gradient)

自适应学习率算法,动量优化的变种,先预更新参数,然后计算梯度来修正预更新的参数,有助于降低震荡,提高收敛速度。

(8)adamax (adaptive moment estimation):

adam的一个变种,将adam中的梯度的平方用无穷范数替代,简化了计算过程。

(9)nadam

nesterov accelerated gradient与adam的结合,结合了两者的优点,在处理非凸问题时效果明显。

(10)amsgrad(adaptive learning rate methods):

修正了adam中学习率衰减过快的问题,确保每个batch的学习率保持稳定。

1.16 什么是感受野,在cnn中如何计算?

感受野指的是卷积神经网络每一层输出的特征图上每个像素点映射回输入图像上的区域的大小。

(1)对于第一层卷积层,每个像素点的感受野大小等于卷积核的尺寸。

(2)对于后续的卷积层,每个像素点的感受野大小等于上一层的感受野大小(记为r)加上卷积核的尺寸(记为k),再减去步长(记为s)再加上1。即:r' = r + (k - 1) * s。

1.17 神经网络的深度和宽度分别指的是什么?

深度(depth):网络中隐藏层的层数。

宽度(width):每一层中神经元的数量。

1.18 卷积神经网络各网络的特点和原理。

(1)lenet:是最早的卷积神经网络之一,用于手写数字识别,包含卷积层、池化层和全连接层。其原理是通过交替使用卷积层和池化层来提取图像特征,然后通过全连接层将这些特征映射到输出类别。

(2)alexnet:具有深度和广度的网络结构,通过使用relu激活函数和dropout技术加快训练速度和避免过拟合。

(3)vggnet:采用多个小尺寸的卷积核和更深的网络结构,使其更容易理解和实现。其原理是通过堆叠多个3x3卷积层来增加网络深度,同时减少参数数量。

(4)googlenet(inception):使用了“inception”模块,通过堆叠不同大小的卷积核和池化操作来提高网络性能,并避免过拟合。

(5)resnet:通过残差连接解决了深度网络的梯度消失问题(将输入直接加到输出中),允许构建更深的网络而不会导致性能下降。

(6)mobilenet:专注于轻量级和高效率,通过深度可分离卷积减少参数数量和计算量。

(7)densenet:密集连接的特征图之间相互连接,每个层可以直接访问其之前所有层的特征图,有利于信息流动和梯度传播,提高了网络的表现。

1.19 损失函数:

(1)l1loss:梯度稳定,前期训练稳定,后期不稳定(0处不可导,不利于收敛)。

(2)l2loss:参数更新幅度大,易错过最优值,不稳定。

(3)huber loss:对异常值具有鲁棒性、具有平滑性、可调节阈值。

1.20 激活函数:

(1)relu函数:没有使用指数运算,代码运行效率更高,relu(x)= max(x,0)。

(2)sigmoid函数:将输入转换为区间(0, 1)上的输出。(指数运算)

(3)tanh函数:将输入压缩转换到区间(-1, 1)上。(指数运算)

1.21 行业大模型微调流程是怎样的?

  1. 选择预训练模型:选择一个在大规模数据集上预训练过的模型作为基础模型。这些预训练模型通常是在大规模数据集上进行训练的,具有良好的特征提取能力和泛化能力。

  2. 准备数据集:准备目标任务相关的数据集。这个数据集应该包含足够的样本来代表目标任务的各种情况,并且能够与预训练模型的输入格式兼容。

  3. 微调模型:将预训练模型加载到计算环境中,并固定部分参数(如底层的特征提取器),然后在目标数据集上进行微调(fine-tuning)。通过反向传播算法,调整模型的参数来适应目标任务,通常会采用较小的学习率以避免忘记原有的知识。

  4. 模型评估:使用验证集或交叉验证来评估微调后模型的性能。根据评估结果来决定是否需要进一步调整超参数或进行更多的微调。

  5. 模型调优:根据评估结果来调整超参数,如学习率、批量大小等,以优化模型的性能。

  6. 模型部署:当模型达到满意的性能后,可以将其部署到生产环境中进行实际应用。

1.22 图像检测包括什么

  1. 目标定位(object localization):图像检测首先需要定位出图像中感兴趣的目标的位置。这通常包括确定目标的边界框(bounding box),即用矩形或其他形状的框框出目标所在区域。

  2. 目标分类(object classification):一旦确定了目标的位置,接下来就是对目标进行分类,即判断目标属于哪一类别。这通常是通过对目标区域进行特征提取并输入到分类器中进行判断来实现的。

  3. 目标检测(object detection):综合考虑目标的定位和分类,在图像中同时完成目标检测是图像检测任务的核心。目标检测模型需要实现同时识别多个目标,并为每个目标提供对应的类别标签和位置信息。

  4. 边界框回归(bounding box regression):为了进一步精确定位目标的边界框,有些图像检测模型会使用边界框回归技术,对初始边界框进行微调,以更准确地包围目标。

  5. 后处理(post-processing):在目标检测步骤之后,通常还需要进行后处理操作,例如非极大值抑制(non-maximum suppression),以去除冗余的边界框并提高检测结果的准确性。

1.23 图像分割包含什么

  1. 语义分割(semantic segmentation):将图像中的每个像素分配到预定义的类别中,从而实现对整个图像的像素级别的语义分析。语义分割的目标是为图像中的每个像素赋予语义标签,如建筑、人、车等,以实现像素级别的分类。

  2. 实例分割(instance segmentation):与语义分割不同,实例分割不仅要求对图像中的不同类别进行分割,还需要对同一类别中的不同实例进行分割和区分。实例分割通常会为图像中的每个个体对象分配一个唯一的标识。

  3. 边界分割(boundary segmentation):将图像中的边界或轮廓进行分割,以实现对对象形状的精细分析。边界分割可用于提取对象的轮廓或边界信息,为进一步的图像处理和分析提供基础。

  4. 交互式分割(interactive segmentation):允许用户通过交互式方式指定感兴趣区域的分割结果。交互式分割通常结合用户的输入和计算机算法来完成更准确的图像分割任务。

  5. 半监督分割(semi-supervised segmentation):利用部分标记的数据和无标记的数据进行分割任务,以减少对标记数据的依赖。半监督分割可以提高模型的泛化能力和对未标记数据的适应性。

1.24 半监督学习的运作:

semi-supervised learning(半监督学习),这是一种机器学习方法,它结合了监督学习和无监督学习的特点。在半监督学习中,数据集中只有一小部分样本被标记,而大多数样本是未标记的。通过利用这些未标记样本的信息,半监督学习可以提高模型在学习任务上的性能表现。在计算机视觉领域,半监督学习通常被用来解决样本标记成本高昂或者标记样本数量有限的问题

  1. 有监督学习阶段:首先,使用带有标签的数据对模型进行监督学习。这一阶段与传统的监督学习类似,通过已知标签的数据来训练模型。

  2. 无监督学习阶段:接下来,利用未标记的数据进行无监督学习。这一阶段的目的是在未标记数据中发现数据的分布特征、聚类等信息,从而帮助模型更好地泛化。

  3. 半监督学习阶段:在有监督学习和无监督学习之后,将有标签数据和无标签数据结合起来,通过半监督学习的方法来训练模型。这包括使用无标签数据来生成额外的训练信号,以提高模型的泛化能力。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com