描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111753315
(1)作者背景资深:作者是人工智能领域的资深专家,在大数据和人工智能领域深耕20余年,对AIGC有深入研究。
(2)知识体系全面:本书包含AIGC所涉及的各方面技术,从基础知识到各种流行的大模型,从技术原理到应用实践。
(3)读者无需AI基础:本书专为没有AI基础的技术工程师量身定做,通过由浅入深的讲解方式,使读者能够轻松入门并逐步掌握AIGC。
(4)实践案例丰富:书中提供大量实践案例和代码示例,读者可通过PyTorch等工具构建和训练各种大模型。
(5)配套资源丰富:为方便读者学习,本书配有视频讲解、教学PPT、代码和数据,这些资源均可免费获取,让读者学习事半功倍。
本书旨在帮助没有任何人工智能技术基础的工程师们全面掌握AIGC的底层技术原理,以及大语言模型、扩散模型和多模态模型的原理与实践。本书的核心价值是,首先为想学习各种大模型的读者打下坚实的技术基础,然后再根据自己的研究方向展开深入的学习,达到事半功倍的效果。通过阅读本书,您将学习如下内容:(1)AIGC技术基础深入了解神经网络的基础知识,包括卷积神经网络和循环神经网络的原理与应用。并通过学习神经网络的优化方法,您将掌握如何优化和提升神经网络的性能。
(2)图像生成模型包括从自动编码器(AE)、变分自编码器(VAE)、生成对抗网络(GAN)等图像生成模型。通过学习优化方法,如WGAN、WGAN-WP、StyleGAN等,您将掌握如何提高图像生成模型的质量和稳定性。同时,了解图像生成模型的应用,如迁移学习、风格迁移等,让您轻松实现个性化创作。此外,还将带您深入了解DDPM、DDIM等扩散模型的前沿技术,为您展现图像生成技术的最新成果,探索更加出色的生成效果和表达方式。
(3)语言生成模型了解注意力机制、Transformer架构等基础知识,深入探索GAT系列、大语言模型(如ChatGPT),让您掌握自然语言处理的精髓。
(4)多模态模型了解CLIP、Stable Diffusion、DALL.E等多模态模型,触碰视觉和文字的奇妙交织,领略多模态智能的广阔前景。
CONTENTS
目 录
前言
第1章 AIGC概述 1
1.1 AIGC的主要技术 1
1.1.1 语言生成方面的技术 2
1.1.2 视觉生成方面的技术 3
1.1.3 多模态方面的技术 3
1.2 生成模型与判别模型 4
1.2.1 生成模型 4
1.2.2 判别模型 5
1.3 生成模型的原理 5
1.3.1 生成模型的框架 6
1.3.2 生成模型的概率表示 6
1.3.3 生成模型的目标函数 7
1.3.4 生成模型的挑战及解决方法 8
1.4 表示学习 9
1.4.1 表示学习的直观理解 10
1.4.2 表示学习的常用方式 12
1.4.3 表示学习与特征工程的区别 13
1.4.4 图像的表示学习 13
1.4.5 文本的表示学习 14
1.4.6 多模态的表示学习 15
1.4.7 表示学习的融合技术 16
1.4.8 如何衡量表示学习的优劣 17
1.5 表示学习的逆过程 18
第2章 深度神经网络 21
2.1 用PyTorch构建深度神经网络 21
2.1.1 神经网络的核心组件 21
2.1.2 构建神经网络的主要工具 22
2.1.3 构建模型 24
2.1.4 训练模型 24
2.2 用PyTorch实现神经网络实例 25
2.2.1 准备数据 26
2.2.2 可视化源数据 27
2.2.3 构建模型 28
2.2.4 训练模型 29
2.3 用PyTorch Lightning实现神经网络实例 31
2.4 构建卷积神经网络 35
2.4.1 全连接层 36
2.4.2 卷积层 36
2.4.3 卷积核 39
2.4.4 步幅 42
2.4.5 填充 43
2.4.6 多通道上的卷积 43
2.4.7 激活函数 48
2.4.8 卷积函数 48
2.4.9 转置卷积 50
2.4.10 特征图与感受野 53
2.4.11 卷积层如何保留图像的空间信息 53
2.4.12 现代经典网络 54
2.4.13 可变形卷积 59
2.5 构建循环神经网络 60
2.5.1 从神经网络到有隐含状态的循环神经网络 60
2.5.2 使用循环神经网络构建语言模型 62
2.5.3 多层循环神经网络 63
2.5.4 现代经典循环神经网络 63
2.6 迁移学习 64
2.6.1 迁移学习简介 65
2.6.2 微调预训练模型 65
2.7 深度学习常用的归一化方法 68
2.7.1 归一化方法简介 68
2.7.2 归一化的原理 70
2.7.3 归一化的代码实现 72
2.8 权重初始化 77
2.8.1 为何要进行权重初始化 77
2.8.2 权重初始化方法 78
2.9 PyTorch常用的损失函数 79
2.10 深度学习常用的优化算法 80
2.10.1 传统梯度更新算法 80
2.10.2 批量随机梯度下降法 82
2.10.3 动量算法 83
2.10.4 Nesterov动量算法 85
2.10.5 AdaGrad算法 87
2.10.6 RMSProp算法 89
2.10.7 Adam算法 90
2.10.8 各种优化算法比较 92
第3章 变分自编码器 94
3.1 自编码器简介 94
3.1.1 构建自编码器 95
3.1.2 构建编码器 96
3.1.3 构建解码器 97
3.1.4 定义损失函数及优化器 98
3.1.5 分析自编码器 98
3.2 变分自编码器简介 100
3.2.1 变分自编码器的直观理解 100
3.2.2 变分自编码器的原理 102
3.3 构建变分自编码器 105
3.3.1 构建编码器 106
3.3.2 构建解码器 107
3.3.3 损失函数 108
3.3.4 分析变分自编码器 109
3.4 使用变分自编码器生成面部图像 110
3.4.1 编码器 111
3.4.2 解码器 111
3.4.3 进一步分析变分自编码器 112
3.4.4 生成新头像 113
第4章 生成对抗网络 114
4.1 GAN模型简介 114
4.1.1 GAN的直观理解 114
4.1.2 GAN的原理 115
4.1.3 GAN的训练过程 116
4.2 用GAN从零开始生成图像 117
4.2.1 判别器 117
4.2.2 生成器 117
4.2.3 损失函数 118
4.2.4 训练模型 118
4.2.5 可视化结果 120
4.3 GAN面临的问题 121
4.3.1 损失振荡 121
4.3.2 模型坍塌的简单实例 122
4.3.3 GAN模型坍塌的原因 123
4.3.4 避免GAN模型坍塌的方法 124
4.4 WGAN 125
4.4.1 改进方向和效果 125
4.4.2 Wasserstein距离的优越性 127
4.4.3 WGAN的损失函数代码 127
4.4.4 WGAN的其他核心代码 128
4.5 WGAN-GP 129
4.5.1 权重裁剪的隐患 129
4.5.2 梯度惩罚损失 130
4.5.3 WGAN-GP的训练过程 131
4.5.4 WGAN-GP的损失函数代码 132
第5章 StyleGAN模型 134
5.1 ProGAN简介 135
5.2 StyleGAN架构 137
5.3 StyleGAN的其他算法 140
5.4 用PyTorch从零开始实现StyleGAN 141
5.4.1 构建生成网络 141
5.4.2 构建判别器网络 147
5.4.3 损失函数 150
5.5 StyleGAN的最新进展 151
5.5.1 StyleGAN2简介 151
5.5.2 StyleGAN3简介 152
5.5.3 StyleGAN与DeepDream模型的异同 153
5.6 DragGAN简介 153
第6章 风格迁移 154
6.1 DeepDream模型 154
6.1.1 DeepDream的原理 154
6.1.2 DeepDream算法的流程 155
6.1.3 使用PyTorch实现DeepDream 156
6.2 普通风格迁移 159
6.2.1 内容损失 160
6.2.2 风格损失 161
6.2.3 使用PyTorch实现神经网络风格迁移 163
6.3 使用PyTorch实现图像修复 167
6.3.1 网络结构 167
6.3.2 损失函数 168
6.3.3 图像修复实例 169
6.4 风格迁移与StyleGAN模型 171
第7章 注意力机制 173
7.1 注意力机制简介 173
7.1.1 两种常见的注意力机制 174
7.1.2 来自生活的注意力 174
7.1.3 注意力机制的本质 175
7.2 带注意力机制的编码器-解码器架构 177
7.2.1 引入注意力机制 178
7.2.2 计算注意力分配概率分布值 180
7.3 自注意力 182
7.3.1 单层自注意力 182
7.3.2 多层自注意力 185
7.3.3 多头自注意力 186
7.3.4 自注意力与卷积网络、循环网络的比较 189
7.4 如何训练含自注意力的模型 190
7.4.1 将标记向量化 191
7.4.2 添加位置编码 191
7.4.3 逆嵌入过程 192
7.5 交叉注意力 192
7.5.1 Transformer解码器中的交叉注意力 193
7.5.2 Stable Diffusion解码器中的交叉注意力 193
7.5.3 交叉注意力与自注意力的异同 194
第8章 Transformer模型 196
8.1 Transformer模型的直观理解 196
8.1.1 顶层设计 197
8.1.2 嵌入和向量化 199
8.1.3 位置编码 200
8.1.4 自注意力 201
8.1.5 掩码 205
8.1.6 多头注意力 205
8.1.7 残差连接 207
8.1.8 层归一化 209
8.1.9 解码器的输出 210
8.1.10 多层叠加 211
8.2 用PyTorch从零开始实现Transformer 212
8.2.1 构建编码器-解码器架构 212
8.2.2 构建编码器 213
8.2.3 构建解码器 215
8.2.4 构建多头注意力 217
8.2.5 构建前馈神经网络层 220
8.2.6 预处理输入数据 220
8.2.7 构建完整网络 223
8.2.8 训练模型 224
8.2.9 一个简单实例 228
第9章 大语言模型 231
9.1 大语言模型简介 231
9.2 可视化GPT原理 233
9.2.1 GPT简介 233
9.2.2 GPT的整体架构 233
9.2.3 GPT模型架构 234
9.2.4 GPT-2与BERT的多头注意力的区别 235
9.2.5 GPT-2的输入 235
9.2.6 GPT-2 计算遮掩自注意力的详细过程 236
9.2.7 GPT-2的输出 238
9.2.8 GPT-1与GPT-2的异同 238
9.3 GPT-3简介 239
9.4 可视化BERT原理 241
9.4.1 BERT的整体架构 241
9.4.2 BERT的输入 243
9.4.3 遮掩语言模型 244
9.4.4 预测下一个句子 245
9.4.5 微调 245
9.4.6 使用特征提取方法 247
9.5 用PyTorch实现BERT 248
9.5.1 BERTEmbedding类的代码 248
9.5.2 TransformerBlock类的代码 249
9.5.3 构建BERT的代码 250
9.6 用GPT-2生成文本 251
9.6.1 下载GPT-2预训练模型 251
9.6.2 用贪心搜索进行解码 253
9.6.3 用束搜索进行解码 254
9.6.4 用采样进行解码 256
9.6.5 用Top-K采样进行解码 258
9.6.6 用Top-p采样进行解码 260
9.6.7 用综合方法进行解码 261
第10章 ChatGPT模型 263
10.1 ChatGPT简介 263
10.1.1 ChatGPT核心技术 264
10.1.2 InstructGPT和ChatGPT的训练过程 265
10.1.3 指令微调 267
10.1.4 ChatGPT的不足 268
10.2 人类反馈强化学习 268
10.2.1 工作原理 268
10.2.2 工作流程 269
10.2.3 PPO算法 270
10.2.4 评估框架 273
10.2.5 创新与不足 273
10.3 Codex 274
10.3.1 对源代码进行预处理 274
10.3.2 处理代码块 277
10.3.3 将源代码数字化 277
10.3.4 衡量指标 278
10.3.5 Codex的逻辑推理能力是如何形成的 280
10.3.6 CodeGeeX的主要功能 281
10.3.7 CodeGeeX模型架构 282
10.4 如何将LaTeX数学公式语言转化为自然语言 283
10.5 使用PPO算法优化车杆游戏 283
10.5.1 构建策略网络 284
10.5.2 构建价值网络 285
10.5.3 构建PPO模型 285
10.5.4 定义超参数 287
10.5.5 实例化模型 287
10.5.6 训练模型 288
10.5.7 可视化迭代 289
10.6 使用RLHF算法提升GPT-2性能 289
10.6.1 基于中文情绪识别模型的正向评论生成机器人 290
10.6.2 对评论进行人工打分 294
10.6.3 标注排序序列替代直接打分 294
10.7 ChatGPT如何提升思维链推断能力 300
10.8 ChatGPT如何提升模型的数学逻辑推理能力 301
第11章 扩散模型 303
11.1 扩散模型简介 303
11.1.1 DDPM 304
11.1.2 扩散概率模型 304
11.1.3 正向扩散过程 305
11.1.4 反向扩散过程 306
11.1.5 正向扩散过程的数学细节 306
11.1.6 反向扩散过程的数学细节 308
11.1.7 训练目标和损失函数 309
11.2 使用PyTorch从零开始编写 DDPM 312
11.2.1 定义超参数 312
11.2.2 创建数据集 312
11.2.3 创建数据加载器 314
11.2.4 可视化数据集 314
11.2.5 DDPM架构 315
11.2.6 用残差块取代双卷积模块的优势 316
11.2.7 创建扩散类 317
11.2.8 正向扩散过程 318
11.2.9 可视化正向扩散过程 318
11.2.10 基于训练算法和采样算法的训练 319
11.2.11 从零开始训练DDPM 321
11.2.12 使用DDPM生成图像 323
第12章 多模态模型 325
12.1 CLIP简介 325
12.1.1 CLIP如何将图像与图像描述进行对齐 326
12.1.2 CLIP如何实现零样本 分类 328
12.1.3 CLIP原理 328
12.1.4 从零开始运行CLIP 330
12.1.5 CLIP应用 335
12.2 Stable Diffusion模型 335
12.2.1 Stable Diffusion模型的直观理解 335
12.2.2 Stable Diffusion模型的原理 336
12.3 从零开始实现Stable Diffusion 337
12.3.1 文生图 337
12.3.2 根据提示词修改图 341
12.4 Stable Diffusion 升级版简介 343
12.4.1 Stable Diffusion 2.0 344
12.4.2 Stable Diffusion XL 345
12.5 DALL·E模型 346
12.5.1 DALL·E简介 346
12.5.2 DALL·E 2简介 346
12.5.3 DALL·E 2与GAN的异同 348
12.5.4 DALL·E 3简介 348
第13章 AIGC的数学基础 350
13.1 矩阵的基本运算 350
13.1.1 矩阵加法 351
13.1.2 矩阵点积 351
13.1.3 转置 351
13.1.4 矩阵的阿达马积 352
13.1.5 行列式 352
13.2 随机变量及其分布 353
13.2.1 从随机事件到随机变量 354
13.2.2 离散型随机变量及其分布 355
13.2.3 连续型随机变量及其分布 357
13.2.4 随机变量的分布函数 359
13.2.5 多维随机变量及其分布 361
13.2.6 随机变量的数字特征 369
13.2.7 随机变量函数的分布 371
13.3 信息论 377
13.3.1 信息量 377
13.3.2 信息熵 377
13.3.3 条件熵 378
13.3.4 互信息 378
13.3.5 KL散度 379
13.3.6 交叉熵 379
13.3.7 JS散度 383
13.3.8 Wasserstein距离 383
13.3.9 困惑度 384
13.4 推断 384
13.4.1 极大似然估计 385
13.4.2 极大后验概率估计 390
13.4.3 EM算法 393
13.4.4 变分推断 404
13.4.5 马尔可夫链蒙特卡罗随机采样 405
13.5 强化学习 418
13.5.1 强化学习基本概念 418
13.5.2 强化学习基础算法 425
13.5.3 策略梯度 427
PREFACE
前 言
为什么写这本书
随着科技的快速发展,人工智能已逐渐成为我们生活和工作的核心驱动力。在众多人工智能技术中,生成式人工智能(AIGC)独树一帜,它以强大的生成能力和对复杂任务的理解能力为特征,实现了人工智能的巨大突破。
AIGC的发展历程虽然短暂,但已取得了令人瞩目的成果。它在自然语言处理、图像生成、音乐创作等领域的应用已经十分广泛,而变分自编码、生成对抗网络、注意力机制、大语言模型、扩散模型和多模态模型等新兴技术的快速发展,使得AIGC的应用前景更加广阔。鉴于此,我编写了本书,为对AIGC感兴趣的读者提供学习参考。
本书全面介绍AIGC的原理和应用,旨在为读者提供实用的指导,帮助读者在实践中掌握其技术和方法,并启发读者在AIGC领域取得更多的新突破。
本书主要内容
本书系统地介绍了AIGC的各方面内容,从基础知识到应用实践,从基本原理到案例分析,力求通过简洁明了的语言、清晰生动的例子,引导读者逐步掌握AIGC的精髓。
本书共13章,主要内容如下:
第1章为AIGC概述,简要介绍AIGC的主要技术、生成模型与判别模型、表示学习等。
第2章为深度神经网络,主要介绍如何用PyTorch构建深度神经网络,以及常见的神经网络架构(如卷积神经网络、循环神经网络等)、归一化方法、权重初始化方法及优化算法等。
第3章为变分自编码器,介绍变分自编码器的原理及训练技巧。
第4章为生成对抗网络,介绍生成对抗网络的概念、原理和训练过程,同时介绍生成对抗网络面临的问题及改进方向。
第5章为StyleGAN模型,介绍StyleGAN模型的架构,以及如何实现StyleGAN模型等。
第6章为风格迁移,介绍DeepDream模型,以及风格迁移的原理及应用。
第7章为注意力机制,阐述注意力机制的基本原理、常见的注意力机制算法和应用场景。
第8章为Transformer模型,介绍Transformer模型的架构,以及如何用PyTorch实现Transformer模型。
第9章为大语言模型,介绍几种常见大语言模型(如GPT、BERT等)的概念、基本原理和实现方法,以及它们在自然语言处理领域中的应用。
第10章为ChatGPT模型,介绍ChatGPT的核心技术,如指令微调、人类反馈强化学习、Codex等的基本原理及应用。
第11章为扩散模型,阐述扩散模型的基本原理以及如何使用PyTorch从零开始编写DDPM(去噪概率模型)。
第12章为多模态模型,介绍CLIP、Stable Diffusion、DALL·E等多模态模型的基本原理和实现方法,以及它们在图像和自然语言处理等领域中的应用。
第13章为AIGC的数学基础,介绍矩阵的基本运算、随机变量及其分布、信息论、推断、强化学习等。
勘误和支持
书中代码和数据可以通过访问https://github.com/Wumg3000/feiguyunai下载。
由于我的水平有限,书中难免出现错误或不准确的地方,恳请读者批评指正。读者有任何问题,可以通过邮件([email protected])反馈,还可加QQ(799038260)进行在线交流。非常感谢你的支持和帮助。
致谢
在本书的写作过程中,得到很多同事、朋友、老师和同学的支持,在此表示诚挚的谢意!
感谢刘未昕、张粤磊、张魁等同事对整个环境的搭建和维护,感谢博世王冬的鼓励和支持!
最后,感谢我的爱人赵成娟,她在繁忙的教学工作之余为我审稿,提出了不少改进意见或建议。
吴茂贵
评论
还没有评论。