海康威视电话面

这部分内容的情况有些记不太清了,应该是提前批次,电话面试之后,如果通过会邀请去现场面试(现场面试情况后续给出)。

毕业之前,仅做感恩回馈吧,希望能对有需要的人起到一点帮助。
其中的解答部分,是个人在面试之后整理的一些,有疏漏错误之处,大佬们指出更正,避免误导。

面试岗位:AI算法工程师

对于其中有参考和涉及的内容,基本上注明了来源,若有侵犯与不当,请私聊更正或删除。
感谢网友们的无私分享。

一、电话面(2019730日星期二)

1. 介绍个人项目,用到的方法和框架,创新点及结果

答:略。

2. 解释下C++中类的继承?有没有具体项目或实践?


3.        图像处理中的缩放方法有哪些?

3.1 图像缩放算法小结

3.2 图像插值算法之双三次插值


4.        图像模糊方法有哪些?

4.1 数字图像处理—图像高斯模糊运算直观解释

4.2 图像模糊有什么用


5. SoftMax Loss

5.1 卷积神经网络系列之softmaxsoftmax losscross entropy的讲解

5.2 详解softmax函数以及相关求导过程

5.3 Softmax函数与交叉熵


6. 过拟合原因?怎么解决?

6.1 深度学习—过拟合问题

根本原因特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。过度的拟合了训练数据,而没有考虑到泛化能力。

减少过拟合总结:过拟合主要是有两个原因造成的:数据太少+模型太复杂
(1)获取更多数据 :从数据源头获取更多数据;数据增强(Data Augmentation)
(2)使用合适的模型:减少网络的层数、神经元个数等均可以限制网络的拟合能力;
(3)dropout
(4)正则化,在训练的时候限制权值变大
(5)限制训练时间(提前停止);通过评估测试;
(6)增加噪声 Noise: 输入时+权重上(高斯初始化) ;

(7)BatchNormalization

(8)结合多种模型: Bagging用不同的模型拟合不同部分的训练集;Boosting只使用简单的神经网络;

7. 正则化项的作用?

7.1 深度学习—过拟合问题

正则方法主要有哪些?

(1)L1L2正则:都是针对模型中参数过大的问题引入惩罚项,依据是奥克姆剃刀原理。在深度学习中,L1会趋向于产生少量的特征,而其他的特征都是0增加网络稀疏性;而L2会选择更多的特征,这些特征都会接近于0,防止过拟合。神经网络需要每一层的神经元尽可能的提取出有意义的特征,而这些特征不能是无源之水,因此L2正则用的多一些。

(2)dropout深度学习中最常用的正则化技术是dropout,随机的丢掉一些神经元。

(3)数据增强,比如将原始图像翻转平移拉伸,从而是模型的训练数据集增大。数据增强已经是深度学习的必需步骤了,其对于模型的泛化能力增加普遍有效,但是不必做的太过,将原始数据量通过数据增加增加到2倍可以,但增加十倍百倍就只是增加了训练所需的时间,不会继续增加模型的泛化能力了。

(4)提前停止(early stopping):就是让模型在训练的差不多的时候就停下来,比如继续训练带来提升不大或者连续几轮训练都不带来提升的时候,这样可以避免只是改进了训练集的指标但降低了测试集的指标。

(5)批量正则化(BN):就是将卷积神经网络的每层之间加上将神经元的权重调成标准正态分布的正则化层,这样可以让每一层的训练都从相似的起点出发,而对权重进行拉伸,等价于对特征进行拉伸,在输入层等价于数据增强。注意正则化层是不需要训练。

7.2 深度学习中的正则化方法总结——深度学习第七章

7.3 欠拟合、过拟合与正则化——深度学习花书第五章(二)

欠拟合(underfitting)和就是指模型的训练误差过大,过拟合(overfitting)就是指训练误差和测试误差间距过大。

模型是欠拟合还是过拟合是由模型的容量(capacity)决定的。低容量由于对训练集描述不足造成欠拟合,高容量由于记忆过多训练集信息而不一定对于测试集适用导致过拟合。训练误差,测试误差和模型容量的关系可以由下图表示,在容量较小时我们处在欠拟合区,训练误差和测试误差均较大,随着容量增大,训练误差会逐渐减小,但测试误差与训练误差的间距也会逐渐加大,当模型容量超过最适容量后,测试误差不降反增,进入过拟合区:


7.3 DropOut

1)在神经网络的训练过程中,对于神经单元按一定的概率将其随机从网络中丢弃,从而达到对于每个mini-batch都是在训练不同网络的效果,防止过拟合。

(2)理解dropout


8. 算法题:找出数列中前K个最大的数。

8.1 寻找给定的一个数组中第k大的一个数,或者是寻找前k大个数

思路1这道题是一道常见的面试题,使用二叉堆的思想进行操作。首先取前K个数,构建二叉堆,时间复杂度为K/2 * LogK,并排序(最大/最小堆),时间复杂度为KLogK;

然后依次将剩余的元素,与堆顶进行比较,若符合条件(大于或小于)则采用插值方法进行原地替换,不需要额外开辟空间,最多需要移动比较K次。时间复杂度为K(N-K);

因此总的时间复杂度为K/2 * LogK + KLogK + K(N-K),空间复杂度为K。当N远大于K时,时间复杂度约为O(N);当K接近N时,时间复杂度接近O(N^2);

思路2利用快排的思想,循环找到第k个位置安放正确的元素,此时k的左边是小于k位置元素的元素,右边是大于k位置元素的元素,即前k个元素就是问题答案。时间复杂度O(n)。

——不需要排序

参考链接:

1漫画:什么是堆排序?

2最大K个数问题的Python版解法总结

#海康威视##算法工程师##校招##面经#
全部评论
记录很详细,还有答案,感谢!
1 回复 分享
发布于 2020-05-29 21:56
8.1 那道题我在牛客网上为啥通不过啊
点赞 回复 分享
发布于 2020-05-30 11:18
电话面面了这些问题吗?还是和现场面一起?
点赞 回复 分享
发布于 2020-09-10 21:21

相关推荐

算法自动驾驶算法工程师,详细讲一讲。 1.电话面试  很早的时候就投递了海康的自动驾驶算法工程师的岗位,前段时间接到了海康的电话面试,主要是问项目,相当于简历面。后来上海康官网去看,自动驾驶算法工程师的hc只有5个,感觉竞争可能比较激烈。 2.现场面试 初面 现场,等了大概一个小时,被叫去初面。有两个面试官,问了一下项目内容和研究方向,聊了半个小时,主要是细致的问了项目内容。 比如问你当时的解决方案,你用的这个算法当时是怎么考虑,对于某些情况有考虑过吗,对于可能出现的xxx情况怎么办?项目的难点在什么地方,你是怎么解决的?😅 一直是一个面试官在问,聊了半个多小时,然后另一个面试官突然说,考个代码吧,然后让我在a4纸上手撕了一道排序算法。在我写写画画的时候,两个面试官出去交流了一阵,回来后看了一下代码,然后又问我你觉得你之后的研究方向是什么?有什么难点或者你要去努力完善的?然后问我有什么问题吗?😶我就问了一下自动驾驶的业务场景。然后他们说先这样,让我去大厅报道处等通知,一会加一面。 二面 到了大厅呆了没两分钟,hr让我去另一个房间二面,一个面试官,上来先问我的研究方向是啥,然后这个研究方向业界怎么整的😐,我就按照传感器类型,解决方案结构,特征提取方法大致分了个类。问了一下我论文,问了一下双目视觉深度图方式的目标检测怎么样?优缺点,之后的发展前景?你对无人车未来技术趋势有什么看法等等。 这一面问的都是很宏观和趋势上的问题,如果之前没有思考过还真有点难答好。感觉很考验对自动驾驶这个领域的整体理解。 聊了半个多小时,问了一下你在实验室都几点回去(可能海康加班多😂),然后问我还有问题吗?我说之前一面问了比较细致的业务场景,我想问一下公司在无人车宏观上的布局或打算?答曰商业机密,不告诉你,然后反问我你觉得现在很多的无人驾驶创业公司怎么样?😐我说烧钱,业务场景不是很明晰,短期看不到盈利,我可能不会去考虑。然后就让我等hr面。 hr面 就是闲聊,问一下家是哪的,准备在哪发展,为什么。项目怎么样,觉得最大挑战是什么,有没有压力大的时候这样。聊完就说我没有什么问题了,然后让出去听报道处的安排。 一面技术问的比较多,可能我的一个项目方向面试官比较感兴趣,就着重问了那一个项目,然后代码能力也要有的,刷一下剑指offer基本没问题了。 二面面试官应该是个leader,更关注宏观上的东西,如果在学习的时候只关注自己领域的具体细节,对其他相关领域不关注,可能容易问到知识盲区。海康威视2025届校园招聘开启【关于我们】海康威视成立于2001年,是一家专注技术创新的科技公司,致力于将物联感知、人工智能、大数据技术服务于干行百业,引领智能物联新未来【招聘岗位】综合类(人力、会计、运营、商务)、营销/技术支持类、算法/网米哈游TCL络安全/大数据类、器件电路类、软件/嵌入式类、硬件/结构类、测试/支撑类、供应链类、体验设计类【工作地点】杭州、武汉、西安、成都、上海、北京、石家庄、全国90+城市和海外多地【福利待遇】有竞争力的薪资+影响世界的宽广舞台+持续可期的成长回报+踏实专注的做事氛围+接轨市场的创新实践【投递链接】http://campushr.hikvision.com/【内推码】9PPA31(简历优先筛选,后续有流程上的问题欢迎随时联系)使用内推码简历优先筛选,有任何问题包
海康威视
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
12 99 评论
分享
牛客网
牛客企业服务