此专栏主要总结各大厂机器学习相关的面试经验,欢迎大家投稿分享面试经验

最近有朋友问我如何准备视觉算法的面试,恰好看到一篇很不错的文章(感谢@辛俊波写的这篇文章),有相关疑惑的朋友可以看一下

如何看待 2020 届校招算法工程师岗位求职人数远大于招聘岗位的现象?​www.zhihu.com

岗位信息如下:

一面(时间2019.3.14,形式是视频面试) -- 已凉

下午四点面试,晚上七点半收到了凉凉的邮件通知,不慌的,再接再励,查漏补缺,下面我就详细总结一下面试的经过。

注意:回答不一定正确,仅提供了我个人的回答,答案里有些不正确的地方,我之所以给出我的个人回答只是为了更好地还原面试过程,最近如有时间,我会整理出正确的答案。

注:我在下面的这篇文章中汇总了一些好文章,如果有需要的可以参考一下

JustDoIT:计算机视觉知识点总结​zhuanlan.zhihu.com

致谢:感谢各位朋友和各位大佬给出的宝贵意见

总结:根据各位朋友和各位大佬给出的宝贵意见,我反思总结如下:

  • python 和 c++基本语法不够扎实,需强化基本语法点

例如对python里面的集合set不太熟悉

  • 回答过于简洁,难免给面试官基础知识不扎实的错觉,需讲得更详细
  • 深度学习的基础知识不扎实,不系统化,需构建知识体系

面试建议:面试官主要是对着简历进行提问的,然后再扩展一下相关的知识点。面试主要考察了项目、比赛以及一些理论知识和编程语言的语法点。建议大家可以看着岗位信息进行简历的制作并且在简历上出现的内容需要好好准备一下。

下面就开始还原面试过程

1、简单自我介绍

2、kaggle "TGS Salt Identification Challeng"模型的准确度是怎么算的?

我说ap,然后面试官问有没有用miou,我说没有

TGS Salt Identification Challenge

3、说一下unet的结构

卷积,下采样,上采样,然后低层特征图和高层特征进行融合,最后进行分类

4、熟悉deeplab吗,aspp是怎样的

不太熟悉,目前正在阅读相应的论文和源码,我目前是对FCN,unet,refinenet,mask rcnn比较熟悉

5、说说 智能盘点—钢筋数量AI识别 这个比赛

这个比赛是实现拍照即可完成钢筋点根任务,先使用了YOLO,然后用了faster rcnn还有retinanet

智能盘点-钢筋数量AI识别 - DF,CCF大数据竞赛平台

6、retinanet的focal loss是解决的什么问题

解决类别不平衡问题,对困难样本的损失分配比较大的权重

既能调整正负样本的权重,又能控制难易分类样本的权重

7、那focal loss有解决背景样本和目标样本的问题吗

我说应该有

8、谈一下比赛中提到k-means算法

我说yolo是根据iou来进行距离度量的

https://github.com/AlexeyAB/darknet/blob/master/scripts/gen_anchors.py

9、那k-means是怎么实现的,k近邻算法呢

这个我用的是官方源码

估计面试官想问的是这个原理,K-Means聚类算法原理 - 刘建平Pinard - 博客园

10、opencv做了哪些数据增强

直方图,翻转,随机裁剪,高斯模糊,高斯噪声

11、怎么做的模型融合

如果是同个模型,会整合两个模型的检测结果,根据score来排序再做nms操作。

但这里我是用的不同模型,用的yolo和faster rcnn,他们的score没有太大的可比性,所以我没有用score来排序,我是求两个模型的交集,以解决误检的问题

12、为什么用交集,不用并集

其实这个我是根据提交结果来决定的,事实上,在这里交集的效果比并集好,交集解决误检问题,并集解决漏检问题

13、安检机物品检测的图片格式是怎么样的

x光扫描的RGB图

14、为什么选用yolo而不用unet

比较熟悉yolo

15、yolo是怎么分配检测框的

每个grid分配9个检测框

yolo会输出3种尺寸的特征图,13*13,26*26,52*52,每种尺寸特征图的每个grid预测3个框

16、yolo的预测框是什么值(x,y,w,h)

是相对grid的相对值

17、faster rcnn回归用的什么公式

我说欧式距离

实际是smooth l1

18、熟悉smooth L1吗

描述了一下函数形式

19、说一下nms的操作

对每一类进行nms,先根据score进行降序排序,然后计算最高的score和其他框的iou,去掉iou大于阈值的检测框

https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/nms/py_cpu_nms.py

20、那假如一个类有1000个框,怎么计算iou和去掉大于阈值的框

先拿score最大的检测框和其余的检测框进行iou操作,这里用到了numpy数组的广播机制,然后用numpy的筛选操作,把大于一定阈值的检测框的score置0,然后下一次迭代从score不为0的检测框进行上述操作,直到操作完成

21、熟悉哪些基础网络

熟悉VGG、GoogleNet还有resnet这几个提取特征的,还有FPN这个来融合信息的

22、熟悉一些新的网络吗

不太熟悉,最近没关注,最近在研究代码

估计面试官想问的是这些网络Xception、DenseNet、DetNet,在文章开头的链接里汇总了

23、激活函数有哪些

sigmoid还有relu

还有tanh等
Activation function

24、sigmoid存在什么问题

梯度消失

25、relu的表达式

我说成leaky relu的了,然后面试官说确定吗,不是relu的变形吗,

我说我说错了,然后我纠正了一下

26、relu的变体有哪些

learky relu

如何理解ReLU activation function?
请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function?

27、熟悉normalization吗

比较熟悉bn和gn

张俊林:深度学习中的Normalization模型

28、说说bn

bn是解决梯度消失问题的,通过bn能使数据在输入到激活函数之前回到导数较大的位置

#解决问题
解决内部数据分布不稳定问题
#做法
统计mini-batch个样本的期望和方差从而进行归一化,但这样会导致数据表达能力的缺失,所以要引入两个参数从而恢复数据本身的表达能力
#优势
使得网络中每层输入数据的分布相对稳定,加速模型学习速度
允许网络使用饱和性激活函数,缓解梯度消失问题
具有一定的正则化效果

29、bn是做了归一化吗

先做了归一化,例如先减去期望再除以方差,然后再乘以一个参数和加上一个参数,这两个参数是可学习的

30、bn是在哪一维进行操作的

在mini-batch和通道这两维,描述了一下具体是怎么算的。我举了个例子,四维tensor,分别是[n,c,h,w],然后bn是统计每张特征图的期望和方差,而这个期望和方差是n个样本同一张特征图的期望和方差

31、那gn有什么用

gn是解决bn对mini-batch过度依赖,gn是在通道处进行分组统计,不依赖mini-batch

32、bn和gn都在哪用

bn和gn我所了解的是在目标检测,当然图像分类也用到bn

33、c++和python是都熟悉吗

是的

34、那c++的指针和引用有什么区别

一个用的地址,一个是别名,但都能修改值

35、那引用能重新赋值吗

不能

36、静态变量有什么用

能不在实例化类的情况下进行调用,而且每个实例化后的对象共享这个值

37、静态变量在哪初始化,能在类内初始化吗

在类内类外都行

一般是在类外初始化,如需在类内初始化,要求该静态变量为静态字面值常量类型 C++ 静态成员的类内初始化 - WanChouchou - 博客园

38、静态函数有什么用

能在不实例化类的情况下进行调用

39、python有什么常用的数据类型

列表、无序字典和有序字典

列表、元组、字典、集合等

40、对多线程了解吗

了解,但没写过

41、那如果让你自己实现pytorch里面的dataloader,你怎么可以使它加载快点

用多线程

42、python的append和extend有什么区别

append是添加单个元素,extend是添加一个列表

43、出一道算法题

算法题如下:给个有序数组,然后求元素平方后不重复的元素个数,例如[-10, -10, -5, 0, 1, 5, 8, 10]

我思想描述对了,然后面试官说有更好的方法吗,我想了一下说没有,然后面试官让我选个语言实现一下,选择了python来实现,用到了字典,然后面试官说用集合会不会更好,我说会的

# 这是我的实现,没有用到集合,如果用到集合会更好
data = [-10, -10, -5, 0, 1, 5, 8, 10]
new_list = []
for x in data:temp = x*xif temp not in new_list:new_list.append(temp)
print(len(new_list))# 其他实现
print(len(set([x**2 for x in data])))# 评论区有朋友提到,使用双指针会更优

44、有什么问题想了解的吗

我说看岗位信息提到会进行技术的理论研究和技术的落地,如果我去了会负责什么,面试官说因为实习时间比较短,一般是做些技术落地的项目

45、那有师傅带吗,那一般做什么项目

有师傅带,一般做力所能及的项目

参考:

1 U-Net: Convolutional Networks for Biomedical Image Segmentation

2 Focal Loss for Dense Object Detection

3 YOLOv3: An Incremental Improvement

4 Fast R-CNN

5 Faster R-CNN Towards Real-Time Object Detection with Region Proposal Networks

6 AlexeyAB/darknet

7 rbgirshick/py-faster-rcnn

8 Rectifier (neural networks)

opencv计算brox光流_字节跳动计算机视觉算法实习生视频面试相关推荐

  1. 招聘|字节跳动计算机视觉算法实习生

    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁.如果你需要我们帮助你发布实习或全职岗位,请添加微信号「CV_LAB」. 字节跳动计算机视觉算法实习生 岗 ...

  2. 字节跳动AI-Lab算法实习生-敏感文字方向

    1 招聘岗位 字节跳动AI-Lab算法实习生-敏感文字方向 2 坐标 上海.北京 3 岗位职责 1.负责深度学习/机器学习相关算法的研发.实现和落地: 2.负责深度学习/机器学习前沿技术的研究: 3. ...

  3. 后端开发面试自我介绍_字节跳动暑期实习后端开发面试经历

    字节跳动后端实习是什么,字节跳动后端实习面试流程是怎样? 今天小编就来帮助大家了解一下字节跳动后端实习面试到底有什么内容. (好了不皮了,开始正文) 字节的面试流程总的来说还是挺享受的,和面试官两人的 ...

  4. 字节跳动VQScore算法拿下ICME 2021“压缩UGC视频质量评估”比赛第一名

    在ICME 2021国际视频质量评估算法竞赛中,字节跳动拿下第一. 在多媒体领域世界顶级学术会议ICME 2021的「压缩UGC视频质量评估」比赛中,字节跳动旗下火山引擎多媒体实验室组成的" ...

  5. 【字节跳动背后的音视频技术揭秘】

    在过去的一年中,我们可以看到多媒体特别是音视频技术的能力在严峻的挑战下,为各行各业带来了巨大的变化.疫情过后,又会有哪些多媒体新技术.新实践呈现在大众的视野当中?为行业的发展与应用带来哪些新的趋势与机 ...

  6. 【免费活动】字节跳动背后的音视频技术揭秘

    音视频技术在近几年呈现突飞猛进的发展,一方面满足了企业对于业务高速增长的需求,另一方面也为业务的发展创造了更多的可能性. 活动介绍 10月29日 | 北京 LiveVideoStack将联合火山引擎的 ...

  7. 字节跳动暑期日常实习前端面试

    字节跳动暑期日常实习前端面试 这次面试的字节跳动的幸福里部门,本来我是不想面字节跳动的,毕竟字节的算法难度是公认的高,而这又是我的薄弱环节哈哈,不过群里加了个老哥非得让我试试,那我就试试吧哈哈哈,不过 ...

  8. 字节跳动经典算法题:给定一个数n如23121;给定一组数字a如[2 4 9]求由a中元素组成的小于n的最大数

    字节跳动经典算法题(提问次数最多) 题目描述:给定一个数n如23121:给定一组数字a,如[2 4 9]:求由a中元素组成的小于n的最大数. 思路分析:暴力分析手法 1. 判断该位的数值是否在数字a中 ...

  9. go每日新闻(2021-07-28)——字节跳动高频算法TopK

    每日一谚:Don't just check errors , handle them gracefully. go中文网每日资讯--2021-07-28 一.Go语言中文网 JetBrains 发布 ...

最新文章

  1. HarmonyOS 查看本地API
  2. 训练LaneATT遇到CUDA_HOME环境变量问题
  3. 关于xib里面的NSLayoutConstraint的multiplier修改
  4. 没事试试50mm1.4
  5. spring系列-注解驱动原理及源码-spring容器创建流程
  6. jeesite3环境部署时初始化数据库注意问题
  7. 定位模块介绍及使用(GPS、北斗、GLONASS、伽利略、准天顶)
  8. 张朝阳:社交是互联网的中原 做「狐友」是要逐鹿中原
  9. 学习ios,看到下面的博客感觉收获很大
  10. 浅谈WebView的使用
  11. Windows 程序基础
  12. ES6 深拷贝_JS基本数据类型和引用数据类型的区别及深浅拷贝
  13. MATLAB中文显示乱码如何解决
  14. XX市核酸检测软件开发基本方案
  15. win7电脑蓝屏没有修复计算机,技术编辑教您win7电脑蓝屏怎么办
  16. 本地运行Flink-DIMAPP出现问题
  17. 江西计算机竞赛有哪些,江西自主招生认可的竞赛有哪些
  18. QT 输入框禁止window10触摸屏弹出键盘
  19. Nature子刊 | 褚海燕组-土壤生物多样性与城市绿地生态系统功能(朱永官/韦革宏点评)...
  20. 碰撞、子弹路径、参考

热门文章

  1. Linux文本处理命令:cut grep awk sed printf
  2. Docker与虚拟机
  3. mysql administrator 备份 表_【转】如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库...
  4. 预处理器命令必须作为第一个非空白空间启动_第三章 图形处理器(上)
  5. RMEB运行环境要求
  6. PHP中的SESSION机制应用
  7. 萤火虫算法_智能优化算法萤火虫算法
  8. c语言中主函数创建链表,主函数怎么调用函数(数据结构,创建链表)
  9. java jar包图片_jar包的图片不显示 求解
  10. 凝血酶分子机器人_了不得!这个机器人可以拟制癌细胞生长