TensorFlow深度学习应用实践

http://product.dangdang.com/25207334.html

本书总的指导思想是在掌握深度学习的基本知识和特性的基础上,培养使用TensorFlow进行实际编程以解决图像处理相关问题的能力。全书力求深入浅出,通过通俗易懂的语言和详细程序分析,介绍TensorFlow的基本用法、高级模型设计对应的程序编写。

本书22章,内容包括Python类库的安装和使用TensorFlow基本数据结构和使用、TensorFlow数据集的创建与读取、人工神经网络反馈神经网络、全卷积神经网络的理论基础深度学习模型的创建、模型特性、算法、ResNet、Slim、GAN等。本书强调理论联系实际,重点介绍TensorFlow编程解决图像识别的应用,提供了大量数据并以代码的形式实现了深度学习模型,以供读者参考。

本书既可作为学习人工神经网络、深度学习、TensorFlow程序设计以及图像处理等相关内容的程序设计人员培训和自学用书,也可作为高等院校和培训机构相关专业的教材。

 

我们处于一个变革的时代

给定一个物体,让一个3岁的小孩描述这个物体是什么似乎是一件非常简单的事情。然而同样的东西放在计算机面前,让它描述自己看到了什么,这不久以前还是一件不可能的事。

让计算机学会“看”东西这是一个专门的学科——计算机视觉所正在做的工作。借助于人工神经网络和深度学习的发展,近年来计算机视觉研究上取得了重大突破通过模拟生物视觉所构建的卷积神经网络模型在图像识别和分类上取得了非常好的效果

而今,借助于深度学习的发展,使用人工智能去处理常规劳动理解语音语义、帮助医学诊断和支持基础科研工作,这些曾经是梦想的东西似乎都在眼前。

写作本书的原因

TensorFlow作为最新应用范围最为广泛的深度学习开源框架自然引起了广泛的关注吸引大量程序设计和开发人员进行相关内容的开发与学习。掌握TensorFlow程序设计基本技能的程序设计人员成为当前各组织和单位热切寻求的热门人才。他们的主要工作就是利用获得的数据集设计不同的人工神经模型,利用人工神经网络强大的学习能力提取挖掘数据集中包含的潜在信息,编写相应的TensorFlow程序数据进行处理对其价值进行进一步开发,为商业机会的获取、管理模式创新、决策的制定提供相应的支持。随着越来越多的组织、单位行业对深度学习应用的重视,高层次的TensorFlow程序设计人员必将成为就业市场紧俏人才。

目前来说,TensorFlow虽然被谷歌开源公布只有不到两年时间但是其工业商业以及科学研究上的应用量很大,使之成为时下最热门的深度学习框架由于国内翻译和知识传播的滞后性等多方面的原因国内对这方面的介绍较为欠缺,缺少最新 TensorFlow框架使用和设计的相关内容,从而造成了知识传播的延学习是为了掌握新知识获得新能力,不应是学习已经摒弃的内容。

其次,其他应用框架不同TensorFlow并不是一个简单的编程框架,深度学习也不是一个简简单单名词是需要相关研究人员对隐藏在其代码背后的理论进行学习掌握一定的数学知识和理论基础的笔者具有长期一线理科理论教学基础,可以将其中理论知识以非常浅显易懂的语言进行介绍和描述,这点是市面上某些相关书籍无法比拟的。

本书是为了满足广大TensorFlow程序设计和开发人员学习最新的TensorFlow程序代码要求而出版的。本书涉及的深度学习的结构与编程代码做了循序渐进的介绍与说明解决实际图像处理为依托,从理论开始介绍TensorFlow程序设计模式,多角度多方面其中的原理和实现提供分析,结合实际案例编写应用程序设计,使读者能够在开发者的层面掌握TensorFlow程序设计方法技巧,为开发更强大的图像处理应用打下扎实的基础。

本书的优势

本书在方向上偏重于使用卷积神经网络以及其相关变化的模型TensorFlow框架上进行图像特征提取、图像识别以及具体应用市面上鲜有涉及

本书并非枯燥的理论讲解,而是大量最新文献的归纳总结这点本书其他编程书籍有本质区别。本书的例子都是来自于现实世界中对图像分辨和特征竞赛优胜模型,通过介绍这些例子可以使读者更一步了解和掌握内在的算法本质

本书作者有长期研究生和本科教学经验,通过通俗易懂的语言对全部内容进行讲解,深入浅出介绍反馈神经网络和卷积神经网络理论体系的全部知识点,并在程序编写时使用官方推荐的TensorFlow最新框架进行程序设计,帮助读者更好使用最新的模型框架,理解和掌握TensorFlow程序设计的精妙之处。

作者认为,掌握和使用深度学习人才应在掌握基知识和理论的基础上,重视实际应用程序开发能力和解决问题能力的培养因此本书结合作者在实际工作中遇到的大量实际案例进行分析抽象化核心模型并给出具体解决方案,全部程序例题均提供了相应代码,以读者学习。

本书的内容

本书共分为22章,所有代码均采用Python语言编写,这也是TensorFlow框架推荐使用语言。

1介绍深度学习基本内容,初步介绍深度学习应用计算机视觉发展方向,介绍使用深度学习解决计算机视觉问题的应用前景旨在说明使用深度学习和人工智能实现计算机视觉是未来发展方向,也是必然趋势

2介绍Python的安装和最常用的类库Python语言是易用性非常强的语言,可以很方便将公式和愿景以代码的形式表达出来,而无学习过多的编程知识Python专用类库threading并不常见,只是要为后文的数据读取和TensorFlow专用格式的生成打下基础。

3章全面介绍机器学习的基本分类算法和理论基础,这里介绍了不同的算法例如回归算法和决策树算法具体实现和应用。这些是深度学习的基础理论部分,通过这些向读者透彻而准确展示深度学习的结构与应用,更进一步掌握深度学习计算机视觉中的应用打下扎实的基础。

4章主要介绍Python语言的使用。通过介绍和实现不同的Python类库,帮助读者强化Python的编程能力学习相应类库这些都是在后文中反复使用的内容。同时借用掌握的知识学习数据可视化展示技能。项技能在数据分析中虽是基本技能,非常重要的作用。

5~6章是对OpenCV类库使用方法的介绍。本书图像处理为重点,对图像数据的读取、编辑以及加工是本书的重中之重。OpenCVPython中专门用以对图像处理的类库,通过基础讲解和进阶介绍使读者掌握这个重要类库的使用。学会对图像的裁剪变换和平移的代码编写。5以例子的形式对卷积核的基础内容做了一个介绍,Python语言实现了卷积核的功能。卷积核是本书非常重要的基础部分,也是图像处理非常重要的组成部分,通过编写相应的程序去实现卷积核对图像的处理、掌握和理解卷积神经网络很大帮助。

7~8TensorFlow的入门基础通过一个娱乐性质的网站向读者展示TensorFlow的基本应用,用图形图像的方式演示神经网络进行类别分类的拟合过程,娱乐同时了解背后的内容。

第9章是本书的一个重点也是神经网络的基础内容本章的反馈算法解决神经网络计算量过大的里程碑算法。笔者通过详细认真的讲解,使用通俗易懂的语言这个算法进行介绍通过独立编写代码的形式读者实现这个神经网络中最重要的算法内容。本章的内容看起来不多,但是非常重要

第10章对TensorFlow的数据输入输出做了详细的介绍。从读取CSV文件开始,到教会读者制作专用的TensorFlow数据格式TFRecord,目前市面书籍鲜有涉及使用TensorFlow框架进行程序编写、数据准备和规范化是重中之重,因此本章也是较为重要的一个章节。

11~12应用卷积神经网络在TensorFlow框架上进行学习的一个基础教程,经过前面章节的准备和介绍采用基本理论——卷积神经网络进行手写体的辨识是深度学习最基本的技能也是非常重要的一个学习基础。并且在程序编写的过程中,作者向读者展示了参数调整对模型测试结果的重要作用这是目前市面上相关书籍没有涉及到的内容,非常重要

13~14是卷积神经网络算法的介绍和应用。在这两章内容中,笔者详细介绍卷积神经网络的应用,特别是在图像识别中的应用,由单纯的手写体数值的识别发展到对显示物体的识别。借助图像识别比赛的数据集,使用在比赛中得奖的卷积神经网络模型,使读者掌握卷积神经网络的变种。卷积神经网络的理论基础就是卷积的正向和反向过程,一般正向过程较好理解和学习,但是对于反向运算,基本上没有涉及,有的话也仅仅公式的复制和摘抄本书在14详细地介绍卷积神经网络反向过程的运算和计算方法,通过大量例子的表述,第一次非常详细地描述了卷积神经网络的反向运算这是相关书籍欠缺的内容

15通过一个完整的例子演示使用卷积神经网络进行图像识别的流程。例子来自于ImageNet图像识别竞赛所采用的模型也是比赛中获得准确率最高的模型通过项目每一步详细分析,手把手教会读者如何使用卷积神经网络进行图像识别。

16章介绍VGGNet的组成结构,着重介绍VGGNet的网络调参以及在其后执行Finetuning的能力。本章将第15的例子复用VGG16实现,给读者提供一个以不同的视角和不同的模型方法解决问题的思路。

17针对目前深度学习就业者给出的一些面试题的答案,这些问题可以帮助招聘者分析谁是水平的面试,也能帮助就业者完善自己的技术概念和知识,找准自己的定位,为将来升职加薪铺平道路。

18章介绍深度学习网络ResNet模型,它在网络中使用大量残差模块作为网络的基本组成部分,主要作用是使得网络随着深度的变化增加,而不会产生权重衰减和梯度衰减或者消失等这些问题。除ResNet模型,本章还介绍了新兴的卷积神经模型,包括SqueezeNet和Xception。

19~20章开始进入TensorFlow学习的高级阶段,重点介绍的是一个API——Slim,它一个用于定义、训练和评估较为复杂模型的轻量级开发类库。这两章不光介绍了它的使用方法,还通过制作了一个多层感知机MLP、一个卷积神经网络CNN最后还使用Slim预训练模型进行Finetuning。

第21章介绍全卷积神经网络图像分割,先讲解分割的理论基础和实现方法,然后给出了全卷积神经网络进行图像分割的分步流程与编程基础,最后给出了使用VGG16全卷积网络进行图像分割的实战。

第22章讲解的GAN——对抗生成网络,本章理论虽然看似枯燥,但笔者一个“生成器”和一个“辨别器”共同在一个网络中不停地进行“对抗”来比喻,降低了阅读的难度最终通过使用GAN生成手写体数字的案例让读者真正学会GAN的应用。

除此之外,全书对于目前图像识别流行和取得最好成绩的深度学习模型做了介绍,这些都是目前的深度学习的热点和研究重点。

本书的特点

l 本书不是纯粹的理论知识介绍,也不是高深技术研讨,完全是从实践应用出发,用最简单、典型的示例引申出核心知识,最后还指出了通往“高精尖”进一步深入学习的道路。

l 本书没有深入介绍某一个知识块,而是全面介绍TensorFlow涉及的图像处理的基本结构上层程序设计,系统综合地讲解深度学习的全貌,使读者在学习的过程中把握好方向。

l 本书在写作上浅显易懂,没有深奥的数学知识,而是采用较为形象的形式,使用大量图像例描述应用的理论知识,让读者轻松愉悦的阅读下掌握相关内容。

l 本书旨在引导读者进行更多技术上的创新,每章都会用示例描述的形式帮助读者更好理解本章的学习内容

l 本书代码遵循重构原理,避免代码污染,真心希望读者能写出优秀、简洁、可维护的代码。

本书适合人群

本书配套示例源代码下载地址(注意数字与字母大小写)如下:

https://pan.baidu.com/s/1jHFg2uq

如果下载有问题或者对本书有任何疑问,请联系[email protected]邮件主题为TensorFlow”。

本书适合人群

本书既适合学习人工神经网络深度学习以及TensorFlow程序设计相关内容的程序设计人员阅读也可以作为高等院校相关专业的教材建议在学习本书内容的过程中,理论联系实际,独立进行一些代码的编写采取开放式的验方法,即读者自行准备实验数据和实验环境,解决实际问题,最终达到理论联系实际的目的

本书作者

本书作者现任计算机专业教师,担负数据挖掘、Java程序设计、数据结构等多项本科及研究生课程,研究方向为数据仓库与数据挖掘、人工智能、机器学习,在研和参研多项科研项目。在写作过程中得到了家人和朋友的大力支持,在此对他们一并表示感谢


王晓华

201711月


 

你可能感兴趣的:(TensorFlow深度学习应用实践)