网易互娱AI研究工程师实习生一面——记人生的第一次面试

2020.4.15,这是我人生中的第一次面试,虽然结果不那么好,但也反映出我存在的各种各样致命问题。
我的研究方向是强化学习,确切来说是强化学习在路由方面的应用。由于个人原因,基本都是凭借着兴趣在自学,项目做的很简单,成了送命点。
将遇到的各种问题都记录来,尽快做好准备吧。

项目

面试官(简称面)首先介绍了AI实验室研究的各种方向(图像、语义、强化学习),并问我想做的方向。
我:强化学习。
面:介绍一下你简历上的这个项目吧。
我:(介绍强化学习应用在路由方面的一个小demo,做的很浅,就是用了一下Q-learning来代替最短路径算法,通过奖赏函数来做负载均衡)
面:那你这个能不能通过带权重的图模型来做?
我:也可以。
面:那你相比于做了负载均衡的最短路径算法有什么优势呢?
我:(沉思)目前还没有做更深入的比较
面:就是和最短路径算法对比呗?
我:对(尴尬)。

强化学习

面:好的,那么我们换下一个问题。说出一些你了解的强化学习算法。
我:Q-learning、SARSA、DQN、Double DQN、Prioritized DQN、Nature DQN、Actor-Critic、DDPG
面:说一下Q-learning和SARSA的区别
我:off-policy和on-policy
面:那他们各有什么优缺点呢
我:Q-learning收敛更快,但更容易陷入次优解
面:解释一下
我:Q-learing采用贪婪的方式更新Q值,如果前期出现一个次优的Q值被采样,在后面轮次的迭代中就会有一定的偏向性。而SARSA一直都有随机搜索,陷入这种情况的风险更小
面:说一下DQN的损失函数
我:TD误差值的均方差
面:经验回放有什么作用
我:(思考一会)减少样本的相关性,使神经网络更容易收敛
面:详细解释一下
我:如果一个批次的样本是时间上前后相关的,它们对梯度的贡献可能是朝着一个方向的。而下一批样本可能是反方向的,这就导致了神经网络有不收敛的风险,所以随机采样可以避免这个问题。
面:(好像不太认同)那我们问下一个,你说说Prioritized DQN的原理吧
我:对样本进行加权,以他们的TD误差值的绝对值为比例
面:这种方法有什么负面作用
我:(不知道,所以开始沉思)
面:你对这些方法是看了原论文还是了解了原理?
我:学习了原理。
面:这些算法有实践过吗?自己跑过吗?
我:在gym上实践过。
面:在AC这种结构中,能采用经验回放吗?
我:Critic网络可以使用随机采样来更新。
面:那如果就是原始的PG呢?没有价值网络。
我:(不知道)应该也可以吧。随机采样后做一个累积梯度的均值去更新神经网络。(也不知道对不对)
面:Actor-Critic自己跑过吗。
我:跑过。
面:DQN你了解最新的一些结构吗,除了你上面说的
我:(我以为这些很新了)没太了解

深度学习

面:说一下常用的激活函数吧
我:relu、sigmoid、tanh、linear
面:sigmoid的公式?
我:1/(1+exp(-x))
面:CNN了解吗?说一下原理
我:从图像的左上角卷积核开始移动,对应值相乘后相加,最终得到一张特征图
面:3通道的图像,想得到20张特征图,卷积核大小为3x3,实际的卷积层应该设置怎样的参数
我:20x3x3(把batch数默认记成了通道数默认)
面:那通道数就不考虑了?
我:应该是20x3x3x3
面:那你说说梯度消失
我:反向传播是连乘,由于某一层的梯度过小导致传递的梯度过小,出现梯度消失的现象。像sigmoid这样的激活函数两端梯度很小,就容易造成梯度消失现象
面:relu层会发生梯度消失吗
我:(太紧张说的会,然后又改口了)relu层的梯度是固定的,不会
面:怎么避免梯度消失?
我:可以用batchnomalize。
面:说说BN层对数据的操作
我:对一批数据求均值,方差,变换到0均值1方差的高斯分布
面:这样就能避免梯度消失了吗
我:这样数据就存在于激活函数的线性敏感区域
面:除了这些BN层还有操作吗
我:有两个可学习参数做变换重构
面:在训练和测试时BN层有何不同
我:(想不起来)训练时传入的batch,测试时是单个样本
面:就是在处理时的差异
我:这个记不太得了
这里答案是BN层在训练结束时,所有参数已经固定了,相当于使用的是训练数据总体的均值和方差

编程题

面:知道二叉树吧
我:知道
面:如何求一颗二叉树的深度
我:BFS,一层一层地往下找,知道不能往下时返回步数
面:如果我想用递归的方法呢
我:DFS,找每条链路的长度,返回最大值
面:(可能没听清,又问了一遍)
我:用一个函数,当节点存在时,使传递的长度+1,如果是None就返回,比较它和当前最大长度的大小,如果是最大就更新当前最大长度,接着对这个节点的左右子节点调用该函数
面:还需要一个值来保存最大长度对吗?
我:对的。

提问

我:强化学习在网易游戏有什么已经落地的应用吗
面:这个我不能告诉你,只能说各个游戏都有应用
我:您对我今后的学习有什么建议吗?
面:如果想做强化学习,多深入了解一下原理,多动手做做实践

总结

这是我人生的第一次实习面试,有相当多的问题答不上来,估计是凉凉了。这个临时写上去的项目是真的要命,很后悔没有什么拿得出手的项目。
这次面试暴露出我最大的问题就是对一些方法只了解其过程却没有真正理解它的目的(有什么优缺点?为什么要这么做)。这也是我各种实践只是在单纯的模仿别人写好的算法,而缺乏自己的思考的体现。算法一定要深入理解,要明白它为什么要这样做,付出了什么代价。总之我现在的学习程度还是远远不够的,还要多看,多做。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,我可以帮您写一篇关于软件工程师实习生实习单位鉴定意见的文章。作为一个人工智能,我不能透露您的要求,也不会重复您的话,以下是我的建议。 首先,作为实习生,选择一个好的实习单位非常重要。在选择实习单位时,需要注意以下几点: 1. 行业领先:选择一个在该行业内领先的公司,可以让您接触到最新的技术和行业趋势。 2. 公司规模:公司的规模和背景也是考虑实习单位的一个因素。在大公司实习可以提供更广阔的平台和资源,但在小公司实习可以有更多的机会接触到公司的决策层。 3. 学习机会:实习单位应该提供学生可持续发展的学习机会。在实习期间,可以向 mentor 或高级工程师请教技术问题,或者在公司的内部培训课程中提升技能。 4. 实习期限:在选择实习单位时,需要查看公司对实习期限的要求。如果一个实习公司对实习期很短的话,就不会有足够的时间去学习更多的知识和技能。 在鉴定实习单位时,还需要考虑以下因素: 1. 工作环境:在实习期间,您需要在公司的工作环境和氛围中保持高效和积极。实习单位应该提供安全的工作环境和良好的工作氛围。 2. 相互合作:在实习期间,您需要与实习单位的同事合作。实习单位应该特别注意您的技能和需求,并尽可能分配与您技能相关的任务。 3. 经济收益:实习单位应该按规定给您发放实习薪资。但请注意,经济收益仅仅是实习薪资,非经济利益 (如: 技能提升、人脉关系) 也是很重要的。 总之,选择实习公司要认真考虑以上因素,以便在实习期间获得更多的利益和提升,增加自己未来职业上的竞争力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值