TensorFlow 中的人工神经网络

2025年03月17日 | 阅读 9 分钟

神经网络或人工神经网络 (ANN) 的模型与人脑相同。人脑有思考和分析特定情况下任何任务的能力。

但机器如何像这样思考呢?为此,设计了一个称为神经网络的人工大脑。神经网络由许多感知器组成。

感知器是单层神经网络。它是一个二元分类器,属于监督学习。在人工神经网络中,生物神经元的简单模型称为感知器。

人工神经元有输入和输出。

Artificial Neural Network in TensorFlow

数学上感知器模型的表示。

Artificial Neural Network in TensorFlow

人脑有神经元传递信息,同样,神经网络有节点执行相同的任务。节点是数学函数。

神经网络基于生物神经网络的结构和功能。神经网络本身会根据输入和输出来改变或学习。流经系统的信息会影响人工神经网络的结构,因为它的学习和改进特性。

神经网络也被定义为

一个由几个简单、高度互连的处理单元组成的计算系统,它们通过对外部输入的动态状态响应来处理信息.

神经网络可以由多个感知器组成。有三层:

  • 输入层:输入层是来自数据的实际值。
  • 隐藏层:隐藏层位于输入层和输出层之间,其中三层或更多层构成深度网络。
  • 输出层:这是输出的最终估计。
Artificial Neural Network in TensorFlow

人工神经网络的类型

神经网络的工作方式与人类神经系统功能相同。有几种类型的神经网络。这些网络的实现基于用于确定输出的参数集和数学运算。

Artificial Neural Network in TensorFlow

前馈神经网络 (人工神经元)

FNN是 ANN 最纯粹的形式,其中输入和数据仅在一个方向上传输。数据仅向前流动;这就是为什么它被称为前馈神经网络。数据通过输入节点,然后从输出节点退出。节点没有循环连接。它不需要隐藏层。在 FNN 中,不需要有多个层。它也可以只有一层。

Artificial Neural Network in TensorFlow

它具有通过分类激活函数实现的前向传播。所有其他类型的神经网络都使用反向传播,但 FNN 不能。在 FNN 中,计算输入和权重的乘积之和,然后将其馈送到输出。人脸识别计算机视觉等技术使用 FNN。

径向基函数神经网络

RBFNN找到一个点到中心的距离,并认为它工作平滑。RBF 神经网络有两个层。在内层,特征与径向基函数结合。特征提供了一个用于考虑的输出。可以使用欧几里得距离以外的其他度量。

Artificial Neural Network in TensorFlow

径向基函数

  • 我们定义一个感受野 t。
  • 感受野周围绘制了迎面而来的映射。
  • 对于 RBF,通常使用高斯函数。所以我们可以定义径向距离r=||X-t||

径向函数=Φ(r) = exp (- r2/2σ2),其中 σ > 0

这种神经网络用于电力恢复系统。当今电力系统规模和复杂性不断增加。这两个因素都增加了发生大范围停电的风险。停电后,需要尽快可靠地恢复电力。

Artificial Neural Network in TensorFlow

多层感知器

多层感知器有三层或更多层。无法线性分离的数据使用此网络进行分类。该网络是全连接网络,这意味着每个节点都与下一层的所有其他节点连接。多层感知器中使用非线性激活函数。它的输入和输出层节点以有向图的形式连接。这是一种深度学习方法,因此它使用反向传播来训练网络。它广泛应用于语音识别和机器翻译技术。

Artificial Neural Network in TensorFlow

卷积神经网络

在图像分类和图像识别中,卷积神经网络起着至关重要的作用,或者我们可以说它是这些领域的主要类别。人脸识别、物体检测等是 CNN 广泛应用的领域。它与 FNN 类似,神经元中包含可学习的权重和偏置。

CNN 以图像作为输入,该图像被分类并处理到特定类别,例如狗、猫、狮子、老虎等。如我们所知,计算机将图像视为像素,并取决于图片的分辨率。根据图像分辨率,它会看到 h * w * d,其中 h=高度 w=宽度 d=维度。例如,RGB 图像是 6 * 6 * 3 的矩阵数组,灰度图像是 4 * 4 * 3 的模式数组。

在 CNN 中,每个输入图像都将通过一系列卷积层、池化层、全连接层、滤波器(也称为卷积核)。并应用 Soft-max 函数来以 0 和 1 的概率值对物体进行分类。

Artificial Neural Network in TensorFlow

循环神经网络

循环神经网络基于预测。在此神经网络中,特定层的输出被保存并反馈到输入。这将有助于预测该层的输出。在循环神经网络中,第一层与 FNN 的层以相同方式形成,在后续层中,循环神经网络过程开始。

输入和输出彼此独立,但在某些情况下,需要预测句子的下一个单词。

那么它将取决于句子的前一个单词。RNN 以其主要和最重要的特征而闻名,即隐藏状态。隐藏状态会记住序列的信息。

Artificial Neural Network in TensorFlow

RNN 具有存储计算后结果的内存。RNN 在所有隐藏层或数据上使用相同的参数执行相同的任务来产生输出。与其他神经网络不同,RNN 参数复杂度较低。

模块化神经网络

模块化神经网络中,几个不同的网络在功能上是独立的。在 MNN 中,任务被分解为子任务,并由几个系统执行。在计算过程中,网络之间不直接通信。所有接口都独立工作以实现输出。组合网络比平面和无限制的网络更强大。中间件获取每个系统的输出,处理它们以产生最终输出。

Artificial Neural Network in TensorFlow

序列到序列网络

它由两个循环神经网络组成。在这里,编码器处理输入,解码器处理输出。编码器和解码器可以使用相同或不同的参数。

序列到序列模型应用于聊天机器人、机器翻译和问答系统。

人工神经网络的组成部分

神经元

神经元类似于生物神经元。神经元只不过是激活函数。人工神经元或激活函数在执行分类任务时具有“开启”特性。我们可以说,当输入大于特定值时;输出应该改变状态,即从 0 到 1,-1 到 1 等。Sigmoid 函数是人工神经网络中常用的激活函数。

F (Z) = 1/1+EXP (-Z)

节点

生物神经元以分层网络连接,其中一些神经元的输出是其他神经元的输入。这些网络表示为互连的节点层。每个节点接收多个加权输入,并将它们应用于神经元以对这些输入的总和进行求和并生成输出。

Artificial Neural Network in TensorFlow

偏见

在神经网络中,我们根据给定的输入 (x) 预测输出 (y)。我们创建一个模型,即 (mx + c),它有助于我们预测输出。当我们训练模型时,它会自己找到常量 m 和 c 的适当值。

常量 c 是偏置。偏置以这样一种方式帮助模型,即它可以最好地拟合给定数据。我们可以说偏置赋予了自由度以发挥最佳水平。

算法

神经网络需要算法。生物神经元具有自我理解和工作能力,但人工神经元如何以相同的方式工作呢?为此,有必要训练我们的人工神经网络。为此,有许多算法被使用。每种算法都有不同的工作方式。

有五种算法用于训练我们的 ANN

  • 梯度下降
  • 牛顿法
  • 共轭梯度
  • 拟牛顿法
  • Levenberg Marquardt

梯度下降

梯度下降算法也称为最速下降算法。它是最直接的算法,需要梯度向量的信息。GD 算法是一种一阶方法。

为简单起见,我们将ƒ(w(i)) 表示为ƒ(i),将∇ƒ(w(i)) 表示为g(i)。该方法从 w(0) 开始,并沿着训练方向d(i)=-g(i)w(i)移动到w(i+1),直到满足停止准则。

所以梯度下降法迭代方式如下。

w(i+1) = w(i) - g(i)n(i)

牛顿法

牛顿法是一种二阶算法。它使用黑塞矩阵。其主要任务是利用损失函数的二阶导数找到更好的训练方向。

牛顿法迭代如下。

w(i+1) = w(i) - H(i)-1.g(i)对于 i = 0, 1.....

这里,H(i)-1.g(i) 称为牛顿步。参数的变化可能趋向于最大值而不是最小值。下面是使用牛顿法训练神经网络的图示。通过获得训练方向和合适的训练速率来改进参数。

共轭梯度

共轭梯度介于梯度下降和牛顿法之间。共轭梯度避免了牛顿法所需的与黑塞矩阵的评估、求逆以及存储相关的计算量。

在 CG 算法中,搜索在共轭方向上进行,这比梯度下降方向具有更快的收敛速度。训练是在关于黑塞矩阵的共轭方向上进行的。通过计算共轭训练方向,然后在该方向上进行适当的训练速率来改进参数。

Artificial Neural Network in TensorFlow

拟牛顿法

牛顿法的应用在计算方面成本很高。计算黑塞矩阵需要许多操作。为了解决这个缺点,开发了拟牛顿法。它也被称为可变矩阵方法。在算法的每次迭代中,它会建立一个逆黑塞矩阵的近似值,而不是直接计算黑塞矩阵。利用损失函数的一阶导数信息来计算近似值。

通过获得拟牛顿训练方向,然后找到令人满意的训练速率来改进参数。

Artificial Neural Network in TensorFlow

Levenberg Marquardt

Levenberg Marquardt 也称为阻尼最小二乘法。该算法专门设计用于处理损失函数。该算法不计算黑塞矩阵。它使用雅可比矩阵梯度向量

在 Levenberg Marquardt 中,第一步是找到损失、梯度和黑塞矩阵的近似值,然后调整阻尼参数。

人工神经网络的优点和缺点

ANN 的优点

  1. 它将信息存储在整个网络中,而不是数据库中。
  2. ANN 训练后,即使信息不完整,数据也能给出结果。
  3. 如果 ANN 的一个或多个单元损坏,也不会阻止 ANN 生成输出。
  4. ANN 具有分布式内存,有助于生成所需的输出。
  5. ANN 可以使机器具有学习能力。
  6. ANN 具有并行处理能力,这意味着它可以同时执行多个任务。

ANN 的缺点

  1. 根据其结构,它需要具有并行处理能力的处理器。
  2. 网络不可解释的行为是 ANN 的主要问题。当 ANN 产生试探性解决方案时,它不会给出任何提示。
  3. 对于 ANN 结构的确定,没有提供具体的规则。
  4. 没有关于网络持续时间的信息。
  5. 将问题展示给网络非常困难。