Python深度学习入门: 从零构建CNN和RNN

Book description

深度学习技术的发展如火如荼,这些知识正迅速成为机器学习从业者甚至许多软件开发工程师的“加分项”。深度学习是一个立体的领域,仅从数学层面或代码层面学习,难免以偏概全,无法融会贯通。

本书作者认为,理解深度学习和神经网络需要多种思维模型。因此,本书从数学、示意图、Python代码三个维度帮助你立体地理解每一个概念,带你领略深度学习领域的全貌,从内到外地理解构建神经网络的每一步。你将学到以下内容。

  • 为理解深度学习的概念和原理构建多种思维模型。
  • 掌握嵌套函数、链式法则等数学概念。
  • 掌握学习率衰减、权重初始化、dropout等优化技巧。
  • 从零构建CNN和RNN等常见的神经网络架构。
  • 使用PyTorch实现神经网络。

Table of contents

  1. 封面
  2. 扉页
  3. 版权
  4. 版权声明
  5. O'Reilly Media, Inc.介绍
  6. 目录 (1/2)
  7. 目录 (2/2)
  8. 译者序
  9. 前言
    1. 理解神经网络需要多种思维模型
    2. 章节概要
    3. 排版约定
    4. 使用示例代码
    5. O’Reilly在线学习平台(O’Reilly Online Learning)
    6. 联系我们
    7. 致谢
    8. 电子书
  10. 第1章 基本概念
    1. 1.1 函数
    2. 1.2 导数
    3. 1.3 嵌套函数
    4. 1.4 链式法则
    5. 1.5 示例介绍
    6. 1.6 多输入函数
    7. 1.7 多输入函数的导数
    8. 1.8 多向量输入函数
    9. 1.9 基于已有特征创建新特征
    10. 1.10 多向量输入函数的导数
    11. 1.11 向量函数及其导数:再进一步
    12. 1.12 包含两个二维矩阵输入的计算图
    13. 1.13 有趣的部分:后向传递 (1/2)
    14. 1.13 有趣的部分:后向传递 (2/2)
    15. 1.14 小结
  11. 第2章 基本原理
    1. 2.1 监督学习概述
    2. 2.2 监督学习模型
    3. 2.3 线性回归
      1. 2.3.1 线性回归:示意图
      2. 2.3.2 线性回归:更有用的示意图和数学
      3. 2.3.3 加入截距项
      4. 2.3.4 线性回归:代码
    4. 2.4 训练模型
      1. 2.4.1 计算梯度:示意图
      2. 2.4.2 计算梯度:数学和一些代码
      3. 2.4.3 计算梯度:完整的代码
      4. 2.4.4 使用梯度训练模型
    5. 2.5 评估模型:训练集与测试集
    6. 2.6 评估模型:代码
    7. 2.7 从零开始构建神经网络
      1. 2.7.1 步骤1:一系列线性回归
      2. 2.7.2 步骤2:一个非线性函数
      3. 2.7.3 步骤3:另一个线性回归
      4. 2.7.4 示意图
      5. 2.7.5 代码
      6. 2.7.6 神经网络:后向传递
    8. 2.8 训练和评估第一个神经网络
    9. 2.9 小结
  12. 第3章 从零开始深度学习
    1. 3.1 定义深度学习
    2. 3.2 神经网络的构成要素:运算
      1. 3.2.1 示意图
      2. 3.2.2 代码
    3. 3.4 在构成要素之上构建新的要素
      1. 3.4.1 层的蓝图
      2. 3.4.2 稠密层
    4. 3.5 NeuralNetwork类和其他类
      1. 3.5.1 示意图
      2. 3.5.2 代码
      3. 3.5.3 Loss类
    5. 3.6 从零开始构建深度学习模型
      1. 3.6.1 实现批量训练
      2. 3.6.2 NeuralNetwork:代码
    6. 3.7 优化器和训练器
      1. 3.7.1 优化器
      2. 3.7.2 训练器
    7. 3.8 整合
    8. 3.9 小结与展望
  13. 第4章 扩展
    1. 4.1 关于神经网络的一些直觉
    2. 4.2 softmax交叉熵损失函数
      1. 4.2.1 组件1:softmax函数
      2. 4.2.2 组件2:交叉熵损失
      3. 4.2.3 关于激活函数的注意事项
    3. 4.3 实验
      1. 4.3.1 数据预处理
      2. 4.3.2 模型
      3. 4.3.3 实验:softmax交叉熵损失函数
    4. 4.4 动量
      1. 4.4.1 理解动量
      2. 4.4.2 在Optimizer类中实现动量
      3. 4.4.3 实验:带有动量的随机梯度下降
    5. 4.5 学习率衰减
      1. 4.5.1 学习率衰减的类型
      2. 4.5.2 实验:学习率衰减
    6. 4.6 权重初始化
      1. 4.6.1 数学和代码
      2. 4.6.2 实验:权重初始化
    7. 4.7 dropout
      1. 4.7.1 定义
      2. 4.7.2 实现
      3. 4.7.3 实验:dropout
    8. 4.8 小结
  14. 第5章 CNN
    1. 5.1 神经网络与表征学习
      1. 5.1.1 针对图像数据的不同架构
      2. 5.1.2 卷积运算
      3. 5.1.3 多通道卷积运算
    2. 5.2 卷积层
      1. 5.2.1 实现意义
      2. 5.2.2 卷积层与全连接层的区别
      3. 5.2.3 利用卷积层进行预测:Flatten层
      4. 5.2.4 池化层
    3. 5.3 实现多通道卷积运算
      1. 5.3.1 前向传递
      2. 5.3.2 后向传递
      3. 5.3.3 批处理
      4. 5.3.4 二维卷积
      5. 5.3.5 最后一个元素:通道
    4. 5.4 使用多通道卷积运算训练CNN
      1. 5.4.1 Flatten运算
      2. 5.4.2 完整的Conv2D层
      3. 5.4.3 实验
    5. 5.5 小结
  15. 第6章 RNN
    1. 6.1 关键限制:处理分支
    2. 6.2 自动微分
    3. 6.3 RNN的动机
    4. 6.4 RNN简介
      1. 6.4.1 RNN的第一个类:RNNLayer
      2. 6.4.2 RNN的第二个类:RNNNode
      3. 6.4.3 整合RNNNode类和RNNLayer类
      4. 6.4.4 后向传递
    5. 6.5 RNN:代码
      1. 6.5.1 RNNLayer类
      2. 6.5.2 RNNNode类的基本元素
      3. 6.5.3 vanilla RNNNode类
      4. 6.5.4 vanilla RNNNode类的局限性
      5. 6.5.5 GRUNode类
      6. 6.5.6 LSTMNode类
      7. 6.5.7 基于字符级RNN语言模型的数据表示
      8. 6.5.8 其他语言建模任务
      9. 6.5.9 组合RNNLayer类的变体
      10. 6.5.10 将全部内容整合在一起
    6. 6.6 小结
  16. 第7章 PyTorch
    1. 7.1 PyTorch Tensor
    2. 7.2 使用PyTorch进行深度学习
      1. 7.2.1 PyTorch元素:Model类及其Layer类
      2. 7.2.2 使用PyTorch实现神经网络基本要素:DenseLayer类
      3. 7.2.3 示例:基于PyTorch的波士顿房价模型
      4. 7.2.4 PyTorch元素:Optimizer类和Loss类
      5. 7.2.5 PyTorch元素:Trainer类
      6. 7.2.6 PyTorch优化学习技术
    3. 7.3 PyTorch中的CNN
    4. 7.4 PyTorch中的LSTM
    5. 7.5 后记:通过自编码器进行无监督学习
      1. 7.5.1 表征学习
      2. 7.5.2 应对无标签场景的方法
      3. 7.5.3 在PyTorch中实现自编码器
      4. 7.5.4 更强大的无监督学习测试及解决方案
    6. 7.6 小结
  17. 附录 深入探讨
    1. 矩阵链式法则
      1. 关于偏差项的损失梯度
    2. 通过矩阵乘法进行卷积
  18. 关于作者
  19. 关于封面

Product information

  • Title: Python深度学习入门: 从零构建CNN和RNN
  • Author(s): Seth Weidman
  • Release date: February 2021
  • Publisher(s): Posts & Telecom Press
  • ISBN: 9787115555649

You might also like

video

计算机网络中的抽象

by 罗斯.怀特

课程简介 计算机网络实际上依赖于多种形式的抽象来进行扩展,甚至是完全依赖于抽象来运行。 虽然有些抽象是很容易观察到的,例如路由聚合和泛洪域边界汇总,但许多抽象隐藏在意想不到的地方,例如网络设备的逻辑结构中,BGP路由反射器的操作中以及数据平面协议栈中。 《计算机网络中的抽象》在线课程研究很多个领域的理论和实践里的抽象,这些领域包括构建网络设备,网络软件和网络。 本课程考虑了折衷和常见问题,并讨论了抽象和复杂性之间的关系。 观看者将学习如何思考抽象隐藏的内容,以及隐藏这些内容为何很重要。 他们还将学习如何在意想不到的地方寻找抽象,如何考虑抽象泄漏,Keith定律及其引理如何影响抽象,包括意想不到的后果。抽象也与状态/优化/界面的三者之间的权衡有关,因此这个在线课程的一章讨论权衡以及抽象如何控制状态的速度和数量,抽象如何影响交互界面的深度和广度以及抽象如何削弱优化。 Get技能 将获得的技能 ● 本课程将提供有关道德黑客,渗透测试和安全状态评估的分步指导。 ● 提供一种易于使用且具有成本效益的方式来学习工业界中与不同的前沿安全技能相关的各种概念。 ● 提供多媒体教程,该教程讨论了现实世界中的各种场景。

book

Istio 学习指南

by Lee Calcote, Zack Butcher

你已经成功地将应用程序转换为微服务架构,但现在要跨不同环境(公有云到公有云、私有云到公有云、虚拟机到容器)运行服务,你的云原生软件开始遇到可靠性问题。 如何处理日益增加的复杂性?通过Istio服务网格,你将能够管理流量、控制访问、实施监控、获取遥测数据、管理配额、实现链路跟踪,并在微服务上拥有更大的弹性。 在本书中,两位作者解释了为什么服务需要服务网格,并逐步演示了Istio如何适应分布式应用程序的生命周期。你将了解用于启用和管理Istio中多种功能的工具和API。 探索Istio解决的可观察性挑战。 使用请求路由、流量转移、故障注入以及运行可靠服务网格必不可少的其他功能。 生成并收集遥测信息。 尝试不同的部署模式,包括A/B、蓝/绿和金丝雀。 获取有关如何在Istio支持下开发和部署实际应用程序的示例。

book

面向对象的思考过程(原书第5版)

by 马特 魏斯费尔德

本书是一部独具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想的精髓,让读者真正学会以对象方式进行思考。本书共15章,在结构上可以分为两部分:第壹部分包括第1~10章,探讨面向对象的基本概念,比如封装、多态、继承等;第二部分包括第11~15章,专注于将这些概念应用于一些通用的面向对象技术中,并结合了一些实用的应用程序。

book

初探深度學習|使用TensorFlow

by Reza Zadeh, Bharath Ramsundar

從線性迴歸到強化學習 “對想要進入深度學習這個令人興奮的領域的機器學習從業者來說,這是一本很棒的書。由於本書涵蓋廣泛的主題,當你想要進一步提升技術時,也會將它當成參考書來重新閱讀。” —Marvin Bertin Freenome機器學習研究工程師 TensorFlow是革命性的Google深度學習程式庫,本書將教你如何用它來解決具挑戰性的機器學習問題。只要你具備一些基本線性代數與微積分的背景知識,就可以在這本實用的書籍學到如何設計能夠檢查圖像物體、瞭解文字以及預測潛在藥物特性的系統,瞭解機器學習的基礎知識。 透過實際的案例傳授觀念,協助你從根本開始建立深厚的深度學習基礎知識。本書非常適合具備軟體系統設計經驗的實務開發者,或已熟悉腳本語言但不知道如何設計學習演算法的專家。 ‧學習TensorFlow的基本知識,包括如何執行基本的計算 ‧藉由建立簡單的學習系統瞭解相關數學基礎 ‧深入瞭解已被上千種app使用的全連結深度網路 ‧藉由超參數優化將原型轉換成高品質的模型 ‧用摺積神經網路處理圖像 ‧用遞迴神經網路處理神經語言資料集 ‧使用強化學習玩遊戲,例如井字遊戲 ‧用GPU與張量處理單元等硬體訓練深度網路