直观地、透彻地理解RNN、LSTM与Attention,这三种结构
写在前面:文中的图画大部分截图于B站梗直哥丶的视频,欢迎大家根据下面的链接去选择观看,每个视频都不长,但是讲得非常透彻易懂,我呢则整理一下,以供自己以后的学习。
梗直哥丶的讲解视频链接:
RNN的:【循环神经网络】5分钟搞懂RNN,3D动画深入浅出
LSTM的:【LSTM长短期记忆网络】3D模型一目了然,带你领略算法背后的逻辑
Attention的:【Attention 注意力机制】激情告白transformer、Bert、GNN的精髓
RNN
RNN全称循环神经网络(Recurrent Neural Network, RNN),在自然语言处理(Natural Language Processing,NLP)应用非常广泛,在图像处理中同样非常火热,涉及到时间序列问题,尤其是网络中有上下文结构,那RNN通常是少不了的,下面我梳理一下看视频学习到的东西。(这一章我就不在每张图片下进行标题解释,只会给予标号,但文中我会加以解释。)
- RNN的三维结构
图1-1是RNN直观上的三维结构,可以看出网络在时间尺度长进行了展开,将Xt与前一时刻Xt-1和后一时刻Xt+1进行关联,如图1-2所示进行时间尺度上的权重共享。
图1-1
图1-2
- 三维结构画成二维结构的解释
图1-3为我们常见的RNN简易二维示图,下面将从三维向二维映射,观察搞清楚为什么这般表示。
图1-3
我们的任务就是将图1-4中的左图映射到右图上,其实难度不大。
图1-4
压缩垂直于屏幕的坐标轴上的结点,图1-5可以看到粉球代表输入层 X,蓝球未中间层 S,黄绿球为输出层 O。而后在时间轴上进行压缩,便会在中间层出现一个循环,这里面便是对应的权重 W。
图1-5
同理将图1-5的左图逆时针旋转90度,便可以解释为图1-6中右图的简易表达形式了。
图1-6
LSTM
RNN在时间尺度长的延展非常的有限,不能有效查询较长一段时间内的信息,所以LSTM(长短期记忆网络,Long Short-Term Memory)诞生了,这是一个非常有趣的网络,我曾经为它的二维图像发愁的不得了,现在总算弄明白一些了,说白了,就如人的记忆力一样,我们需要不断地忘记,再不断地记忆,很有意思哎!
- LSTM的三维结构
很有趣吧,就是加了一个 “日记本”,由图2-1可以看到,这个“日记本”所代表的支链连接着不同时刻的中间状态。
图2-1
- 三维结构画成二维结构的解释
针对图2-1的St进行平铺展开,图2-2可以直观看到中间层与“日记本”互动过程,主要是删除和增加两个过程的进行。
图2-2
图2-3对“橡皮”的删除过程进行了解释,那便是使用sigmoid函数把极大多数的负值给抹去,而“铅笔”的增加过程则使用tanh函数,延展增强负值,具体的情形可以看图2-3中的函数示意,非常的棒!这个两个函数便是后续我们看到的
σ 和
tanh ,而且删除和增加的学名便是遗忘门(forget gate)和输入门(input gate)。
图2-3
进一步的计算可达到S
t输入时刻在“笔记本”中的 c
t,图2-4是图2-3的一个总结。
图2-4
下面将上述的图像转化为常见的LSTM形式,如图2-8右图所示,首先将图2-5中的“日记本”正对我们朝上,成为图2-6。
图2-5
图2-6
图2-6中“日记本”和中间层重叠,我们可以错位展开如图2-7所示。
图2-7
现在可以对上了吧!这里需要注意图2-8中右图的h
t-1以及h
t就是我们上述图中的S
t-1和S
t,图2-8的右图中有关h
t的计算没有进行展示,不过与遗忘门和输入门非常详尽,试着理解一下吧。
图2-8
Attention
主要是注意力机制,不过梗直哥说到这里的Attention就是权重的意思哦!!记住了,它(Attention) == 权重(Weight)。这里就不进行三维到二维的展开了,它没有LSTM那么抽象,所以我们就对典型的注意力机制和自注意力机制进行一个了解即可。
- 注意力机制
图3-1为RNN结构示意,我们由此引出注意力结构。
图3-1
图3-2可以看到只通过一个“笔记本”C进行权重共享,显然其处理能力是有限的。
图3-2
一个不行那就多上几个,图3-3我们为每一个输出的状态配一个“笔记本”,这便是注意力机制了。
图3-3
- 自注意力机制
仍然使用RNN中的时序结构对注意力结构的运行造成了一定障碍,为提高运行的速度,自注意力机制应运而生了,图3-4便是自注意力结构示意图。
图3-4
将图3-4逆时针旋转90度,并详细的添加上中间层,那便是图3-5的自注意力结构了。
图3-5
总结
这三个结构的理解大多是使用图框进行通俗易懂的理解,至于具体的数学公式就不多赘述了,我需要有一个清晰地认识,至少我用到了LSTM以及Attention,我必须搞明白这是什么样的结构,这些结构在时间尺度上延展,有利于解决带有时序性质的问题。