AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型_吴茂贵_AZW3_MOBI_EPUB_PDF_电子书(无页码)_吴茂贵
内容节选
7.1注意力机制简介 注意力机制的基本思想是,将输入序列中的每个元素(如词、像素等)与模型的当前状态进行比较,为每个输入元素分配一个权重值。这些权重值表示输入元素对当前状态的重要程度。然后,根据这些权重值,模型可以聚焦于最重要的元素,并对其进行进一步处理。 注意力机制的主要作用是让神经网络关注输入序列中最相关的部分,从而提高模型的性能。它可以解决长序列问题、输入和输出长度不同的问题,同时也能提升模型的泛化能力和鲁棒性。在机器翻译、文本摘要、对话、语音识别、图像分类等任务中,注意力机制已经被广泛应用。其主要应用有以下两种主要形式: (1)注意力汇聚 注意力汇聚(Attention Mechanism)是在深度学习中常用的一种注意力机制。在自然语言处理和计算机视觉等任务中,注意力汇聚允许模型根据输入的不同部分赋予不同的权重或重要性。例如,在机器翻译任务中,模型可以根据输入句子中的每个词的重要程度来选择性地关注,并在翻译输出时给予适当的注意。 (2)自注意力 自注意力(Self-Attention)是注意力机制的一种特殊形式,广泛应用于序列数据,如文本序列或时间序列。它允许序列中的每个元素(例如单词或时间步)都能与其他元素相互交互,以计算它们之间的相关性。这使得模型能够捕捉序列中长距离的依赖关系,从而更好地理解序列的结构和上下文。 自注意力在Transformer模型中被引入,并在自然语言处理领域取得了巨大成功。它将输入序列中的每个元素视为查询(Query)、键(Key)和值(Value),通过计算它们之间的相关性,得到最终的表示。这种表示能够更好地捕捉序列中的语义关系,有助于完成各种任务,如机器翻译、文本生成和语言理解等。 7.1.1 两种常见的注意力机制 根据注意力范围的不同,人们又把注意力分为软注意力和硬注意力。 (1)软注意力 软注意力(Soft Attention)是比较常见的注意力方式,对所有key求权重概率,每个key都有一个对应的权重,是一种全局的计算方式(又称Global Attention)。这种方式比较理性,它参考了所有key的内容,再进行加权,但是计算量可能会比较大。 (2)硬注意力 硬注意力(Hard Attention)直接精准定位到某个键而忽略其他键,相当于这个键的概率是1,其余键的概率全部是0。因此,这种对齐方式要求很高,要求一步到位,但实际情况往往包含其他状态,如果没有正确对齐,将会带来很大的影响。 7.1.2 来自生活的注意力 注意力是我们与环境交互的一种天生的能力,环境中的信息丰富多彩,我们不可能对映入眼帘的所有事物都持有一样的关注度或注意力,而是一般只将注意力引向感兴趣的一小部分信息,这种能力就是注意力。 我们按照对外界的反应将注意力分为非自主性提示和自主性提示。非自主性提示是基于环境中物体的状态、颜色、位置、易见性等,不由自主地引起我们的注意。如图7-1中的这些活动的小动物,最初可能会自动引起小朋友的注意。 但过一段时间之后,他可能重点注意他喜欢的小汽车玩具上。此时,小朋友选择小汽车玩具是受到了认知和意识的控制,因此基于兴趣或自主性提示的吸引力更大,也更持久。 图7-1 注意力被自主关注到小汽车玩具上 7.1.3 注意力机制的本质 在注意力机制的背景下,我们将自主性提示称为查询(Query)。对于给定任何查询,注意力机制通过集中注意力选择感官输入,这些感官输入被称为值(Value)。每个值都与其对应的非自主提示的一个键(Key)成对,如图7-2所示。通过集中注意力,为给定的查询(自主性提示)与键(非自主性提示)进行交互,从而引导选择偏向值(感官输入)。 图7-2 注意力机制通过集中注意力将查询和键结合在一起 可以把图7-2所示的注意力框架进一步抽象成图7-3,这样更容易理解注意力机制的本质。在自然语言处理应用中,把注意力机制看作输出(Target)句子中某个单词和输入(Source)句子中每个单词的相关性是非常有道理的。 目标句子生成的每个单词对应输入句子中的单词的概率分布可以理解为输入句子单词和这个目标句子生成单词的对齐概率,这在机器翻译语境下是非常直观的:在传统的统计机器翻译过程中,一般会专门有一个短语对齐的步骤,而注意力机制的作用与此相同,可用图7-3进行直观表述。 图7-3 注意力机制的本质 在图7-3中,Source由一系列
- 信息
- PREFACE 前言
- CHAPTER 1 第1章 AIGC概述
- 1.1 AIGC的主要技术
- 1.2 生成模型与判别模型
- 1.3 生成模型的原理
- 1.4 表示学习
- 1.5 表示学习的逆过程
- CHAPTER 2 第2章 深度神经网络
- 2.1 用PyTorch构建深度神经网络
- 2.2 用PyTorch实现神经网络实例
- 2.3 用PyTorch Lightning实现神经网络实例
- 2.4 构建卷积神经网络
- 2.5 构建循环神经网络
- 2.6 迁移学习
- 2.7 深度学习常用的归一化方法
- 2.8 权重初始化
- 2.9 PyTorch常用的损失函数
- 2.10 深度学习常用的优化算法
- CHAPTER 3 第3章 变分自编码器
- 3.1 自编码器简介
- 3.2 变分自编码器简介
- 3.3 构建变分自编码器
- 3.4 使用变分自编码器生成面部图像
- CHAPTER 4 第4章 生成对抗网络
- 4.1 GAN模型简介
- 4.2 用GAN从零开始生成图像
- 4.3 GAN面临的问题
- 4.4 WGAN
- 4.5 WGAN-GP
- CHAPTER 5 第5章 StyleGAN模型
- 5.1 ProGAN简介
- 5.2 StyleGAN架构
- 5.3 StyleGAN的其他算法
- 5.4 用PyTorch从零开始实现StyleGAN
- 5.5 StyleGAN的最新进展
- 5.6 DragGAN简介
- CHAPTER 6 第6章 风格迁移
- 6.1 DeepDream模型
- 6.2 普通风格迁移
- 6.3 使用PyTorch实现图像修复
- 6.4 风格迁移与StyleGAN模型
- CHAPTER 7 第7章 注意力机制
- 7.1 注意力机制简介
- 7.2 带注意力机制的编码器-解码器架构
- 7.3 自注意力
- 7.4 如何训练含自注意力的模型
- 7.5 交叉注意力
- CHAPTER 8 第8章 Transformer模型
- 8.1 Transformer模型的直观理解
- 8.2 用PyTorch从零开始实现Transformer
- CHAPTER 9 第9章 大语言模型
- 9.1 大语言模型简介
- 9.2 可视化GPT原理
- 9.3 GPT-3简介
- 9.4 可视化BERT原理
- 9.5 用PyTorch实现BERT
- 9.6 用GPT-2生成文本
- CHAPTER 10 第10章 ChatGPT模型
- 10.1 ChatGPT简介
- 10.2 人类反馈强化学习
- 10.3 Codex
- 10.4 如何将LaTeX数学公式语言转化为自然语言
- 10.5 使用PPO算法优化车杆游戏
- 10.6 使用RLHF算法提升GPT-2性能
- 10.7 ChatGPT如何提升思维链推断能力
- 10.8 ChatGPT如何提升模型的数学逻辑推理能力
- CHAPTER 11 第11章 扩散模型
- 11.1 扩散模型简介
- 11.2 使用PyTorch从零开始编写DDPM
- CHAPTER 12 第12章 多模态模型
- 12.1 CLIP简介
- 12.2 Stable Diffusion模型
- 12.3 从零开始实现Stable Diffusion
- 12.4 Stable Diffusion升级版简介
- 12.5 DALL·E模型
- CHAPTER 13 第13章 AIGC的数学基础
- 13.1 矩阵的基本运算
- 13.2 随机变量及其分布
- 13.3 信息论
- 13.4 推断
- 13.5 强化学习