神经网络与PyTorch实战pdf下载

神经网络与PyTorch实战百度网盘pdf下载

作者:
简介:神经网络与PyTorch实战
出版社:机械工业出版社
出版时间:2018-08-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介
  人工智能(Artificial Intelligence,AI)正在对各行各业产生决定性的影响。神经网络(Neutral Network)作为当今人工智能的旗舰模型,将成为各行业从业人员的必备知识。PyTorch作为简单、易用、灵活的人工神经网络库,是学习神经网络的优秀工具。在此诚邀你一起学习PyTorch和神经网络,拥抱人工智能的大时代。
作者简介
  前言
  人工智能(Artificial Intelligence,AI)正在对各行各业产生决定性的影响。神经网络(Neutral Network)作为当今人工智能的旗舰模型,将成为各行业从业人员的必备知识。PyTorch作为简单、易用、灵活的人工神经网络库,是学习神经网络的优秀工具。在此诚邀你一起学习PyTorch和神经网络,拥抱人工智能的大时代。
  本书特色
  本书的目的是成为简单易学的神经网络中文图书,因此将理论和实践有机结合。
  ·在理论方面,本书带你从零开始入门神经网络。本书将基于“张量”这一既简单又前沿的概念,讲授必要的数学知识,与你一起轻松掌握深度学习的核心理论。
  ·在实践方面,本书带你在Windows系统或是macOS系统中轻松安装新版本的PyTorch开发环境,由浅入深学习PyTorch开发,让你在自己的电脑上轻松实现超酷的人工智能算法与应用。
  读者对象
  本书面向以下读者:
  ·想了解人工智能、机器学习、神经网络、深度学习等热门技术的人士;
  ·想运用人工智能、机器学习、神经网络、深度学习解决实际问题的人士。
  你也许没有学过编程,或是英语不太好,或是好久没有用数学了,没关系——本书将以简单易懂的方式,给出所有必要的知识。只要你有兴趣,就能轻松快乐地学会神经网络。
  本书主要内容
  全书逻辑上分为三个部分。
  ·第1~2章:感性介绍神经网络的基础知识,并给出一个利用PyTorch搭建神经网络解决实际问题的例子,使你初步了解神经网络和PyTorch;
  ·第3~9章:介绍基于PyTorch的科学计算和神经网络搭建,涵盖了几乎所有PyTorch基础知识,涉及了所有神经网络的常用结构,并通过例子使你完全掌握神经网络的原理和应用;
  ·第10~11章:介绍生成对抗网络和增强学习,使你了解更多神经网络的实际用法。
  代码下载与技术支持
  本书的所有代码都可以在//github.com/zhiqingxiao/pytorch-book上下载。笔者会实时更新代码,保证代码能够在新版本的PyTorch下运行。
  在此推荐你加入本书学习交流QQ群698847007,关注微信公众号pytorcher。如果有任何意见、建议或者有通过网络搜索仍不能解决的问题,可以在QQ群里提问、在GitHub上提Issue,或给笔者发邮件,笔者的电子邮箱是xzq.xiaozhiqing@gmail.com。
  致谢
  在此感谢为本书出版做出贡献的所有工作人员。机械工业出版社华章公司的高婧雅对本书的写作提出了很多建设性意见。同时,还要感谢其他编辑为提升本书质量做出的大量工作,与他们合作是一个愉快的过程。最后,还要感谢我的上司、同事和亲友,特别是我的爸爸、妈妈,他们在本书写作期间给予我极大的支持。
  感谢你选择本书。祝你学习快乐!
目录
前言
第1章 初识神经网络
1.1 例说神经网络
1.1.1 从围棋和AlphaGo说起
1.1.2 人的神经系统
1.1.3 人工神经元
1.1.4 人工神经网络
1.1.5 神经网络的设计和权重的学习
1.2 神经网络与人工智能等概念的关系
1.2.1 人工智能和数据挖掘
1.2.2 机器学习和模式识别
1.2.3 人工神经网络和深度学习
1.2.4 各概念之间的联系
1.3 本章小结
第2章 初识PyTorch
2.1 人工神经网络库PyTorch
2.1.1 PyTorch是什么
2.1.2 编写PyTorch程序
2.2 例说PyTorch
2.2.1 迷你AlphaGo介绍
2.2.2 迷你AlphaGo的完整实现
2.3 PyTorch学习路线
2.4 本章小结
第3章 使用PyTorch进行科学计算
3.1 初识张量
3.1.1 张量的数学定义
3.1.2 PyTorch里的张量
3.2 构造torch.Tensor类实例
3.2.1 构造含有特定数据的张量
3.2.2 构造特定大小的张量
3.2.3 构造等比数列和等差数列张量
3.2.4 构造随机张量
3.3 组织张量的元素
3.3.1 重排张量元素
3.3.2 选取部分张量元素
3.3.3 张量的扩展和拼接
3.4 张量的科学计算
3.4.1 有理运算和广播语义
3.4.2 逐元素运算
3.4.3 张量点积和Einstein求和
3.4.4 统计函数
3.4.5 比较和逻辑运算
3.5 例子:用蒙特卡洛算法计算圆周率
3.5.1 随机计算与蒙特卡洛算法
3.5.2 蒙特卡洛算法求解圆周率的实现
3.6 本章小结
第4章 求解优化问题
4.1 梯度及其计算
4.1.1 梯度的定义
4.1.2 梯度的性质和计算
4.1.3 使用PyTorch计算梯度数值
4.2 优化算法与torch.optim包
4.2.1 梯度下降算法
4.2.2 梯度下降算法的缺陷和解决方案
4.2.3 各种优化算法
4.3 例子:Himmelblau函数的优化
4.3.1 Himmelblau函数及可视化
4.3.2 求解Himmelblau的最小值
4.3.3 求解Himmelblau的局部极大值
4.4 本章小结
第5章 线性回归
5.1 一元线性回归
5.1.1 最小二乘法
5.1.2 正规方程法
5.2 多元线性回归
5.3 其他损失情况下的线性回归
5.3.1 MSE损失、损失和平滑损失
5.3.2 torch.nn子包与损失类
5.3.3 使用优化器求解线性回归
5.3.4 数据的归一化
5.4 例子:世界人口的线性回归
5.4.1 从维基百科页面获取世界人口数据
5.4.2 对世界人口做最小二乘法线性回归
5.4.3 用优化算法实现最小二乘回归
5.5 本章小结
第6章 线性判决与逻辑回归
6.1 线性判决与互熵损失
6.1.1 判定问题与准确率
6.1.2 线性判决
6.1.3 极大似然和互熵损失
6.2 逻辑回归
6.2.1 expit()函数和logit()函数
6.2.2 用优化器实现逻辑回归
6.2.3 Newton-Raphson方法
6.3 多项逻辑回归
6.4 例子:数字图像的识别
6.4.1 使用torchvision读取MNIST数据集
6.4.2 利用多项逻辑回归识别MNIST数据
6.5 例子:股票成交量预测
6.5.1 股票数据的读取和可视化
6.5.2 成交量变化方向预测
6.6 本章小结
第7章 全连接神经网络
7.1 前馈神经网络
7.1.1 前馈神经网络的定义
7.1.2 使用torch.nn.Sequential类搭建前馈神经网络
7.1.3 权重的确定与反向传播
7.2 全连接层和全连接神经网络
7.3 非线性激活
7.3.1 逐元素激活
7.3.2 非逐元素激活
7.4 网络结构的选择
7.4.1 欠拟合和过拟合
7.4.2 训练集、验证集和测试集
7.5 例子:基于全连接网络的非线性回归
7.5.1 数据的生成和数据集分割
7.5.2 确定网络结构并训练网络
7.5.3 测试性能
7.6 本章小结
第8章 卷积神经网络
8.1 卷积层
8.1.1 序列的互相关和卷积
8.1.2 一维张量的互相关
8.1.3 一维张量的转置卷积
8.1.4 高维张量的互相关和转置卷积
8.1.5 torch.nn包里的卷积层
8.2 池化层、视觉层和补全层
8.2.1 张量的池化
8.2.2 张量的反池化
8.2.3 torch.nn包里的池化层
8.2.4 张量的上采样
8.2.5 torch.nn包里的视觉层
8.2.6 张量的补全运算
8.2.7 torch.nn包里的补全层
8.3 例子:MNIST图片分类的改进
8.3.1 搭建卷积神经网络
8.3.2 卷积神经网络的训练和测试
8.4 本章小结
第9章 循环神经网络
9.1 神经网络的循环结构
9.1.1 单向单层循环结构
9.1.2 多层循环结构
9.1.3 双向循环结构
9.2 循环神经网络中的循环单元
9.2.1 基本循环神经元
9.2.2 长短期记忆单元
9.2.3 门控循环单元
9.3 循环神经网络的实现
9.3.1 torch.nn子包中的循环单元类
9.3.2 torch.nn子包中的循环神经网络类
9.4 例子:人均GDP的预测
9.4.1 使用pandas-datareader读取世界银行数据库
9.4.2 搭建LSTM预测模型
9.4.3 网络的训练和使用
9.5 本章小结
第10章 生成对抗网络
10.1 生成对抗网络的原理
10.1.1 例说生成对抗
10.1.2 生成对抗网络的结构
10.2 用生成对抗网络生成图像
10.2.1 深度卷积生成对抗网络
10.2.2 规范化层
10.2.3 网络权重值的初始化
10.3 例子:CIFAR-10图像的生成
10.3.1 CIFAR-10数据集
10.3.2 搭建生成网络和鉴别网络
10.3.3 网络的训练和使用
10.4 本章小结
第11章 强化学习
11.1 初识强化学习
11.1.1 例说强化学习
11.1.2 强化学习的分类
11.2 Markov决策过程及其算法
11.2.1 Markov决策过程
11.2.2 最优策略的性质和求解
11.2.3 时序差分更新算法
11.3 例子:车杆游戏的游戏AI开发
11.3.1 游戏环境及其使用方法
11.3.2 游戏AI和深度Q网络的设计
11.3.3 深度Q网络的训练
11.3.4 游戏AI的使用
11.4 本章小结
附录A 开发环境的安装和使用
附录B Python编程基础
前言
  前言或序言,这里在前言或序言或后记中取部分内容即可,没有前言序言后记就空着。段首要空两个字。
精彩书摘
  2.1 人工神经网络库PyTorch
  2.1.1 PyTorch是什么
  PyTorch(//pytorch.org/)是一个人工神经网络开发库,利用PyTorch可以让机器实现人工神经网络,完成人工智能应用。PyTorch得名于“蟒蛇”(Python)和“火炬”(Torch)这两个单词。Python是一种程序设计语言,它规定了应该如何编程。Torch也是另外一种人工神经网络的开发库的名称,PyTorch就是由Torch演进而来的。因为Torch有“火焰”之意,所以PyTorch的商标就像熊熊燃烧的红色火焰。PyTorch主要由脸书人工智能研究所(Facebook’s Artificial Intelligence Research,FAIR)开发和维护。
  PyTorch是最简单、最灵活的人工神经网络库之一。回顾前文,人工神经网络就是由人工神经元组成的网络,而人工神经元是对输入进行线性组合再进行非线性操作。在确定人工神经网络的结构后,通过优化,为人工神经元内的权重设置合适的值,就可以发挥人工神经网络强大的功能。那么,如何让计算机实现人工神经元、搭建人工神经网络,并选择合适的权重呢?这就需要人工神经网络的开发软件来帮忙。PyTorch就是一种人工神经网络的开发软件。
  在开发人工神经网络的过程中,PyTorch可以帮助我们做以下事情:
  ·确定人工神经网络的结构:我们只要告诉PyTorch神经网络中神经元的个数、每个神经元是什么样的(比如输入、输出、非线性函数),以及各神经元的连接方式,PyTorch就可以让计算机构建出这个人工神经网络的结构。
  ·确定人工神经元的权重值:只要告诉PyTorch什么样的权重值比较好,PyTorch就可以帮助我们找到合适的权重值。
  ·处理输入和输出:此外,PyTorch还可以和其他库合作,协助处理人工神经网络的输入和输出,把人工神经网络的计算结果展示出来。
  有了人工神经网络开发工具PyTorch,我们不再需要编写复杂的代码去实现人工神经元,或是漫无目的地寻找合适的权重值。借助PyTorch,只需要一句话,就可以指定某些神经网络连接关系;只需要一句话,就可以指定神经元使用的非线性函数。而且,我们不需要手动为每个神经元寻找合适的权重。
  PyTorch不仅简单好用,而且完全免费。PyTorch的源代码是完全公开的,你可以在https://github.com/pytorch/pytorch上找到所有的实现代码。并且它遵循BSD-3许可证,这个许可证允许所有人在没有额外授权的情况下使用或修改PyTorch,包括将它用于商业目的。
精彩插图