内容推荐 本书着眼于处理时间序列数据的深度学习算法,通过基于Python语言的库TensorFlow和Keras来学习神经网络、深度学习的理论和实现。全书共六章,前两章讲解了学习神经网络所需的数学知识和Python基础知识;中间两章讲解了神经网络的基本算法以及深度学习的基础知识和应用;最后两章详细介绍了专门用于处理时间序列数据的循环神经网络(RNN)。 本书内容通俗易懂,图片、公式、代码和正文讲解相得益彰,同时注重具体实现。即便是没有深度学习和神经网络基础知识的渎者也可轻松阅读。本书适合对深度学习和循环神经网络感兴趣的读者阅读。 目录 第1章 数学准备 1.1 偏微分 1.1.1 导函数和偏导函数 1.1.2 微分系数与偏微分系数 1.1.3 偏微分的基本公式 1.1.4 复合函数的偏微分 1.1.5 拓展全微分 1.2 线性代数 1.2.1 向量 1.2.1.1 向量的基础知识 1.2.1.2 向量的和与标量倍数 1.2.1.3 向量的内积 1.2.2 矩阵 1.2.2.1 矩阵的基础知识 1.2.2.2 矩阵的和与标量倍数 1.2.2.3 矩阵的乘积 1.2.2.4 正则矩阵与逆矩阵 1.2.2.5 转置矩阵 1.3 小结 第2章 Python准备 2.1 Python 2和Python 3 2.2 Anaconda发行版 2.3 Python的基础知识 2.3.1 Python程序的执行 2.3.2 数据类型 2.3.2.1 类型是什么 2.3.2.2 字符串类型 2.3.2.3 数值类型 2.3.2.4 布尔类型 2.3.3 变量 2.3.3.1 变量是什么 2.3.3.2 变量与类型 2.3.4 数据结构 2.3.4.1 列表 2.3.4.2 字典 2.3.5 运算 2.3.5.1 运算符与操作数 2.3.5.2 算术运算的运算符 2.3.5.3 赋值运算符 2.3.6 基本结构 2.3.6.1 if语句 2.3.6.2 while语句 2.3.6.3 for语句 2.3.7 函数 2.3.8 类 2.3.9 库 2.4 NumPy 2.4.1 NumPy数组 2.4.2 使用NumPy进行向量和矩阵的计算 2.4.3 数组和多维数组的生成 2.4.4 切片 2.4.5 广播 2.5 面向深度学习的库 2.5.1 TensorFlow 2.5.2 Keras 2.5.3 参考Theano 2.6 小结 第3章 神经网络 3.1 什么是神经网络 3.1.1 脑和神经元 3.1.2 深度学习和神经网络 3.2 作为电路的神经网络 3.2.1 简单的模型化 3.2.2 逻辑电路 3.2.2.1 逻辑门 3.2.2.2 与门 3.2.2.3 或门 3.2.2.4 非门 3.3 简单感知机 3.3.1 模型化 3.3.2 实现 3.4 逻辑回归 3.4.1 阶跃函数与sigmoid函数 3.4.2 模型化 3.4.2.1 似然函数与交叉熵误差函数 3.4.2.2 梯度下降法 3.4.2.3 随机梯度下降法与小批量梯度下降法 3.4.3 实现 3.4.3.1 使用TensorFlow的实现 3.4.3.2 使用Keras的实现 3.4.4 拓展sigmoid函数与概率密度函数、累积分布函数 3.4.5 拓展梯度下降法和局部最优解 3.5 多分类逻辑回归 3.5.1 softmax函数 3.5.2 模型化 3.5.3 实现 3.5.3.1 使用TensorFlow的实现 3.5.3.2 使用Keras的实现 3.6 多层感知机 3.6.1 非线性分类 3.6.1.1 异或门 3.6.1.2 逻辑门的组合 3.6.2 模型化 3.6.3 实现 3.6.3.1 使用TensorFlow的实现 3.6.3.2 使用Keras的实现 3.7 模型的评估 3.7.1 从分类到预测 3.7.2 预测的评估 3.7.3 简单的实验 3.8 小结 第4章 深度神经网络 4.1 进入深度学习之前的准备 4.2 训练过程中的问题 4.2.1 梯度消失问题 4.2.2 过拟合问题 4.3 训练的高效化 4.3.1 激活函数 4.3.1.1 双曲正切函数 4.3.1.2 ReLU 4.3.1.3 Leaky ReLU 4.3.1.4 Parametric ReLU 4.3.2 Dropout 4.4 代码的设计 4.4.1 基本设计 4.4.1.1 使用TensorFlow的实现 4.4.1.2 使用Keras的实现 4.4.1.3 拓展对TensorFlow模型进行类封装 4.4.2 训练的可视化 4.4.2.1 使用TensorFlow的实现 4.4.2.2 使用Keras的实现 4.5 高级技术 4.5.1 数据的正则化与权重的初始化 4.5.2 学习率的设置 4.5.2.1 动量 4.5.2.2 Nesterov动量 4.5.2.3 Adagrad 4.5.2.4 Adadelta 4.5.2.5 RMSprop 4.5.2.6 Adam 4.5.3 早停法 4.5.4 Batch Normalization 4.6 小结 第5章 循环神经网络 5.1 基本概念 5.1.1 时间序列数据 5.1.2 过去的隐藏层 5.1.3 基于时间的反向传播算法 5.1.4 实现 5.1.4.1 准备时间序列数据 5.1.4.2 使用TensorFlow的实现 5.1.4.3 使用Keras的实现 5.2 LSTM 5.2.1 LSTM 块 5.2.2 CEC、输入门和输出门 5.2.2.1 稳态误差 5.2.2.2 输入权重冲突和输出权重冲突 5.2.3 遗忘门 5.2.4 窥视孔连接 5.2.5 模型化 5.2.6 实现 5.2.7 长期依赖信息的训练评估——Adding Problem 5.3 GRU 5.3.1 模型化 5.3.2 实现 5.4 小结 第6章 循环神经网络的应用 6.1 双向循环神经网络 6.1.1 未来的隐藏层 6.1.2 前向、后向传播 |