0
点赞
收藏
分享

微信扫一扫

基于Springcloud可视化项目:智慧工地可视化大数据云平台源码

倚然君 2天前 阅读 1

resnet 残差网络,用一张图就可以讲清:

在网络中间加上这样一个残差层,把网络之前某一层的输出加过来,可以解决多层网络难训练问题

transformer是什么?

transformer的核心是注意力机制:

“自注意力机制中有三个重要的输入矩阵:查询矩阵Q(query)、键矩阵K(key)和值矩阵V(value)。这三个矩阵都是由输入序列经过不同的线性变换得到的。然后,查询矩阵Q与键矩阵K的乘积经过一个softmax函数,得到一个与输入序列长度相同的概率分布,该分布表示每个元素对于查询矩阵Q的重要性。最后,将这个概率分布乘以值矩阵V得到自注意力向量,表示将每个元素的值加权平均后的结果。”

这相当于在说:我要比较每一个向量(可能代表了某一个单词)和其他向量的相似度(和自己或者重复的向量相似度自然高),最后的结果就是一个加权和(自己和与自己类似的向量乘上相似度的和)显然要是有一个向量重复的多或者与它类似的多的话,他最后的结果就大,更重要,而且也体现了有哪些词和他有关

当然要记得给输入向量加上位置信息,毕竟注意力机制对输入顺序不敏感,但我们的结果是敏感的。

(中间的Scale只是一个除法,防止向量不一样大)

transformer在训练的时候有一个mask,这是为了避免在训练的时候看到t时刻以后的向量。这个mask会给后面的向量乘上一个绝对值很大的负数,在softmax的时候就会变成0了

transformer的多头注意力机制是怎么做的?就是对最开始输入的矩阵做不同的线性变化,做出很多套降维的q,k,v来,并行的计算,出来之后会得到很多套乘过权重的输入数据,把大家连接起来就好

这样一来注意力机制中还可以有可学习参数,可以识别更多模式。

总结:注意力机制就是在输入数据上做文章,让重要的数据获得更大的权重。主要的方式是比较向量与其他的之间的相似度,也可以在比较之前加上线形层来有一些学习的空间。

transformer的总体结构:

可以看到,除了注意力机制外,这个网络还加上了残差网络的操作

最后它的工作流程是什么样的呢?例如:

首先是给input端输入信息(例如transformer使用了英语到德语的几万个句子,各个单词词根作为token),学习到各个token之间的注意力信息,知道那些词会联系在一起。然后output端会输入大量的单词(这个机器会的所有单词),进入之后先和已经输出了的结果单词(第一次运行的时候还没有)比较(也就是解码器端第一个注意力块的工作),将结果交到下一个,再利用编码器那边交给自己的各个token之间的注意力信息,结合最后的softmax(用来算概率)得到当前猜测的单词有多大概率适合放在这里。找到最适合的之后输出,这个单词也会加入一开始的结果单词列表中。

流程分析:

以英文翻译中文为例:一开始学习的时候,左边输入一个英文句子,通过注意力机制理解上下文,知道哪些单词之间有联系,把这个联系输入到右边。右边一开始要输入所有的汉字,先和已经输出的汉字比较(与其相关的权重高),在与左边输入的英文做相似度比较(也是注意力机制)(一开始可能没有学会不过我们有标准答案),计算各个词的概率选出最大的那个。选错的有loss值,可以回馈到两边,这样单词和单词,汉字和汉字,单词和汉字之间的关系可以学习的更清楚

举报

相关推荐

0 条评论