首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
codingcalled
门头沟学院 自然语言处理
关注
已关注
取消关注
码住
@林小白zii:
深度学习面经-RNN、LSTM、GRU
简介:RNN、GRU和LSTM都是用于处理序列数据的神经网络模型,它们具有记忆性质,适用于时间序列预测、自然语言处理等任务。在实际应用中,LSTM和GRU相对于传统的RNN通常表现更好,特别是在处理长序列和复杂任务时。选择使用哪种网络取决于任务的复杂性和数据的特点,通常可以通过实验对比来选择最适合的网络结构。下面总结了一些面试常问的相关面试题,其他系列面经请关注文章底部专栏:小白机器学习面试指南。持续更新中。简单说一下什么是RNN?RNN也叫循环神经网络,和传统的全链接神经网络相比,RNN每一层的神经元之间都有连接,同一层的神经元之间共享参数w,对于每一个神经元,对于每一个神经元,它首先会有一个输入x,对于这个输入x,有两步操作,一个是将它输出到下一层,另一步是将它输出到同一层的下一个神经元,会将这一层传来的信息和它这个神经元本身的输入再相加,再执行想同的操作,最后一个神经元输出能表示这个输入,比如一个句子,一篇文章的信息。因为参数共享,所以参数等个数减少了,但是可能会出现梯度消失和梯度爆炸的问题。RNN为什么会存在梯度消失的问题?目前优化神经网络的方法都是基于反向传播的思想,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化。在神经网络中,根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1的话,那么即使这个结果是0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于0。同理,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大。对于RNN中梯度消失、梯度爆炸的问题,一般有什么解决方法?答:关于RNN中梯度爆炸和消失问题。下面介绍一些常用的方法来应对这些问题:梯度裁剪(Gradient Clipping):梯度裁剪是一种常用的方法,用于限制梯度的大小,防止梯度爆炸。简单来说,当梯度的范数超过一个预定义的阈值时,就将梯度进行缩放,使其不超过该阈值。这样可以避免梯度增长过快,保持训练的稳定性。改进的优化算法:传统的优化算法(如SGD)可能在处理梯度爆炸和消失时效果不佳。使用一些改进的优化算法,比如RMSprop、Adam等,可以在一定程度上缓解这些问题。这些算法结合了梯度的一阶矩和二阶矩信息,更智能地调整学习率,从而更好地处理梯度问题。使用更合适的激活函数:ReLU激活函数在深度网络中非常流行,但它对于解决梯度消失问题并不理想。尝试其他激活函数,如Leaky ReLU、Parametric ReLU、ELU等,可以减轻梯度消失问题,从而更好地训练深层网络。使用更复杂的RNN结构:一些改进的RNN结构,如LSTM(长短期记忆网络)和GRU(门控循环单元),设计用于更好地处理长期依赖和梯度问题。这些结构包含了更复杂的门控机制,可以控制信息的流动,减少梯度消失的可能性。注意力机制(Attention Mechanism):注意力机制可以在处理序列数据时,集中关注更重要的部分,从而降低梯度消失的风险。引入注意力机制可以让模型更加关注和利用输入序列的不同部分信息。Batch Normalization:批标准化是一种用于加速训练过程并稳定模型的技术。它可以帮助在每个层上保持激活的均值和方差稳定,从而减少梯度爆炸和消失的可能性。更小的学习率:如果梯度爆炸仍然是一个问题,尝试减小学习率。较小的学习率可以降低梯度爆炸的风险,但同时也可能增加训练时间。RNN的经典结构有哪些?答:从输入输出角度来看,有以下这么几种经典的结构:1对1:输入和输出一致,1对多:有1对N或N对1,1对N的场景有负荷分解,图像生成文字,类别生成语音或音乐等,N对1针对于序列分类。多对多:有N对N或N对M,N对N的场景有语音处理,时间序列,N对M的场景是机器翻译,文本摘要,阅读理解等,常见模型是encoder-decoder模型。RNN对输入长度不一致的文本怎么处理?RNN(循环神经网络)对输入长度不一致的文本可以通过以下方式进行处理:填充(Padding):在将文本送入RNN之前,可以将文本进行填充,使其达到固定长度。可以在文本的末尾添加特定的填充符号(如空格或特殊标记)来填充文本,使其长度与批量中最长的文本相同。这样可以保持批量数据的维度一致,方便进行批量运算。填充后的部分在RNN计算中通常被忽略,因为填充符号并不携带有意义的信息。动态填充:对于每个批量,可以动态地选择合适的填充长度,使得批量中的文本长度尽量接近。这样可以最大程度地利用数据,同时保持批量维度一致。动态填充可以避免过多的填充符号,减少计算量和内存占用。使用遮罩(Masking):在填充后的文本中,可以使用遮罩来标记填充部分。遮罩是一个与输入文本相同大小的二进制向量,在填充的位置为0,在非填充位置为1。通过遮罩,RNN在计算时可以忽略填充部分的影响,从而有效利用有效文本部分的信息。使用变长RNN:有些RNN的变种模型,如LSTM(长短期记忆网络)和GRU(门控循环单元),能够处理变长的序列数据。这些模型可以直接接受长度不一致的文本作为输入,并且能够自适应地处理不同长度的文本。在使用这些变长RNN时,不需要额外的填充或截断操作,模型会根据实际文本长度来进行计算。说一下RNN、LSTM、GRU它们是联系?RNN(循环神经网络):RNN是一种经典的循环结构神经网络。它的主要特点是将前一个时间步的输出作为当前时间步的输入,从而在处理序列数据时引入了时间上的依赖关系。然而,传统的RNN存在梯度消失或梯度爆炸的问题,导致长期依赖关系难以捕捉。LSTM(长短期记忆网络):LSTM是为了解决传统RNN中的梯度问题而提出的改进型网络。它引入了门控机制,通过遗忘门、输入门和输出门来控制信息的流动,从而有效地捕捉长期依赖关系。LSTM能够在序列数据中保留长期的记忆,适用于处理较长的文本序列和时间序列。GRU(门控循环单元):GRU是对LSTM的另一种改进型循环神经网络。它简化了LSTM的结构,仅使用了更新门和重置门,使得模型参数较少,计算复杂度较低。GRU在解决长期依赖问题的同时,也表现出较好的性能。LSTM有哪三个门?作用分别是什么?答:LSTM具有三个门控单元,分别是:输入门(Input Gate):输入门控制着当前时间步的输入信息中哪些部分将被纳入到当前时间步的细胞状态(cell state)中。输入门通过一个Sigmoid激活函数来决定每个输入的权重,将其缩放到0到1之间的范围。输入门的作用是用于确定更新细胞状态时,要更新多少来自当前时间步输入的信息。遗忘门(Forget Gate):遗忘门控制着前一时间步的细胞状态中哪些信息将被遗忘或丢弃。它通过一个Sigmoid激活函数来决定前一时间步细胞状态中每个元素的权重,将其缩放到0到1之间的范围。遗忘门的作用是用于决定在当前时间步细胞状态更新时,应该保留哪些信息。输出门(Output Gate):输出门控制着当前时间步的细胞状态中哪些信息将被传递到当前时间步的输出。输出门通过一个Sigmoid激活函数来决定细胞状态中每个元素的权重,将其缩放到0到1之间的范围。输出门的作用是用于确定细胞状态中的哪些信息应该被输出。通过输入门和遗忘门,LSTM能够选择性地更新和遗忘信息,从而保留重要的长期依赖关系。而通过输出门,LSTM能够选择性地输出细胞状态中的信息,产生最终的预测结果或在下一时间步继续传递有用的信息。手写LSTM公式?首先,定义一些符号:输入:当前时间步的输入特征为 x_t细胞状态(Cell State):c_t 表示当前时间步的细胞状态隐状态(Hidden State):h_t 表示当前时间步的隐状态(输出)LSTM的主要计算过程分为三个步骤:遗忘门、输入门和输出门。遗忘门(Forget Gate):遗忘门通过 Sigmoid 激活函数来决定前一时间步的细胞状态 c_{t-1} 中哪些信息将被遗忘。它的计算公式为:f_t = sigmoid(W_f * [h_{t-1}, x_t] + b_f)输入门(Input Gate):输入门通过 Sigmoid 激活函数来决定当前时间步的输入 x_t 中哪些信息将被加入到细胞状态 c_t 中。同时,使用双曲正切(Tanh)激活函数来计算新的候选细胞状态。i_t = sigmoid(W_i * [h_{t-1}, x_t] + b_i)Ĉ_t = tanh(W_c * [h_{t-1}, x_t] + b_c)更新细胞状态(Update Cell State):细胞状态 c_t 通过遗忘门和输入门进行更新:c_t = f_t * c_{t-1} + i_t * Ĉ_t输出门(Output Gate):输出门通过 Sigmoid 激活函数来决定当前时间步的细胞状态 c_t 中哪些信息将被输出为当前时间步的隐状态 h_t。同时,对细胞状态使用 Tanh 激活函数来计算隐状态。o_t = sigmoid(W_o * [h_{t-1}, x_t] + b_o)h_t = o_t * tanh(c_t)在上述公式中,W_f、W_i、W_c、W_o 表示权重矩阵,b_f、b_i、b_c、b_o 表示偏置向量。[h_{t-1}, x_t] 表示将前一时间步的隐状态 h_{t-1} 和当前时间步的输入特征 x_t 连接起来形成的向量。为什么LSTM模型中既存在sigmoid又存在tanh两种激活函数,而不是选择统一一种sigmoid或者tanh?这样做的目的是什么?答:sigmoid函数被用作各个门上,产生0~1之间的值,来判断是对信息进行记住还是遗忘。tanh用在了状态和输出上,是对数据的处理,可以替换成其他激活函数。LSTM解决了RNN的什么问题?为什么?答:LSTM解决了传统RNN中的梯度消失和梯度爆炸问题。传统的RNN在处理长序列数据时存在梯度消失或梯度爆炸问题,主要原因是在反向传播过程中,梯度会随着时间步的增加而指数级地增大或减小。这导致在训练过程中,网络在处理长序列时很难有效传播梯度,导致长期依赖关系难以捕捉。LSTM通过引入门控机制解决了传统RNN中的梯度消失和梯度爆炸问题。GRU和LSTM的区别?答:GRU和LSTM都是用于解决长期依赖问题的改进型循环神经网络(RNN)结构。它们在解决长期依赖问题上有相似之处,但也有一些不同点。以下是它们之间的主要区别:门控结构不同:LSTM具有三个门控:输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)。这三个门控通过sigmoid激活函数来控制信息的流动和细胞状态的更新。GRU具有两个门控:重置门(Reset Gate)和更新门(Update Gate)。重置门决定了过去信息在当前时间步的输入中有多少保留,而更新门决定了过去和当前信息在当前时间步的更新中所占的比例。参数数量不同:GRU的参数较少,因为它合并了LSTM的细胞状态和隐藏状态,并减少了一个门控。这使得GRU在计算上相对更轻量级。LSTM的参数较多,因为它有三个门控,每个门控都有自己的权重和偏置。细胞状态更新不同:LSTM的细胞状态由遗忘门、输入门和输出门三个门控决定,分别控制了细胞状态的遗忘、增益和输出。GRU的细胞状态由重置门和更新门两个门控决定,重置门控制了过去信息的保留,更新门控制了过去和当前信息的更新。计算效率不同:由于参数较少,GRU的计算效率通常高于LSTM,特别是在较大规模的模型或者大规模数据上。表现情况不同:在一些任务上,LSTM和GRU的表现可能会有所不同。在某些序列建模任务中,LSTM可能更适合处理长期依赖问题,而在另一些任务中,GRU可能表现得更好。总的来说,LSTM和GRU都是强大的RNN变种,用于处理序列数据和解决长期依赖问题。持续更新中
点赞 8
评论 14
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
2025-12-30 15:45
九州通医药集团_集团业务管培生(准入职员工)
步步高内推,步步高内推码
步步高实验学校 2026届校招启动啦【学校简介】东莞市步步高实验学校于 2023 年投入运营,占地 230 亩,是一所集幼儿园、小学、初中、高中于一体的十五年一贯制非营利性高端民办学校,学校全面实行小班化教学,学校师生比为 1:5;步步高教育专家团队由来自一流大学的国家课标专家、教育学家,来自著名学校的卓越校长,来自一线、有着丰富教学经验的著名特级教师,以及来自国家级教育媒体的教育策划专家共同组成,为步步高的课程、教学、管理奠定了坚实基础。【招聘岗位】• 幼儿园、小学部及初中部各学科类教师 & 国际教师,类别多多,等你pick! 【福利待遇】• 薪资:幼儿园老师年收入16万起 、中小学...
点赞
评论
收藏
分享
01-04 19:12
善仁(浙江)新材料科技有限公司_产品经理
烧结银:3D封装中高功率高密度互连的核心材料
烧结银:3D封装中高功率高密度互连的核心材料烧结银作为3D封装领域的关键材料与技术,凭借其高导热性、低孔隙率、优异的可靠性及对宽禁带半导体的兼容性,成为解决3D封装中高功率密度、热管理及高密度互连问题的核心方案。其应用贯穿于3D封装的多个关键场景,支撑着AI、新能源汽车、光通信等高端领域的发展。一、烧结银在3D封装中的核心应用场景2.5D/3D IC堆叠封装:高密度互连的桥梁2.5D/3D IC是异构集成的主流形式,通过硅中介层(Interposer)或TSV硅通孔技术实现多芯片堆叠,提升集成度。烧结银膏因150-200℃低温工艺兼容硅中介层的低熔点聚酰亚胺材料,且高导电性能减少互连电阻,成为...
烧结银|导电胶|导电银浆
点赞
评论
收藏
分享
2025-11-12 14:34
西安邮电大学 后端工程师
现在还找不到日常实习的真心可以停止了。信我的兄弟们
在这个里要做一下学历分级,不同的学历,我给出的策略不一样。双非的兄弟没大厂实习的就继续找,暑期对你们来讲都没有多重要了,除非你是杭电,南方科技大学,深圳大学这种比较强的双非,或者自己有比较牛逼的经历。否则暑期上岸几率基本很小了。这个时候,我们就要认清形势。向上岸大厂概率不高了,那就赶紧找保底,尝试搞一份大厂日常实习,一直干到明年三四月份之后开始参加暑期。在双非这个学历下,暑期的进场时机已经不重要了。因此不用听别人的要早早准备暑期实习。没啥必要了,哪个大厂会要零实习,全黑马项目的双非学生进入公司暑期实习岗位?211/985的兄弟不用找了,这个学历下最重要的是进场时机。就算是零实习参加暑期实习其实压力也不是很大。而且还有各种学长内推。因此这个时间点下真的没必要再找实习了。有这时间多搞搞八股,算法,基础知识。多看看源码加深一下自己的基础能力才是关键。不能再仅仅是一个会写代码的学生,要开始有意的培养自己的潜力。
风间琉璃617:
985Java后端,最近刚开始投简历基本没面试😵隔壁班同学前两周投的京东直接过了,给我看了面经基本只问了八股和项目,八股也挺简单的,这哥们暑假跟我一块在一家小厂实习过,我俩简历也都差不多,结果现在我投的京东还在泡池子😭找工作难道真是运气大于一切吗
双非有机会进大厂吗
点赞
评论
收藏
分享
01-06 12:09
科大讯飞_教育BG_后端开发(准入职员工)
2025年入职四家实习公司的第一天体验
2025 年,我成功入职了四家公司进入实习,每家公司第一天入职体验且听我娓娓道来。我入职的第一家公司是北京中企云链,入职第一天的体验,满是通勤的疲惫 —— 从学校到公司,单程就要坐两小时地铁。这家公司设有五天试用期,入职首日,我分配到电脑(Mac系统的,第一次接触,不熟悉),就被分配了一个企业级项目的任务:要求在这个项目的基础上,实现前后端分离的增删改查功能。可这个项目采用的是全新框架,再加上这是我的第一份实习,几乎没什么实战经验,我只能对着需求和代码一点点摸索。更让人手足无措的是,试用期里没有 mentor 指导,所有问题都得靠自己硬磕。好不容易熬到下班时间,却被告知要等同事们开完会,才能过...
京东公司氛围 301人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
双非非科班2年时间的转码历程
3.5W
2
...
简历挂麻了?因为你的简历只有“宽度”没有“深度”!
9357
3
...
入职第一天:允许自己像个新生
7988
4
...
26秋招小结 含面经碎碎念版
4425
5
...
百度java一面 28届的第一次大厂面试 感觉g了
3870
6
...
师门闯关记①:好学姐我听你的,就选你说的那个导师了
3764
7
...
实习不忙被公司要求下周再来
3521
8
...
嵌入式学习路线分享
3477
9
...
双非老鼠的悲惨秋招
3034
10
...
为什么华为给到16级我还是拒了?(开发)
2841
创作者周榜
更多
正在热议
更多
#
26年哪些行业会变好/更差
#
13307次浏览
178人参与
#
卷__卷不过你们,只能卷__了
#
6622次浏览
157人参与
#
MiniMax求职进展汇总
#
192次浏览
4人参与
#
去年的flag与今年的小目标
#
6376次浏览
154人参与
#
哪些公司在招寒假实习?
#
6886次浏览
83人参与
#
有深度的简历长什么样?
#
12285次浏览
260人参与
#
机械人的秋招小目标
#
25785次浏览
226人参与
#
现在前端的就业环境真的很差吗
#
487867次浏览
5874人参与
#
写论文的崩溃时刻
#
3274次浏览
98人参与
#
入职第一天
#
7537次浏览
148人参与
#
你不能接受的企业文化有哪些
#
7177次浏览
122人参与
#
央国企投递记录
#
170068次浏览
1633人参与
#
腾讯音乐求职进展汇总
#
146960次浏览
1042人参与
#
你都用AI做什么
#
4704次浏览
112人参与
#
实习教会我的事
#
48548次浏览
359人参与
#
一人分享一道面试手撕题
#
16242次浏览
671人参与
#
秋招白月光
#
645494次浏览
5002人参与
#
一人一道大厂面试题
#
112033次浏览
1253人参与
#
应届生应该先就业还是先择业
#
163301次浏览
828人参与
#
实习,不懂就问
#
148528次浏览
1336人参与
#
新凯来求职进展汇总
#
67094次浏览
174人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务