Datawhale组队学习打卡-Fun-transformer-Task2Transformer

其实光看Datawhale的教程我有点晕乎,感觉更适合有一定计算机基础的同学,所以我自己改了一下笔记的结构。
我的理解是,像Transformer等模型/架构其实是通过一些思想上的方法,产生了一些模型,通过机器来解决一些现实世界中的问题。这个过程包括:
1.把现实世界中跟问题有关的数据(Question)转化为所选择的方法中机器能处理/计算的数据形式,在Transformer中就是刚刚说的Embedding。关于文本是怎么被向量化的,Datawhale的教程里写得特别好:https://www.datawhale.cn/learn/content/87/3128。所以我这次的笔记里就不写啦。
2.选择合适的方法,针对Q输出A,在Transformer中,这个方法是用Seq2Seq的框架,叠加了合适的深度学习模型+Attention机制。
上一篇笔记也讲了点1,所以这一篇笼统地讲一下2,我看教程后面还有Encoder和Decoder的部分,所以具体的就不展开啦。

1. 什么是深度学习?

深度学习是一种模拟人脑处理信息方式的方法,简单来说可以理解成像一个超多层的筛子,每一层筛选数据中更复杂的特征,可以自动提取数据中的模式和特征。

2. 在RNN与LSTM的基础上,Transformer做了什么?

在介绍Transformer时,发现很多博客和教程会提到RNN和LSTM,是两种常见的深度学习模型(不过现在基本是Transformer和其变体独霸天下了),以前就是胡乱学了,写博客的时候思考了下,应该是因为Transformer在处理序列数据时解决了RNN和LSTM的一些局限性。

1. RNN和LSTM为什么不好

RNN和LSTM是处理序列数据(比如文本、语音、时间序列数据等等)的重要方法。它们通过循环结构来处理序列中的每一个元素,并在计算中保留前一个时刻的“记忆”,就是这种结构让它们能够有效处理具有时间顺序关系的数据。然而,RNN和LSTM也有它们的缺点,比如:

  • 计算效率低:RNN和LSTM是序列性处理的,意味着它们不能并行处理序列中的各个元素,而是一个接着一个地处理,所以它们在计算上会比较慢。
  • 长距离依赖问题:尽管LSTM通过引入门控机制来解决传统RNN的长期依赖问题,但当序列非常长的时候,LSTM仍然会受到梯度消失或爆炸的影响,导致模型难以捕捉序列开头与结尾之间的长期依赖关系。

2. Transformer的创新:

Transformer的提出,正是为了克服这些问题。它不再依赖于RNN或者LSTM的逐步处理,而是完全基于自注意力机制(Self-Attention)。这一机制的优势包括:

  • 并行处理:Transformer可以并行处理输入序列中的所有元素,因为它不依赖于序列的顺序。这样可以显著提高训练和推理的效率(特别是对长序列)。
  • 捕捉长距离依赖:自注意力机制能够在每一个位置之间计算直接的依赖关系,因此可以更加灵活地捕捉长距离的依赖信息,而不受序列长度的限制。
  • 全局信息建模:不同于RNN和LSTM在处理序列时的局部信息传递,Transformer通过计算输入序列中每个元素与其他所有元素的关系,从而构建了全局的上下文表示。

3. 什么是Attention机制?

教程里有一个很有意思的观点,说Attention的核心思想是“加权求和”,让模型能够根据输入的不同部分重要性,动态地调整它们在输出中的贡献。具体来说,Attention的工作原理如下:

  1. 分解输入:假设你有一段话或者一组数据,计算机首先将这些输入数据分解成更小的部分(例如单词)。

  2. 挑选出重要的部分:接着,计算机会查看这些部分并决定哪些部分更重要。它通过将每个部分与一个“查询”进行比较来实现这一点。

  3. 分配重要性:根据每个部分与查询的匹配程度,给它们分配一个分数。得分越高,部分就越重要。

  4. 集中注意力:然后,系统会确定应该给每个部分多少注意力。重要部分得到更多关注,而不重要的部分则得到较少关注。

  5. 加权求和:最后,模型会将所有的信息结合起来,但会对重要的信息赋予更大的权重,从而帮助模型更好地理解输入数据。

总结:

  • Attention 的核心是计算序列中各位置之间的关系,并根据这种关系动态调整重要性权重。
  • 通俗地说,它就像是阅读一篇文章时会根据上下文找到关键词,并重点关注与当前目标相关的内容。
  • 在深度学习和Transformer模型中,**全局注意力(Global Attention)局部注意力(Local Attention)**是两种常见的注意力机制,它们在如何计算注意力权重和处理序列数据上有所不同。以下是对这两种注意力机制的详细说明:

Attention 的公式

既然上面都说加权求和了,感觉不来个公式不太合适!对于序列中的每个位置,Attention 的核心公式是:
Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

  • QQQ:查询(Query),表示我们当前关注的目标。
  • KKK:键(Key),表示序列中其他元素的信息。
  • VV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值