【学习笔记】神经网络与深度学习

  1. 神经网络(Neural Networks, NNs)

    • 神经网络是一种模拟生物神经网络结构和功能的计算模型,由大量的神经元(节点)和它们之间的连接(边)组成。
    • 神经元接收输入信号,对其进行加权求和,并通过一个激活函数产生输出。
    • 神经网络可以通过调整连接权重来学习数据中的模式和规律。
    • 早期的神经网络主要关注于单层感知机、多层感知机等结构,但受限于计算能力和训练方法,其应用相对有限。
  2. 深度学习(Deep Learning, DL)

    • 深度学习是机器学习的一个子领域,它利用深度神经网络(即具有多层隐藏层的神经网络)来解决复杂的问题。
    • 与传统的机器学习算法相比,深度学习能够从原始输入数据中自动提取高层次的特征表示,这使得它在处理高维、复杂数据时具有优势。
    • 深度学习的快速发展得益于计算能力的提升(如GPU的普及)、大数据的涌现以及更有效的训练算法(如反向传播算法和梯度下降算法的改进)。
    • 深度学习在多个领域取得了显著成果,包括计算机视觉、自然语言处理、语音识别、强化学习等。

术语

维度

        深度学习中的维度主要指的是数据的特征数量或张量的维度。对于数据而言,维度可以理解为数据的属性或特征的数量,这些特征用于描述数据的各个方面。在深度学习中,数据通常以张量的形式进行表示和处理,而张量的维度则描述了数据在各个方向上的大小或者说是数据排列的方式。

通道

        在卷积神经网络(CNN)中,通道(Channel)通常指的是特征图的深度,即特征图中不同特征映射的数量。具体来说,通道可以看作是网络在处理图像时,对图像的不同特性或信息进行编码和提取的一种方式。

  • 在图像处理中,输入图像的通道可能对应于颜色通道,例如RGB图像的三个通道(红、绿、蓝)。每个通道都包含了图像在该颜色维度上的信息。
  • 在卷积层中,每个卷积核(也可以看作是不同的滤波器)会生成一个新的特征映射,这些特征映射作为输出特征图的通道。因此,通道的数量等于卷积核的数量。每个通道都代表了图像在某一特定特征或模式下的响应。

损失函数

        损失函数(Loss Function)用于量化模型预测值与实际值之间的差异程度,即衡量模型预测错误的程度。通过优化损失函数,可以提高模型的预测能力。不同的损失函数适用于不同的任务和模型。

        常用的损失函数包括以下几种:

  • L1范数损失(L1Loss):计算output和target之差的绝对值。其参数reduction可以设置三个值:none(不使用约简)、mean(返回loss和的平均值)、sum(返回loss的和)。默认值为mean。
  • 均方误差损失(MSELoss):计算output和target之差的均方差。同样,其参数reduction可以设置三个值:none、mean、sum。默认值为mean。
  • 交叉熵损失(CrossEntropyLoss):当训练有C个类别的分类问题时很有效。可选参数weight必须是一个1维Tensor,权重将被分配给各个类别。对于不平衡的训练集非常有效。
  • KL散度损失(KLDivLoss):计算input和target之间的KL散度。

残差

        残差(Residual)指的是实际值与预测值之间的差异

        在统计学中,残差常用来衡量模型对数据的拟合程度。对于线性回归模型来说,残差等于观测值减去预测值。残差可以用来评估模型的精度,如果模型的残差很小,则说明模型对数据的拟合程度很好;反之,如果模型的残差很大,则说明模型对数据的拟合程度很差。残差还可以用来检验模型的假设,例如正态分布、同方差性等。

残差结构

        残差结构通常指的是一种网络设计,它允许网络中的信号绕过某些层直接传播。这种设计主要用在深度残差网络(Residual Networks,简称ResNet)中,它解决了随着网络深度增加而出现的梯度消失和表示瓶颈问题。
        以下是残差结构在深度学习中的关键特点:

  • 梯度消失和表示瓶颈问题的解决:在传统的深度神经网络中,随着网络层数的增加,梯度在反向传播过程中可能会变得非常小,导致网络难以训练,这就是梯度消失问题。此外,深层网络可能难以捕捉和表示输入数据的所有特征,即表示瓶颈问题。残差结构通过引入shortcut connections(或称为skip connections),允许信号绕过一些层直接传播,从而缓解了这些问题。
  •  残差块(Residual Block):ResNet中的残差块是实现残差结构的基本单元。每个残差块包含一些卷积层和一个shortcut connection,该connection将块的输入直接添加到块的输出。这样,如果残差块中的卷积层学习到的是恒等映射(即输出与输入相同),那么整个块的输出将与输入相同,这使得网络可以更容易地学习到恒等映射。
  • 网络性能:残差结构使得网络可以在增加深度的同时保持训练的稳定性和性能,这在传统的深度网络中是难以实现的。ResNet通过这种结构在多个任务上取得了突破性的性能,包括图像分类、目标检测和图像分割等。
  • 模型集成:残差网络可以从模型集成的角度理解,其中每个残差块可以看作是一个相对浅层网络的集成,这有助于提高网络的泛化能力。
  • 实际应用:由于其强大的特征提取能力和稳定的训练过程,ResNet在实际应用中取得了非常好的效果,成为了深度学习领域的一个重要里程碑。 

全连接层

        全连接层是神经网络中的一层,其每个节点与上一层的所有节点都连接,通常用于学习特征的权重和偏置,实现分类或回归等任务 

卷积层

        卷积层是神经网络中用于提取输入数据局部特征的关键层,通过卷积核对输入数据进行卷积运算,以学习数据的空间结构信息 

        卷积层因其局部连接和参数共享的特性,特别适用于处理图像、视频、文本和语音等具有局部相关性的数据。而全连接层则更广泛地应用于各种深度学习模型中,包括图像识别、语音识别、自然语言处理等领域,起到分类、回归等关键作用。

反向传播

        反向传播(Backpropagation)是神经网络中一种常用的训练方法,它是一种用于训练神经网络的优化算法。反向传播的主要思想是通过将误差从输出层向输入层反向传播,并将误差分配给每个神经元,从而调整每个神经元的权重和偏置,以达到最小化误差的目的。

        在前向传播过程中,每个神经元会接收上一层所有神经元的输出信号,通过加权求和和激活函数的处理得到输出信号,这个过程会一直持续到输出层得到神经网络的最终预测结果。然后,反向传播过程开始,它首先计算神经网络的输出结果与真实结果之间的差异,即损失函数。接着,通过反向传播算法,计算损失函数对神经网络参数的梯度,利用这些梯度信息更新神经网络的权重和偏置,以最小化损失函数

        反向传播算法基于梯度下降的优化原理,可以有效地优化多层神经网络中的参数,使模型具备学习能力。然而,反向传播也存在一些缺点,例如容易陷入局部最优解和计算量大等问题。

Epoch

        一个Epoch意味着整个训练数据集被模型使用一次。换句话说,当模型完成了对所有训练样本的正向传播和反向传播,我们就说它完成了一个Epoch。通过多个Epoch的训练,模型可以逐渐学习和优化其权重,从而提高在测试集上的性能。Epoch的数量是深度学习模型训练过程中的一个重要超参数,需要根据具体任务和数据集进行调整。 

Batch

        batch(批次)是指一次迭代(iteration)中用来更新模型参数的数据样本子集。具体来说,当处理大型数据集时,通常不会一次性将整个数据集送入模型进行训练,而是将数据划分为若干个较小的子集,每个子集就是一个batch。

        每个batch中的样本数量是一个超参数,通常称为batch size(批次大小)。选择合适的batch size对模型的训练速度和效果有很大影响。较大的batch size通常意味着每个迭代可以使用更多的数据来更新模型,从而可能导致更快的训练速度。然而,过大的batch size也可能导致模型在训练过程中难以收敛到最优解,或者需要更多的计算资源。相反,较小的batch size可能使模型在训练过程中更加稳定,但也可能导致训练速度变慢。

        每个epoch的训练过程中,通常会使用一种称为“小批量梯度下降”(Mini-batch Gradient Descent)的技术,即不是一次性使用整个数据集进行训练,而是将数据分成多个小批量(mini-batches),每个小批量包含一部分数据。这样,每个epoch实际上会包含多个小批量的训练过程。

小批量梯度下降

        小批量梯度下降是一种在训练速度和训练准确率之间取得折衷的优化算法。。与批量梯度下降相比,小批量梯度下降每次计算梯度时不是使用全部的训练样本,而是使用一个小批量的样本。这样做的好处是可以加快梯度计算的速度,同时可以增加模型的稳定性

        小批量梯度下降算法的步骤如下:

  1. 随机初始化模型的参数。
  2. 将训练数据划分为多个小批量的样本。
  3. 对于每个小批量的样本,计算损失函数关于模型参数的梯度。
  4. 根据梯度更新模型参数。
  5. 重复步骤3和步骤4,直到达到停止条件(如达到最大迭代次数或损失函数收敛)。

        小批量梯度下降算法的优点是可以在一定程度上保持梯度的方向,并且可以更快地收敛。同时,由于每次计算梯度只使用了一部分样本,所以可以减少计算资源的需求。然而,由于只使用了部分样本,所以算法可能会陷入局部最优解。为了解决这个问题,通常需要调整学习率和批量大小等超参数。

相关架构

ResNet架构

        ResNet(残差网络)是一种深度神经网络架构,被广泛用于计算机视觉任务,特别是图像分类。这种架构的核心思想在于引入残差结构(Residual Structure),以解决深度神经网络在训练过程中可能出现的梯度消失和网络退化问题。

        在ResNet中,每个残差块包含两个主要分支:恒等映射(Identity Mapping)和残差映射(Residual Mapping)。恒等映射直接传递输入的特征,而残差映射则对输入进行变换以学习残差信息。这种结构使得网络可以轻松地训练非常深的层次,因为梯度可以直接通过恒等映射路径回流,解决了梯度消失问题。

        ResNet可以堆叠成非常深的网络,包括数百层卷积层。由于其深度和网络结构的特性,ResNet在图像分类、目标检测、语义分割等多种计算机视觉任务中都取得了显著的性能提升。

        然而,ResNet也存在一些缺点,比如训练时间较长。但总体来说,ResNet的优点在于其结构更加简单,前馈/反馈传播算法能够顺利进行,且恒等映射的引入基本不会降低网络的性能。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值