| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 面试问题总结——关于面试中可能提问的问题及解答(一) -> 正文阅读 |
|
[Python知识库]面试问题总结——关于面试中可能提问的问题及解答(一) |
面试中遇到的问题及解答
1.YOLOv4相比于YOLOv3,做了哪些改进,能讲讲吗?(详解可以看面试问题总结——关于YOLO系列(三)中 四.YOLOv4) ??BoF中比如马赛克数据增强,通过读取四张图片,然后分别进行翻转、缩放等操作,接着拼成一张图片。这种方法可以丰富图片背景,大大扩充训练数据集。而且随机缩放操作增加了很多小目标,使得训练出的模型更加鲁棒。还有标签平滑处理,比如对于一个标签矩阵 [0,0,1] 转化为-> [0.01,0.01,0.98],分类标签的平滑,将0,0,1转变成0.01,0.01,0.98,这样会提高识别精度。 ??BoS中主要是修改了原先的NMS,改成了DIoU-NMS,不仅考虑了检测区域的重叠,而且还考虑了检测区域间的中心点距离。还有激活函数改成了Mish激活函数,理论上对负值的轻微允许更好的梯度流,而不是像ReLU中那样的硬零边界。 ??在主干网络中,CSPDarknet53的特征采用SPP层的方式,能更有效的增加主干网络的感受野,SPP的结构是三层最大池化,这里说一下感受野的定义。 2.你在模型训练的过程中,对于loss值若没有收敛,该有哪些操作呢?该使用什么办法???①如果loss突然一直很大:可能是学习率learning rate设大了,适当把学习率调低,或者每迭代10个epoch,学习率依次减小,在开始阶段不能把学习率设置的太低否则loss不会收敛,我的做法是逐渐尝试,从0.1,0.08,0.06,0.05 …逐渐减小直到正常为止。 ??②如果数据太少就尽量缩小模型复杂度,考虑减少层数。 ??③train loss与test loss结果分析 ??④训练网络的时候loss一直居高不下或者准确度时高时低,震荡趋势,反正要保证自己的训练次数够多,只要总体上收敛就行,就像我跑Darknet的YOLOv4模型时,虽然设置的迭代次数是4000次,但模型实际在2800次的时候就已经趋于平稳进入震荡期了。
3.在数字图像处理中,腐蚀和膨胀的原理是什么???腐蚀和膨胀都是针对白色区域即亮的区域的,膨胀就是将亮的区域变大,腐蚀就是将亮的区域变小。 ??膨胀就是求局部最大值的操作,因为要将亮的区域变大嘛,即灰度值变大,类似于卷积操作,将图像和核进行卷积,核的大小可以自己定义,将图像A与核B进行图形卷积,即计算核B覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素,这样就会使图像中的高亮区域逐渐增长。 ??腐蚀就是求局部最小值的操作。 4.关于NMS,简单讲讲???NMS就是非极大值抑制,依靠分类器得到多个候选框,以及关于候选框中属于类别的概率值,根据分类器得到的类别分类概率做排序,具体算法流程如下: ??①将所有框的得分排序,选中最高分及其对应的框; 5.关于K-means算法的相关知识K-means算法思想:??根据给定的n个数据对象的数据集,构建k个划分聚类的方法,每个划分聚类即为一个簇。该方法将数据划分为n个簇,每个簇至少有一个数据对象,每个数据对象必须属于而且只能属于一个簇,同时要满足同一簇中的数据对象相似度高,不同簇中的数据对象相似度较小,聚类相似度是利用各簇中对象的均值来进行计算的。 K-means算法的处理流程:??①随机选取k个中心点; ??时间复杂度:O(k×n×d×t),其中k表示聚类中心个数,n表示数据量即总共的点数,d表示距离计算的复杂度,t表示迭代次数。 ??空间复杂度:O(n) 在yolo中anchor的选取—K-means算法??在anchor框聚类中,如果用欧式距离来度量的话,显示是不合理的,因为大的预测框会产生大的欧式距离,小的预测框会产生小的欧氏距离,但我们需要大小框产生同样的效果影响,所以使用IOU,IOU是和box的大小无关的,公式如下: 其中box表示某个类别的ground truth,centroid表示聚类中心框。 K-means算法的优缺点??优点: ??缺点: K值怎么确定,有什么方法吗???解决办法:因为Kmeans聚类的效果评估方法是误差项平方和,就是计算所有点到相应簇中心的距离均值,当然,k值越大,SSE(误差项平方和)越小,我们就是要求出随着k值的变化SSE的变化规律,找到SSE减幅最小的k值,这时k应该是相对比较合理的值。 ??比如,在如下这张图中,最佳的k值是3。 6.你项目中用的拍照相机分辨率是3072×2048的,而YOLOv4网络的输入尺寸是608×608×3,这么做的话,图像的尺寸会被压缩,小的目标可能会被忽略,那如果要识别小的目标你怎么办?既要保证识别的速度,如何做???首先要考虑的是YOLOv4中的输入尺寸大小是608×608,而我的训练图片大小是3072×2048的,如果缩放图片到608×608,待检测的目标可能就会被缩放没了。 ??解决办法:把图片切下来,按照一批一批的来训练,比如原图是(C、H、W),切成N份,就是(N、C、H、W),切的过程中就一个要求,就是不能把目标一分为二切坏了,对于不足608大小的图像的补全就好了比如填充为黑色。 7.SPP,YOLO了解吗???SPP-net对R-CNN最大的改进就是特征提取步骤做了修改,其他模块仍然和R-CNN一样。特征提取不再需要每个候选区域都经过CNN,只需要将整张图片输入到CNN就可以了,ROI特征直接从特征图获取。R-CNN中候选区域需要变形缩放,事实上,只是网络的最后阶段—全连接层需要固定的尺寸输入,因此引入空间金字塔池化SPP来移除对网络固定尺寸的限制,避免输入的裁剪或者变形。SPP-net的缺点也很明显,它仍然属于R-CNN的框架,离端到端的距离还很远。 ??YOLO的核心思想在于将目标检测问题视作回归问题解决。用一个卷积神经网络结构就可以从输入图像直接预测bounding box和类别概率。算法首先把输入图像划分成S×S的格子,然后对每个格子都预测B个bounding boxes,每个bounding box都包含5个预测值:x,y,w,h和confidence。缺点:对靠的很近的物体以及小群体检测效果并不好。 8.目标检测正负样本不均衡怎么解决???因为正负样本总是相差悬殊的,可以通过设置损失函数前面的权重来解决,比如YOLOv3中的损失函数,对于检测到的目标权重系数给的是5,对于非目标的权重系数给的是0.5。 9.one-stage与two-stage都有哪些?具体各自优势在哪里?one-stage和two-stage两者有什么特点???One-stage:YOLO系列、SSD等。 ??Two-stage:R-CNN、Fast R-CNN、Faster R-CNN等。 10.简单介绍下残差层残差结构的提出的为了解决深层网络难以训练的问题。 ??背景知识: ??②深度学习对于网络深度遇到的主要问题是梯度消失和梯度爆炸,传统对应的解决方案则是数据的初始化和正则化(BN层),但是这样虽然解决了梯度的问题,深度加深了,却带来了另外的问题,就是网络性能的退化问题,深度加深了,错误率却上升了,而残差用来设计解决退化问题,其同时也解决了梯度问题,更使得网络的性能也提升了。 ??③从理论上分析,网络深度越深越好。但实际上,如果没有残差网络,对于一个普通网络来说,深度越深意味着用优化算法越难训练。实际上,随着网络深度的增加,训练误差会越来越多,这被描述为网络退化。 残差块的结构(Residual block)
残差结构有效的原理??因为在设计的深层次网络是有很多网络层是冗余的,那么我们希望这些冗余层能够完成恒等映射,保证经过该恒等层的输入和输出完全相同,具体哪些层是恒等层,这个会有网络训练的时候自己判断出来。 解决问题的数学原理:①为什么可以解决梯度消失? ②为什么可以解决网络退化问题? 11.YOLOv1的网格为什么是7×7???因为只有网格是奇数的情况下,其整个图像的中心点会确定在中心的一个grid cell中,如果网格是偶数,中心点就会落在四个grid cell的交界点,无法确定到底属于哪个grid cell,YOLOv2是分成了13×13个网格。 12.YOLOv3优点/缺点??优点: ??缺点: (Recall(召回率):指的是所有真实目标中被检测出来的比例。) 13.张量、向量和矩阵??0维的张量就是标量,1维的张量就是向量,2维的张量就是矩阵,大于等于3维的张量没有名称,统一叫做张量。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:33:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |