百度视觉技术部实习生面试2018-09-29-16:00

一、总记

今天20180929下午16:00,人生第一次算法岗面试。昨天下午看到百度之星开发者大赛群里的通知,跟往常一样丢了个简历过去。记得腾讯算法大赛后被call了两次,发邮件告知我有绿色通道,我发了简历过去就石沉大海了。这次很意外,29号中午接到了面试通知,此时只有两个小时的准备时间,有点方。

二、准备工作

1、赶紧把课题录音和ppt找出来开始记笔记。

包括:CPCD、数据集标记方法、densenet原理。

2、吴恩达《深度学习》笔记。

三、面试流程

1、学校专业、个人基本信息:

这就很尴尬了,我这个医学生不知道怎么样才能让面试官相信我不是来玩的。我就解释,我是中山医学院负责建模方向的研一学生,做的事情跟计算机系的学生一样。本科是学医的。面试官好像听出来了我在极力说明我真的是认真的,让我不要紧张。

2、根据简历问一些做过的项目和比赛:

(1)首先是算法比赛了。我重点介绍了一下腾讯广告算法大赛,这是我真正入算法坑第一次比赛。然后介绍了下清华的课题。我就以QA形式写一下这部分的面试问题吧。

①腾讯算法大赛

1)这个比赛的任务是:预测用户广告点击率。

2)数据量:几千万条,一共16个g的数据。

3)特征工程:单值离散型变量用了onehot,多值离散型变量用了countvector,单值连续型变量未作处理。自己又做了一些组合特征和计数特征。Onehot后会维度爆炸,因为每一列的离散型变量有很多,onehot后有几个离散型变量就扩增了多少列,特征维度就爆炸了。

进行了labelcoder。

4)模型:初赛使用lgb和xgb,复赛使用了ffm和nn。

5)Lgb和xgb的区别:没答上来,我说的是lgb的分裂节点多。大佬说lgb最强的地方是通过直方图找分裂点,lgb靠叶子,xgb靠深度。

6)Ffm是什么:因子分解机,具体原理不知道。

②课题

1)这个课题的任务:影像组学预测肝癌mvi风险。

2)数据预处理:使用张量算法把一个图片分成三维,取前x阶特征放入网络

3)数据集:训练集中抽取平衡的正例和负例,可放回的抽。

4)模型:densenet。

5)框架:tensorflow。还知道什么深度学习框架:tf、paddlepaddle、caffe。

6)对tf了解多少:原理。卷积核、池化、全连接。

7)介绍下CPCD具体参数:我说我借用的已有的算法,具体分解过程不太明白。

8)CPCD处理后输入网络的是什么:这一组的前x阶特征,就是前x阶特征像素点,包含肿瘤区域,感觉我是乱说的。

9)输入的分辨率:不会。

10)我是负责哪一块的:densenet调网络,准确率达到70%。

11)还有其他特征处理么:加入临床特征,把图片输出当做特征和临床特征一起输入lgb。

(2)其他跟图像识别相关的项目。我说本科做过单片机stm32图像识别。

①电赛做的板球系统

1)任务:使用stm32摄像头识别小球位置来控制板子运动,让小球达到指定位置。

2)算法:直接用源码改。因为有相应接口,调用就行。Opencv?不知道。C语言写的。(要凉)

3、编程语言的考察

1)习惯用什么语言:python。

2)常见的激活函数:relu、tanh、leaky、sigmoid

3)Python的数据类型:array、list、tuple、dataframe、series(感觉我是乱说的)。

4)List和tuple的区别:我只记得tuple是小括号。后来查是tuple不能改,list能改。一直不懂tuple,终于撞枪口了。

5)梯度消失、梯度爆炸怎么理解和解决:因为激活函数权重的参数更新,如果权重比1大一点点,指数迭代后,权重过大就梯度爆炸;如果权重比1小一点点,指数迭代后,权重过小就梯度消失。解决方法:不会。

6)Batch_normalization怎么理解和解决方法:开始以为是正则化,回答成了L2正则化是欧几里得函数,然后面试官说这是批归一化。我就不知道了。

7)会C语言么:会,stm32就是c语言写。

8)了解kmeans么:只知道是聚类,不记得咋用了。。

9)实习时间:都行。

4、现场写代码

1)Xcoder交互界面

2)赶紧联系泽喵外援,一下就懵逼了。给了十分钟,后来差不多到时间了,老师说他手机没电了,我也就基本上写了一半多。

3)题目:(其实后来发现是LeetCode简单题541题)

Given a string and an integer k, you need
to reverse the first k characters for every 2k characters counting from the
start of the string. If there are less than k characters left, reverse all of
them. If there are less than 2k but greater than or equal to k characters, then
reverse the first k characters and left the other as original.

Example:
Input: s = “abcdefg”, k = 2
Output: “bacdfeg”

Restrictions:
The string consists of lower English
letters only.
Length of the given string and k will in
the range [1, 10000]

4)交互界面的解答:

def string_reverse(s, k):
  leng_string = len(s)
  num_every2k = math.ceil(leng_string / (2*k))
  result = ""
  for i in range(num_every2k):
    idx_start = 2 * k * i
    if idx_start <= leng_string:
        result += s[idx_start:(idx_start+k)][::-1]
        result += s[(idx_start+k):(idx_start+2*k)]
     elif idx_start - k > leng_string:
        result += s[(idx_start-2*k):][::-1]
     else:
        result += s[idx_start-2*k:(idx_start-k)][::-1]
        result += s[idx_start-k:]
   return result

四、后记

1、面试持续了一个半小时,16:00-17:30,电话和微信语音。我全程想看看笔记却找不到,真的是每个步骤都必须亲力亲为才能波澜不惊。

2、感受和建议就是:

(1)自己做的东西,参与的比赛要搞懂每一个细节,不要怕慢,一定要搞懂。什么叫懂?就是原理理论不会忘,随时能给别人讲出来,代码会实现。

(2)广泛涉猎,你看的每一个细节都可能成为你回答问题的点。

(3)刷题:现场写代码说好的一般都是LeetCode抽题呢!弄懂原理随时会写,达到import ABCD的水平就好。

3、不在意结果,有这次机会已经弥足珍贵。也谢谢泽喵助攻。未来会更努力。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值