📜  自关联神经网络

📅  最后修改于: 2022-05-13 01:58:07.545000             🧑  作者: Mango

自关联神经网络

自关联神经网络是输入和输出向量相同的神经网络类型。这些是用于模拟和探索关联过程的特殊类型的神经网络。该架构中的关联来自一组称为单元的简单处理元素的指令,这些元素通过加权连接连接。

在这些网络中,我们进行了训练以存储双极或二元向量。如果输入与其相似,则可以从失真或有噪声的向量中检索存储的向量。

建筑学

AANN 包含五层感知器前馈网络,可分为两个 3 层的神经网络,每层串联连接(类似于自动编码器架构)。该网络由一个输入层、一个隐藏层和一个瓶颈层组成。这个瓶颈层在网络和网络的关键组件之间是常见的。它通过强大的特征提取功能为输入和拓扑提供数据压缩。瓶颈层之后是第二个非线性隐藏层和第二个网络的输出层。

自关联神经网络架构

第一个网络将 n 维向量的信息压缩为更小的维度向量,这些向量包含较少数量的特征变量并代表整个过程。第二个网络与第一个网络相反,使用压缩信息重新生成原始的 n 个冗余度量。

算法

我们将在算法中使用 Hebb Rule 来设置权重,因为输入和输出向量完全相关,因为输入和输出都具有相同数量的输出单元和输入单元。



赫布法则:

  • 当 A 和 B 正相关时,则增加它们之间的联系强度。
  • 当 A 和 B 呈负相关时,则降低它们之间的联系强度。
  • 在实践中,我们使用以下公式来设置权重:

W = \sum_{p=1}^{p} S^{T}(p) S(p)

  • 其中,W = 加权矩阵
  • T=学习率
  • S(p) : p 不同的 n 维原型模式

训练算法

  1. 初始化i= 1,2,3 …nj= 1,2,3 …n 的所有权重,使得: w ij =0
  2. 对于要存储的每个向量,重复以下步骤:
  3. 为每个输入单元设置激活i= 1 到 n: x i = s i
  4. 为每个输出单元 j = 1 到 n设置激活: y j = s j
  5. 更新i= 1,2,3 ...nj= 1,2,3 ...n的权重,使得: w ij (new) = w ij (old) + x i y j

测试/推理算法:

为了测试输入对模型来说是“已知”还是“未知”,我们需要执行以下步骤:

  1. 使用 Hebb 规则获取在训练阶段生成的权重。
  2. 对于每个输入向量执行以下步骤:
  3. 将输入单元中的激活设置为等于输入向量。
  4. 以输出单位为j= 1,2,3 …n设置激活 y-in_{j} = \sum_{i}x_{i}w_{ij}
  5. 对 j= 1, 2, 3 ... n 应用激活函数:

y_j = f(y-in_{j}) = \begin{Bmatrix} 1  \, \, if \, y-in_{j} >0 \\ -1  \,  \, if \, y-in_{j} \leq 0 \end{Bmatrix}

如果激活后的输出单元生成与存储在其中的模式相同的模式,则 AANN 将输入向量识别为已知

存储容量

  • AANN 的重要特征之一是在网络开始遗忘之前可以存储的模式数量。
  • 网络中可以存储的向量数量称为网络的容量。
  • 向量的容量取决于它们之间的关系,即如果它们相互正交,则可以存储更多的向量。一般可以存储n-1个具有n个分量的相互正交的向量。

应用

自关联神经网络可用于许多领域:

  • 模式识别
  • 生物信息学
  • 语音识别
  • 信号验证等

参考:

  • 关于自动关联的 RIT 演示