深度学习-31-基于keras的十大经典算法之Transformer

时间:2024-10-23 09:29:40

文章目录

  • 1 Transformer简介
  • 2 模型应用
    • 2.1 加载数据
    • 2.2 定义Transformer层
    • 2.3 定义嵌入层
    • 2.4 定义模型
    • 2.5 训练模型
    • 2.6 整体代码
    • 2.7 模型预测
  • 3 参考附录

1 Transformer简介

一、背景
在深度学习的早期阶段,卷积神经网络(CNN)在图像识别和自然语言处理领域取得了显著的成功。然而,随着任务复杂度的增加,序列到序列(Seq2Seq)模型和循环神经网络(RNN)成为处理序列数据的常用方法。

尽管RNN及其变体在某些任务上表现良好,但它们在处理长序列时容易遇到梯度消失和模型退化问题。为了解决这些问题,Transformer模型被提出。而后的GPT、Bert等大模型都是基于Transformer实现了卓越的性能!
在这里插入图片描述

二、模型原理
Transformer模型主要由两部分组成:编码器和解码器。
每个部分都由多个相同的“层”组成。
每一层包含两个子层:自注意力子层和线性前馈神经网络子层。
自注意力子层利用点积注意力机制计算输入序列中每个位置的表示,而线性前馈神经网络子层则将自注意力层的输出作为输入,并产生一个输出表示。
此外,编码器和解码器都包含一个位置编码层,用于捕获输入序列中的位置信