【笔记】A Tutorial of Transformers_复旦大学邱锡鹏报告

【笔记】A Tutorial of Transformers_复旦大学邱锡鹏报告

强推看原视频:https://www.bilibili.com/video/BV1sU4y1G7CN?from=search&amp%3Bamp%3Bamp%3Bseid=416604809063304846&amp%3Bamp%3Bamp%3Bspm_id_from=333.337.0.0

官方pdf:http://valser.org/webinar/slide/slides/%E7%9F%AD%E6%95%99%E7%A8%8B01/202106%20A%20Tutorial%20of%20Transformers-%E9%82%B1%E9%94%A1%E9%B9%8F.pdf

一、Self-attention & Transformer

Attention

原来主流的神经网络:CNN(卷积和、滑动窗口)、RNN(梯度消失问题)都只有局部特征,只能抽取出input sequence的local dependencies

怎么样才能拿到Long-term dependency呢?

答案就是全联接。但全联接的权重如果是固定的话,就无法处理句子不同的长度and插入某个词后句子的依赖关系发生变化,所以需要动态生成权重。

注意力机制(Attention Mechanism):

在这里插入图片描述

注意力机制包括两个步骤:

  1. 求得注意力分布:假如有一个查询向量q,我们想要知道输入的x和向量q之间有什么关系,就通过scoring函数来进行x和q之间的关系的打分(最简单的方法就是内积)。求出来的分数可能很大很小,我们把它通过一个softmax,进行一个归一化,得到注意力分布 α \alpha α,也可以叫attention matrix。

  2. 求得注意力:这个 α \alpha α就是对输入x的权重分布,我们将 α \alpha α和对应的x做一个加权和(也可以视为一个期望),就得到了attention。

Self-Attention

在这里插入图片描述

把这个attention机制应用在句子建模上:一个句子中,并不是所有的词都是有用的,我们希望可以得到对每个词来说,得到他们在句子中的注意力分布,从而得到这个词在句子中的注意力表示,这个就是self-attention。

Query-Key-Value Model

QKV model简直像拦路虎一样,一开始无法理解为什么要搞出这三个向量出来,各自有什么物理含义。

query就是上文中提到的查询向量,用查询向量去找到相应的索引(Key),把Q、K进行一个打分(这里仍然选择直接用内积计算Scoring function),再求一个softmax,这个就是我们要求的注意力分布。

但是softmax函数有一个特殊性质,如果某个数是非常大的话,它会使得大的更大、小的更小,分布是很sharp的,需要对其进行一个平滑,所以我们加上了一个缩放因子 D k \sqrt{D_k} Dk .

最终得到的这个注意力分布再乘以索引(Key)对应的值(Value),就是我们求得的注意力。

Multi-head Self-Attention

可以把它投射到不同的空间去计算他们注意力,在不同空间的QKV是独立的。这个有点像CNN里面的multi-channel,不同的映射在这里是用head来表示。

这种用查询向量去找对应值的方法,就类似于计算机中的寻址,read head / write head,所以就叫multi-head self-attention。

Transformer

在这里插入图片描述

Position-wise FFN也可以认为是窗口为1的CNN。

模型可以单独使用encoder(文本分类)、encoder-decoder(机器翻译)、单独只使用decoder(语言模型)。

模型复杂度

在这里插入图片描述

Transformer模型的问题在于长度过长(大于512)的时候,模型过于复杂,就无法处理了

在这里插入图片描述

在这里插入图片描述

二、Transformer的改进与变形

Transformer的改进

  • Model Efficiency

    • 因为不善于处理长文档,从轻量化的attention去处理长文档(e.g. sparse attention variants)

    • 分治法处理长文档,分成不同的segment,再通过某些方式综合起来(e.g. Recurrent and hierarchical mechanism)

  • Model Generalization

    • 模型是一个很灵活的架构,几乎没有先验假设,所以需要大量数据
    • 引入一些卷积、循环神经网络等来正则化
    • pretraining on large-scale unlabeled data
  • Model Adaptation

    • 自适应下游任务或修改

Transformer的变形

变形

### 回答1: ansys_fluent_tutorial_guide_2022是ANSYS公司发布的Fluent软件的教程指南,旨在帮助用户学习如何使用Fluent进行流体力学仿真。该指南分为四个部分,包括基础应用教程、高级应用教程、建模技巧教程和案例教程。每个部分都包括多个具体的示例,覆盖了从单相流、多相流、传热到化学反应等各种问题的仿真,并提供了详细的流程和步骤。同时,该指南也注重提高用户对Fluent软件的使用技能和建模思维能力,例如通过对不同网格的分析和选择来改善仿真精度,以及通过优化边界条件来提高仿真效率。此外,该指南还介绍了一些建模技巧,例如流动及其周围区域的细节建模和高级网格建模等,可以帮助用户更好地处理复杂的流动问题。总之,ansys_fluent_tutorial_guide_2022提供了一份全面、系统的Fluent教程指南,为用户提供了学习和使用Fluent的有力支持。 ### 回答2: ansys_fluent_tutorial_guide_2022是一份面向工程师和科学家的fluent软件教程。该教程包含了在流体力学仿真中使用fluent软件的基础知识和高级技巧。教程分为多个章节,包括预处理、求解器、后处理等方面的内容,内容详实、通俗易懂,并说明了每个章节的目的和使用场景。此外,教程还包含了基础模型的操作,如Steady State、Transient、Species Transport、Multiphase Flow等,以及更高级的模型,如Turbulence Models、Heat Transfer、Combustion、Reacting Flow等,以及如何在fluent中应用各种物理和化学效应的说明。教程中的示例问题涵盖了各种工业和自然现象,如航空航天、汽车、生物、石油、能源等领域,可以帮助使用者更好地理解和应用fluent软件。总体而言,该教程是一个不可或缺的资源,能够帮助使用者提高流体力学仿真的技能和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值