一次神奇的电话面试,做个记录,争取下次语言更流畅……
背景是3月前过的太舒服了,打比赛写论文,完全忘了复习复习准备春招,一直在仓促的复习赶进度,然后上周感觉时间太晚了,死猪不怕开水烫,把简历做好全投出去了……还想留几天时间好好复习,没找师兄要内推码,裸投……
后来发生了一些神奇的事情,阿里一个大哥在牛客看到我的简历帮我改成内推了,今天下午就接到了电话!效率太高了,完全没有准备好!
以下是正经内容
- 自我介绍
没想到还有这个环节,没准备,仓促的讲了讲教育背景,然后说了一下研究经历,还有比赛和项目方面的经历。
- 简历上的比赛
在 kaggle 水了一下鲸鱼识别,苟到了银牌。面试官问起来,我就讲了一下比赛的心路历程,讲了一下两次关键的成绩上升用到的方法,还有提升背后的思考。关于这个比赛,具体的方法和心路历程,等有时间单开一篇再讲……
关于比赛,我觉得在简历上要写的够全面但是不要太详细,less is more,然后一定要讲清楚比赛的背景和数据,等面试官有针对性的提问,他提问的更深入,对你的印象就会更好。然后每一次的重要的决策,要讲清楚选择的原因。比如我在鲸鱼识别里边,选用孪生神经网络和 Triplet loss 这一类的方法,就是考虑类别多样本少,压缩类内距离,拉伸类间距离,很直观上就比在数据非常不均衡的情况下的单纯分类方法要好很多。
- 简历上的项目
还是一个计算机视觉方面的项目(我猜是简历里边视觉方面的比重太大了,所以才给我内推了视觉…),我就讲了一下如何从零开始的心路历程…
- 如何心酸的构建训练集测试集,然后因为数据太难收集,考虑了迁移学习的方法
- 考虑训练集的风格不一致问题,使用了IBN的结构
以下是正经的有参考价值的内容
机器学习
- Q: 深度学习发展起来之后,还有哪些机器学习方法是你认为仍然很有用的?
A:
SVM(支持向量机就不用多说了,还是蛮强大的)
LR - 逻辑回归在很多业务场景下都很常用,主要是结构简单直接,可解释性强,并且能总结出公式的形式;
决策树 - 决策树在进行特征工程的时候很优秀,基于路径的编码更是进行特征组合的一种有效方式;
HMM - 隐马尔科夫模型在进行具有时间连续性的决策上,非常好用,我论文也用过它…
随机森林,梯度提升树,xgboost…就不一一列举了
- Q: 讲一下HMM,然后HMM主要用来做什么?
一时之间有点卡壳,没整理好语言…
A: 回答了 π, A, B三元组,然后从初始状态开始,通过转移概率矩阵得到状态链这些,然后就讲了一下论文里面怎么用的HMM。
主要是,通过SVM做了预测,利用预测结果之间的时间连续性,定义状态转移矩阵,通过HMM模型进一步纠正SVM的预测结果。
数据结构
- Q: 堆是什么,主要用来干什么
A: 我以大根堆举例,就是双亲节点一定比两个孩子节点的值都大,然后可以用来实现优先队列,优化最短路径算法(->),选取topK这些。
- Q: 描述一下单元最短路径算法,然后问是贪心还是动态规划的思想。
描述我不啰嗦了…后边扑街了,只想起来是基于贪心思想的决策,忘了储存dist数组其实也是动态规划的思想。
算法
- 合并两个有序数组
设置两个哨兵,分别在数组上移动,然后每次保留较小的…经典题,不啰嗦了……
- 如何在float数组里删除重复的元素
问清楚面试官可以不保留原数组的元素顺序之后,回答:
先将数组排序,然后设定阈值,相邻两个元素的差值小于阈值的时候,就删除后边的元素。
深度学习库
问了我对keras和tensorflow的使用经验,然后问了一些简单的问题,keras的generator怎么实现这种。然后面试就结束啦~