计算机视觉算法工程师面试必知10个最难回答问题(面试常考,建议收藏!)
1. 介绍目标检测网络yolo系列以及ssd系列的原理。yolo对小目标检测不好的原因,除了缩小anchor外还可以如何改善?
大概介绍了一下,yolo及ssd是one-stage目标检测网络的代表,以及他们各自的backbone、anchor box生成方式,最近整理了一下yolo系列的各种创新点
解决小目标检测不好几种方法:
增加输入图像分辨率
混合多尺度特征
设置更小更稠密的anchor
卷积神经网络设计时尽量度采用步长为1,尽可能保留多的目标特征。
2. 如何防止过拟合?
在数据层面,做数据增广,筛选高质量的特征
在网络层面,选择较简单的模型,网络剪枝,加入正则项,加drop out层,加BN层
在训练操作层面,使用Early Stopping
3. 样本中正负样本不平衡,如何解决?
1.使用类平衡交叉熵损失函数
2.对小样本做数据增广
3.FOCAL LOSS(retinanet)
4.OHEM(online hard example mining)策略,训练时通常保证正负样本1:3
4. 使用什么手段尽量保证精度不损失压缩模型?
1.模型参数量化:将float32型权重、激活映射到低bit位(int8、fp16,二值、三值...)存储
2.模型剪枝
3.知识蒸馏
4.替换轻量化网络结构(mobilenet系列、shufflenet、squeezenet...)
模型剪枝常用策略?
层剪枝,根据bn层的gamma系数剪枝,bn层的gamma系数代表该层特征的方差,方差越大说明该层特征越明显,保留该层, gamma系数小的网络层可以剪掉。
通道剪枝,根据经验缩小通道系数,多次训练对比实验(------感觉这块回答得有点弱智,可我就是这么弱智地调参。。。。)
5. RetinaNet了解吗?
one-stage和two-stage的表现差异主要原因是大量前景背景类别不平衡导致。在双阶段算法中,候选框阶段,通过得分和nms筛选过滤掉了大量的负样本,然后再分类回归阶段又固定了正负样本比例,或者通过OHEM在线困难挖掘使得前景和背景相对平衡。而one-stage阶段需要产生约100k的候选位置,虽然有类似的采样,但是训练仍然被大量负样本所主导。所以设计了一个简单密集型网络RetinaNet来在保证速度的同时达到了精度最优。
主要创新点:focal loss
alpha系数平衡正负样本的重要性(正负样本本身的比例不均)
gamma系数减少易分类样本的损失。使得更关注于困难的、错分的样本(前景背景类别不平衡导致)
比如:例如gamma为2,对于正类样本而言,预测结果为0.95肯定是简单样本,所以(1-0.95)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为0.3的样本其损失相对很大。对于负类样本而言同样,预测0.1的结果应当远比预测0.7的样本损失值要小得多。对于预测概率为0.5时,损失只减少了0.25倍,所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。
6. mobilenet速度快的原因
深度可分离卷积
7. 面试官随便构造一个网络,现场计算感受野
公式记不住不要慌,一层层卷积、pooling计算就好了。我的思路是网络末端用1*1的特征点往上反推。
8. 简述GAN网络原理
生成器判决器协调工作,balabala。。。内容太多,有需求自行百度
9. python中的生成器是做什么的?
不同于其他函数的return,生成器使用yield返回,训练数据可以边迭代边训练。不用一次性地加载所有数据,节省内存空间。
10. 进程和线程的区别,数组和链表的区别
进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程-----资源分配的最小单位。
线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位
免费分享一些我整理的人工智能学习资料给大家,整理了很久,非常全面。包括一些人工智能基础入门视频+AI常用框架实战视频、图像识别、OpenCV、NLP、YOLO、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文等。
下面是部分截图,文末扫码加我免费领取(AI技术问题我也可解答一二)
目录
一、人工智能免费视频课程和项目
二、人工智能必读书籍
三、人工智能论文合集
四、机器学习+计算机视觉基础算法教程
五、深度学习机器学习速查表(共26张)
学好人工智能,要多看书,多动手,多实践,要想提高自己的水平,一定要学会沉下心来慢慢的系统学习,最终才能有所收获。
点击下方名片,扫码免费下载文中资料。
相关文章
- 人家这才叫软件测试工程师,你那只是混口饭吃
- “我是培训 + 外包出来的,确实有被嫌弃过“测试五年后面试字节资深测试工程师定薪30k成功逆袭
- 【大厂】进不了测试IT工程师们,我们的出路到底在何方?
- 不加班的测试开发工程师不是好程序员?可能不是一只笨鸟,但一直在先飞......
- 当一个Java 高级开发工程师 入职拿到新电脑,他会做什么呢?
- FPGA工程师面试——常用名词解释
- 平头哥面试——芯片工程师面经
- 字节跳动面试——C++研发工程师
- 阿里算法工程师 - 计算机视觉方向
- 测试工程师年度计划制定
- 测试工程师如何渡过互联网寒冬
- 数据科学家和工程师:各霸一方,一旦联手,所向披靡
- 百度2014校园招聘笔试题 ——深度学习算法研发工程师.
- CSDN学霸课表——信息安全工程师(软考中级)
- [算法]2018年阿里巴巴数据研发工程师编程题
- 如何“快”、“准”、“狠”成为优秀算法工程师
- 《运维工程师成长之路》——导读
- 专门针对科学家工程师的僵尸网络
- 从零开始学习Django框架,成为专业Web开发工程师
- 从算法工程师到全栈开发者,我终于明白了数据科学的真谛
- Python教程之面向数据工程师和分析师的 8 种基本 Python 技术(附代码示例)
- 《Web前端工程师修炼之道(原书第4版)》——导读
- 职位介绍之硬件工程师(提升宝典)