RNN结构,双向LSTM,Transformer, BERT对比分析

本文详细介绍了RNN、双向LSTM、Transformer及其变体BERT的工作原理和区别。RNN通过记忆单元处理序列信息,BRNN结合未来和过去上下文,双向LSTM增强了信息捕捉能力。Transformer通过自注意力机制解决了长序列信息丢失问题,而BERT则通过预训练和微调在NLP任务中取得了显著效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接到一些秋招面试,发现自己对于好多网络结构都模糊了,刚好最近在调研模型,就趁这个机会把之前的常见模型知识梳理一下。

主要参考文档:

https://jalammar.github.io/illustrated-transformer/

https://blog.csdn.net/jojozhangju/article/details/51982254

1.Recurrent Neural Network(RNN)

循环神经网络(RNN)指的是一个序列当前的输出与之前的输出也有关。具体的表现形式为网络会对前面的信息进行记忆,保存在网络的内部状态中,并应用于当前输出的计算中,即隐含层之间的节点不再无连接而是有链接的,并且隐含层的输入不仅包含输入层的输出还包含上一时刻隐含层的输出

经典RNN结构在时间上进行展开:

 

计算过程:

需要注意的是:

隐含层状态s_t​被认为是网络的记忆单元。​包含了前面所有步的隐含层状态。而输出层的​只与当前步的​有关。在实践中,为了降低网络的复杂度,往往​只包含前面若干步而不是所有步的隐含层输出。

这里体现出和传统神经网络的区别:

在传统的神经网络中,每一个网络层的参数是不共享的。而在RNN中,每输入一步,每一层各自都共享参数U,V,W,其反映着RNN每一步都在做相同的事情,只是输入不同。因此,这大大降低了网络中需要学习的参数。具体的说是,将RNN进行展开,这样变成了多层的网络,如果这是一个多层的传统神经网络,那么​到​之间的U矩阵与​到​之间的U是不同的,但是RNN中却是一样的,同理对于隐含层与隐含层之间的W、隐含层与输出层之间的V也是一样的。

图中每一步都会有输出,但是每一步都要有输出并不是必须的。比如,我们需要预测一条语句所表达的情绪,我们仅仅需要关系最后一个单词输入后的输出,而不需要知道每个单词输入后的输出。同理,每步都需要输入也不是必须的。循环神经网络(RNN)的关键之处在于隐含层,隐含层能够捕捉序列的信息。

2.Bi-directional Recurrent Neural Network(BRNN)

如果能像访问过去的上下文信息一样,访问未来的上下文,这样对于许多序列标注任务是非常有益的。例如,在最特殊字符分类的时候,如果能像知道这个字母之前的字母一样,知道将要来的字母,这将非常有帮助。同样,对于句子中的音素分类也是如此。

双向循环网络的基本思想是提出每一个训练序列向前和向后分别是两个循环神经网络,而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。下图展示的是一个沿着时间展开的双向循环神经网络。六个独特的权值在每一个时步被重复的利用,六个权值分别对应:输入到向前和向后隐含层(w1, w3),隐含层到隐含层自己(w2, w5),向前和向后隐含层到输出层(w4, w6)。值得注意的是:向前和向后隐含层之间没有信息流,这保证了展开图是非循环的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值