算法工程师面试总结

算法工程师面试宝典

一年从博客,文献等针对图像算法工程师所需知识进行详细总结,对平时学习基础积累,找工作面试都是有帮助的。下面详细看几个整理的知识点:
1.yolov5网络详解
请看我另外一篇文章,该篇文章摘抄于该面试宝典中:
https://blog.csdn.net/qq_51539952/article/details/136324847?spm=1001.2014.3001.5501
2.yolov8网络详解
请看我另外一篇文章,该篇文章摘抄于该面试宝典中:
https://blog.csdn.net/qq_51539952/article/details/136325100?spm=1001.2014.3001.5502
3.过拟合和欠拟合
(1)过拟合和欠拟合的概念
欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况;
过拟合是指模型在训练集上表现很好,到了验证和测试阶段就很差,即模型的泛化能力很差。
(2)过拟合和欠拟合产生的原因
欠拟合:

  • 模型复杂度过低;特征量过少。
    过拟合:
  • 建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;
  • 样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则
    假设的模型无法合理存在,或者说是假设成立的条件实际并不成立;
  • 参数太多,模型复杂度过高;
  • 对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集;
    (3)解决方法
    欠拟合
    模型复杂化;增加更多的特征,使输入数据具有更强的表达能力;调整参数和超参数;增加训练数据往往没有用;降低正则化约束。
    过拟合
    增加训练数据数;使用正则化约束;减少特征数;调整参数和超参数;降低模型的复杂度;使用Dropout;提前结束训练。
    增加训练数据集规模:通过收集更多的训练数据来增加数据的多样性,减少过拟合的可能性。
    数据增强:对训练集进行随机翻转、旋转、缩放等操作,增加数据的多样性,提高模型的泛化能力。
    正则化技术:如L1、L2正则化、Dropout等,用于限制模型的复杂度,防止过拟合。
    提前停止训练:在训练过程中监控模型在验证集上的性能指标,当性能不再提升时及时停止训练,避免过拟合。
    3.常见卷积
    (1)空洞卷积
    空洞卷积的滑窗(kernel)元素之间是存在一些间隙的,这些间隙在空洞卷积中成为膨胀因子(dilated ratio)。如果 dilated ratio=1 时,空洞卷积就是普通卷积。
    在这里插入图片描述
    作用:
  • 扩大感受野:在deep net中为了增加感受野且降低计算量,总要进行降采样(pooling或s2/conv),这样虽然可以增加感受野,但空间分辨率降低了。为了能不丢失分辨率(持怀疑态度),且仍然扩大感受野,可以使用空洞卷积。这在检测,分割任务中十分有用。一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。
  • 捕获多尺度上下文信息:空洞卷积有一个参数可以设置dilation rate,具体含义就是在卷积核中填充dilation rate-1个0,因此,当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息。多尺度信息在视觉任务中相当重要啊。
    (2)可变形卷积
    可变形卷积实际是指标准卷积操作中采样位置增加了一个偏移量offset,这样卷积核就能在训练过程中扩展到很大的范围。©(d)是(b)的特例,表明可变形卷积推广了尺度、长宽比和旋转的各种变换。
    在这里插入图片描述
    可变形卷积在采样时可以更贴近物体的形状和尺寸,更具有鲁棒性,而标准卷积无法做到这一点。
    可变形卷积的具体操作流程是:
    ① 我们一开始,和正常的卷积神经网络一样,根据输入的图像,利用传统的卷积核提取特征图。
    ②我们把得到的特征图作为输入,对特征图再施加一个卷积层,这么做的目的是为了得到可变形卷积的变形的偏移量。(重点)其中,偏移层是2N,因为我们在平面上做平移,需要改变x值和y值两个方向。
    ③在训练的时候,用于生成输出特征的卷积核和用于生成偏移量的卷积核是同步学习的。其中偏移量的学习是利用插值算法,通过反向传播进行学习。
    (3)分组卷积
    标准的 2D 卷积步骤如下图所示,输入特征为 (H × W × C) ,然后应用 C’ 个filters(每个filter的大小为 (h × w × c),输入层被转换为大小为 (H’ × W’ × C’) 的输出特征。
    在这里插入图片描述
    分组卷积 的表示如下图(下图表示的是被拆分为 2 个filters组的分组卷积) :
    在这里插入图片描述
    首先每个filters组,包含 C’/2个 数量的filter, 每个filter 的通道数为传统2D-卷积filter的一半。
    每个filters组作用于原来 W × H × C 对应通道数的一半,也就是 W × H × C/2
    最终每个filters组对应输出输出 C’ / 2 个通道的特征。
    最后将通道堆叠得到了最终的 C’个通道,实现了和上述标准2D 卷积一样的效果。
    参数量计算:
    标准2D卷积:w × h × C × C’
    分组卷积:w × h × C/2 × C’/2 × 2
    好!看出来差别了吧!参数量减少到原来的1/2!当Group为4的时候,参数量减少到原来的1/4,这个我觉得是最主要的优势。
    总结来说:在某些情况下,分组卷积能带来的模型效果确实要优于标准的2D 卷积,是因为组卷积的方式能够增加相邻层filter之间的对角相关性,而且能够减少训练参数,不容易过拟合,这类似于正则的效果。
    (4)亚像素卷积
  • 在目标检测任务中,上采样操作是一个常见的步骤,用于将低分辨率的特征图恢复成高分辨率,以便更好地定位目标。传统的上采样方法如双线性插值或转置卷积存在一定的局限性,无法充分利用特征图中的信息。因此,我们引入了亚像素卷积作为一种新型的上采样技术。
  • 亚像素卷积是一种特殊的卷积操作,它可以将输入特征图的深度进行拆分,并将其重新排列成更高分辨率的特征图。这种操作可以有效地提高图像细节的表示能力,并减少信息的丢失。
    (5)坐标卷积
    Coordconv给卷积加上坐标,从而使其具备了空间感知能力
    (6)动态卷积
    常规卷积只有一个静态卷积核且与输入样本无关,且会用到所有数据集上。此外,之前的卷积神经网络的另一个特点是,通过扩展宽度、深度、分辨率来提升网络模型的表现。对于动态卷积来说,它对多个卷积核进行线性加权,而加权值则与输入有关,这就使得动态卷积具有输入依赖性。也就是说,对于不同的输入,我们使用不同的卷积核。之后对这些不同的卷积核,进行注意力加权。
    ODConv利用一种全新的多维注意力机制和并行策略,在任何卷积层沿内核空间的四个维度学习卷积内核的注意力。
    (7)总结
    上述介绍几种常见的卷积,可以针对不同的数据集,不同的算法引入对应的卷积。像三维点云也可以对其进行转换为三维卷积进行替换。如可变形卷积可转成三维可变形卷积加入到网络中,进行试验对比,观察性能提升。
    4.算法宝典其他内容
    1.目标检测篇
    在这里插入图片描述
    2.其他(分割,基础知识)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    5.总结
    经过一年的积累,针对该图像算法面试的知识整理共76张,主要包含深度学习基础总结,常见面试问题回答,目标检测网络详解,图像分割网络详解,实例分割网络详解等。期望该内容对您们有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值