岗位是中央媒体研究院--算法工程师
很遗憾的是OC的时候hr说能去,但我拒绝了,因为实验室时间跟暑期实习冲突了。提前批和秋招还会投华为的。
一面--技术面(面试官刚好做的方向跟我差不多,然后就聊了很多学术的东西,基础反而问的很少)
1.自我介绍
2.你觉得笔试题目难度如何?有什么感受?
答:笔试题的难度适中,三道题难度是渐进式的。让我印象最深的是华为的三道笔试题都是场景类设问,我很喜欢这种方式,因为更贴近现实,而且更具启发性思考
3.你的简历里写你的研究方向是语音增强,你应该读过很多文章,说说近几年的发展。
答:(刚好写完一篇文章,引言部分还记得), 首先简要介绍了一下传统方法,然后介绍深度学习的方法,分别从时域模型和时频域模型的角度介绍了当前领域进展,并将自己做的时域模型做了简单介绍。
4.你刚才提到了“时域模型比时频域的模型性能差”,那为什么还要选择时域模型进行研究?
答:因为在启动课题之前的阅读文献中我发现虽然时频域模型性能比较好,但也有其局限性,输入的特征依赖人工选择,而且处理时频特征使用的是图像处理的方法,忽略了很多语音中特有的东西,其次,端到端的模型还是大趋势,无论是图像还是视频处理中端到端的模型在研究的后期都展现出了比非端到端模型的优越性,所以我选择了时域的端到端的模型作为研究对象。
5.刚才还提到时域模型输入是直接的语音序列,但传统的特征也有其优势,你在做的时候又是怎么取舍的?
答:是这样的,所以我做的时候兼顾了两者。在模型中为了实现端到端使用了序列输入,但我并没有放弃时频特征的功能,而是将它加工成了一个损失函数中的附加损失项,在前辈们的工作中已经证明了这种操作的合理性,我的创新点是采取了与他们不同的处理方式,并且得到了更好的效果。
6.你认为GAN中生成器重要还是鉴别器重要。
答: 生成器和鉴别器共同组成生成对抗网络,缺一不可。但在大多数任务中,使用生成器进行数据的处理,鉴别器更像是一种动态的损失函数,可以随着训练而优化,因此我认为生成器更加重要。
7.你认为GAN训练中存在的最大的难题是什么?
答:以当前我的研究深度,我认为GAN训练中最大的难题是生成器和鉴别器之间的平衡问题。虽然在后续的研究中有研究者提出一些trick解决这一问题,比如WGAN及其变体,但这个问题以及存在。但生成器性能过高,可能导致训练初期鉴别器就已经达到动态平衡,即鉴别器损失为0.5(广义上的一半一半),这时鉴别器对生成器的指导作用几乎为0,反之,鉴别器性能过高,在训练初期鉴别器损失函数迅速达到0,生成器无法从鉴别器中的到有效信息,或无法快速的理解鉴别器传递的信息,导致训练失败。
8.ResNet听说过吗?说说残差机制。(这个回答的不好,因为没有研究过ResNet,所以只是按自己理解说了一些,面试官似乎并不满意)
答:ResNet是当前比较流行的特征网络,在它之前,研究者们普遍认为使用堆叠小卷积核得到更深的网络从而得到更优的特征提取效果,但ResNet另辟蹊径,使用残差的方式,将浅层信息往更深的网络层传递,以达到特征的反复利用。通过这种方法的到的网络参数量很小,而且不需要很深的网络深度即可得到比较好的特征提取效果,并且残差的使用也有效的抑制了梯度消失的问题。
9.说说CNN和RNN的区别和使用场景。
答:CNN是卷积神经网络的简称,卷积神经网络一般由三个部分组成--输入层,输出层,和隐藏层。其核心的操作是卷积操作。卷积操作本质上是一种分组函数,CNN使用卷积来筛选数据并查找信息。卷积神经网络的特点是使用固定大小的输入和输出,并且学习的特征倾向于空间特征,因此卷积神经网络更适用于图像和视频的处理。RNN是循环神经网络的简称,与卷积神经网络不同的是,RNN中存在记忆单元,可以接受之前的信息指导当前的数据处理。循环神经网络的特点是可以接受变长的输出并产生变长的输出,并且学习的特征倾向于时间特征,或者说序列特征,因此循环神经网络更适用与语音和文本的处理。但是其实在具体领域这两者的应用没有具体分界,谁的性能好就用谁呗。
10.说说怎么应对过拟合。
答:一是扩充数据集,并提高数据多样性,可用的方法如数据增强,增加数据等;二是提前停止训练,在检测到过拟合时就提前将训练停止;三是使用正则化,包括范数正则化和Dropout等;四是削减模型的参数。
11.说说SVM的原理(这个我基本不会,因为没准备笔试,所以经典的机器学习没看)
答:抱歉,这个我没有仔细研究过。曾在书上看到过,SVM是通过训练一个超平面,这个超平面要满足每一类样本点到该平面的最小距离最大,而且SVM本质上是一个线性分类器。就知道这么多。(不会的一定不要瞎扯,只说一下自己拿得准的,然后就直接说不会就行)
12.你听说过TasNet吗?也是做你这方面的,中科大发布的一个模型。
答:不好意思,没有听说过,我记一下,等面试完去找文献来读一下。(我真的去找了,是做语音分离用的)
13.写个题----LEETCODE17
import sys def keyboard_inputs(s: str): keyboard = {'2': ['a', 'b', 'c'], '3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'], '5': ['j', 'k', 'l'], '6': ['m', 'n', 'o'], '7': ['p', 'q', 'r', 's'], '8': ['t', 'u', 'v'], '9': ['w', 'x', 'y', 'z']} if not s: return [] res = [] def find(value, next): if len(next) == 0: res.append(value) else: for word in keyboard[next[0]]: find(value+word, next[1:]) find('', s) return res if __name__ == '__main__': inputs = sys.stdin.read().rstrip() print(keyboard_inputs(inputs))
14.反问
问:我去华为实习的话主要是做些什么呢?
答:暑期实习一半俩月的话可能是一些文献复现和已经做过的项目得实践。如果时间能更长的话,就会带你做项目。
二面--主管面
1.说说你在课题研究中遇到的问题,是怎么解决的。
答:课题开展过程中遇到的问题很多,我讲一个我感触最深的,我的研究方向是语音增强,在深度学习这一块儿,做语音的很少,做语音增强的更少,我身边只有我自己在做。这就导致能交流请教的人很少,网上的可参考的东西也很少。刚开始也是经历了一个盲目的时期,后来通过在网上查找资料知道了几个声学会议比如ICASSP、InterSpeech等,然后就追会议,慢慢的也开始认识了一些同行,我就不断地去骚扰他们,去问在科研中的问题,发微信,发邮件等。后来读的文献多了,交流的多了,也就慢慢的找到方向了。这个对我影响挺大的。当面对陌生的任务或者领域的时候,还是要多去交流,尽量不要脸一些,交流是十分重要的。
2.我看你发表过一篇EI,你的数据是自己采集的吗?
这个回答牵扯到了具体的地点或人所以不分享了噢。
3.能具体说一下采集的经历吗?
这个回答牵扯到了具体的地点或人所以不分享了噢。
4.说说这个过程中最困难的地方。
这个回答牵扯到了具体的地点或人所以不分享了噢。
5.如果现在交给你一个任务,你会怎么开展?
答:首先我会对任务进行宏观上的规划,这个并不是出直接的方案,而是做功课,查资料,对它有一个了解,并整理出自己的想法。然后带着想法去请教更有经验的人,并根据他们的建议制定初步的方案。在方案实施的过程中也要不断的微调方案,见机行事。而且实施过程中绝不能闷头做事,一定要定期交流,定期评估。实施完成后还要进行总结归档,为以后留下经验和教训。
6.你认为华为是一个怎样的公司。
答:我很早的目标就是进入华为(这不是故意这么说的,是真的),之前用过华为的路由产品,其实现在的产品体验上各家只要是叫得上名字的品牌都差不多,但是华为给我印象最深的就是售后,因为我那个路由器一直放在一个比较多灰尘的环境中使用,所以出了问题,就从网上申请了售后,然后没想到一个小时顺丰就来取了,第二天就给我送了个新的,然后给我通过电话解释了故障原因,这让我很有好感。因为还用过网件和小米的也是坏了,但售后体验都不是很好。从一个消费者的角度认同了华为的认真的态度,并且觉得它是一个可以信任的品牌。再后来以华为为目标后,也读了一些关于华为的书,可能对华为的感觉是一个大家一起在为了目标奋斗的公司,很值得去。
7.你能来的话,计划的实习时间是多久?
答:我的话实习计划就是暑假六月末到八月末,两个月吧。
8.反问环节
问:我想问一个研究上的问题。在我研究的过程中发现,很多模型在文献中一般都描述的很厉害,并且在公开集上也表现出了良好的效果,但实际使用却不好。对此我想听听您的建议,怎么才能在比较早的时候就能评估一下这个模型值不值得我花时间去调优呢?
答:说了很多,总结一下建议前期先搞一部分实地数据。
全部评论
(1) 回帖