在当前人工智能领域,神经网络因其在多个领域的强大能力而成为热门话题。本文不深入探讨神经网络的复杂理论,但将解释一些基本的概念,以便更好地理解代码实现。为了深入理解,本文内容尚不足够,需要参考更多标准资料。以下是一些与神经网络相关的基本概念。
神经网络的结构模仿了人脑神经元的工作方式,包含输入层、隐藏层和输出层。
如果还有疑问,请查看这个。接下来,将快速了解构建和训练神经网络所必需的一些概念。
仔细观察上面的动画。这是一个数字分类问题,输入是数字七。在前向传播过程中,将输入推送到输出层,通过隐藏层。还有一个有趣的观察:在整个过程中,只有部分隐藏层的神经元被激活。最终,可以观察到模型给出了输入是数字七的更高概率/预测。但如果模型训练得不好,模型有可能会给出错误的预测,引入错误。
反向传播算法主要包括两个步骤:1. 前向传播步骤,将输入推送通过神经网络以获得输出。2. 在反向传递过程中,计算输出层的损失函数的导数。然后应用链式法则,计算其他层中权重的梯度。计算出的梯度随后用于参数更新过程。
从上面的视频可以看出,在前几秒钟,看到的是前面解释过的前向传播,但之后,可以看到有东西从输出层向后传播,这实际上是模型在预测输出时犯的错误。要了解与反向传播相关的数学知识,请查看。
这是训练阶段的一个关键步骤,神经网络在此阶段从错误中学习并调整其特征以减少损失。如果不知道什么是权重和偏置,请以获得更好的直觉。神经网络使用优化算法,如梯度下降,来更新其权重,并找到损失最小的特定点。
在编码神经网络时,不必担心这些复杂的更新,因为有一个名为Autograd的函数将帮助计算权重和偏置的梯度。
激活函数在神经网络中扮演着关键角色。它们被广泛用于隐藏层的输出以及输出层。
常用的激活函数有: