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由一系列数据对构成,对于给定Target中的某个元素Query,通过计算Query和各个Key的相似性或相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的注意力值。所以本质上注意力机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数。可以将上述思想改写为......

  1. 信息
  2. PREFACE 前言
  3. CHAPTER 1 第1章 AIGC概述
  4. 1.1 AIGC的主要技术
  5. 1.2 生成模型与判别模型
  6. 1.3 生成模型的原理
  7. 1.4 表示学习
  8. 1.5 表示学习的逆过程
  9. CHAPTER 2 第2章 深度神经网络
  10. 2.1 用PyTorch构建深度神经网络
  11. 2.2 用PyTorch实现神经网络实例
  12. 2.3 用PyTorch Lightning实现神经网络实例
  13. 2.4 构建卷积神经网络
  14. 2.5 构建循环神经网络
  15. 2.6 迁移学习
  16. 2.7 深度学习常用的归一化方法
  17. 2.8 权重初始化
  18. 2.9 PyTorch常用的损失函数
  19. 2.10 深度学习常用的优化算法
  20. CHAPTER 3 第3章 变分自编码器
  21. 3.1 自编码器简介
  22. 3.2 变分自编码器简介
  23. 3.3 构建变分自编码器
  24. 3.4 使用变分自编码器生成面部图像
  25. CHAPTER 4 第4章 生成对抗网络
  26. 4.1 GAN模型简介
  27. 4.2 用GAN从零开始生成图像
  28. 4.3 GAN面临的问题
  29. 4.4 WGAN
  30. 4.5 WGAN-GP
  31. CHAPTER 5 第5章 StyleGAN模型
  32. 5.1 ProGAN简介
  33. 5.2 StyleGAN架构
  34. 5.3 StyleGAN的其他算法
  35. 5.4 用PyTorch从零开始实现StyleGAN
  36. 5.5 StyleGAN的最新进展
  37. 5.6 DragGAN简介
  38. CHAPTER 6 第6章 风格迁移
  39. 6.1 DeepDream模型
  40. 6.2 普通风格迁移
  41. 6.3 使用PyTorch实现图像修复
  42. 6.4 风格迁移与StyleGAN模型
  43. CHAPTER 7 第7章 注意力机制
  44. 7.1 注意力机制简介
  45. 7.2 带注意力机制的编码器-解码器架构
  46. 7.3 自注意力
  47. 7.4 如何训练含自注意力的模型
  48. 7.5 交叉注意力
  49. CHAPTER 8 第8章 Transformer模型
  50. 8.1 Transformer模型的直观理解
  51. 8.2 用PyTorch从零开始实现Transformer
  52. CHAPTER 9 第9章 大语言模型
  53. 9.1 大语言模型简介
  54. 9.2 可视化GPT原理
  55. 9.3 GPT-3简介
  56. 9.4 可视化BERT原理
  57. 9.5 用PyTorch实现BERT
  58. 9.6 用GPT-2生成文本
  59. CHAPTER 10 第10章 ChatGPT模型
  60. 10.1 ChatGPT简介
  61. 10.2 人类反馈强化学习
  62. 10.3 Codex
  63. 10.4 如何将LaTeX数学公式语言转化为自然语言
  64. 10.5 使用PPO算法优化车杆游戏
  65. 10.6 使用RLHF算法提升GPT-2性能
  66. 10.7 ChatGPT如何提升思维链推断能力
  67. 10.8 ChatGPT如何提升模型的数学逻辑推理能力
  68. CHAPTER 11 第11章 扩散模型
  69. 11.1 扩散模型简介
  70. 11.2 使用PyTorch从零开始编写DDPM
  71. CHAPTER 12 第12章 多模态模型
  72. 12.1 CLIP简介
  73. 12.2 Stable Diffusion模型
  74. 12.3 从零开始实现Stable Diffusion
  75. 12.4 Stable Diffusion升级版简介
  76. 12.5 DALL·E模型
  77. CHAPTER 13 第13章 AIGC的数学基础
  78. 13.1 矩阵的基本运算
  79. 13.2 随机变量及其分布
  80. 13.3 信息论
  81. 13.4 推断
  82. 13.5 强化学习