神经网络基础理论及应用

在当前人工智能领域,神经网络因其在多个领域的强大能力而成为热门话题。本文不深入探讨神经网络的复杂理论,但将解释一些基本的概念,以便更好地理解代码实现。为了深入理解,本文内容尚不足够,需要参考更多标准资料。以下是一些与神经网络相关的基本概念。

神经网络的不同层

神经网络的结构模仿了人脑神经元的工作方式,包含输入层、隐藏层和输出层。

  1. 输入层:这是输入数据的入口。
  2. 隐藏层:在这里进行复杂的计算。模型的隐藏层越多,模型越复杂。这可以看作是神经网络的“黑箱”,模型在这里学习数据中的复杂关系。
  3. 输出层:从上面的图表中可以看出,输出层只有一个节点,但这并不意味着所有神经网络模型都如此。输出层的节点数量取决于所面临的问题。如果是分类模型,输出层的节点数量将等于想要预测的类别数。

如果还有疑问,请查看这个。接下来,将快速了解构建和训练神经网络所必需的一些概念。

前向传播

仔细观察上面的动画。这是一个数字分类问题,输入是数字七。在前向传播过程中,将输入推送到输出层,通过隐藏层。还有一个有趣的观察:在整个过程中,只有部分隐藏层的神经元被激活。最终,可以观察到模型给出了输入是数字七的更高概率/预测。但如果模型训练得不好,模型有可能会给出错误的预测,引入错误。

反向传播

反向传播算法主要包括两个步骤:1. 前向传播步骤,将输入推送通过神经网络以获得输出。2. 在反向传递过程中,计算输出层的损失函数的导数。然后应用链式法则,计算其他层中权重的梯度。计算出的梯度随后用于参数更新过程。

从上面的视频可以看出,在前几秒钟,看到的是前面解释过的前向传播,但之后,可以看到有东西从输出层向后传播,这实际上是模型在预测输出时犯的错误。要了解与反向传播相关的数学知识,请查看。

更新权重和偏置

这是训练阶段的一个关键步骤,神经网络在此阶段从错误中学习并调整其特征以减少损失。如果不知道什么是权重和偏置,请以获得更好的直觉。神经网络使用优化算法,如梯度下降,来更新其权重,并找到损失最小的特定点。

在编码神经网络时,不必担心这些复杂的更新,因为有一个名为Autograd的函数将帮助计算权重和偏置的梯度。

激活函数

激活函数在神经网络中扮演着关键角色。它们被广泛用于隐藏层的输出以及输出层。

常用的激活函数有:

  • ReLU (Rectified Linear Unit):在许多神经网络模型中被广泛使用,它是一种默认的激活函数。
  • Softmax 和 Sigmoid:主要用于分类问题模型的输出。Sigmoid用于计算二元分类的类别概率,而Softmax激活函数用于计算多类分类问题的概率。

一些简单的优化函数

  1. 随机梯度下降 (SGD):随机梯度下降(SGD)是普通梯度下降算法的一个变体,它通过考虑一个单独的训练样本而不是加载整个数据集来计算参数的导数。但SGD收敛到全局最小值的时间复杂度/时间相对于普通梯度下降算法来说相对较高。
  2. 小批量随机梯度下降 (MB-SGD):小批量SGD是普通SGD的轻微变体。这里不是一次取一个样本,而是取一批样本,然后更新参数。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485