面的公司不多,基本都是提前批(找工作主要还是依靠提前批,坑多人少)。大多数时间都是在问简历相关的问题,基础知识和编程也涉及到一些,简单总结一下,也算回顾面试过程了。
面试题
基础知识
求空间中两异面直线的距离
SVM的原理、推导
SVM与决策树的比较
各种熵、KL散度、JS散度
解释梯度消失、梯度爆炸,以及为什么
解释过拟合,如何解决
编程
手写快排,快排的时间复杂度(为什么是O(nlogn)),比快排更快的算法实现
手写归并排序
求逆序对个数
手写maxpooling实现
计算IOU的实现
判断链表有环
深度学习相关
卷积网络中参数量、运算量的计算
BN层的原理、应用,训练和测试时的设置
Dropout 层的原理、应用
各种优化算法的比较
如何计算感受野
描述GAN,包括流程、Loss函数、生成器和判别器的结构
GAN与之前方法(如VAE)的比较
GAN的引申,描述一下比如DCGAN,WGAN(因为我说看过WGAN,所以让我讲了一下WGAN解决的两个问题以及如何解决的)
讲一下MobileNet,如何减少模型参数量
项目相关
因为这块会根据每个人的项目有很大的差异,所以简单根据我的某个项目(迁移学习相关)介绍一下面试官会注意到的地方
为什么要用迁移学习
讲一下迁移学习的应用场景
迁移学习和深度学习结合的方式、种类
2018的best paper讲一下(迁移学习相关)
用到的损失函数,以及与其他损失函数的比较(比如MMD和KL散度的比较)
迁移学习在项目中的作用体现在什么地方,如何评价
开放性问题
有时候除了基础知识,面试官会设置一个场景,问一些开放性的问题。
如何根据数据量选择用哪个模型
如何处理数据不平衡问题
如何调参,按照什么思路调参?(比如先判断是否过拟合,损失函数和优化函数的调整,权重初始化,数据归一化等等调参手段)
改过框架的源码吗
hr面试
HR面试一般就比较轻松了,基本就是聊人生聊梦想
为什么来这,对公司有什么了解
之前科研/实习经历有什么收获
遇到压力难如何处理
遇到和别人意见不一致时怎么处理
说一下自身的优点和缺点
看论文/写代码的频率