产品特色
内容简介
深度学习为人工智能带来了巨大突破,也成为机器学习领域一颗闪耀的新星。虽然相关学习资料丰富,但大部分内容较为庞杂且难以理解,并对初学者的相关理论知识与实践能力有较高的要求,这使得大部分想进入这一领域的初学者望而却步。《深度学习实战》去繁化简地对深度学习的理论知识进行了梳理,并对算法实现做出了浅显易懂的讲解,适合初学者进行学习。结合《深度学习实战》的内容,读者可以快速对深度学习进行实践。通过启发式的自学模式,可以使读者由浅入深地学习并掌握常用的深度学习模型,为进一步使用开源的深度学习平台与工具提供理论与实践基础。
《深度学习实战》可作为高等院校计算机专业的本科生或研究生教材,也可供对深度学习感兴趣的研究人员和工程技术人员阅读参考。
作者简介
杨云教授,1981年生人。多年从事机器学习,数据挖掘,模式识别,大数据处理与分析等方面的研究工作,在英国曼彻斯特大学攻读博士学位期间,入选英国政府资助的海外研究生奖励计划(UK Overseas Research Students Awards Scheme –ORSAS)。博士毕业之后,在英国萨里大学从事研究员工作,期间主持了由欧共体第七个框架计划资助下的国际合作项目的子项目。
目录
目 录
第1章 深度学习的发展介绍 1
1.1 如何阅读本书 3
1.2 深度学习沉浮史 3
1.2.1 模拟生物大脑的疯狂远古时代 4
1.2.2 联结主义近代 5
1.2.3 百花齐放,层次结构主导,模型巨大的当代 6
1.3 Python简易教程 7
1.3.1 Anaconda搭建 7
1.3.2 IPython Notebook使用 7
1.3.3 Python基本用法 8
1.3.4 NumPy 15
1.3.5 Matplotlib 23
1.4 参考文献 25
第2章 机器学习快速入门 27
2.1 学习算法 28
2.1.1 学习任务 29
2.1.2 性能度量 30
2.1.3 学习经验 32
2.2 代价函数 33
2.2.1 均方误差函数 33
2.2.2 极大似然估计 34
2.3 梯度下降法 36
2.3.1 批量梯度下降法 38
2.3.2 随机梯度下降法 39
2.4 过拟合与欠拟合 40
2.4.1 没免费午餐理论 42
2.4.2 正则化 43
2.5 超参数与验证集 44
2.6 Softmax编码实战 46
2.6.1 编码说明 49
2.6.2 熟练使用CIFAR-10 数据集 50
2.6.3 显式循环计算损失函数及其梯度 53
2.6.4 向量化表达式计算损失函数及其梯度 56
2.6.5 最小批量梯度下降算法训练Softmax分类器 57
2.6.6 使用验证数据选择超参数 61
2.7 参考代码 68
2.8 参考文献 70
第3章 前馈神经网络 72
3.1 神经元 73
3.1.1 Sigmoid神经元 74
3.1.2 Tanh神经元 75
3.1.3 ReLU神经元 76
3.2 前馈神经网络 80
3.2.1 输出层单元 80
3.2.2 隐藏层单元 80
3.2.3 网络结构设计 81
3.3 BP算法 82
3.4 深度学习编码实战上 86
3.4.1 实现仿射传播 88
3.4.2 实现ReLU传播 91
3.4.3 组合单层神经元 93
3.4.4 实现浅层神经网络 96
3.4.5 实现深层全连接网络 101
3.5 参考代码 109
3.6 参考文献 113
第4章 深度学习正则化 115
4.1 参数范数惩罚 116
4.1.1 L2参数正则化 118
4.1.2 L1正则化 119
4.2 参数绑定与参数共享 120
4.3 噪声注入与数据扩充 120
4.4 稀疏表征 122
4.5 早停 123
4.6 Dropout 126
4.6.1 个体与集成 126
4.6.2 Dropout 127
4.7 深度学习编码实战中 129
4.7.1 Dropout传播 131
4.7.2 组合Dropout传播层 134
4.7.3 Dropout神经网络 136
4.7.4 解耦训练器trainer 138
4.7.5 解耦更新器updater 143
4.7.6 正则化实验 145
4.8 参考代码 148
4.9 参考文献 150
第5章 深度学习优化 152
5.1 神经网络优化困难 153
5.1.1 局部最优 153
5.1.2 鞍点 154
5.1.3 梯度悬崖 154
5.1.4 梯度消失或梯度爆炸 155
5.1.5 梯度不精确 156
5.1.6 优化理论的局限性 156
5.2 随机梯度下降 156
5.3 动量学习法 158
5.4 AdaGrad和RMSProp 159
5.5 Adam 160
5.6 参数初始化策略 161
5.7 批量归一化 163
5.7.1 BN算法详解 163
5.7.2 BN传播详解 165
5.8 深度学习编码实战下 166
5.8.1 Momentum 167
5.8.2 RMSProp 171
5.8.3 Adam 172
5.8.4 更新规则比较 174
5.8.5 BN前向传播 176
5.8.6 BN反向传播 180
5.8.7 使用BN的全连接网络 182
5.8.8 BN算法与权重标准差比较 188
5.9 参考代码 191
5.10 参考文献 195
第6章 卷积神经网络 196
6.1 卷积操作 197
6.2 卷积的意义 198
6.2.1 稀疏连接 199
6.2.2 参数共享 200
6.3 池化操作 201
6.4 设计卷积神经网络 204
6.4.1 跨步卷积 204
6.4.2 零填充 205
6.4.3 非共享卷积 206
6.4.4 平铺卷积 207
6.5 卷积网络编码练习 208
6.5.1 卷积前向传播 209
6.5.2 卷积反向传播 212
6.5.3 最大池化前向传播 215
6.5.4 最大池化反向传播 218
6.5.5 向量化执行 220
6.5.6 组合完整卷积层 223
6.5.7 浅层卷积网络 224
6.5.8 空间批量归一化 229
6.6 参考代码 233
6.7 参考文献 237
第7章 循环神经网络 238
7.1 循环神经网络 239
7.1.1 循环神经元展开 239
7.1.2 循环网络训练 240
7.2 循环神经网络设计 242
7.2.1 双向循环网络结构 242
7.2.2 编码-解码网络结构 243
7.2.3 深度循环网络结构 244
7.3 门控循环神经网络 245
7.3.1 LSTM 246
7.3.2 门控循环单元 249
7.4 RNN编程练习 250
7.4.1 RNN单步传播 252
7.4.2 RNN时序传播 255
7.4.3 词嵌入 258
7.4.4 RNN输出层 261
7.4.5 时序Softmax损失 262
7.4.6 RNN图片说明任务 264
7.5 LSTM编程练习 269
7.5.1 LSTM单步传播 269
7.5.2 LSTM时序传播 273
7.5.3 LSTM实现图片说明任务 276
7.6 参考代码 278
7.6.1 RNN参考代码 278
7.6.2 LSTM参考代码 282
7.7 参考文献 285
第8章 TensorFlow快速入门 287
8.1 TensorFlow介绍 288
8.2 TensorFlow 1.0安装指南 289
8.2.1 双版本切换Anaconda 289
8.2.2 安装CUDA 8.0 291
8.2.3 安装cuDNN 292
8.2.4 安装TensorFlow 293
8.2.5 验证安装 294
8.3 TensorFlow基础 295
8.3.1 Tensor 295
8.3.2 TensorFlow核心API教程 296
8.3.3 tf.train API 299
8.3.4 tf.contrib.learn 301
8.4 TensorFlow构造CNN 305
8.4.1 构建Softmax模型 305
8.4.2 使用TensorFlow训练模型 307
8.4.3 使用TensorFlow评估模型 308
8.4.4 使用TensorFlow构建卷积神经网络 308
8.5 TensorBoard快速入门 311
8.5.1 TensorBoard可视化学习 312
8.5.2 计算图可视化 316
前言/序言
前 言
随着谷歌的AlphaGo,IBM的watson以及百度的智能机器人百小度的问世,人工智能成为了大众热烈讨论的焦点,而作为这些智能产品的核心技术,深度学习受到了学界与产业界的广泛关注。深度学习凭借其优良的性能,被广泛应用于计算机视觉、图像分析、语音识别和自然语言处理等诸多领域中。但深度学习的算法与模型较为复杂,对于初学者来说较难理解与掌握,需要其有一定的理论与实践应用基础。本书作者通过把理论知识与大量实践例子相结合,运用易懂与诙谐的语言为初学者呈现了一部指导深度学习实战的首选之作。本书的面向对象为计算机及相关专业的本科生、研究生,以及相关领域的初级研究人员。与同类著作不同的是本书更强调读者的亲身实践,分为模块设计与代码实践两部分,当读者学习完模块设计部分的理论知识后,还可以在实践代码的关键位置添加自己的代码,并测试实现的深度学习模型的每一个关键环节,以此进一步理解与掌握所学的算法与模型。
本书共分为8章,第1章为深度学习的发展介绍,其他7章对深度学习的理论知识和应用进行了深入浅出的讲解,分别为第2章 机器学习快速入门,第3章 前馈神经网络,第4章 深度学习正则化,第5章 深度学习优化,第6章 卷积神经网络,第7章 循环神经网络,第8章 TensorFlow快速入门。每一个章节在其结尾部分都会提出深度学习算法与模型的实践学习,按照作者的设计步骤,读者可以逐步完成代码的编写,并对其进行测试,最终完成整个算法与模型代码的实践。本书不同于传统理论介绍+代码演示书籍之处在于,理论知识与实践学习部分可以分开阅读,其每一章节的实践学习部分更加强调与读者的互动性。本书还精心设计了许多子模块,给予大量的编程提示,并引导读者通过自学的方式完成各个子模块的实现,进而强化读者对不同模块编码实现的学习与理解,在每章末尾都会给出相应的参考代码。
本书的作者特别感谢相关科研项目与人才计划的支持,其中包括:国家自然科学基金项目(61402397,61663046),云南省科技厅应用基础研究计划面上项目(2016FB104),云南省软件工程重点实验室开放基金面上项目(2015SE201),云南大学数据驱动的软件工程省科技创新团队(2017HC012),云南省中青年学术和技术带头人后备人才计划(2017HB005),云南省百名海外高层次人才引进计划。
深度学习相关研究领域的发展日新月异,本书作者自认才疏学浅,只略知其中一二,书中内容的设计与撰写是作者对深度学习的个人认识与理解,由于水平有限,如有不妥之处请广大读者不吝赐教。
本书免费提供了云盘下载文件,内容包括书中所有综合案例的素材文件,下载地址为:https://pan.baidu.com/s/1nvacrYL(注意区分英文字母大小写),如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题设置为“深度学习实战”。
杨云
2017年8月29日于云南大学
探索人工智能的边界:一本关于计算机视觉的深度解析 本书将带领读者踏上一段激动人心的旅程,深入探索人工智能领域中最具活力和前景的分支之一——计算机视觉。我们不仅仅停留在理论的表述,而是着重于实际应用与技术实现,旨在为有志于投身计算机视觉领域的开发者、研究者以及爱好者提供一套全面而深入的学习指南。 为何选择计算机视觉? 在当今这个数据爆炸的时代,图像和视频作为信息传递的重要载体,其价值日益凸显。计算机视觉,作为赋予机器“看”的能力的学科,正以前所未有的速度渗透到我们生活的方方面面:从智能手机的面部解锁、自动驾驶汽车的障碍物识别,到医疗影像的辅助诊断、安防监控的异常检测,再到虚拟现实、增强现实的场景理解,计算机视觉的应用场景几乎无处不在,并且仍在不断拓展。理解并掌握计算机视觉的核心技术,意味着能够站在技术的最前沿,参与到改变世界的创新浪潮中。 本书将带你学到什么? 本书的内容编排严谨,逻辑清晰,从基础概念出发,逐步深入到前沿技术。我们将首先为你构建坚实的理论基础,然后通过大量的实例和代码演示,让你掌握将理论转化为实践的能力。 第一部分:计算机视觉基础与传统方法 在深入到复杂的深度学习模型之前,了解计算机视觉的发展历程和传统的技术方法是至关重要的。这一部分将为你打下坚实的基础: 图像的数学表示与处理: 我们将探讨图像是如何在计算机中被表示的(像素、灰度、颜色空间),以及常见的图像预处理技术,如滤波(高斯滤波、中值滤波)、边缘检测(Sobel、Canny)、直方图均衡化等。这些基础操作是后续更复杂分析的前提。 特征提取与描述: 在深度学习兴起之前,手动设计特征是计算机视觉的支柱。我们将介绍SIFT、SURF、ORB等经典的局部特征提取器,以及HOG等全局特征描述符,并讲解它们在图像匹配、物体识别等任务中的应用。 图像分割与识别基础: 学习图像分割的基本原理,包括阈值分割、区域生长等方法。同时,介绍传统分类器(如SVM、Adaboost)在图像识别中的应用,让你理解机器学习在早期计算机视觉中的作用。 相机模型与几何: 理解相机的成像原理、相机标定、以及立体视觉中的多视图几何。这些内容对于理解三维重建、深度估计等高级应用至关重要。 第二部分:深度学习在计算机视觉中的革命 深度学习的出现彻底改变了计算机视觉的面貌。本书将详细解析深度学习的核心模型及其在计算机视觉领域的突破性进展: 卷积神经网络(CNN)的原理与演进: 核心概念: 深入剖析卷积层、池化层、激活函数(ReLU、Sigmoid、Tanh)、全连接层的构成与作用。理解它们如何有效地从原始图像中提取层次化的特征。 经典网络结构: 从LeNet、AlexNet开始,回顾了CNN发展历程中的里程碑式网络。详细讲解VGG、GoogLeNet(Inception)、ResNet等主流网络架构的设计理念、创新点以及它们如何克服梯度消失、提升性能。 网络优化与正则化: 学习Dropout、Batch Normalization等技术如何有效防止过拟合,提升模型的泛化能力。 目标检测: 两阶段检测器: 详细讲解R-CNN系列(R-CNN, Fast R-CNN, Faster R-CNN)的工作原理,包括区域提议网络(RPN)的引入如何大幅提升检测效率。 单阶段检测器: 深入分析YOLO(You Only Look Once)系列和SSD(Single Shot MultiBox Detector)的设计思想,理解它们如何实现端到端的实时目标检测。 Anchor Boxes与NMS: 掌握Anchor Boxes的设置与解码,以及非极大值抑制(NMS)在去除冗余检测框中的关键作用。 图像分割: 语义分割: 学习全卷积网络(FCN)的概念,以及U-Net、DeepLab等网络在像素级分类中的出色表现。理解编码器-解码器结构的原理。 实例分割: 探索Mask R-CNN等模型如何结合目标检测与语义分割,实现对图像中每个实例的精细分割。 人脸识别与检测: 人脸检测算法: 介绍MTCNN、HOG+SVM等经典人脸检测方法,以及基于深度学习的检测器。 人脸识别技术: 讲解人脸特征提取(如ArcFace, CosFace, FaceNet),以及如何利用这些特征进行人脸比对与身份识别。 图像生成: 生成对抗网络(GAN): 深入理解GAN的生成器和判别器的工作机制,以及DCGAN、StyleGAN等变体的创新。学习如何利用GAN生成逼真图像、进行风格迁移等。 变分自编码器(VAE): 讲解VAE的潜在空间表示与重构过程,理解其在数据生成和特征学习中的作用。 Transformer在视觉领域的应用: Vision Transformer (ViT): 介绍如何将Transformer架构应用于图像任务,理解其在处理长距离依赖方面的优势。 Swin Transformer: 学习Swin Transformer的滑动窗口机制如何解决ViT的计算复杂度问题,并使其更适用于密集预测任务。 第三部分:实战项目与应用进阶 理论知识的学习最终需要通过实践来巩固和深化。本书将提供一系列精心设计的实战项目,让你亲手构建和部署计算机视觉应用: 从零开始构建一个简单的图像分类器: 使用PyTorch或TensorFlow/Keras,从数据加载、模型定义到训练和评估,一步步完成一个完整的图像分类流程。 人脸检测与识别系统的实现: 利用现有的深度学习库,构建一个可以实时检测人脸、并进行身份识别的应用程序。 自动化物体检测应用: 开发一个能够自动识别视频流中特定物体的系统,例如安防监控中的入侵检测或工业生产线中的缺陷检测。 图像风格迁移的实践: 利用GAN或Neural Style Transfer技术,实现将一张图片的风格应用到另一张图片上。 数据增强技术详解与应用: 学习各种数据增强技术(旋转、翻转、裁剪、颜色抖动等)如何扩充数据集、提升模型鲁棒性。 本书的目标读者: 计算机科学、软件工程等相关专业的学生: 为你在学习人工智能课程时提供更深入的实践指导。 有一定编程基础(Python优先)的开发者: 想要将计算机视觉技术融入到你的应用程序或产品中。 希望转行或深入研究人工智能的工程师: 为你提供一条清晰的学习路径,掌握核心的计算机视觉技术。 对人工智能和机器学习充满好奇的研究者和爱好者: 循序渐进地引导你理解和掌握前沿技术。 本书的特色: 注重实战: 大量代码示例,让你边学边练。 由浅入深: 从基础理论到前沿技术,循序渐进,零基础也能上手。 原理透彻: 深入解析算法背后的数学原理和设计思想。 紧跟前沿: 涵盖了计算机视觉领域的最新技术和发展趋势。 配套资源: 提供完善的代码仓库和学习资料,助你高效学习。 通过本书的学习,你将不仅能理解计算机视觉的强大之处,更能掌握构建智能视觉系统的核心能力,为开启人工智能领域的新篇章做好充分准备。让我们一起,用代码点亮机器的“眼睛”,探索无限可能!
我最近入手了《深度学习实战》这本书,虽然还在学习的初期阶段,但整体感觉它是一本非常“有料”的书。我一直对人工智能技术的发展保持着高度的关注,特别是深度学习在各个领域的突破性进展,让我渴望能够更深入地理解其内在逻辑。 这本书的目录结构让我眼前一亮,它似乎能够循序渐进地引导读者走进深度学习的世界。我尤其期待书中对于神经网络基本原理的讲解,包括感知机的模型、多层感知机的构建,以及反向传播算法的详细推导。我希望能够通过这本书,彻底理解神经网络是如何进行学习和优化的。 在实际应用方面,我非常关注书中关于计算机视觉和自然语言处理等经典领域的深度学习解决方案。例如,我希望能了解卷积神经网络(CNN)是如何被应用于图像识别任务的,以及循环神经网络(RNN)及其变种(如LSTM、GRU)在处理文本数据时的优势。如果书中能够提供一些实际案例和代码实现,那将大大提升我的学习效率。 我对书中可能包含的一些模型优化和调参技巧也非常感兴趣。在深度学习的实践过程中,如何有效地训练模型、避免过拟合,以及如何选择合适的超参数,往往是决定模型性能的关键。我希望这本书能够提供一些实用的建议和经验,帮助我少走弯路。 总而言之,《深度学习实战》这本书在我看来,是一本内容丰富、理论与实践兼顾的优秀教材。它为我提供了一个系统学习深度学习的框架,并有望帮助我掌握将深度学习技术应用于实际问题的能力。我期待着通过这本书,能够更好地理解和掌握深度学习这一前沿技术。