计算机视觉之深度学习:使用TensorFlow和Keras训练高级神经网络(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-10 03:53:35

点击下载

作者:(英)拉贾林加帕·尚穆加马尼

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

计算机视觉之深度学习:使用TensorFlow和Keras训练高级神经网络

计算机视觉之深度学习:使用TensorFlow和Keras训练高级神经网络试读:

前言

读者对象

本书内容

如何充分利用本书

下载示例代码文件

排版约定

保持联系

评论

电子书

第 1 章 入门

1.1 理解深度学习1.1.1 感知机1.1.2 激活函数1.1.3 人工神经网络1.1.4 训练神经网络1.1.5 尝试TensorFlow游乐场1.1.6 卷积神经网络1.1.7 循环神经网络1.1.8 长短期记忆网络

1.2 计算机视觉深度学习1.2.1 分类1.2.2 检测或定位与分割1.2.3 相似性学习1.2.4 图像题注1.2.5 生成模型1.2.6 视频分析

1.3 建立开发环境1.3.1 硬件和操作系统1.3.2 安装软件包

1.4 小结第 2 章 图像分类

2.1 在TensorFlow中训练MNIST模型2.1.1 MNIST数据集2.1.2 加载MNIST数据2.1.3 建立一个感知机2.1.4 构建多层卷积网络

2.2 在Keras中训练MNIST模型2.2.1 准备数据集2.2.2 构建模型

2.3 其他流行的图像测试数据集2.3.1 CIFAR数据集2.3.2 Fashion-MNIST数据集2.3.3 ImageNet数据集和竞赛

2.4 更大的深度学习模型2.4.1 AlexNet 模型2.4.2 VGG-16模型2.4.3 谷歌Inception-V3模型2.4.4 微软ResNet-50模型2.4.5 SqueezeNet模型2.4.6 空间变换网络模型2.4.7 DenseNet模型

2.5 训练猫与狗的模型2.5.1 准备数据2.5.2 使用简单CNN进行基准测试2.5.3 增强数据集2.5.4 迁移学习或微调模型2.5.5 在深度学习中微调一些层

2.6 开发现实世界的应用2.6.1 选择正确的模型2.6.2 处理欠拟合和过拟合场景2.6.3 从面部检测性别和年龄2.6.4 微调服装模型2.6.5 品牌安全

2.7 小结第 3 章 图像检索

3.1 理解视觉特征3.1.1 深度学习模型的可视化激活3.1.2 嵌入可视化3.1.3 DeepDream3.1.4 对抗样本

3.2 模型推断3.2.1 导出模型3.2.2 提供训练好的模型

3.3 基于内容的图像检索3.3.1 构建检索流水线3.3.2 有效的检索3.3.3 使用自编码器去噪

3.4 小结第 4 章 目标检测

4.1 检测图像中的目标

4.2 探索数据集4.2.1 ImageNet数据集4.2.2 PASCAL VOC挑战4.2.3 COCO目标检测挑战4.2.4 使用指标评估数据集

4.3 目标定位算法4.3.1 使用滑动窗口定位目标4.3.2 将定位看作回归问题

4.4 检测目标4.4.1 R-CNN(区域卷积神经网络)4.4.2 Fast R-CNN4.4.3 Faster R-CNN4.4.4 SSD(单射多框探测器)

4.5 目标检测API4.5.1 安装和设置4.5.2 预训练模型4.5.3 重新训练目标检测模型4.5.4 为自动驾驶汽车训练行人检测

4.6 YOLO目标检测算法

4.7 小结第 5 章 语义分割

5.1 预测像素5.1.1 诊断医学图像5.1.2 通过卫星图像了解地球5.1.3 提供机器人视觉

5.2 数据集

5.3 语义分割算法5.3.1 全卷积网络5.3.2 SegNet架构5.3.3 膨胀卷积5.3.4 DeepLab5.3.5 RefiNet5.3.6 PSPnet5.3.7 大卷积核的重要性5.3.8 DeepLab v3

5.4 超神经分割

5.5 分割卫星图像为分割建模FCN

5.6 分割实例

5.7 小结第 6 章 相似性学习

6.1 相似性学习算法6.1.1 孪生网络6.1.2 FaceNet模型6.1.3 DeepNet模型6.1.4 DeepRank 模型6.1.5 视觉推荐系统

6.2 人脸分析6.2.1 人脸检测6.2.2 人脸特征点和属性6.2.3 人脸识别6.2.4 人脸聚类

6.3 小结第 7 章 图像题注

7.1 了解问题和数据集

7.2 理解图像题注的自然语言处理7.2.1 用向量形式表达词7.2.2 将词转换为向量7.2.3 训练一个嵌入

7.3 图像题注和相关问题的方法7.3.1 使用条件随机场来链接图像和文本7.3.2 在CNN特征上使用RNN生成题注7.3.3 使用图像排序创建题注7.3.4 从图像检索题注与从题注检索图像7.3.5 密集题注7.3.6 使用RNN生成题注7.3.7 使用多模态度量空间7.3.8 使用注意网络生成题注7.3.9 知道什么时候查看

7.4 实现基于注意力的图像题注

7.5 小结第 8 章 生成模型

8.1 生成模型的应用8.1.1 艺术风格迁移8.1.2 预测视频中的下一帧8.1.3 图像的超分辨率8.1.4 交互式图像生成8.1.5 图像到图像的翻译8.1.6 文本到图像的生成8.1.7 图像修复8.1.8 图像混合8.1.9 转换属性8.1.10 创建训练数据8.1.11 创建新的动画角色8.1.12 照片3D模型

8.2 神经艺术风格迁移8.2.1 内容损失8.2.2 使用Gram矩阵的风格损失8.2.3 风格迁移

8.3 生成对抗网络8.3.1 vanilla GAN8.3.2 条件GAN8.3.3 对抗损失8.3.4 图像翻译8.3.5 InfoGAN8.3.6 GAN的缺点

8.4 视觉对话模型VDM算法

8.5 小结第 9 章 视频分类

9.1 了解视频和视频分类9.1.1 探索视频分类数据集9.1.2 将视频分割成帧9.1.3 视频分类方法

9.2 将基于图像的方法扩展到视频9.2.1 人体姿态回归9.2.2 视频分割9.2.3 视频题注9.2.4 视频生成

9.3 小结第 10 章 部署

10.1 模型的性能10.1.1 量化模型10.1.2 MobileNets

10.2 云部署10.2.1 AWS10.2.2 Google云平台

10.3 在设备中部署模型10.3.1 Jetson TX210.3.2 Android10.3.3 iPhone

10.4 小结版权声明Copyright © 2018 Packt Publishing. First published in the English language under the title Deep Learning for Computer Vision.Simplified Chinese-language edition copyright © 2020 by Posts & Telecom Press. All rights reserved.本书中文简体字版由Packt Publishing授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。版权所有,侵权必究。

译者序

计算机视觉是一门研究如何使机器“看”的科学。它涉及如何使计算机从数字图像或视频中获得高层次的理解,并寻求自动化人类视觉系统可以完成的任务。深度学习是机器学习研究中的一个新领域,它通过多层神经网络模仿人脑的机制来分析和解释数据。深度学习不仅推动了计算机视觉领域的发展,其自身也在解决计算机视觉问题的过程中不断进步。结合深度学习,计算机视觉的许多新应用应运而生,并且正在成为我们日常生活的一部分,包括人脸识别、自动驾驶汽车中的机器视觉等。

本书系统概述了基于深度学习的计算机视觉的相关理论和技术现状,涵盖了计算机视觉深度学习的主要问题,包括图像分类、图像检索、目标检测、语义分割、相似性学习、图像题注、生成模型、视频分类、平台部署。本书针对每个问题介绍了常见的应用场景、数据集、主要技术和TensorFlow框架下的编程实例。通过阅读本书和代码实践,读者可以比较全面地了解基于深度学习的计算机视觉的基础知识和领先技术。

本书的译文力求忠实准确地表达原文。相关术语的翻译参考了业内的一般用语。由于计算机视觉深度学习领域的发展日新月异,新技术和新术语也层出不穷。对新术语或读者可能较陌生的术语,译文中给出了相应的英文术语对照。另外,书中诸如“当前最好的技术”等说法,会随着新技术的出现而发生变化。读者应持续关注最新的研究进展。

本书翻译过程中,图灵公司的杨琳编辑审阅了全部书稿,提出了许多宝贵意见,对本书质量的提高有很大帮助,在此表示衷心的感谢。

由于译者水平所限,书中难免有错误和不当之处,欢迎专家和读者批评指正。邮件请发至baiyong666ai@qq.com。另外,读者可加入本书的QQ交流群(群号:891515375)。序深度学习正在使人工智能发生革命性的变化。在未来的几十年里,它将彻底改变世界。在深度学习的推动下,人工智能将有望与工业革命相提并论。这让人们对未来充满兴奋,同时也感到恐惧。但实际上,就像工业革命和机械一样,深度学习将提高工业生产能力并显著改善人类生活水平。它不会取代人们的工作,而会创造更多更高水平的工作机会。这就是本书如此重要和及时的原因。本书将介绍基于深度学习的计算机视觉,包括它的功能和众多应用,从而为读者面对未来十年里将呈指数级增长的新兴产业打下基础。拉贾林加帕·尚穆加马尼是一位出色的研究人员。我曾与他在几个计算机视觉项目中合作过。他作为首席工程师设计并交付了一个用于时尚搜索的复杂计算机视觉和深度学习系统,该系统的实际部署取得了巨大成功。他的强项之一是,能够针对复杂问题进行最先进的研究并将其应用于现实世界。正如本书展示的那样,他还可以分解复杂的想法并用简单的术语来解释。拉贾抱负远大,拥有职业道德。在本书中,他对使用深度学习的计算机视觉现状进行了很好的概述,这是许多人望尘莫及的。本书是拉贾的一项伟大成就,我相信读者在未来几年中都会从本书中获得阅读享受并受益匪浅。Stephen Moore博士EmotionReader首席技术官,于新加坡

前言

本书面向想要掌握基于深度学习的计算机视觉技术的读者,帮助他们实现诸多应用。本书将为读者研发基于计算机视觉的产品提供相应的工具和技术。为此,全书采取理论讲解和实例介绍相结合的写作方式。读者对象

本书适合有意探究如何将深度学习应用于计算机视觉问题(如分类、检测、检索、分割、生成、题注和视频分类)的读者,以及希望了解如何在各种限制条件(如较少的数据、不平衡的类别、噪声)下实现较高准确性的读者。本书还适合想知道如何在各种平台(AWS、Google Cloud、Raspberry Pi和手机)上部署经过训练的模型的读者。通过学习本书,读者应该能够针对人物检测、人脸识别、产品搜索、医学图像分割、图像生成、图像题注、视频分类等问题开发相应的代码。本书内容

第1章“入门”,介绍深度学习的基础知识以及相关术语。这一章将指导读者安装必要的软件包,为学习后续章节做准备。

第2章“图像分类”,讨论图像分类问题,即如何将图像作为一个整体打标签。我们将学习图像分类技术,并训练一个用于宠物分类的深度学习模型。此外还会学习提高图像分类准确性的方法,并深入探究各种先进的图像分类架构。

第3章“图像检索”,介绍图像深层特征和图像检索。我们将学习获取模型可视化、视觉特征以及使用TensorFlow Serving进行推断的各种方法,并且使用视觉特征进行产品检索。

第4章“目标检测”,讨论如何检测图像中的目标对象。我们将学习目标检测的各种技术,并将其应用于行人检测。这一章将使用与物体检测相关的TensorFlow API。

第5章“语义分割”,介绍像素级图像分割。我们将学习图像分割技术,并训练一个医学图像分割模型。

第6章“相似性学习”,讲述相似性学习。我们将学习相似性匹配以及如何训练人脸识别模型。这一章将展示一个训练人脸关键点的模型。

第7章“图像题注”,介绍如何为图像生成或选择题注。我们将学习自然语言处理技术以及如何使用这些技术为图像生成题注。

第8章“生成模型”,讨论如何为各种目的生成合成图像。我们将学习什么是生成模型并将其用于图像生成应用程序,如风格迁移、训练数据等。

第9章“视频分类”,介绍面向视频数据的计算机视觉分类技术。我们将了解解决视频问题与图像问题的主要区别以及如何实现视频分类技术。

第10章“部署”,讨论深度学习模型的部署步骤。我们将学习如何部署训练好的模型并针对各种平台优化执行速度。如何充分利用本书

本书中的例子可以在Windows、Ubuntu或Mac上运行,所有安装说明都包含在内。Python和机器学习的基础知识是必需的。读者最好有GPU硬件,但这不是必需的。下载示例代码文件

你可以从www.packtpub.com上的账户下载本书的示例代码文件。如果你在其他地方购买了本书,可以访问www.packtpub.com/support并注册,文件会直接通过电子邮件发送给你。

你可以按照以下步骤下载代码文件:

(1) 登录或注册www.packtpub.com;

(2) 选择SUPPORT选项卡;

(3) 点击Code Downloads & Errata;

(4) 在Search框中输入书名,然后按照屏幕上的说明进行操作。

下载文件后,确保使用最新版本的软件来解压缩:● 适用于Windows的WinRAR/7-Zip● 适用于Mac的Zipeg/iZip/UnRarX● 适用于Linux的7-Zip/PeaZip

本书的代码包也托管在GitHub上:https://github.com/PacktPublishing/Deep-Learning-for-Computer-Vision。我们在https://github.com/PacktPublishing/上还提供了许多其他图书和视频的代码包。去看一下吧!排版约定

本书使用了不同的文本样式来区分不同种类的信息。

正文中的代码采用以下样式:“请注意,图形是使用summary_writer写入的。”

代码块的样式如下:merged_summary_operation = tf.summary.merge_all()train_summary_writer = tf.summary.FileWriter('/tmp/train', session.graph)test_summary_writer = tf.summary.FileWriter('/tmp/test')

命令行输入或输出的样式如下:wget http://www.robots.ox.ac.uk/~vgg/data/pets/data/images.tar.gzwget http://www.robots.ox.ac.uk/~vgg/data/pets/data/annotations.tar.gz

黑体字:表示本书中出现的新术语或重要的词语。屏幕菜单或对话框中的文字按照如下样式显示:“完成后,点击Actions|Instance State|Terminate终止实例。” 警告或重要说明如此图标所示。 提示和技巧如此图标所示。保持联系

我们欢迎读者反馈。

一般反馈:发送电子邮件到feedback@packtpub.com并在消息主题中提及书名。如果你对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com。

勘误:尽管我们已经尽全力确保内容的准确性,但错误在所难免。如果你在本书中发现错误,请将此报告给我们,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择你的图书,单击勘误提交表单链接,然后输入详细信息。1

1本书中文版勘误请到http://ituring.cn/book/2396查看和提交。——编者注

反盗版:如果你在互联网上以任何形式发现我们作品的任何非法复制品,请将网址或网站名称提供给我们,我们将不胜感激。请通过copyright@packtpub.com与我们联系并提供材料的链接。

成为作者:如果你有专业知识并且对撰写图书感兴趣,请访问authors.packtpub.com。评论

请留下评论。既然你阅读并使用了本书,为什么不在购买的网站上留下评论呢?这样,潜在读者就可以看到并根据你的客观意见做出购买决定,我们可以了解你对我们产品的看法,作者也可以看到你的反馈。谢谢!

有关Packt的更多信息,请访问packtpub.com。电子书

扫描如下二维码,即可购买本书中文电子版。第 1 章 入门

计算机视觉是理解或操作图像和视频的科学。计算机视觉有很多应用,包括自动驾驶、工业检验和增强现实。对于计算机视觉,深度学习的使用可以分为多个类别:图像和视频中的分类、检测、分割和生成。在本书中,我们将学习如何为计算机视觉应用训练深度学习模型,并将其部署在多个平台上。TensorFlow将贯穿全书,这是一个流行的用于深度学习的Python库,我们将用它来实现示例。

本章涉及以下主题:● 深度学习的基础知识和词汇;● 深度学习与计算机视觉如何结合;● 建立本书中示例所需的开发环境;● 感受TensorFlow及其强大的工具,如TensorBoard和TensorFlow

Serving。1.1 理解深度学习

计算机视觉是一个有着悠久历史的领域。随着深度学习的出现,计算机视觉已被证明可用于各种应用。深度学习集合了人工神经网络(artificial neural network,ANN)的技术,后者是机器学习的一个分支。人工神经网络以人脑作为模型的基础,其中有一些节点相互连接并相互传递信息。在下面几节中,我们将通过理解常用的基本术语来详细讨论深度学习的工作原理。1.1.1 感知机

人工神经元又称感知机(perceptron),它接收若干输入并执行加权求和以产生输出。感知机的权重在训练过程中基于训练数据确定。图1-1是感知机的图示。

图 1-1

如图1-1所示,多个输入被加权并相加。在这个例子中,总和会经过一个单位阶跃函数用于二分类问题。该感知机只能通过从例子中学习权重来学习简单的功能。学习权重的过程称为训练。感知机的训练可以通过基于梯度的方法完成,1.1.4节将详细解释。感知机的输出可以经过激活函数或转移函数来传递,这将在下一节中解释。1.1.2 激活函数

激活函数(activation function)使神经网络具有非线性。它决定感知机是否应被激发。在训练期间,激活函数在调整梯度方面发挥着重要作用。激活函数能以更高的幅度衰减梯度值,如下面介绍的sigmoid。激活函数这种非线性赋予了深度网络学习复杂函数的能力。除了在0点的修正单元,大多数激活函数都是连续函数和可微函数。连续函数输入中的每个小变化都会引起输出中的小变化。可微函数在定义域中的每个点都存在导数。

为了训练神经网络,激活函数必须是可微的。下面介绍一些激活函数。 如果你尚不明白“连续”和“可微”的意思,也不

用担心。在随后的章节中,这些概念会变得更加清晰。1. sigmoidsigmoid可以被看作平滑的阶跃函数,因此可微。sigmoid可

用于将任何值转换为概率,并可用于二分类问题。如图1-2所示,

sigmoid将输入映射到范围为0~1的值。图 1-2sigmoid函数中,相对于值的变化,值的变化更小,因此将

导致梯度逐渐消失。经过一番学习之后,变化可能非常小。下面

将介绍另一个激活函数tanh。它是sigmoid的缩放版本,可在一

定程度上避免梯度值消失的问题。2. 双曲正切函数双曲正切函数tanh是sigmoid的缩放版本。与sigmoid一样,

它是平滑和可微的。如图1-3所示,tanh将输入映射到范围为-1

~1的值。图 1-3它的梯度比sigmoid更稳定,因此很少引起梯度消失问题。

sigmoid和tanh这两个激活函数都始终激发,使得相应的ANN很

笨重。下面将引入另外一种激活函数,即修正线性单元(rectified linear unit,ReLU),它可以通过有时不激发来避免这

个缺陷。3. 修正线性单元修正线性单元可以让大数值通过,而让一些神经元处于不会

激发的陈旧态。这为神经网络增加了稀疏性这个好的特性。如图

1-4所示,ReLU将输入映射到,即将负的输入映射为0,而正的

输入没有任何改变地输出。图 1-4由于ReLU不是一直处在激发状态,因此可以加快训练速

度。同时,由于该函数很简单,因此计算成本也最低。选择激活

函数非常依赖于应用程序。尽管如此,ReLU面对大多数问题时

都可以良好地工作。在下一节中,我们将通过学习如何将多个感

知机堆叠在一起来学习更复杂的函数。1.1.3 人工神经网络

人工神经网络(ANN)是感知机和激活函数的集合。多个感知机相互连接,从而形成隐藏层或隐藏单元。隐藏单元形成非线性基础,将输入层映射到低维空间中的输出层,这也称为ANN。ANN是从输入到输出的映射。该映射通过用带偏差的输入加权来计算。这些权重值、偏置(bias)值以及架构统称为模型。

权重值和偏置值由训练过程确定。训练开始时,用随机值初始化模型值。误差是通过使用损失函数(loss function)比较观测值与真实值来计算的。根据计算出的损失,在每一步调整权重。当误差不能进一步减小时,就停止训练。训练过程在训练期间学习特征。这些特征比原始图像有更好的表征。图1-5是人工神经网络(多层感知机)的图示。

图 1-5

的几个输入通过感知机组成的隐藏层传递,并进行求和以得到输出。万能逼近定理(universal approximation theorem)表明:这样一个神经网络可以逼近任何函数。隐藏层也可以称为密集层。每一层都可以具有一个上一节中介绍的激活函数。隐藏层和感知机的数量可以根据具体问题来选择。还有一些因素使这种多层感知机适用于多分类问题。多分类问题可尝试区分十多个类别。下面将探讨这些术语。1. 独热编码在分类问题中,独热编码(one-hot encoding)是一种表示

目标变量或类别的方法。目标变量可以由字符串标签转换为独热

编码向量。一个独热向量在目标类别的索引处填充1,在其他地

方填充0。例如,如果目标类别是猫和狗,它们可以分别用[1,0]

和[0,1]表示。对于1000个类别,独热编码向量的大小为1000个

整数,其中除一个数为1外全为0。独热编码不对目标变量的相

似性做假设。下面将解释独热编码与softmax的组合,而这使

ANN多分类成为可能。2. softmaxsoftmax是迫使神经网络输出总和为1的一种方法。因此,

softmax函数的输出值可以视为概率分布的一部分。这在多分类

问题中很有用。softmax是一种特殊的激活函数,其输出总和为1。

它通过将输出除以所有值的总和将输出转换为概率。可以通过计

算softmax概率和独热编码之间的欧几里得距离来解决优化问

题。但用于优化问题的一个更好的代价函数是下面的交叉熵。3. 交叉熵交叉熵(cross-entropy)可用于比较softmax输出和独热编

码输出之间的距离。交叉熵是一种损失函数,其误差必须最小化。

神经网络估计给定数据映射到每个类别的概率。所映射的概率必

须在正确的目标标签上取得最大值。交叉熵是负对数概率的总和。

这里使用对数是为了提高数字值的稳定性。最大化函数值等同于

最小化相同函数的负值。下面将介绍以下避免ANN过拟合的正则

化方法。● 丢弃● 批归一化● L1和L2正则化4. 丢弃丢弃(dropout)是避免过拟合ANN的一种正则化神经网络

的有效方法。如图1-6所示,在训练期间,丢弃层通过随机移除

部分隐藏单元来消减神经网络。图 1-6注意神经元是如何随机训练的。丢弃也是组合多个神经网络

的有效方式。对于每个训练案例,我们随机选择一些隐藏单元,

以便针对每个案例得到不同的结构。这是装袋(bagging)和模

型平均(model averaging)的极端情况。但是,在推断过程中,

不应使用丢弃层,因为没有必要。5. 批归一化批归一化(batch normalization,或称batch-norm)提高了神

经网络训练的稳定性和性能。它对一层的输出进行零均值和标准

差为1的归一化。这可以减少过拟合,并使网络训练更快。它在

训练复杂神经网络中非常有用。6. L1和L2正则化L1惩罚权重的绝对值并使权重趋于为零。L2惩罚权重的平

方值,并在训练期间倾向于使权重更小。这两种正则化方法都假

设权重较小的模型更好。1.1.4 训练神经网络

因为ANN包含若干个参数要优化,所以训练它颇有难度。更新权重的过程称为反向传播(backpropagation)。最小化错误的过程称为优化。下面将详细介绍它们。1. 反向传播反向传播算法通常用于训练ANN。如图1-7所示,该算法根

据计算出的误差向后更新权重。图 1-7计算出误差后,可以使用梯度下降计算权重更新,如下所述。2. 梯度下降梯度下降算法执行多维度优化。目标是达到全局最大值。梯

度下降是许多机器学习模型中流行的优化技术。它用于改进或优

化模型预测。梯度下降的一种实现称为随机梯度下降(stochastic gradient descent,SGD),它在神经网络中变得越来

越流行。优化包括计算误差值并更新权重以实现最小误差。找到

最小值的方向是损失函数梯度的负值。图1-8定性地显示了梯度

下降过程。图 1-8学习速率决定了每个步骤的大小。请注意,具有非线性激活

函数的ANN将具有局部最小值。SGD在实践上可以更好地优化

非凸的代价函数。3. 随机梯度下降除了每次仅用部分样本数据进行训练以外,SGD与梯度下

降相同。相应的参数称为小批次规模(mini-batch size)。理论

上,即使只有一个样本也可以用于训练。在实践中,最好尝试不

同个数的样本数据。在下一节中,我们将讨论卷积神经网络,它

能比标准ANN更好地处理图像数据。1.1.5 尝试TensorFlow游乐场

TensorFlow游乐场(playground)是神经网络的交互式可视化平台。访问playground.tensorflow.org网站,通过更改参数来查看先前提到的术语是如何协同工作的。图1-9是TensorFlow游乐场的截图。

图 1-9

如图1-9所示,可以改变学习速率、激活函数、正则化、隐藏单元和各个层,看看会如何影响训练过程。我们可以花一些时间调整参数,以直观地了解神经网络是怎样处理各种数据的。1.1.6 卷积神经网络

卷积神经网络(convolutional neural network,CNN)类似于前面描述的神经网络。CNN具有权重、偏置项和经过非线性激活函数的输出。一般的神经网络接收输入后,神经元全连接到下一层。同一层内的神经元不共享任何连接。如果对图像使用一般的神经网络,由于神经元数量庞大,它们的规模会非常大,导致过拟合。因为图像规模很大,所以不能将这种神经网络直接用于图像。增加模型的规模需要大量的神经元。可以认为图像是具有高度、宽度和深度尺寸的容积(volume)。深度是图像的通道,即红色、蓝色和绿色。CNN的神经元以容积方式排列以利用容积的优势。每个层都将输入容积转换为输出容积,如图1-10所示。

图 1-10

卷积神经网络通过变换对编码滤波。学习到的滤波器可以检测图像中的特征或模式。层越深,模式越抽象。一些分析表明,这些层具有检测边缘、角落和模式的能力。CNN各层中的可学习参数比上一节中描述的密集层要少。1. 核核(kernel)是用于卷积图像的参数卷积层。卷积操作如图

1-11所示。图 1-11

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载