计算机视觉面经【1】

1.Adam和SGD优化器哪个更好,好在哪里,哪个使模型更加容易发散?

Adam优化器:
Adam优化器结合了两种扩展的梯度下降算法:Momentum和RMSProp。
它自动调整学习率,为每个参数计算自适应学习率。
Adam优化器通过计算梯度的一阶矩估计(即均值)和二阶矩估计(即未中心化的方差)来调整每个参数的学习率。
优点:对超参数的选择相当鲁棒,适合不稳定目标函数,适应不同大小的数据集和学习率。
缺点:可能会在训练初期快速收敛,但在后期可能会出现收敛速度慢或者发散的情况。
SGD优化器:
SGD是基础的随机梯度下降算法,它在每次迭代中随机选择一个样本来计算梯度。
SGD通常需要精细调整学习率,并且对初始学习率的选择比较敏感。
SGD有时候可能会在鞍点或者局部最小点震荡,导致收敛速度慢。
优点:在适当的条件下,SGD有可能达到更好的最优点,特别是在大规模数据集和复杂模型上。
缺点:学习率需要仔细调整,可能会在训练过程中卡在鞍点或者局部最小值。

关于模型发散的问题,理论上,如果学习率设置不当,两种优化器都可能导致模型发散。但是,由于Adam优化器会自动调整学习率,它在某些情况下可能比SGD更不容易发散。然而,这并不是绝对的,因为Adam优化器的自适应学习率策略有时候也可能导致在训练后期出现发散。

优化方法总结

2.FPN作用

FPN(Feature Pyramid Networks)是一种用于目标检测和图像识别的神经网络结构,它的主要作用是在不同的尺度上提取特征,以便更准确地检测不同大小的目标。

在深度学习中,卷积神经网络(CNN)通常会在多个层次上提取特征,其中早期的层次捕捉边缘和纹理等低级特征,而更深的层次则捕捉更高级的语义信息。然而,传统的CNN结构在处理多尺度目标时存在一些问题,特别是当目标的大小差异很大时。

FPN通过构建一个特征金字塔来解决这一问题,这个金字塔包含多个层次的特征图,每个层次对应不同的尺度。FPN的主要思想和步骤如下:

自顶向下的路径:FPN首先利用网络中更高层次(更高语义但分辨率低)的特征图,通过上采样(upsampling)来恢复其分辨率,然后将这些上采样的特征图与低层次(低语义但分辨率高)的特征图进行融合。
横向连接:在自顶向下的路径中,FPN通过横向连接(lateral connections)将上采样的特征与对应的低层次特征图进行元素加和,这样可以保留低层次特征中的细节信息。
金字塔结构:通过这种方式,FPN生成了一个在多个尺度上都具有丰富特征的金字塔结构,每个层次都可以用来检测不同大小的目标。
FPN的这种结构使得它非常适合于多尺度目标检测任务,因为它可以在不同的层次上同时检测到大小不同的目标。FPN已经被广泛应用于各种目标检测框架中,如Faster R-CNN、RetinaNet等,并且显著提高了小目标的检测性能。

总之,FPN的作用是在保持高分辨率的同时,在每个层次上融合语义信息,从而提高网络对不同尺度目标的检测能力。

3.讲下yolov3的架构,和two-stage的mask-rcnn有什么区别

YOLOv3 架构:
基础网络:YOLOv3使用Darknet-53作为其基础网络,这是一个全卷积网络,包含53个卷积层,没有池化层,使用步长为2的卷积来减小特征图尺寸。
多尺度检测:YOLOv3在三个不同的尺度上进行检测,以便能够检测到不同大小的目标。它从基础网络中提取出三个不同尺寸的特征图,并在这三个尺度上进行预测。
锚框(Anchors):YOLOv3使用锚框来预测目标边界框的位置和大小。每个尺度会使用不同大小的锚框来预测不同大小的目标。
预测:对于每个锚框,YOLOv3预测4个坐标值(中心点坐标和宽高)、1个置信度分数和类别概率。置信度分数表示预测的边界框中包含目标的可信度。
损失函数:YOLOv3的损失函数是定位损失、分类损失和对象损失的组合。

Mask R-CNN 架构:
两阶段检测:Mask R-CNN首先使用区域建议网络(RPN)在输入图像上滑动一个卷积层,以生成潜在目标的边界框(称为提议框)。然后,从这些提议框中提取特征,并使用分类器和边界框回归器来预测每个提议框的具体类别和位置。
特征金字塔:Mask R-CNN通常基于FPN(Feature Pyramid Networks)来提取多尺度特征,这有助于检测不同大小的目标。
实例分割:与YOLOv3不同,Mask R-CNN不仅可以进行目标检测,还可以进行实例分割。它在检测到的目标边界框上应用一个分割掩码预测网络,为每个目标生成一个精细的分割掩码。

YOLO系列详解(YOLO1-YOLO6)
YOLO损失详解
Faster RCNN详解
Mask RCNN详解

4.残差模块详细介绍

ResNet通过引入残差块来解决梯度消失,其基本思想是允许梯度直接通过残差块,而不必经过所有的层。这样,即使某些层由于梯度消失而无法有效训练,也不会影响其他层的训练。
残差块的创新之处在于它允许网络的每一层只学习输入特征图与上一层特征图之间的差异,而不是完全重新学习。这种设计使得网络能够有效地利用深层特征,并且能够处理非常深的网络结构。

深入理解残差模块(残差函数,残差块block,residual模块,残差结构)
参考面经(https://download.csdn.net/blog/column/12218529/135294449)

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值