TensorFlow神经网络编程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-21 02:00:18

点击下载

作者:(印)曼普里特·辛格·古特(Manpreet Singh Ghotra),(印)拉蒂普·杜瓦(Rajdeep Dua)

出版社:机械工业出版社

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

TensorFlow神经网络编程

TensorFlow神经网络编程试读:

前言

如果你意识到到处都有围绕机器学习、人工智能或深度学习等术语的讨论,你可能会知道什么是神经网络。想知道如何利用它们有效地解决复杂的计算问题,或者怎样训练有效的神经网络?本书将教你所有这些以及更多的事情。

首先快速浏览流行的TensorFlow库,并了解如何用它训练不同的神经网络。之后你将深入了解神经网络的基础知识和它背后的数学原理,以及为什么选择TensorFlow训练神经网络。然后,你将实现一个简单的前馈神经网络。接下来,你将掌握使用TensorFlow进行神经网络优化的技术和算法。更进一步,你将学习如何实现一些更复杂的神经网络,如卷积神经网络(CNN)、递归神经网络(RNN)和深度信念网络(DBN)。在学习本书的过程中,为了使你对神经网络编程有深切的理解,将在真实世界的数据集上训练模型。你还将训练生成模型,并学习自编码器的应用。

在本书的最后,你将对如何利用TensorFlow的强大功能来训练各种复杂的神经网络有一个正确的理解,而不会有任何困惑。本书内容

第1章介绍神经网络中基本的代数知识、概率论和优化方法。

第2章介绍感知机、神经元和前馈神经网络的基础知识。你还将学习各种模型学习的技巧,并主要学习称为反向传播的核心学习算法。

第3章介绍对神经网络学习至关重要的优化方法。

第4章详细讨论CNN算法。CNN及其在不同数据类型中的应用也包含在该章中。

第5章详细介绍RNN算法。RNN及其在不同数据类型中的应用也包括在该章中。

第6章介绍生成模型的基础知识以及不同的生成模型。

第7章包括深度信念网络的基础知识、它们与传统神经网络的区别以及它们的实现。

第8章介绍最近处在生成模型前沿的自编码器。

第9章讨论深度学习当前和未来的具体研究内容,并包括一个参考文献。

第10章讨论TensorFlow的环境配置、TensorFlow与Numpy的比较以及自动微分的概念。准备工作

本书将指导你完成所有书中例子所需工具的安装:

·Python3.4或更高版本。

·TensorFlow 1.4或更高版本。读者对象

本书适合希望使用神经网络的拥有统计背景的开发人员。虽然我们将使用TensorFlow作为神经网络的基础库,但本书可以作为从深度学习数学理论向实际应用转化的通用资源。如果你对TensorFlow和Python有一些了解并希望知道比API更底层的一些情况,本书会很适合你。本书约定表示警告或重要的注意事项。表示提示和技巧。下载示例代码及彩色图片

本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。第1章神经网络的数学原理

神经网络使用者需要对神经网络的概念、算法和背后的数学知识有一个良好的理解。良好的数学直觉和多种技术的理解对于掌握算法的内在机制和获得良好模型效果是必需的。理解这些技术所需的数学知识和数学水平涉及多个方面,这也取决于你的兴趣。在本章中,你将通过了解用于解决复杂计算问题的数学知识来学习神经网络。本章内容涵盖了线性代数、微积分和神经网络优化的基础知识。

本章的主要目的是为接下来的章节建立数学基础。

本章将介绍以下内容:

·线性代数。

·微积分。

·最优化。1.1 理解线性代数

线性代数是数学的一个重要分支。理解线性代数对于深度学习(即神经网络)至关重要。在本章中,我们将学习线性代数的关键和基础知识点。线性代数主要处理线性方程组。我们从使用矩阵和向量开始,而非标量。使用线性代数,我们能在深度学习中描述复杂的操作。1.1.1 环境设置

在进入数学及其性质的领域之前,构建开发环境必不可少,因为它将为我们提供环境来实践我们所学的概念知识。这意味着我们需要安装编译器及其依赖和IDE(集成开发环境)来运行代码。

在PyCharm中设置Python环境

我们最好使用像PyCharm这样的IDE来编辑Python代码,因为它提供了开发工具和内置的编码帮助。代码检查使代码开发和调试更加简单快速,确保你专注于学习神经网络中的数学知识这个终极目标。

以下步骤将展示如何在PyCharm中设置本地Python环境:

1)请先到Preferences中确认你已经安装了TensorFlow库,如果没有安装,请参考https://www.tensorflow.org/install/上的说明安装TensorFlow:

2)选择TensorFlow的默认选项然后点击OK。

3)最后右击源文件点击Run'matrices':1.1.2 线性代数的数据结构

下面将阐述线性代数的基础数据结构。

1.标量、向量和矩阵

标量、向量和矩阵是数学中的基本对象,基本定义如下:

·标量由一个单独的数或数值(称为量级)来表示。

·向量是有序排列的一列数。由唯一的索引来标识每个单独的数。向量表示空间中的一个点,向量中的每个元素给出了不同轴下的坐标。

·矩阵是一个二维数组,矩阵中的每个数通过索引(i, j)来标识。

2.张量

具有可变轴(即多维)的数组称为张量(tensor)。例如,对于三个轴,我们需要使用索引(i,j,k)来确定每个独立的数。

下图为张量的概要,它展示了一个二阶张量对象,在三维的笛卡儿坐标系当中,张量的分量将形成矩阵。参考图片来源于tensor wiki:https://en.wikipedia.org/wiki/Tensor。1.1.3 线性代数运算

以下将阐述线性代数的各种运算。

1.向量

Norm函数用于得到向量的大小,向量x的范数(norm)是对原点p到点x的距离的度量。它也称为L范数,当p=2时,就是我们所熟知的欧几里得范数(Euclidean norm)。以下示例展示了如何计算给定p向量的L范数:

输出结果为8.77496。

2.矩阵

矩阵是一个二维数组,其中每个元素由两个索引(i,j)来标识,而不是一个。如果一个实矩阵X高为m,宽为n,则称X∈Rm×n,R在这里是一组实数。

以下示例展示了如何将不同的矩阵转换为张量对象:

输出结果如下:

3.矩阵乘法

矩阵A和矩阵B相乘会得到第三个矩阵C:

C=AB

矩阵元素的逐点相乘称为哈达玛积(Hadamard product),记为A×B。

两个向量x和y维数相同,则它们的点积是(转为矩阵)x与(转为矩阵)y转置的矩阵乘积。矩阵积C=AB就像计算矩阵A的行i与矩阵B的列j的点积C。i,j

以下示例展示了使用张量对象的哈达玛积与点积:

输出结果如下:

4.迹运算

矩阵A的迹运算Tr(A)是对矩阵主对角线(从左上方至右下方的对角线)上的各个元素求总和。以下示例展示了如何对张量对象做迹运算:

输出结果为12.0。

5.矩阵转置

矩阵转置是矩阵沿主对角线上的镜像。矩阵等于它自身的转置的任意矩阵称为对称矩阵。

以下示例展示了如何对张量对象做转置运算:

输出结果如下:

6.对角矩阵

对角矩阵是一个主对角线之外的元素皆为0的矩阵,只有主对角线元素可以为非零。不是所有的对角矩阵都是方阵。

对矩阵做对角运算,我们能得到一个给定矩阵的对角线,并创建一个给定对角线的矩阵,在TensorFlow中我们使用diag函数做对角运算。以下示例展示了如何在张量对象上进行对角运算:

输出结果如下:

7.单位矩阵

单位矩阵I不会改变任意向量,以向量V为例,当与I相乘时,V不变。

以下示例展示了对于给定大小如何生成单位矩阵:

输出结果如下:

8.逆矩阵-1

矩阵I的逆矩阵记为I。参考下面的等式,我们使用反函数和另一个不同的值b来求逆矩阵,对于x有多种求解方法。注意这个性质:-1

AA=1

Ax=b-1-1b

AAx=a-1b

Ix=An-1b

x=A

以下示例展示了如何使用matrix_inverse运算来计算逆矩阵:1.1.4 求解线性方程

TensorFlow可以使用solve运算求解一系列线性方程组。让我们先不使用库中的函数来解释如何求解线性方程组,之后再使用solve来解释。

线性方程表示如下:

ax+b=yy-ax=b

y-ax=b

y/b-a/b(x)=1

我们的工作是根据观察到的点来找出上述方程中a和b的值。首先,创建矩阵元素,第一列表示x的值,第二列表示y的值。

考虑到X是输入矩阵,A是需要学习的参数,我们建立表达式AX-1。=B,因此,A=BX

下面的示例通过代码演示了如何求解线性方程:

3x+2y=15

4x-y=10

输出结果如下:

圆的正则方程是x2+y2+dx+ey+f=0,为求解参数d、e、f,我们使用TensorFlow slove运算来实现,代码如下:

输出结果显示在下面的代码中:1.1.5 奇异值分解

当把一个整数分解成它的主要因子时,我们能理解关于它的有用的性质。同样,当分解一个矩阵时,我们也能理解很多函数不直接显现的性质。有两种类型的矩阵分解,即特征值分解和奇异值分解。

每个实矩阵都有一个奇异值分解,但这并不适用于特征值分解。举例来说,如果一个矩阵不是方阵,就不能做特征分解,必须使用奇异值分解来替代。

奇异值分解(SVD)的数学表达式为三个矩阵U、S和V的乘积,其中,U的维度为m*r,S的维度为r*r,V的维度为r*n。-1

A=USVm×n

以下示例展示了在文本数据上使用TensorFlow svd运算的代码:

输出显示如下:

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载