新書推薦:
《
虚弱的反攻:开禧北伐
》
售價:NT$
429.0
《
泰山:一种中国信仰专论(法国汉学经典译丛)
》
售價:NT$
380.0
《
花外集斠箋
》
售價:NT$
704.0
《
有兽焉.8
》
售價:NT$
305.0
《
大学问·明清经济史讲稿
》
售價:NT$
330.0
《
中国国际法年刊(2023)
》
售價:NT$
539.0
《
早点知道会幸福的那些事
》
售價:NT$
295.0
《
迈尔斯普通心理学
》
售價:NT$
760.0
編輯推薦:
世界充满了噪声和不确定性。概率深度学习模型可对这些噪声和不确定性进行建模,并将所建的模型应用于现实世界,帮助深度学习工程师评估其结果的准确性、发现错误,并加深他们对算法工作原理的理解。这对自动驾驶汽车和科学测试来说至关重要。
《概率深度学习使用Python、 Keras和TensorFlow Probability》 是关于神经网络原理的实践指南,引导读者学习使用不同数据类型的正确分布来提升网络性能,同时推导贝叶斯变体,以通过表达模型自身的不确定性来提高准确性。本书采用了主流的实现框架,提供了易于应用的代码,让读者更加注重实际应用。
內容簡介:
主要内容 ●探索深度学习的**似然原理和统计学基础 ●发现能输出各种可能结果的概率模型 ●学习使用标准化流来建模和生成复杂分布 ●使用贝叶斯神经网络获取模型中的不确定性
關於作者:
Oliver Dürr是德国康斯坦茨应用科学大学的教授,研究方向为数据科学。Beate Sick在苏黎世应用科技大学担任应用统计学教授,在苏黎世大学担任研究员和讲师,在苏黎世联邦理工学院担任讲师。Elvis Murina是一名研究科学家,负责本书附带的大量练习代码的编写。
Dürr和Sick都是机器学习和统计方面的专家。他们指导了大量以深度学习为研究方向的学士、硕士和博士论文,并策划和开展了多门研究生、硕士层次的深度学习课程。三位作者自2013年以来一直从事深度学习方法的研究,在相关教学和概率深度学习模型开发方面都拥有丰富的经验。
目錄 :
第Ⅰ部分 深度学习基础
第1章 概率深度学习简介 3
1.1 概率模型初探 4
1.2 初步了解深度学习 7
1.3 分类 10
1.3.1 传统图像分类方法 11
1.3.2 深度学习图像分类方法 15
1.3.3 非概率分类 17
1.3.4 概率分类 18
1.3.5 贝叶斯概率分类 19
1.4 曲线拟合 21
1.4.1 非概率曲线拟合 21
1.4.2 概率曲线拟合 23
1.4.3 贝叶斯概率曲线拟合 25
1.5 何时使用和何时不使用深度学习 26
1.5.1 不宜使用深度学习的情况 27
1.5.2 适宜使用深度学习的情况 27
1.5.3 何时使用和何时不使用概率模型 28
1.6 你将在本书中学到什么 28
1.7 小结 29
第2章 神经网络架构 31
2.1 全连接神经网络(fcNN) 32
2.1.1 人工神经网络的生物学原型 33
2.1.2 神经网络的实现入门 35
2.1.3 使用全连接神经网络对图像进行分类 48
2.2 用于图像类数据的卷积神经网络 56
2.2.1 卷积神经网络架构中的主要思想 57
2.2.2 “边缘爱好者”小卷积神经网络 61
2.2.3 卷积神经网络架构的生物学起源 64
2.2.4 建立和理解卷积神经网络 66
2.3 用于序列数据的一维卷积神经网络 72
2.3.1 时序数据格式 73
2.3.2 有序数据有何特别之处 74
2.3.3 时间序列数据网络架构 75
2.4 小结 77
第3章 曲线拟合原理 79
3.1 曲线拟合中的“Hello World” 81
3.2 梯度下降法 88
3.2.1 具有一个模型自由参数的损失函数 89
3.2.2 具有两个模型自由参数的损失函数 93
3.3 深度学习中的特殊技巧 98
3.3.1 小批量梯度下降 99
3.3.2 使用随机梯度下降改进算法来加快学习速度 100
3.3.3 自动微分 100
3.4 深度学习框架中的反向传播 101
3.4.1 静态图框架 102
3.4.2 动态图框架 112
3.5 小结 114
第Ⅱ部分 概率深度学习模型的似然方法
第4章 似然定义损失函数 117
4.1 损失函数之母——似然原则 118
4.2 分类问题损失函数推导 124
4.2.1 二元分类问题 125
4.2.2 两个以上类别分类问题 133
4.2.3 负对数似然、交叉熵和K-L散度之间的关系 137
4.3 回归问题损失函数推导 140
4.3.1 使用无隐藏层、单输出神经网络对输入与输出的线性关系进行建模 140
4.3.2 采用具有隐藏层的神经网络对输入与输出的非线性关系进行建模 151
4.3.3 采用两输出神经网络对异方差回归任务进行建模 153
4.4 小结 159
第5章 基于TensorFlow概率编程的概率深度学习模型 161
5.1 不同概率预测模型的评价和比较 165
5.2 TFP概率编程概述 166
5.3 基于TFP概率编程的连续数据建模 171
5.3.1 常量方差线性回归模型的拟合与评估 172
5.3.2 变方差线性回归模型的拟合与评估 176
5.4 基于TFP的计数数据建模 182
5.4.1 适用于计数数据的泊松分布 187
5.4.2 扩展泊松分布为零膨胀泊松(ZIP)分布 193
5.5 小结 197
第6章 “野外世界”中的概率深度学习模型 198
6.1 高级深度学习模型中的灵活概率分布 200
6.1.1 多项式分布作为一种灵活分布 201
6.1.2 理解离散逻辑混合 204
6.2 案例研究:巴伐利亚公路伤亡事故 208
6.3 与流同行:标准化流(NF)简介 210
6.3.1 标准化流的基本原理 212
6.3.2 概率变量变换 215
6.3.3 标准化流模型拟合 222
6.3.4 链接流以实现深度变换 224
6.3.5 高维空间变换* 229
6.3.6 流操作的网络实现 232
6.3.7 有趣的流模型:人脸图像采样 239
6.4 小结 245
第Ⅲ部分 概率深度学习模型的贝叶斯方法
第7章 贝叶斯学习 249
7.1 非贝叶斯深度学习的弊端,以房间里的大象为例 250
7.2 初始贝叶斯方法 255
7.2.1 贝叶斯模型:黑客式 255
7.2.2 我们刚刚做了什么 260
7.3 贝叶斯概率模型 261
7.3.1 贝叶斯模型训练和预测 263
7.3.2 投掷硬币,贝叶斯模型的“Hello World” 270
7.3.3 贝叶斯线性回归模型回顾 282
7.4 小结 288
第8章 贝叶斯神经网络 289
8.1 贝叶斯神经网络概述 291
8.2 变分推理贝叶斯近似 293
8.2.1 深入了解变分推理* 294
8.2.2 变分推理简单应用* 300
8.3 变分推理TFP实现 309
8.4 蒙特卡罗dropout贝叶斯近似 312
8.4.1 经典dropout训练方法 313
8.4.2 在训练和测试过程中采用蒙特卡罗dropout 317
8.5 案例研究 320
8.5.1 回归中的外推问题 320
8.5.2 分类任务中新类别问题 326
8.6 小结 336
术语和缩写词的词表 337
內容試閱 :
首先非常感谢你购买《概率深度学习:使用 Python、Keras和 TensorFlow Probability》,希望它能帮助你更深入地了解深度学习,同时也希望你能从中得到启发,把概率深度学习方法很好地应用到工作中。
我们三位作者都是研究统计学出身,于2014年一起开始了深度学习之旅。令人兴奋的是,深度学习至今仍是我们职业生涯的中心。深度学习有着广泛的应用,但我们对深度学习模型与统计学概率方法相结合而得到的强大性能特别关注和着迷。根据我们的经验,对概率深度学习潜力的深刻理解既需要掌握概率深度学习方法的基本思想和基本原理,又需要具备一定的实践经验。为此,《概率深度学习:使用 Python、Keras和 TensorFlow Probability》试图在两者之间找到平衡。
《概率深度学习:使用 Python、Keras和 TensorFlow Probability》在讨论具体方法之前,通常会给出清晰的思路和典型应用实例,以便于读者理解。同时,利用随附的Jupyter notebooks程序文件,你也可以亲自动手编程实现《概率深度学习:使用 Python、Keras和 TensorFlow Probability》所讨论的所有方法。衷心希望你能从《概率深度学习:使用 Python、Keras和 TensorFlow Probability》中学到尽可能多的知识,如同我们写这本书时学到的那样。请愉快阅读《概率深度学习:使用 Python、Keras和 TensorFlow Probability》,并始终保持好奇心!
关 于 本 书
通过《概率深度学习:使用 Python、Keras和 TensorFlow Probability》,我们希望将深度学习的基础概率原理介绍给更广泛的读者。实质上,在深度学习中,几乎所有的神经网络都是概率模型。
这其中有两个强大的概率原理,它们分别是似然和贝叶斯。其中似然支配着所有传统的深度学习方法。将网络理解为采用似然原理训练得到的概率模型,可以帮助提高网络性能,就像谷歌从WaveNet提升到WaveNet 时所做的那样,也可以用来生成令人惊叹的应用程序,就像OpenAI在Glow(Glow是一个生成逼真人脸图像的强大网络)中所做的那样。当网络需要表达“我不确定”时,贝叶斯方法就会发挥作用。奇怪的是,传统的神经网络无法做到这一点。《概率深度学习:使用 Python、Keras和 TensorFlow Probability》的副标题是“使用Python、Keras和TensorFlow Probability”,它反映了这样一个事实:你应该亲自动手编写一些代码。
《概率深度学习:使用 Python、Keras和 TensorFlow Probability》读者对象
《概率深度学习:使用 Python、Keras和 TensorFlow Probability》是为那些想要了解深度学习的基本概率原理的人编写的。理想情况下,你好具有一些深度学习或机器学习方面的基础,不会抵触少许的数学和Python代码。我们不会省去必要的数学推导,同时在代码中也会包含示例。我们相信将数学与代码相结合,更能加深你的理解。
《概率深度学习:使用 Python、Keras和 TensorFlow Probability》的组织方式:路线图
《概率深度学习:使用 Python、Keras和 TensorFlow Probability》分为三部分,共8章。第Ⅰ部分解释传统的深度学习(DL)架构以及如何训练神经网络。
l 第1章——奠定基础,引入概率深度学习。
l 第2章——讨论网络结构,介绍全连接神经网络(fcNN),这是一种通用网络,还有卷积神经网络(CNN),这是图像处理的理想选择。
l 第3章——展示了神经网络如何设法拟合数百万个参数。为了便于理解,我们在简单的线性回归网络上展示梯度下降和反向传播。
第Ⅱ部分重点讨论概率神经网络模型。与第Ⅲ部分相反,我们专注于似然方法,它们是所有传统深度学习的背后基础。
l 第4章——探讨似然原理,它是机器学习和深度学习的背后基础。该章中将此原理应用于分类和简单回归问题。
l 第5章——介绍TFP概率编程工具箱,一个构建深度概率模型的框架。我们将其用于稍微复杂的回归问题,如计数数据预测问题。
l 第6章——更复杂的回归模型处理。后,解释如何使用概率模型来掌握复杂分布,比如人脸图像描述。
第Ⅲ部分介绍贝叶斯神经网络。贝叶斯神经网络可对不确定性进行处理。
l 第7章——激发贝叶斯深度学习需求,解释其基本原理。通过线性回归简单示例解释贝叶斯原理。
l 第8章——说明如何构建贝叶斯神经网络。该章讨论两种方法,分别是蒙特卡罗(MC)dropout和变分推理。
如果你具有深度学习方面的经验,可以跳过第Ⅰ部分。此外,第Ⅱ部分的第6章,从第6.3节开始介绍标准化流。这些内容与第Ⅲ部分的相关性不大,对于理解第Ⅲ部分来说,不必阅读此部分内容。第6.3.5节中的数学运算较为繁杂,所以如果不擅长数学运算,可以跳过它。第8.2.1和8.2.2节也存在同样的情况。
关于代码
《概率深度学习:使用 Python、Keras和 TensorFlow Probability》包含许多源代码示例,它们主要以代码的形式单独出现或以代码加注释的形式共同出现。但无论哪种情况,源代码都以等宽体字体格式显示,以与普通文本进行区分。
代码示例以Jupyter notebooks文件的形式给出。这些notebooks文件包括附加的注释,大多数文件还包括一些应该完成的小练习,以便更好地理解《概率深度学习:使用 Python、Keras和 TensorFlow Probability》中介绍的概念。你可以在GitHub网站https://github.com/ tensorchiefs/dl_book/目录中找到所有相关代码;也可以直接访问网站目录https://tensorchiefs.github.io/dl_book/,在其中找到所有notebooks文件的链接;或扫描《概率深度学习:使用 Python、Keras和 TensorFlow Probability》封底的二维码,下载所有notebooks文件。notebooks文件按章节进行编号,例如nb_ch08_02指的是第8章中的第2个notebook文件。
除了nb_06_05,《概率深度学习:使用 Python、Keras和 TensorFlow Probability》中的所有示例均使用TensorFlow v2.1和TensorFlow Probability v0.8进行调试。描述计算图的notebook文件nb_ch03_03和nb_ch03_04在TensorFlow v1中更容易理解。对于这些notebooks文件,都提供了两个TensorFlow版本。由于nb_06_05文件中所需权重仅能由TensorFlow v1版本提供,因此nb_06_05仅适用于TensorFlow v1。
你可以在Google的Colab中或本地直接执行这些notebooks文件。Colab很方便,不必安装,可以直接使用浏览器运行。只需要单击一个链接,便可以在云中调试运行相关代码。强烈建议你选择这种方式调试代码。
TensorFlow仍处于快速发展中,对于几年后新的TensorFlow版本,我们无法保证现在提供的代码还能运行。为此,我们提供了一个Docker容器,请参见网站https://github.com oduerr/dl_book_docker/。可以使用它来执行除了nb_06_05,以及TensorFlow1.0版本的nb_ch03_03和nb_ch03_04的所有notebooks文件。如果想在本地执行notebooks文件,则此Docker容器是选择。