赞
踩
(1)Seq2Seq(序列到序列)模型,是一种处理序列数据的深度学习模型,尤其是在自然语言处理(NLP)领域中非常常见。这种模型通常用于机器翻译、文本摘要、问答系统和聊天机器人等任务。
(2)Seq2Seq模型的基本组成部分:
(1)Transformer的Encoder模块
Transformer的Encoder模块是由一系列相同的层堆叠而成的,每一层都有两个主要的子模块:多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Position-wise Feed-Forward Networks)。此外,每个子模块周围都有一个残差连接,并且每个子模块的输出都会经过层归一化(Layer Normalization)。
下面是对这些组件的详细说明:
多头自注意力机制(Multi-Head Self-Attention)
这个模块可以使网络在进行预测时考虑输入序列的不同位置,对不同位置的输入分配不同的注意力。多头注意力机制意味着模型有多组不同的注意力参数,每组都会输出一个注意力权重,这些注意力权重会被合并成最终的注意力输出。
残差连接(Residual Connection)
残差连接帮助避免了深度神经网络中的梯度消失问题。在Transformer中,每个子模块的输出是 LayerNorm(x + SubLayer(x)),其中SubLayer(x)是子模块自身(比如多头自注意力或前馈神经网络)的输出。
层归一化(Layer Normalization)
层归一化是在模型的训练过程中加速收敛的一种技术,它对层的输入进行归一化处理,使得其均值为0,方差为1。
前馈神经网络(Position-wise Feed-Forward Networks)
这个模块由两个线性变换组成,中间夹有一个ReLU激活函数。它对每个位置的词向量独立地进行变换。
位置编码(Position Encoding)
由于Transformer模型没有循环或卷积操作,为了让模型能够利用词的顺序信息,需要在输入嵌入层中加入位置编码。位置编码和词嵌入相加后输入到Encoder模块。
整体来看,Transformer的Encoder模块将输入序列转换为一系列连续表示,这些表示在后续的Decoder模块中用于生成输出序列。每一层的Encoder都对输入序列的所有位置同时进行操作,而不是像RNN那样逐个位置处理,这是Transformer模型高效并行处理的关键。
(2)为什么transformer块使用LayerNorm(层归一化)而不是BatchNorm(批量归一化)?
LayerNorm对每个样本做Normalization
BatchNorm对每个特征做Normalization
Normalization:归一化,均值变0方差为1
(3)Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?
Decoder阶段的多头自注意力(Masked Multi-Head Attention)和Encoder的多头自注意力(Multi-Head Attention)在计算方式上非常相似,但存在关键的区别,主要体现在对序列中位置的处理上。
加入术语词典,这是在此竞赛中比较有效的方法,加入术语词典的方法策略也有很多,如:
数据扩增:
采用更精细的学习率调度策略:
集成学习:训练多个不同初始化或架构的模型,并使用集成方法(如投票或平均)来产生最终翻译。这可以减少单一模型的过拟合风险,提高翻译的稳定性。
总结:
之前看过很多次transformer的理论知识都没学明白,包括它的框架图也不是很懂,这次终于算是看懂了,由一个编码器和解码器组成,编码器里面有多头注意力和前馈神经网络,分别都有残差连接,这样的n个transformer block就组成了编码器。解码器是在编码器的基础上多了带掩码的多头自注意力。
附:
Datawhale AI夏令营-Task3:基于Transformer解决机器翻译任务
Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili
transformer模型— 20道面试题自我检测
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。