前言
面的公司不多,基本都是提前批(找工作主要还是依靠提前批,坑多人少)。大多数时间都是在问简历相关的问题,基础知识和编程也涉及到一些,简单总结一下,也算回顾面试过程了。
面试题
基础知识
- 求空间中两异面直线的距离
- 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面试一般就比较轻松了,基本就是聊人生聊梦想
- 为什么来这,对公司有什么了解
- 之前科研/实习经历有什么收获
- 遇到压力/困难如何处理
- 遇到和别人意见不一致时怎么处理
- 说一下自身的优点和缺点
- 看论文/写代码的频率
- 聊男/女朋友,是否支持你来
- 有没有其他offer