《深度学习原理与Pytorch实战》(第二版)(一)1-5章

第1章 深度学习简介

  1. 深度学习——利用深度人工神经网络来进行自动分类、预测和学习的技术,深度学习=深度人工神经网络

  2. 超过三层的神经网络都可以叫做深度神经网络

  3. 人工神经网络的关键算法——反向传播算法

  4. 深度网络架构,即整个网络体系的构建方式和拓扑连接结构,主要分为3种:前馈神经网络、卷积神经网络、循环神经网络
    前馈神经网络:也称全连接网络(fully connected neural network)
    所有节点都分为一层一层的,每个节点只跟相邻层节点而且是全部节点相连接。一般分为输入层、输出层、隐含层

  5. 深度学习重要的本领——从海量的数据中自动学习,抽取数据中的特征


第2章 Pytorch简介

  1. 使用切片(slicing)来访问张量,访问x中的第3列的全部元素,则输入: x[:,2]——书P22
  2. 一个计算图(computational graph)包括两类节点:变量(variable)和运算(computation)
    传统的深度学习框架(Tensorflow、Theano等)使用静态计算图;Pytorch使用动态计算图

这个计算图,应该就是用Netron软件可视化出来的结果
看计算图的时候注意,箭头的指向,是由输出指向输入,例如y=x+2,则箭头由y指向+2,再指向x

  1. Pytorch中的一些技术细节——书P30
    a. 进行运算的对象维度匹配
    b. 不能直接对自动微分变量进行数值更新,只能对其的data属性的变量进行操作,例如对a操作,则对a.data进行操作
    c. 在函数后加上_符号,就表明要用这个函数的计算结果更新当前的变量
  2. 权重weight、偏置bias

第3章 单车预测器——你的第一个神经网络

  1. 神经网络的运行通常包括前馈的预测过程(或称为决策过程)和反馈的学习过程——书P37
    反馈过程中,每个输出神经元会首先计算预测误差,然后将误差沿着网络的所有连边进行反向传播,得到每个隐含节点的误差,最后根据每条连边所连通的两个节点的误差计算连边上的权重更新量,从而完成学习和调整
  2. 科学家已从理论证明,用有限多的隐含神经元可以逼近任意的有限区间内的曲线,这叫做通用逼近定理(universal approximation theorem)
  3. 参数的更新要用到反向传播法,而pytorch已经将此算法用backward来表示了
  4. 为什么要清空梯度?
    因为backward()函数是会累加梯度的。在进行一次训练之后,立即进行梯度反传,所以不需要系统累加梯度,不清空梯度则有可能导致模型无法收敛
  5. 一般训练集:测试集=10:1——书P62
    ——2024.5.3

第4章 机器也懂感情——中文情绪分类器

  1. 使用神经网络处理文本数据的一大问题:输入的字符为不等长的符号序列,而神经网络的输入层通常具有固定的单元数,应该如何输入?
    针对此问题,提出了词袋(bag of words)模型:不考虑语法、语义、顺序,只关心包含的单词数量,然后根据单词数量简历对句子进行表示的向量——书P70
    本质就是:不考虑上下文的连接含义,而是对词出现的次数加以统计,从而进行判定和预测。好处是减少了文本的思考量,但是对于文本复杂的情况,可能会出现错误理解
  2. 主要流程:数据处理、文本数据向量化、划分数据集、建立神经网络。

数据处理又分为三个步骤:过滤标点符号、分词、建立单词表——书P71
数据划分可以划分为训练集、测试集,也可以划分为训练集、校验集(validation或develop)和测试集。校验集就是为了减少过拟合


第5章 手写数字识别器——认识卷积神经网络

  1. 卷积神经网络一大出彩点:能够自动从数据中提取特征
  2. 个人可以根据需求,将网络有多少层、每一层有多少单元都作为超参数而重新设定
  3. 所给案例的CNN架构可以分为两大部分:——书P86(挺细致的讲解)
    第一部分:输入图像和4个立方体构成的图像处理部分,用来将图像不断处理成尺寸更小、数量更多的图像
    第二部分:一系列线性排布的神经元构成的普通前馈多层神经网络
    所有的卷积、池化运算都是依靠两层之间的神经元连接完成的
    整个卷积神经网络可以归纳为两个部分:前馈运算阶段、反馈学习阶段
  4. 卷积核(convolutional kernel)也叫过滤器,容易理解,立方体的厚度=特征图数量=卷积核数量 ——书P92
  5. 池化(pooling)用于获取粗粒度信息,将图像中的一片3x3区域变成一个像素点,新像素的取值按照最大原则——书P93

有一种模糊化处理的理念

  1. 超参数:人为设定的参数值,往往决定整个网络的架构
  2. Pytorch所提供的工具包包括:数据集(dataset)、加载器(dataloader)、采样器(sample)
  3. dropout函数旨在 在深度网络学习过程中,根据一定概率随机将其中的一些神经元暂时丢弃,以避免过拟合——书P101
    ——2024.5.4
posted @ 2024-05-03 16:31  江左子固  阅读(78)  评论(0编辑  收藏  举报