丛书名 :博文视点AI系列
作 译 者:廖星宇
出版时间:2017-09 千 字 数:299
版 次:01-01 页 数:232
开 本:16开
装 帧:
I S B N :9787121326202
换 版:
所属分类:科技 >> 计算机 >> 计算机科学
纸质书定价:¥79.0
深度学习如今已经成为了科技领域·炙手可热的技术,在本书中,我们将帮助你入门深度学习的领域。本书将从人工智能的介绍入手,了解机器学习和深度学习的基础理论,并学习如何用PyTorch框架对模型进行搭建。通过阅读本书,你将会学习到机器学习中的线性回归和logistic回归,深度学习的优化方法,多层全连接神经网络,卷积神经网络,循环神经网络以及生成对抗网络,同时从零开始对PyTorch进行学习,了解PyTorch基础及如何用其进行模型的搭建,·后通过实战了解·前沿的研究成果和PyTorch在实际项目中的应用。
第1 章深度学习介绍1
1.1 人工智能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 数据挖掘、机器学习与深度学习. . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 数据挖掘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 机器学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 深度学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 学习资源与建议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第2 章深度学习框架11
2.1 深度学习框架介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 PyTorch 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 什么是PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 为何要使用PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 配置PyTorch 深度学习环境. . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 操作系统的选择. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Python 开发环境的安装. . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 PyTorch 的安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第3 章多层全连接神经网络24
3.1 热身:PyTorch 基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Tensor(张量) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Variable(变量) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.3 Dataset(数据集) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.4 nn.Module(模组) . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.5 torch.optim(优化) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6 模型的保存和加载. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 线性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 一维线性回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3 多维线性回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.4 一维线性回归的代码实现. . . . . . . . . . . . . . . . . . . . . . 35
3.2.5 多项式回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 分类问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Logistic 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.3 Logistic 分布. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.4 二分类的Logistic 回归. . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.5 模型的参数估计. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.6 Logistic 回归的代码实现. . . . . . . . . . . . . . . . . . . . . . . 45
3.4 简单的多层全连接前向网络. . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1 模拟神经元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.2 单层神经网络的分类器. . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.3 激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.4 神经网络的结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.5 模型的表示能力与容量. . . . . . . . . . . . . . . . . . . . . . . . 55
3.5 深度学习的基石:反向传播算法. . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1 链式法则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.2 反向传播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3 Sigmoid 函数举例. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6 各种优化算法的变式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.1 梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.2 梯度下降法的变式. . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7 处理数据和训练模型的技巧. . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.1 数据预处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.2 权重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.3 防止过拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.8 多层全连接神经网络实现MNIST 手写数字分类. . . . . . . . . . . . . . 69
3.8.1 简单的三层全连接神经网络. . . . . . . . . . . . . . . . . . . . . 70
3.8.2 添加激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8.3 添加批标准化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8.4 训练网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
第4 章卷积神经网络76
4.1 主要任务及起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2 卷积神经网络的原理和结构. . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.1 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.3 全连接层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.4 卷积神经网络的基本形式. . . . . . . . . . . . . . . . . . . . . . 85
4.3 PyTorch 卷积模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.1 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.2 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.3 提取层结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.4 如何提取参数及自定义初始化. . . . . . . . . . . . . . . . . . . . 91
4.4 卷积神经网络案例分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5 再实现MNIST 手写数字分类. . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6 图像增强的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7 实现cifar10 分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
第5 章循环神经网络111
5.1 循环神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.2 循环神经网络的基本结构. . . . . . . . . . . . . . . . . . . . . . 112
5.1.3 存在的问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 循环神经网络的变式:LSTM 与GRU . . . . . . . . . . . . . . . . . . . . 116
5.2.1 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.2 GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3 收敛性问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3 循环神经网络的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.1 PyTorch 的循环网络模块. . . . . . . . . . . . . . . . . . . . . . . 122
5.3.2 实例介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4 自然语言处理的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.1 词嵌入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.2 词嵌入的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.3 N Gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.4 单词预测的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . 134
5.4.5 词性判断. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.4.6 词性判断的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . 137
5.5 循环神经网络的更多应用. . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.1 Many to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.2 Many to Many(shorter) . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.3 Seq2seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.4 CNN+RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
第6 章生成对抗网络144
6.1 生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.1.1 自动编码器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.1.2 变分自动编码器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2 生成对抗网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1 何为生成对抗网络. . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.2 生成对抗网络的数学原理. . . . . . . . . . . . . . . . . . . . . . 160
6.3 Improving GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.1 Wasserstein GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.2 Improving WGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.4 应用介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.1 Conditional GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.2 Cycle GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
第7 章深度学习实战173
7.1 实例一——猫狗大战:运用预训练卷积神经网络进行特征提取与预测. 173
7.1.1 背景介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2 实例二——Deep Dream:探索卷积神经网络眼中的世界. . . . . . . . . 183
7.2.1 原理介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2.2 预备知识:backward . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.2.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.2.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.3 实例三——Neural-Style:使用PyTorch 进行风格迁移. . . . . . . . . . . 196
7.3.1 背景介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.3.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.3.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.3.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.4 实例四——Seq2seq:通过RNN 实现简单的Neural Machine Translation . 205
7.4.1 背景介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.4.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . .
这本书的结构安排得非常有条理,从基础到进阶,层层递进,让我这个深度学习小白也能够轻松跟上。我特别喜欢作者在讲解PyTorch框架搭建部分的处理方式。很多技术书籍在讲环境搭建时,总是给人一种“你知道了就知道,不知道就继续去查”的感觉,但这本书不同,它把每一步都拆解得非常细致,从Python环境的准备,到PyTorch的安装,再到GPU加速的配置,都有清晰的步骤和截图说明,让我这个之前对环境配置一窍不通的人,也能顺利地搭建起自己的开发环境,这让我有种“原来深度学习并没有那么难”的顿悟。而且,这本书不仅仅是教你搭建环境,更重要的是,它围绕着PyTorch这个框架,讲解了深度学习的核心概念。我之前看一些理论书,总是感觉离实际应用很远,但这本书通过大量的代码示例,把理论知识落到了实处。比如,在讲到神经网络的构建时,作者会用PyTorch的`nn.Module`来演示,你会直观地看到如何定义层,如何连接层,如何进行前向传播。学习过程中,我感觉自己不仅仅是在阅读一本技术书籍,更像是在完成一个又一个的小项目,每完成一个,我的信心就更足一分。这本书的语言也比较通俗易懂,没有过多地使用晦涩难懂的专业术语,即使遇到不太理解的地方,作者也会给出相应的解释或者类比,这让我的学习过程变得更加轻松愉快。
评分这本书真的让我眼前一亮,之前对深度学习一直抱有好奇,但总觉得门槛很高,不敢轻易上手。廖星宇的《深度学习入门之PyTorch》简直就像一束光,照亮了我前行的道路。从最基础的概念讲起,循序渐进,完全不会让人觉得枯燥乏味。作者非常注重实践,每一个理论知识点都配有清晰的代码示例,而且是用PyTorch这个当下最热门的框架来演示,这一点我觉得太赞了!我之前尝试过其他的深度学习资料,但很多都停留在理论层面,或者使用的框架已经不太主流,学起来总觉得隔靴搔痒。《深度学习入门之PyTorch》在这方面做得非常到位,我跟着书中的代码敲打、运行,看着模型一步步训练,真的有一种“从0到1”的成就感。特别是对于那些像我一样,对编程有一定基础但对深度学习一无所知的新手来说,这本书的框架搭建指南部分简直是福音。它把复杂的环境配置、依赖安装等问题都梳理得井井有条,让我能够快速搭建起属于自己的深度学习实验环境,这一点对于初学者来说,真的可以省去很多宝贵的试错时间。而且,书中对PyTorch的常用API讲解得也非常细致,例如张量(Tensor)的创建与操作、自动求导(Autograd)的原理与应用、神经网络模块(nn.Module)的设计与使用等等,都介绍得非常透彻,让我能深刻理解PyTorch的内在逻辑。
评分说实话,当初选择这本书,很大程度上是被“PyTorch框架搭建指南教程”这个副标题吸引了。我之前折腾过几次深度学习环境搭建,每次都踩无数的坑,什么CUDA版本不对、cuDNN版本不匹配、依赖库冲突之类的,搞得焦头烂额,直接劝退。这本书在这方面简直是我的救星!廖星宇老师在这部分的内容安排得非常合理,从最开始的Python环境准备,到PyTorch的安装(包括CPU版本和GPU版本),再到一些常用的辅助库(如NumPy, Matplotlib)的配置,都讲得非常细致,而且是手把手教学的风格。我跟着书中的步骤操作,几乎没有遇到什么阻碍,顺利地搭建好了我的第一个PyTorch开发环境。书里还给出了一些常见的错误排查方法和建议,这对于新手来说太重要了,避免了很多不必要的沮丧。除了环境搭建,书中对PyTorch的一些核心概念也做了很好的介绍,比如数据加载、模型定义、损失函数、优化器等等。虽然我之前也接触过一些深度学习的概念,但通过PyTorch这个具体的框架来理解,感觉更加直观和生动。作者没有回避PyTorch的底层实现细节,但又不会过于深奥,能够让读者在理解框架的同时,也能对深度学习的运作机制有更深层次的认识。
评分这本书带给我的惊喜远远超出了我的预期。我原本以为它会是一本侧重于理论讲解的书籍,但事实证明,它在实践操作方面做得非常出色。《深度学习入门之PyTorch》这本书的内容安排得非常紧凑且逻辑性强。开篇就从非常基础的深度学习概念讲起,例如什么是神经网络、什么是梯度下降等,为读者打下了坚实的基础。然后,非常巧妙地引入了PyTorch这个强大的工具,并且将理论知识与实际代码相结合。书中提供的代码示例都非常经典,并且都是可以直接运行的,这让我能够立即将学到的知识应用到实践中。比如,在讲解卷积神经网络(CNN)的部分,作者不仅解释了卷积层、池化层等组件的工作原理,还提供了构建一个简单图像分类模型的完整代码,我跟着代码一步步操作,看着模型在MNIST数据集上学习,最终达到不错的准确率,那种成就感是无法言喻的。更重要的是,作者在讲解代码时,非常注重细节,解释了每一行代码的含义以及背后的原理,这让我不仅仅是“复制代码”,而是真正理解了模型是如何构建和训练的。此外,书中对模型评估、超参数调优等方面的内容也有所涉及,这些都是在实际深度学习项目开发中不可或缺的环节。
评分作为一名对深度学习领域充满兴趣但又相对陌生的初学者,我曾尝试过阅读不少相关的书籍和技术博客,但往往因为概念过于抽象或者代码实现过于复杂而难以深入。直到我读到廖星宇的《深度学习入门之PyTorch》,我才真正体会到“入门”的含义。这本书的行文风格非常亲切,仿佛作者在身边手把手地指导你学习。它没有一开始就抛出大量晦涩难懂的数学公式,而是从大家都能理解的例子入手,逐步引导读者进入深度学习的世界。PyTorch框架的引入也恰到好处,作者并没有将重点放在框架的API堆砌上,而是通过实际项目的演练,让读者在解决问题的过程中自然而然地掌握PyTorch的核心用法。我尤其喜欢书中关于模型构建和训练的章节,它将常见的网络结构(如全连接网络、卷积神经网络、循环神经网络)的原理和实现娓娓道来,并提供了可以直接运行的示例代码。我跟着书中的例子,成功地复现了一些经典的深度学习模型,这对我来说是一个巨大的鼓舞。这本书的另一个亮点在于,它不仅关注模型的搭建,还对数据预处理、模型评估、常见问题排查等方面的内容进行了详细的阐述,这些都是保证模型取得良好效果的关键步骤,往往在其他入门书籍中会被忽略。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有