TensorFlow技术解析与实战

TensorFlow技术解析与实战 pdf epub mobi txt 电子书 下载 2025

李嘉璇 著
图书标签:
  • TensorFlow
  • 深度学习
  • 机器学习
  • 神经网络
  • Python
  • 技术解析
  • 实战
  • 人工智能
  • 模型构建
  • 数据科学
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115456137
版次:1
商品编码:12073631
品牌:异步图书
包装:平装
开本:16开
出版时间:2017-06-01
用纸:胶版纸

具体描述

产品特色

编辑推荐

  

  - 领导“谷歌大脑”的工程师Jeff Dean发来寄语
  - 李航、余凯等人工智能领域专家倾力推荐
  - 基于TensorFlow 1.1,包揽TensorFlow的新特性
  - 技术内容全面,实战案例丰富,视野广阔
  - 人脸识别、语音识别、图像和语音相结合等热点一应俱全
  TensorFlow是深度学习的流行框架之一,极适合新手入门。谷歌公司正致力于建立一个相关软件和机器学习模型的开源生态系统,这是人工智能发展的技术风口。
  本书基于TensorFlow1.1版本,深入TensorFlow基础原理、设计理念、编程模型、源码分析和模型构建、工业界应用、大规模数据训练等。全书分为基础篇、实战篇和提高篇三部分。
  “基础篇”
   人工智能入门,学习深度学习的方法。
   TensorFlow基础原理、设计架构和编程模型。
   常用API、批标准化、模型的存储与加载、队列及线程、实现一个自定义OP。
   TensorBorad可视化的全面解析。
   源码分析。
   神经网络(CNN和RNN)的发展演化以及如何用TensorFlow实现这些网络。
   第三方上层框架Keras和TFLearn的应用。
  “实战篇”
   用TensorFlow实现了神经网络。
   用TensorFlow实现CNN、RNN、LSTM和自动编码器的各种示例。
   TensorFlow在人脸识别、语音识别、智能机器人、语音和图像相结合以及生成式对抗网络(GAN)等领域的实际应用。
  “提高篇”
   TensorFlow的分布式原理、架构和模式。
   移动端开发(Android、iOS和树莓派)。
   TensorFlow的新特性,线性代数编程框架XLA、调试器Debugger、动态图Fold、生产环境Serving。
   TensorFlow和Kubernetes相结合。
   TensorFlowOnSpark。
   硬件计算加速。
   机器学习的评测体系。
  本书深入浅出,理论联系实际,实战案例新颖,适合对TensorFlow感兴趣的各层次读者阅读。
  
  

内容简介

  

  TensorFlow 是谷歌公司开发的深度学习框架,也是目前深度学习的主流框架之一。本书从深度学习的基础讲起,深入TensorFlow框架原理、模型构建、源代码分析和网络实现等各个方面。全书分为基础篇、实战篇和提高篇三部分。基础篇讲解人工智能的入门知识,深度学习的方法,TensorFlow的基础原理、系统架构、设计理念、编程模型、常用API、批标准化、模型的存储与加载、队列与线程,实现一个自定义操作,并进行TensorFlow源代码解析,介绍卷积神经网络(CNN)和循环神经网络(RNN)的演化发展及其TensorFlow实现、TensorFlow的高级框架等知识;实战篇讲解如何用TensorFlow写一个神经网络程序并介绍TensorFlow实现各种网络(CNN、RNN和自编码网络等)并对MNIST数据集进行训练,讲解TensorFlow在人脸识别、自然语言处理、图像和语音的结合、生成式对抗网络等方面的应用;提高篇讲解TensorFlow的分布式原理、架构、模式、API,还会介绍TensorFlow XLA、TensorFlow Debugger、TensorFlow和Kubernetes结合、TensorFlowOnSpark、TensorFlow移动端应用,以及TensorFlow Serving、TensorFlow Fold和TensorFlow计算加速等其他特性。最后,附录中列出一些可供参考的公开数据集,并结合作者的项目经验介绍项目管理的一些建议。
  
  

作者简介

  李嘉璇,创建TensorFlow交流社区,活跃于国内各大技术社区,知乎编程问题回答者。致力于人工智能的研究,对深度学习框架的架构、源码分析及在不同领域的应用有浓厚兴趣。有过上百篇论文阅读和深度学习经验,处理图像、社交文本数据情感分析、数据挖掘经验,参与过基于深度学习的自动驾驶二维感知系统Hackathon竞赛,曾任职百度研发工程师。

精彩书评

  

深度学习是当前人工智能核心的技术,TensorFlow是深度学习主要的实现平台。李嘉璇的这本书对TensorFlow的基本原理、主要特性、使用方法以及在TensorFlow上的技术开发做了系统全面的介绍,内容充实,讲解详尽。没有对TensorFlow的深刻理解和丰富的实战经验是写不出这样的好书来的,全书字里行间透出作者对技术的真诚热爱及细致钻研。本书定位恰当,出版及时,相信读者一定会喜欢,强烈推荐给大家!
  

——李航,华为诺亚方舟实验室主任,北京大学、南京大学客座教授,IEEE会士、ACM杰出科学家


  

我认为这本书非常适合希望研究深度学习的程序员。他们可以将本书作为一本基础和实践的书籍阅读。对于初学者来说,从TensorFlow入手是很好的起点。TensorFlow有谷歌的强大支持,并且有广泛的社区。读者可以从本书中了解基本的深度学习原理、典型的模型、大量的TensorFlow源代码以及成功的应用范例。从本书出发,读者可以循序渐进,逐步深入,在工作实践中加以运用,领略深度学习的美妙。
  

——余凯,地平线机器人创始人,前百度深度学习实验室主任


  

本书从应用的基本案例出发,使用实际的代码介绍TensorFlow的基础知识和各种使用方法。本书也介绍了一些深度学习的基础知识,如CNN、RNN、LSTM,并列出了一些深入研究深度学习的参考文献,是一本很好的从应用出发介绍TensorFlow的读物,非常适合有兴趣学习和使用TensorFlow的广大读者阅读。
  

——孙亮,《实用机器学习》作者,阿里巴巴数据科学与技术研究院高级专家


  

不“高来高去”、不“急于求成”、品味独特的TensorFlow深度学习实践指南。全书一气呵成,深入浅出,覆盖全面,实例丰富,是难得的用心佳作。“深度学习”浪潮当前,从“看热闹”到“看门道”路在何方?本书或许能帮你找到一些线索。
  

——陈光,北京邮电大学模式识别实验室副教授(微博@爱可可-爱生活)


  

从纯技术的角度来看,深度学习还是有些深奥的,幸亏AI社区有了越来越多的开源平台,使深度学习的应用变得越来越简单,TensorFlow即是其中优秀的平台之一。如何尽快熟悉这个平台,并能在实战中发挥其作用,是众多工程技术人员非常渴望获得的技能。嘉璇的这本书应该是很好的选择!作者基于对TensorFlow的深刻理解和丰富的实战经验,对TensorFlow的原理、特性、使用方法以及应用技巧做了详尽的介绍。特别是结合具体实例进行讲解的方式,有利于读者直观、快速地掌握有关的技能。嘉璇多才多艺,对技术和生活充满热爱和激情,相信这本书会有众多读者喜欢!
  

——山世光,中科院计算所研究员,中科院智能信息处理重点实验室常务副主任,中科视拓创始人、董事长兼CTO


  

TensorFlow是目前非常受欢迎的深度学习框架。本书作者在文本分析和数据挖掘方面拥有丰富的经验。通过相关算法的专业知识和对TensorFlow的所有前沿功能的深入解析,作者提供一章章的有用资料来分享实用和有见地的信息。细分为直观的“基础篇”“实战篇”“提高篇”这样的结构,可以帮助读者有效地学习。
  

——Matt Scott(码特),Malong(码隆科技)CTO


  

随着机器不断突破智能极限,我们将被卷入超乎想象的AI新时代。TensorFlow是推动人工智能进步的引擎,如果你希望站在机器学习浪潮上成为AI极客,那就从阅读本书开始努力吧!本书详尽地介绍了算法和模型的细节,同时穿插大量的工业界实际例子,清晰地讲解了如何构建深度学习模型,对建立完整的深度学习知识体系大有裨益。
  

——李卓桓,PreAngel合伙人,机器学习/ChatBot爱好者


  

深度学习的浪潮汹涌而来,TensorFlow则为广大弄潮儿提供了强大的帆板。对于更多虽没有弄潮经验却跃跃欲试的人,这本书正可以成为他们入海前的第一课。本书涉及图像识别、自然语言处理等多个领域,演示了包括CNN、RNN、GAN在内的多种算法实现,对入门深度学习和TensorFlow是难得的学习材料。
  

——边江,微软亚洲研究院主管研究员


  

目录

第一篇 基础篇

第1章 人工智能概述 2

1.1 什么是人工智能 2

1.2 什么是深度学习 5

1.3 深度学习的入门方法 7

1.4 什么是TensorFlow 11

1.5 为什么要学TensorFlow 12

1.5.1 TensorFlow的特性 14

1.5.2 使用TensorFlow的公司 15

1.5.3 TensorFlow的发展 16

1.6 机器学习的相关赛事 16

1.6.1 ImageNet的ILSVRC 17

1.6.2 Kaggle 18

1.6.3 天池大数据竞赛 19

1.7 国内的人工智能公司 20

1.8 小结 22

第2章 TensorFlow环境的准备 23

2.1 下载TensorFlow 1.1.0 23

2.2 基于pip的安装 23

2.2.1 Mac OS环境准备 24

2.2.2 Ubuntu/Linux环境准备 25

2.2.3 Windows环境准备 25

2.3 基于Java的安装 28

2.4 从源代码安装 29

2.5 依赖的其他模块 30

2.5.1 numpy 30

2.5.2 matplotlib 31

2.5.3 jupyter 31

2.5.4 scikit-image 32

2.5.5 librosa 32

2.5.6 nltk 32

2.5.7 keras 33

2.5.8 tflearn 33

2.6 小结 33

第3章 可视化TensorFlow 34

3.1 PlayGround 34

3.1.1 数据 35

3.1.2 特征 36

3.1.3 隐藏层 36

3.1.4 输出 37

3.2 TensorBoard 39

3.2.1 SCALARS面板 40

3.2.2 IMAGES面板 41

3.2.3 AUDIO面板 42

3.2.4 GRAPHS面板 42

3.2.5 DISTRIBUTIONS面板 43

3.2.6 HISTOGRAMS面板 43

3.2.7 EMBEDDINGS面板 44

3.3 可视化的例子 44

3.3.1 降维分析 44

3.3.2 嵌入投影仪 48

3.4 小结 51

第4章 TensorFlow基础知识 52

4.1 系统架构 52

4.2 设计理念 53

4.3 编程模型 54

4.3.1 边 56

4.3.2 节点 57

4.3.3 其他概念 57

4.4 常用API 60

4.4.1 图、操作和张量 60

4.4.2 可视化 61

4.5 变量作用域 62

4.5.1 variable_scope示例 62

4.5.2 name_scope示例 64

4.6 批标准化 64

4.6.1 方法 65

4.6.2 优点 65

4.6.3 示例 65

4.7 神经元函数及优化方法 66

4.7.1 激活函数 66

4.7.2 卷积函数 69

4.7.3 池化函数 72

4.7.4 分类函数 73

4.7.5 优化方法 74

4.8 模型的存储与加载 79

4.8.1 模型的存储与加载 79

4.8.2 图的存储与加载 82

4.9 队列和线程 82

4.9.1 队列 82

4.9.2 队列管理器 85

4.9.3 线程和协调器 86

4.10 加载数据 87

4.10.1 预加载数据 87

4.10.2 填充数据 87

4.10.3 从文件读取数据 88

4.11 实现一个自定义操作 92

4.11.1 步骤 92

4.11.2 最佳实践 93

4.12 小结 101

第5章 TensorFlow源代码解析 102

5.1 TensorFlow的目录结构 102

5.1.1 contirb 103

5.1.2 core 104

5.1.3 examples 105

5.1.4 g3doc 105

5.1.5 python 105

5.1.6 tensorboard 105

5.2 TensorFlow源代码的学习方法 106

5.3 小结 108

第6章 神经网络的发展及其TensorFlow实现 109

6.1 卷积神经网络 109

6.2 卷积神经网络发展 110

6.2.1 网络加深 111

6.2.2 增强卷积层的功能 115

6.2.3 从分类任务到检测任务 120

6.2.4 增加新的功能模块 121

6.3 MNIST的AlexNet实现 121

6.3.1 加载数据 121

6.3.2 构建网络模型 122

6.3.3 训练模型和评估模型 124

6.4 循环神经网络 125

6.5 循环神经网络发展 126

6.5.1 增强隐藏层的功能 127

6.5.2 双向化及加深网络 129

6.6 TensorFlow Model Zoo 131

6.7 其他研究进展 131

6.7.1 强化学习 132

6.7.2 深度森林 132

6.7.3 深度学习与艺术 132

6.8 小结 133

第7章 TensorFlow的高级框架 134

7.1 TFLearn 134

7.1.1 加载数据 134

7.1.2 构建网络模型 135

7.1.3 训练模型 135

7.2 Keras 135

7.2.1 Keras的优点 136

7.2.2 Keras的模型 136

7.2.3 Keras的使用 137

7.3 小结 141

第二篇 实战篇

第8章 第一个TensorFlow程序 144

8.1 TensorFlow的运行方式 144

8.1.1 生成及加载数据 144

8.1.2 构建网络模型 145

8.1.3 训练模型 145

8.2 超参数的设定 146

8.3 小结 147

第9章 TensorFlow在MNIST中的应用 148

9.1 MNIST数据集简介 148

9.1.1 训练集的标记文件 148

9.1.2 训练集的图片文件 149

9.1.3 测试集的标记文件 149

9.1.4 测试集的图片文件 150

9.2 MNIST的分类问题 150

9.2.1 加载数据 150

9.2.2 构建回归模型 151

9.2.3 训练模型 151

9.2.4 评估模型 152

9.3 训练过程的可视化 152

9.4 MNIST的卷积神经网络 156

9.4.1 加载数据 157

9.4.2 构建模型 157

9.4.3 训练模型和评估模型 159

9.5 MNIST的循环神经网络 161

9.5.1 加载数据 161

9.5.2 构建模型 161

9.5.3 训练数据及评估模型 163

9.6 MNIST的无监督学习 164

9.6.1 自编码网络 164

9.6.2 TensorFlow的自编码网络实现 165

9.7 小结 169

第10章 人脸识别 170

10.1 人脸识别简介 170

10.2 人脸识别的技术流程 171

10.2.1 人脸图像采集及检测 171

10.2.2 人脸图像预处理 171

10.2.3 人脸图像特征提取 171

10.2.4 人脸图像匹配与识别 172

10.3 人脸识别的分类 172

10.3.1 人脸检测 172

10.3.2 人脸关键点检测 173

10.3.3 人脸验证 174

10.3.4 人脸属性检测 174

10.4 人脸检测 175

10.4.1 LFW数据集 175

10.4.2 数据预处理 175

10.4.3 进行检测 176

10.5 性别和年龄识别 178

10.5.1 数据预处理 179

10.5.2 构建模型 181

10.5.3 训练模型 182

10.5.4 验证模型 184

10.6 小结 185

第11章 自然语言处理 186

11.1 模型的选择 186

11.2 英文数字语音识别 187

11.2.1 定义输入数据并预处理数据 188

11.2.2 定义网络模型 188

11.2.3 训练模型 188

11.2.4 预测模型 189

11.3 智能聊天机器人 189

11.3.1 原理 190

11.3.2 最佳实践 191

11.4 小结 200

第12章 图像与语音的结合 201

12.1 看图说话模型 201

12.1.1 原理 202

12.1.2 最佳实践 203

12.2 小结 205

第13章 生成式对抗网络 206

13.1 生成式对抗网络的原理 206

13.2 生成式对抗网络的应用 207

13.3 生成式对抗网络的实现 208

13.4 生成式对抗网络的改进 214

13.5 小结 214

第三篇 提高篇

第14章 分布式TensorFlow 216

14.1 分布式原理 216

14.1.1 单机多卡和分布式 216

14.1.2 分布式部署方式 217

14.2 分布式架构 218

14.2.1 客户端、主节点和工作节点的关系 218

14.2.2 客户端、主节点和工作节点的交互过程 220

14.3 分布式模式 221

14.3.1 数据并行 221

14.3.2 同步更新和异步更新 222

14.3.3 模型并行 224

14.4 分布式API 225

14.5 分布式训练代码框架 226

14.6 分布式最佳实践 227

14.7 小结 235

第15章 TensorFlow线性代数编译框架XLA 236

15.1 XLA的优势 236

15.2 XLA的工作原理 237

15.3 JIT编译方式 238

15.3.1 打开JIT编译 238

15.3.2 将操作符放在XLA设备上 238

15.4 JIT编译在MNIST上的实现 239

15.5 小结 240

第16章 TensorFlow Debugger 241

16.1 Debugger的使用示例 241

16.2 远程调试方法 245

16.3 小结 245

第17章 TensorFlow和Kubernetes结合 246

17.1 为什么需要Kubernetes 246

17.2 分布式TensorFlow在Kubernetes中的运行 247

17.2.1 部署及运行 247

17.2.2 其他应用 253

17.3 小结 254

第18章 TensorFlowOnSpark 255

18.1 TensorFlowOnSpark的架构 255

18.2 TensorFlowOnSpark在MNIST上的实践 257

18.3 小结 261

第19章 TensorFlow移动端应用 262

19.1 移动端应用原理 262

19.1.1 量化 263

19.1.2 优化矩阵乘法运算 266

19.2 iOS系统实践 266

19.2.1 环境准备 266

19.2.2 编译演示程序并运行 267

19.2.3 自定义模型的编译及运行 269

19.3 Android系统实践 273

19.3.1 环境准备 274

19.3.2 编译演示程序并运行 275

19.3.3 自定义模型的编译及运行 277

19.4 树莓派实践 278

19.5 小结 278

第20章 TensorFlow的其他特性 279

20.1 TensorFlow Serving 279

20.2 TensorFlow Flod 280

20.3 TensorFlow计算加速 281

20.3.1 CPU加速 281

20.3.2 TPU加速和FPGA加速 282

20.4 小结 283

第21章 机器学习的评测体系 284

21.1 人脸识别的性能指标 284

21.2 聊天机器人的性能指标 284

21.3 机器翻译的评价方法 286

21.3.1 BLEU 286

21.3.2 METEOR 287

21.4 常用的通用评价指标 287

21.4.1 ROC和AUC 288

21.4.2 AP和mAP 288

21.5 小结 288

附录A 公开数据集 289

附录B 项目管理经验小谈 292

前言/序言

  缘起
  2017年2月,TensorFlow的首届开发者峰会(2017 TensorFlow Dev Summit)在美国的加利福尼亚州举行。在会上,谷歌公司宣布正式发布TensorFlow 1.0版本。本书就是基于最新的1.1.0版本来介绍TensorFlow的技术解析和实战。
  人工智能大潮来了。2016年,AlphaGo击败围棋大师李世石后,人工智能的应用仿佛一夜之间遍地开花。在科技潮流的大环境中,现在硅谷的用人单位越来越倾向于雇用既懂理论(思考者)又懂编程(执行者)的工程师。思考者的日常工作是阅读文献以求产生思路,而执行者则是编写代码来实现应用。但是要成为一名真正的工程师,学习机器学习是将思考者和执行者相结合的最快途径。
  众所周知,人工智能是高级计算智能最宽泛的概念,机器学习是研究人工智能的一个工具,深度学习是机器学习的一个子集,是目前研究领域卓有成效的学习方法。深度学习的框架有很多,而TenforFlow将神经网络、算法这些平时停留在理论层面的知识,组织成一个平台框架,集合了神经网络的各个算法函数组成一个工具箱,让广大工程师可以专心建造自己的目标领域的“轮子”,而且TenforFlow是基于Python语言的,极易上手,这些优势迅速吸引了全世界的工程师。
  我曾经也是一名前后端开发工程师,更专注于后端工程方向,而潜心研究深度学习和TensorFlow后,我被TensorFlow深深地迷住了。我发现它对各行各业将会有很深远的影响,并且会大大地解放劳动力。
  与传统工程师的主要工作—实现产品需求或者设计高可用性架构不同,深度学习让人总结和抽象人类是怎样理解和看待问题的,并把这种方式教给机器。例如,在AlphaGo的研究中,人们需要先抽象出人类思考围棋的方式,然后将这种方式抽象成算法,并且配合人类大脑构造中神经网络的传输来实现这些算法。这时,工程师不会再写实现业务需求的逻辑代码,而是深度学习中将神经网络的“黑盒”和模型效果非常好却缺乏“可解释性”的特性相结合,在次次实验中尽量找出规律。记得美国前总统肯尼迪在宣布登月计划时曾说:“我们选择去月球,不是因为它简单,而是因为它困难。”今天,我相信,所有致力于人工智能方向的工程师之所以自豪地去研究,也不是因为它简单,而是因为它困难。我们研究它,是因为立足于现在这个点往前看,我们看不到已经建好的高楼大厦,看到的是一片等待我们去发掘的空旷的大地,而这个发掘过程需要的是十足的远见、决心、勇气和信心。
  我在学习的过程中,由于深度学习的资料英文的居多,在理解上走了不少弯路。我把学到的知识和原理用心整理并用文字表述出来,写成这本书,希望能帮助没有接触过深度学习的广大程序员迅速上手,而不再被英文阅读理解挡在门外。说实话,TensorFlow的文档以及API接口是比较抽象的,再加上有一些从工程方向转入深度学习的人以前没有过深度学习的经验,所以如果带着工程类程序研发的思维去学习,甚至是实现业务逻辑需求的思维去学习,效果会很差。我希望这本书能为读者呈现一个通俗易懂、形象生动的TensorFlow,使读者迅速走入深度学习的世界。
  在本书的写作过程中,为了能充分挤出时间,深夜当我困倦时,我常常让自己以最不舒服的方式入睡,希望能尽量少睡,以此增加仔细钻研的时间。有时我还会打开电视,将音量设置为静音,感受房间中电视背景光闪烁的动感,以此提醒自己时间的流动。刚开始我会坐在工作台前写作,累了又会抱着笔记本坐在床上继续写作,有时会写着写着不知不觉地睡着,凌晨三四点钟又醒来,感受黑夜里的那片安宁,心情顿时平静,再次投入到钻研中。每每有灵感,都非常激动;每每再次深入一个概念,增删易稿,把原理逼近真相地讲透,都让我非常有成就感。
  面向的读者
  我素来不爱探究数学公式的推导原理,对符号也很茫然,只是在必须要用时才对这些公式进行详细的推导,但是我却对这些原理在应用层面如何使用出奇地感兴趣。本书的目标就是带读者进入造“应用轮子”的大门。我会以最少的数学公式讲清楚如何用TensorFlow实现CNN、RNN,如何在实战中使用TensorFlow进行图片分类、人脸识别和自然语言处理等,以及如何将想训练的数据、想实现的应用亲手做出来。
  同时,Python语言是一门相当高级的语言,有“可执行的伪代码”的美誉,可以用极少的代码行去完成一个复杂的功能,同时Python还有极为丰富的第三方库,让全世界很多工程师的开发工作变得异常简单。TensorFlow是用Python语言实现的框架,对很多学生来说非常容易上手,当然,如果是有开发经验的工程师,就更容易学会。如果说设计神经网络模型像是盖一栋大楼,那么TensorFlow强大的API用起来会让人感觉就像搭积木一样容易。因此,懂点儿Python,即便不怎么懂数学和算法原理也没关系,尽管跟着我一起学便是。
  在翻译学上有一个概念叫作“平行语料库”,这个概念来自制作于公元前196年的古埃及罗塞塔石碑,石碑上用希腊文字、古埃及文字和当时的通俗体文字刻了同样的内容。在本书进行某个概念的讲解时,虽然是用Python代码作示范,但TensorFlow前端开发同时也支持多种上层语言,本书讲解过程中也会兼顾到用C++、Java、Go语言做开发的读者。
  我希望,本书成为不同领域的读者进入人工智能领域的“垫脚石”,也希望所有的读者在人生路上能利用TensorFlow这个工具大放异彩。
  我有很重的强迫症,因此,在编写本书的过程中,阅读了国内外很多与TensorFlow相关的资料,对本书的目录结构和框架经过很多次反复琢磨和调整;在写完之后,我又从头到尾地读过好几遍,并且和了解TensorFlow不同方面的人反复交流,根据建议又反复修改。这一切就是希望它能通俗易懂,把读者快速领入深度学习的大门。
  这扇门的背后是异彩纷呈的,身怀这门技艺的人是应该非常自豪的,但这扇门的背后也是非常辛苦的,有时数据需要自己去想办法解决,还需要每天看论文,知晓最新科研成果,给自己以启发,反复地做实验,研究算法和模型,寻求提升和解决方法,经常会遇到在很长一段时间没有思路的情况。但是,只要做的东西是开创的,令人称赞的,就会开心地享受这个过程。
  我专为本书读者建立了一个QQ交流群(320420130),希望在群里与大家深入讨论和交流学习过程中遇到的问题,也希望与大家分享最新的研究成果。
  致谢
  非常感谢谷歌大脑的工程师Jeff Dean,在得知我目前正在写这本书的时候,他特地发了邮件鼓励我:“听说你写了一本关于TensorFlow的书,真是太好了。希望你很享受学习TensorFlow的这段经历,并享受运用TensorFlow完成各种任务的这种体验。我非常高兴你为中文社区写这本书。” 这让我更坚定了传播TensorFlow深度学习的决心。
  感谢百度硅谷AI实验室资深科学家王益老师关于AI on Kubernetes的建议。
  感谢在百度工作时的同事陈后江,在写作过程中,我们有时在周末的深夜还进行讨论,印象最深的一次是在大冬天晚上,我们恰好都在外面,相互通了20多分钟电话,手冻得像冰棒似的。还要感谢童牧晨玄,他也是深度学习领域的爱好者,对关键的概念理解得非常透彻,能十分精准地讲出原理。
  非常感谢《Redis实战》一书的译者黄健宏,他对技术写作有很丰富的经验。和他聊书总是能聊到凌晨以后,讨论到畅快处,甚至聊到天亮,他对问题的思考就像是“演杂技”一样,精准又恰到好处;同时,他又是一个非常让人感到温暖和踏实的朋友。
  非常感谢iOS资深开发者唐巧,他在国内社区乐于分享的精神造福了很多的技术从业者,也正是他的推荐让我和本书的编辑杨海玲老师结下了这段美好的情谊。
  非常感谢人民邮电出版社的杨海玲编辑,她最开始想到这个写作方向,我们一起一点一点地讨论书的内容,确认书的写作框架。在写作过程中,她的细致、专业、独到的见解也为本书增色不少。她对内容严谨和认真的态度令人动容。
  非常感谢中科院计算所刘昕博士对本书第6章神经网络的发展提出的建议;感谢曾经的百度同事毕骁鹏对第8章、第9章、第13章、第14章、第20章、第21章提出的极为细致的建议,尤其是他擅长GPU和FPGA的部分,对本书的硬件加速提供了很多建议;感谢中科院智能信息处理重点实验室常务副主任山世光对第10章人脸识别部分提出的建议;感谢刘元震对本书第11章提出的建议;感谢我的好朋友容器专家苗立尧对第17章提出的建议;感谢百度地图导航专家梁腾腾对第19章移动端开发给予的极为细致的建议;感谢阿里巴巴数据科学与技术研究院高级专家孙亮博士对整本书的结构和知识点提出的建议。
  感谢我的好朋友吴丽明,曾经那么帮助过我;感谢我的好朋友饶志臻先生,一直诱惑我买苹果设备,有个硬件发烧友真的很幸福;感谢我的闺蜜谢禹曦,好久没有和你聚餐了,甚是思念。
  最后,还得感谢一位流行歌手—“火星弟弟”华晨宇,他在舞台上那一次次创意和感染力的演出深深地吸引了我,他在台下那认真刻苦作曲改歌的样子也激励着我,每次想到他的事迹,都给我极大的鼓励。
  非常感谢本书的每一位读者,本书的完成过程非常辛苦但也充满甜蜜。我在“知乎”和网站上也会回答关于“人工智能”的各类问题,希望通过内容的更新与读者不断交流。另外,由于水平有限,在内容上表述上难免也有遗漏和疏忽,也恳请读者多多指正。
  李嘉璇
  2017年4月于北京石景山





























《深度学习的基石:神经网络原理与优化算法探秘》 引言 在当今飞速发展的科技浪潮中,深度学习已成为推动人工智能进步的核心驱动力。从图像识别到自然语言处理,从推荐系统到自动驾驶,深度学习模型的强大能力正深刻地改变着我们的世界。而作为深度学习模型的核心,神经网络的原理和优化算法更是理解和应用深度学习的关键。本书《深度学习的基石:神经网络原理与优化算法探秘》旨在为读者系统地梳理神经网络的理论基础,深入剖析其工作机制,并详尽介绍各类关键的优化算法,帮助读者构建扎实的理论功底,为进一步探索更高级的深度学习技术奠定坚实的基础。 第一章:神经网络的基本构成与前世今生 本章将带您回顾神经网络的发展历程,从早期简单的感知机模型,到人工神经网络的萌芽,再到深度学习时代的蓬勃发展。我们将详细介绍神经网络最基本的组成单元——神经元,解释其激活函数的作用,以及如何通过多层神经元的连接构成复杂的网络结构。本章还将涵盖前馈神经网络、循环神经网络、卷积神经网络等经典网络结构的初步介绍,为后续章节的深入探讨打下基础。我们将关注这些结构的设计思想和适用场景,让读者对神经网络的多样性有一个初步的认识。 第二章:激活函数:赋予网络生命力的关键 激活函数是神经网络中至关重要的组成部分,它赋予了神经网络处理非线性问题的能力。本章将深入探讨几种主流的激活函数,包括Sigmoid、Tanh、ReLU及其变种(Leaky ReLU、PReLU、ELU等)。我们将详细分析它们的数学特性、优缺点,以及在不同网络结构和应用场景下的适用性。例如,我们将讨论Sigmoid函数在早期的应用以及它在深层网络中可能遇到的梯度消失问题,并重点阐述ReLU系列激活函数如何有效解决这一问题,成为现代深度学习模型的主流选择。我们还会探讨如何根据具体任务选择合适的激活函数,以提升模型的性能。 第三章:损失函数:衡量模型表现的标尺 损失函数是衡量神经网络模型预测结果与真实标签之间差异的度量标准。本章将系统介绍各种常用的损失函数,包括均方误差(MSE)、交叉熵损失(Cross-Entropy Loss)、Hinge Loss等。我们将详细解释它们的数学定义、适用场景以及它们在不同类型的机器学习任务(如回归、分类)中所扮演的角色。例如,我们将深入剖析二元交叉熵和多类别交叉熵的计算方式,并探讨它们在处理概率预测和类别划分任务中的优势。此外,我们还将讨论损失函数的选择如何直接影响模型的训练方向和最终性能。 第四章:反向传播算法:神经网络训练的核心驱动 反向传播算法是训练神经网络的核心算法,它通过链式法则计算损失函数对网络权重的梯度,并利用这些梯度来更新权重,从而使模型逐渐收敛到最优解。本章将对反向传播算法进行详尽的解析,从计算图的角度理解梯度是如何在网络中传播的。我们将逐步推导反向传播的数学公式,并结合实例讲解其计算过程。此外,我们还将讨论反向传播算法在计算效率和数值稳定性方面可能遇到的挑战,并为后续章节介绍的优化算法埋下伏笔。 第五章:梯度下降及其变种:探索最速下降的路径 梯度下降是反向传播算法应用的核心优化方法。本章将深入剖析经典的梯度下降算法,解释其工作原理和收敛条件。在此基础上,我们将介绍一系列梯度下降的变种算法,包括: 随机梯度下降(SGD): 解释其计算效率上的优势以及可能带来的收敛波动。 小批量梯度下降(Mini-batch Gradient Descent): 介绍其在效率和稳定性之间的平衡。 动量(Momentum): 阐述动量如何加速收敛并帮助跳出局部最优。 Adagrad: 分析其对学习率自适应调整的机制,以及在稀疏数据上的表现。 RMSprop: 解释其如何通过平方梯度均值来归一化学习率,解决Adagrad学习率衰减过快的问题。 Adam: 详细介绍Adam算法,它是目前最受欢迎的优化器之一,结合了动量和RMSprop的优点,具有良好的收敛性和鲁棒性。 本章将通过直观的图示和数学推导,帮助读者理解各种优化算法的内在机制,并指导读者根据不同的应用场景选择最合适的优化器。 第六章:学习率调度:动态调整训练节奏 学习率是梯度下降算法中的一个关键超参数,它决定了模型参数更新的步长。本章将探讨学习率调度策略的重要性,以及如何通过动态调整学习率来提高模型的收敛速度和泛化能力。我们将介绍以下常见的学习率调度方法: 步长衰减(Step Decay): 按照预设的步长和衰减率逐步减小学习率。 指数衰减(Exponential Decay): 以指数方式衰减学习率。 余弦退火(Cosine Annealing): 采用余弦函数来调整学习率,在训练初期保持较高的学习率,然后逐步减小,并在周期结束后可能重新提升。 学习率Warmup: 在训练初期使用较小的学习率,然后逐渐增加到预设值,以避免在模型初始化阶段因较大的梯度而导致训练不稳定。 我们将分析这些调度策略的数学原理,并通过实验对比来展示它们对模型训练效果的影响。 第七章:正则化技术:防止模型过拟合的利器 过拟合是深度学习模型训练中常见的挑战,它会导致模型在训练集上表现良好,但在未见过的数据上泛化能力差。本章将深入介绍各种常用的正则化技术,用于提高模型的泛化能力: L1和L2正则化: 解释它们如何通过在损失函数中添加惩罚项来约束模型权重,并讨论它们对模型稀疏性和鲁棒性的影响。 Dropout: 详细阐述Dropout的工作原理,即在训练过程中随机“丢弃”一部分神经元,强制网络学习更鲁棒的特征表示。 Batch Normalization: 介绍Batch Normalization如何通过对每一层输入的激活值进行归一化,来加速训练,稳定训练过程,并起到一定的正则化作用。 数据增强(Data Augmentation): 探讨如何通过对输入数据进行各种变换(如旋转、翻转、裁剪等)来增加训练数据的多样性,从而提高模型的泛化能力。 本章将从理论和实践层面深入剖析这些正则化技术,帮助读者理解如何有效地对抗过拟合,构建出泛化能力强的深度学习模型。 第八章:模型评估与选择:量化模型性能的科学方法 在训练完模型后,如何准确地评估其性能并做出明智的模型选择是至关重要的。本章将介绍一系列模型评估指标和技术: 分类任务评估指标: 准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1-Score、ROC曲线和AUC值等。 回归任务评估指标: 均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、R²分数等。 交叉验证(Cross-Validation): 解释K折交叉验证等技术,如何更全面地评估模型的泛化能力,减少模型选择的偶然性。 超参数调优: 介绍网格搜索、随机搜索以及更高级的贝叶斯优化等方法,用于寻找最佳的模型超参数组合。 本章将引导读者掌握量化模型性能的科学方法,并学会如何根据评估结果做出最优的模型选择。 第九章:神经网络的可视化与解释性:理解模型的“黑箱” 尽管深度学习模型取得了巨大的成功,但其“黑箱”特性使得理解其内部工作机制变得困难。本章将介绍一些可视化和解释性技术,帮助读者更好地理解神经网络的决策过程: 可视化权重和激活: 如何通过可视化网络层的权重分布和激活值,来洞察模型学习到的特征。 可视化决策边界: 如何通过可视化不同类别在特征空间中的决策边界,来理解分类模型的判别逻辑。 特征重要性分析: 介绍一些方法来量化不同输入特征对模型预测结果的影响。 注意力机制(Attention Mechanism): 探讨注意力机制如何让模型在处理序列数据时“关注”到重要的信息,并如何通过可视化注意力权重来理解模型的关注点。 本章旨在提高读者对神经网络内部机制的理解,为调试和优化模型提供更深入的洞察。 第十章:实践案例分析:理论与实战的融合 理论学习的最终目的是为了更好地解决实际问题。本章将通过几个经典的深度学习应用场景,将前面章节介绍的理论知识付诸实践。我们将以实际代码示例,结合数据预处理、模型构建、训练、评估和调优的全过程,展示如何应用神经网络原理和优化算法来解决实际问题。例如,我们可能会涵盖: 图像分类的实现: 使用卷积神经网络(CNN)进行图像分类任务。 文本情感分析: 使用循环神经网络(RNN)或Transformer模型进行文本情感分析。 回归预测: 使用多层感知机(MLP)或更复杂的模型进行回归预测。 通过这些实践案例,读者将能够将理论知识转化为实际操作能力,为自己独立开发和应用深度学习模型打下坚实的基础。 结论 《深度学习的基石:神经网络原理与优化算法探秘》力求为读者构建一个系统、深入、且易于理解的神经网络理论框架。我们相信,通过对本书内容的深入学习和实践,读者不仅能够掌握深度学习的核心原理,更能培养解决实际问题的能力,为在人工智能领域探索更广阔的天地奠定坚实的基础。

用户评价

评分

这本书的内容看起来非常吸引人,我尤其关注它在“实战”方面的讲解。我在之前的学习中,虽然接触过一些 TensorFlow 的 API,但总感觉理论知识与实际应用之间存在一道鸿沟。我希望能在这本书中找到连接这道鸿沟的桥梁。我期待书中能够提供一系列完整的项目案例,从数据准备、模型设计、训练到最终的部署,能够完整地展示一个实际应用的开发流程。例如,我希望能看到如何使用 TensorFlow 构建一个图像分类器,或者一个文本生成模型。更进一步,我希望书中能分享一些关于如何选择合适的模型架构、如何进行超参数调优以及如何处理过拟合和欠拟合等实战经验。如果书中还能探讨一些关于如何利用 TensorFlow 部署模型到不同平台,例如服务器、移动端或者嵌入式设备上的方法,那将极大地提升这本书的实用价值。我希望通过阅读这本书,能够真正掌握将 TensorFlow 应用于解决实际问题的能力,而不是停留在理论层面。

评分

这本书的名字听起来就充满了技术深度,让我对接下来的学习充满了期待。我之前在工作中遇到过一些需要利用机器学习解决的问题,但受限于对 TensorFlow 的理解不够深入,总是无法充分发挥其潜力。我特别希望这本书能帮助我突破瓶颈,掌握 TensorFlow 的高级用法,例如如何利用分布训练来加速模型的收敛,或者如何通过自定义算子来优化模型性能。对我而言,了解 TensorFlow 的内部运作机制至关重要,因为只有理解了“为什么”这样设计,我才能更灵活地运用它,解决那些非标准化的难题。这本书如果能提供一些关于 TensorFlow 性能调优的实操技巧,比如如何使用 TensorFlow Profiler 来分析模型瓶颈,以及如何针对不同硬件平台进行优化,那就太棒了。我还在思考,这本书是否会涉及一些 TensorFlow 在特定领域的应用,比如自然语言处理、计算机视觉或者强化学习中的前沿技术?如果能有这方面的深入探讨,那这本书的价值就更高了。总而言之,我期待这本书能带我进入 TensorFlow 的“内功心法”境界,让我不仅能“用”,更能“精通”。

评分

这本书简直是为我量身定做的!我一直对深度学习很感兴趣,但苦于没有一个系统性的入门指南,总是碎片化地学习一些概念,感觉像是零散的积木,搭不出完整的模型。最近开始接触一些实际项目,发现理论知识的不足严重阻碍了我的进展。在网上搜寻了很久,偶然看到了这本书的介绍,虽然当时还没完全了解内容,但“技术解析与实战”这几个字就牢牢吸引了我。我希望这本书能像一位经验丰富的老师,把我从迷茫中引领出来,一步一步地教我如何理解 TensorFlow 的底层原理,而不是仅仅停留在 API 的调用层面。我期待它能深入浅出地讲解各种算法的实现细节,比如卷积神经网络是如何提取特征的,循环神经网络又是如何处理序列数据的,还有注意力机制的精妙之处。更重要的是,我希望书中能提供一些贴近实际应用场景的代码示例,让我能够亲手实践,将学到的知识融会贯通,真正做到学以致用。我尤其关注模型部署和性能优化的部分,因为这是将研究成果转化为实际产品的关键环节。如果这本书能在这方面有所建树,那无疑会大大提升我的实战能力。

评分

我是一名初学者,对机器学习和深度学习领域充满了好奇,但又有些不知所措。看到这本书的名字,我希望它能成为我的“启蒙老师”。我不需要那些过于晦涩的数学推导,而是更倾向于能够理解 TensorFlow 的基本概念和常用功能。我想知道如何安装和配置 TensorFlow 环境,如何搭建一个简单的神经网络模型,以及如何训练和评估模型。这本书如果能提供一些清晰易懂的图示和代码示例,帮助我一步步地建立起对 TensorFlow 的直观认识,那将是非常有帮助的。我特别希望书中能够讲解一些常见的深度学习模型,比如多层感知机、卷积神经网络和循环神经网络,并展示如何在 TensorFlow 中实现它们。此外,如果书中还能包含一些关于如何处理数据集、进行数据预处理以及如何解决训练过程中可能遇到的常见问题的指导,那对我的学习过程将是莫大的帮助。我希望这本书能够让我对 TensorFlow 产生浓厚的兴趣,并为我未来深入学习打下坚实的基础。

评分

坦白说,我对 TensorFlow 的了解还停留在“知道有这么个东西”的阶段,身边很多朋友都在用,而且效果都很好,所以我一直想找一本能够真正带我入门的书。这本书的名字听起来就比较“接地气”,而且“解析”和“实战”的组合,让我觉得它既有理论深度,又不失操作指导。我希望这本书能非常详细地介绍 TensorFlow 的核心组件,比如张量(Tensor)的概念,计算图(Computation Graph)的工作原理,以及各种优化器(Optimizer)和损失函数(Loss Function)的作用。我希望它能用非常清晰的语言解释这些概念,避免过于晦涩的术语。同时,我也非常期待书中能够提供很多实际操作的例子,从最简单的“Hello, TensorFlow”开始,逐步引导我完成一些有意思的任务。比如,如何用 TensorFlow 训练一个简单的线性回归模型,或者如何用它来实现一个基本的神经网络。如果书中还能介绍一些常用的数据加载和处理工具,以及如何进行模型的可视化,那对我这样一个新手来说,绝对是雪中送炭。

评分

信赖京东。不错不错。

评分

对于初学者来说了解一下没问题,但是对于已经入门的来讲里面的东西又讲的不是特别透彻,算是一个综述性的文献吧!

评分

很简单,完全给外行的,意义不大

评分

还没有开始看,不过这本书很不错

评分

还没看,看介绍应该还可以吧

评分

此用户未及时填写评价内容,系统默认好评!

评分

惭愧,买了这么久还没拆封。习惯性给好评!

评分

京东买东西方便快捷,价格实惠,快递员服务好,送货上门,超赞

评分

不错不错不错不错不错不错不错不错不错

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有