构建模块

2025年3月17日 | 阅读 8 分钟

神经网络由更短的模块或构建块组成,就像物质中的原子和电子电路中的逻辑门一样。一旦我们知道这些块是什么,我们就可以将它们组合起来解决各种问题。

人工神经网络的处理取决于以下三个构建块:

  • 网络拓扑
  • 权重调整或学习
  • 激活函数

在本教程中,我们将详细讨论 ANN 的这三个构建块。

网络拓扑

神经网络的拓扑结构是指神经元关联的方式,它是网络功能和学习的一个重要因素。无监督学习中常见的拓扑结构是将输入直接映射到代表类别的单元组,例如自组织映射。监督学习中最广泛认可的拓扑结构是完全连接的三层前馈网络(反向传播、径向基函数网络)。所有输入值都与隐藏层中的所有神经元关联(隐藏层之所以隐藏是因为它们在输入或输出中不明显),隐藏神经元的输出与输出层中的所有神经元关联,并且输出神经元的激活函数确定整个网络的输出。这种网络之所以广为人知,部分原因在于理论上它们被认为是通用函数逼近器,例如 sigmoid 或高斯函数。

前馈网络

分层前馈网络的发展始于 **1950 年代**后期,由 **Rosenblatt 的**感知器和 **Widrow 的**自适应线性元件(ADALINE)提出。感知器和 ADALINE 可以定义为单层网络,通常被称为单层感知器。单层感知器只能解决线性可分离问题。单层网络的局限性促使了具有至少一个隐藏层的多层前馈网络的发展,称为多层感知器 (MLP) 网络。MLP 网络克服了单层感知器的各种局限性,并且可以利用反向传播算法进行训练。反向传播方法曾多次被独立发明。

1974 年,Werbos 创建了一种反向传播训练算法。然而,Werbos 的工作在科学界仍然鲜为人知,直到 1985 年,Parker 重新发现了这项技术。Parker 发表他的发现后不久,Rumelhart、Hinton 和 Williams 也重新发现了这项方法。正是 Rumelhart 和并行分布式处理 (PDP) 团队其他成员的努力,使反向传播方法成为神经计算的支柱。

单层前馈网络

Rosenblatt 于 20 世纪 50 年代末和 90 年代初首次构建了单层前馈网络。前馈人工神经网络的概念只有一个加权层。换句话说,我们可以说输入层与外层完全关联。

Building Blocks

多层前馈网络

多层前馈神经网络是感知器的链接,其中信息和计算流是单向的,从输入数据到输出。神经网络中的总层数与感知器的总层数相同。最简单的神经网络是一个具有单个输入层和感知器输出层的网络。前馈人工神经网络的概念具有多个加权层。由于系统在输入层和输出层之间至少有一层,因此称为隐藏层。

反馈网络

基于反馈的预测是指以迭代方式对结果进行近似,其中每次迭代的操作都取决于当前结果。反馈是不同领域(从控制假设到心理学)中进行预测的常见方式。生物有机体也利用反馈关联,大脑提出它在复杂认知中起着至关重要的作用。

换句话说,我们可以说反馈网络具有反馈路径,这意味着信号可以使用循环双向流动。它形成一个非线性动态系统,该系统不断变化直到达到平衡状态。它可以分为以下类型:

循环网络

人脑是一个循环神经网络,指的是具有反馈连接的神经元网络。它可以学习许多行为、序列、处理任务算法和程序,这些是传统学习技术无法学习的。这解释了对用于技术应用的人工循环网络日益增长的兴趣。例如,可以学习算法将输入排列映射到输出排列的通用计算机,无论是否有指导者。它们在计算上更具优势,在生物学上比其他自适应方法更可行。例如,隐马尔可夫模型(没有连续内部状态)、前馈网络和支持向量机(没有内部状态)。

Building Blocks

全循环网络

全循环神经网络最直接的形式是多层感知器 (MLP),它具有前一组隐藏单元激活,并与输入一起反馈。换句话说,它是最简单的神经网络设计,因为所有节点都与所有其他节点相关联,并且每个节点都充当输入和输出。

Building Blocks

请注意,时间“t”必须离散化,激活在每个时间间隔更新。时间尺度可能与真实神经元的活动相符,或者对于人工系统而言,只要步长适合给定问题即可使用。应引入延迟单元以保持激活,直到它们在下一个时间间隔准备好。

乔丹网络

乔丹网络是指一种简单的神经结构,其中只有过程输入信号的一个值(来自前一次采样)和模型延迟输出信号的一个值(来自前一次采样)被用作网络的输入。为了获得计算简单的 MPC(模型预测控制)算法,非线性乔丹神经模型在线围绕一个操作点重复线性化,这导致一个二次优化问题。所描述的 MPC 算法的有效性与在每个采样瞬间执行在线非线性优化的非线性 MPC 方案的有效性进行了比较。

Building Blocks

权重调整或学习

人工神经网络中的学习是改变指定网络神经元之间关联权重的一种技术。人工神经网络中的学习可以分为三种不同的类别,即监督学习、无监督学习和强化学习。

监督学习

监督学习由监督和学习两个词组成。监督意在指导。我们有主管,他们的职责是指导和指明方向。在学习的情况下,我们也可以看到类似的情况。在这里,机器或程序在现有数据集的帮助下进行学习。我们有一个数据集,我们根据现有数据集的行为来假设新数据的结果。这意味着现有数据集充当监督者或老板来查找新数据。一个基本的例子是电子产品价格预测。电子产品的价格是根据观察到的其他数字产品的价格来预测的。

在监督学习下训练人工神经网络期间,输入向量被提供给网络,该网络提供一个输出向量。之后,输出向量与期望输出向量进行比较。如果实际输出与期望输出向量之间存在差异,则会产生错误信号。基于此错误信号,调整权重,直到实际输出与期望输出匹配。

Building Blocks

无监督学习

顾名思义,无监督学习指的是在没有任何监督或现有数据帮助的情况下预测某些东西。在这种学习中,程序通过将具有相似特征的数据划分为相似的组来进行学习。在监督学习中,数据根据相似的特征进行分组。在这种情况下,没有现有数据可供参考。换句话说,没有监督者。在无监督学习下训练人工神经网络期间,比较类型的输入向量被组合以形成聚类。当应用新的输入模式时,神经网络会给出输出响应,显示输入模式所属的类别。环境没有关于理想输出应该是什么以及它是正确还是不正确的反馈。因此,在这种类型的学习中,网络本身必须从输入数据中找到模式和特征,以及输入数据在输出上的连接。

Building Blocks

强化学习

强化学习 (RL) 是一种有助于解决控制优化问题的技术。通过使用控制优化,我们可以识别系统访问的每个状态中的最佳动作,以优化某个目标函数。通常,当系统具有大量状态并且具有复杂的随机结构时,强化学习就会出现,这种结构无法进行封闭形式分析。如果问题具有相对较少的状态,则随机结构相对简单,因此可以使用动态规划。

Building Blocks

顾名思义,这种学习用于加强对某些分析师数据的网络。这种学习过程类似于监督学习。但是,我们可能掌握的信息非常少。在强化学习中,在网络训练期间,网络会从系统获得一些反馈。这使得它与监督学习非常相似。这里获得的反馈是评估性的,而不是指导性的,这意味着没有像监督学习中那样的指导者。在获得反馈后,网络会修改权重,以便将来获得更好的分析师数据。

激活函数

激活函数是指神经网络中用于计算输入和偏差的加权和的函数,用于选择神经元是否可以被激发。它通过一些梯度处理(通常是梯度下降)控制呈现的信息。它为神经网络生成包含数据中参数的输出。

激活函数可以是线性的也可以是非线性的,这取决于它所显示的函数。它用于控制跨各种领域(如语音识别、分割、指纹检测、癌症检测系统等)的外部神经网络的输出。

在人工神经网络中,我们可以对输入使用激活函数以获得精确的输出。这些是一些在 ANN 中使用的激活函数。

线性激活函数

线性激活函数的方程与直线方程相同,即

Y= MX+ C

如果我们有许多层并且所有层都是线性的,那么最后一层的最终激活函数与第一层的线性函数相同。线性函数的范围是 –无穷大到 +无穷大。

线性激活函数只能在一个地方使用,即输出层。

Sigmoid 函数

Sigmoid 函数是指被投射为 S 形图的函数。

A = 1/(1+e-x)

这个函数是非线性的,x 的值介于 -2 到 +2 之间。因此 X 的值与 Y 的值成正比。这意味着 x 值的微小变化也会导致 y 值的变化。

Tanh 函数

比 Sigmoid 函数更有效的激活函数是 Tanh 函数。Tanh 函数也称为双曲正切函数。它是 Sigmoid 函数的数学更新版本。Sigmoid 和 Tanh 函数彼此相似,并且可以相互推导。

F(x)= tanh(x) = 2/(1+e-2X) - 1

Tanh (x) = 2 * sigmoid(2x) - 1

这个函数是非线性的,值范围介于 -1 到 +1 之间


下一个主题遗传算法