Deecamp面经

终于收到了通知~第一志愿被录取~回顾一下自己的面试经历,分享出来~

紧张的等待中,就终于到了要面试的时候

      在牛客网进行面试,有一个面试链接,直接点进去,里面有编程的页面,右上角是面试官的视频框,但是这个面试没有让编程。本来时间是16:00,共有11位面试官,我签到排队后排到了51号,等待了21分钟,16:21开始面试。

面试开始后:

面试官:

      你好,我是DeeCamp的面试官xxx。请用2分钟的时间,做一个简短的自我介绍。

我: 

        您好,我是xxx本科就读于xxx,专业是xxx,本科保研后继续就读于xxx,专业是xxx,方向是人工智能方向。

      我做过的关于人工智能方向的项目主要有:(1)本科毕业设计的时候,做的“基于视觉的烟雾识别系统”,数据集是中科大火灾实验室的1000张图片,主要采用的方法是,(一)非深度学习的方法,主要是HOG、LBP特征结合SVM,效果并不是太好;考虑到可能是由于训练集数目太少所导致,所以想到使用(二)深度学习的方法,采用迁移学习的方法,使用在ImageNet上训练好的VGG16,最后的效果很好。考虑到实际应用场景,我将它移植到树莓派上面,并采用了轻量级的网络MobileNet,最后通过树莓派外接摄像头来获得实际场景,并对是否有烟雾做出判断,同时显示有烟和无烟的概率。

      还做过一个人脸朝向识别的项目,采用的数据集是:共有20人,每人有96张图片,共有1888张图片,这个数据集有关于情绪的,比如开心或者沮丧,还有是关于是否戴墨镜,但是我用到的只是其中关于人脸朝向的部分,一共有四个状态:up,straight,left,right。我首先写了一个简单的CNN网络来实现,效果不是太好,准确率只有90%,考虑到是由于数据集太小导致的,所以改用迁移学习的方法,利用在ImageNet上面预训练好的VGG16和ResNet50来实现,但是VGG16的效果不好,发生了过拟合。ResNet50的效果很好,准确率达到了97%,最后我把在服务器上训练好的参数保存下来,放在笔记本端,做了一个Demo,通过调用笔记本的摄像头,来对于拍摄到的人脸朝向做一个实时判断,准确率很高,实时性也很好。

      另外就是近期做的一个项目,是复现了牛津大学VGG组的一篇论文《类别无关的计数》,对其中的网络GMN进行了一些简化和改进。之所以能够做到计数与类别无关,是因为文章将计数问题转换成了匹配问题。网络的输入是一个大图和一个小图,大图就是待计数的图,小图是从大图中随机切割出的一个小样本,比如大图中有4个飞机,那么小图就是随机切割出的一个小飞机。然后大图经过处理后得到一个特征图(32*32*512),小图(1*1*512)经过处理后,得到一个特征向量,然后将小图变到和大图一样的尺寸上,再沿通道合并进行拼接,最后得到的是热力图,每个小飞机的概率呈高斯分布,给定一个半径,半径外的背景部分概率设为0,对热力图进行积分,便可以得到数量,取概率最高处的位置,便是飞机的位置。

    这就是我的基本情况,谢谢您。

面试官:

好的,我就是说做一个简单的自我介绍啊, 没想到你把项目介绍了一遍。

我:

哦哦。好的,不好意思。

面试官:

没事没事。我看你做的项目里,提到了VGG还有ResNet,那你能简单说一下这两种网络的特点吗?

我:

好的,那我先说一下ResNet吧,ResNet50之前,是building block结构,后来是bottleneck的结构,building block结构包含一个残差支路和一个short-cut支路,为了避免随深度加深导致的梯度弥散问题。building block是两层卷积,bottleneck是三层卷积,添加了1*1的卷积,减少了通道数,参数个数和计算量。

面试官:

那,ResNet激活函数用的什么呢?

我:

sigmoid吧。

面试官:

嗯?后来用的什么呢?

我:

哦哦。说错了,用的是ReLu。

面试官:

好,那你说一下,VGG有什么特点呢?

我:

VGG的特点的话,……,不好意思,我不太知道。

(后来问我狮虎,才知道,VGG没什么特点,就是网络深)

面试官:

你能说一下SVM吗?

我:

SVM就是支持向量机,在说SVM之前,先说一下支持向量机,支持向量机其实就是,找到能够分开正类和负类的决策面,但是这样的决策面有很多,由此引入了支持向量的概念,来找到最优决策面,所谓支持向量,就是到决策面距离最近的向量,通过最大化支持向量与决策面之间的距离,来找到最优决策面。在求解的过程中,有一个拉格朗日对偶问题,会出现映射函数的内积,我们只需要知道内积,并不需要知道具体映射,所以我们令这个内积为一个函数k,称为核函数。

面试官:

那请问svm找到的最优决策面,和数据在一个空间吗?

我:

在吧。

面试官:

那核函数有什么作用?

我:

哦哦,不在,不一定在,因为有时候原空间线性不可分,那么需要转换到更高维度的空间上。

面试官:

你知道不知道BN呀,这个有什么作用。

我:

知道,BN就是batch normalization,批标准化,其实是数据预处理的时候,通过归一化来实现数值稳定性,但是经过ReLu等激活函数后,不再具有数值稳定性,所以就想进行一下标准化,一组数据,先减去它们的均值,再除以它们的方差,但是这样做就可能使得费尽心思学到的特征被归一化了,所以再进行一个反标准化的过程,也就是,先乘以一个缩放系数,再加一个偏移系数。

面试官:

好,那你觉得BN能不能解决梯度弥散的问题呢?

我:

我想一下,能吧,能缓解吧,数值稳定性嘛。

面试官:

你刚才说的这些项目,是你自己做的吗?还是和团队一起做的呢?

我:

都是我独立完成的。

面试官:

那你有没有跟团队一起做过项目呢?

我:

有的,之前跟我们实验室的师兄师姐一起参加过一个“花草识别的比赛”,还和师兄一起参加过,AIChallenger的眼底水肿病变识别比赛,最近还参加了一个阿里天池的人工智能对抗算法竞赛。

面试官:

(这时候,面试官露出了笑容)

那你AIChallenger的成绩怎么样啊?

我:

40名左右吧,30+。

面试官:

那挺不错的啊。

面试官:

如果来的话,你暑假的时间,能保证吗?

我:

能保证。

面试官:

你是通过什么渠道了解到我们DeeCamp的呀?

我:

我朋友去年参加过这个夏令营,感觉非常棒,就推荐我今年也参加一下。

面试官:

你平时有一些什么爱好啊?

我:

我平时喜欢画画,喜欢文学,喜欢养植物。也会思考这些和AI的联系,比如之前的花草识别比赛,再比如,我看今年的DC实践课题里面有一个“神笔马良”,这些我都特别感兴趣,去年的题目中,有这个AI写歌词的,我觉得也非常有意思。

面试官:

好的,我明白了,还有什么问题要问的吗?

我:

我思考一下,……,应该没有了。

面试官:

好的,那就这样,谢谢你的配合。


      面试结束的N天后,突然有一天,收到了一封DC发来的感谢邮件,上来就是感谢您参加第一次笔试和面试,天啊吓得我小心脏都跳出来了,可怕啊,这仿佛就是说,你是个好人的意思。还好我继续往后面读了一下,才放心,原来只是单纯地感谢啊。吓了一大跳啊。另外这里的这个二次面试,是指如果第一次面试中,因为时间太短,或者网络的原因,导致面试官还有一些基本问题没有了解清楚的情况下,会有二面。

于是我就在知乎回答了一下。

https://www.zhihu.com/question/325686128/answer/692722905

你可能感兴趣的:(Deecamp面经)