联想记忆网络

这类神经网络基于模式联想工作,这意味着它们可以存储不同的模式,并且在给出输出时,它们可以通过将存储的模式与给定的输入模式进行匹配来生成其中一种模式。这些类型的记忆也称为内容可寻址记忆 (CAM)。联想记忆使用存储的模式作为数据文件进行并行搜索。

以下是我们可以观察到的两种联想记忆类型 −

  • 自动联想记忆
  • 异联想记忆

自动联想记忆

这是一个单层神经网络,其中输入训练向量和输出目标向量相同。权重的确定使得网络存储一组模式。

架构

如下图所示,自动联想记忆网络的架构具有 'n' 个输入训练向量和类似 'n' 个输出目标向量。

自动联想记忆

训练算法

对于训练,该网络使用 Hebb 或 Delta 学习规则。

步骤 1 − 将所有权重初始化为零,因为 wij = 0 (i = 1 到 n, j = 1 到 n)

步骤 2 −对每个输入向量执行步骤 3-4。

步骤 3 − 激活每个输入单元,如下所示 −

$$x_{i}\:=\:s_{i}\:(i\:=\:1\:to\:n)$$

步骤 4 − 激活每个输出单元,如下所示 −

$$y_{j}\:=\:s_{j}\:(j\:=\:1\:to\:n)$$

步骤 5 −调整权重如下 −

$$w_{ij}(new)\:=\:w_{ij}(old)\:+\:x_{i}y_{j}$$

测试算法

步骤 1 − 为 Hebb 规则设置训练期间获得的权重。

步骤 2 − 对每个输入向量执行步骤 3-5。

步骤 3 − 将输入单元的激活设置为等于输入向量的激活。

步骤 4 −计算每个输出单元的净输入j = 1 到 n

$$y_{inj}\:=\:\displaystyle\sum\limits_{i=1}^n x_{i}w_{ij}$$

步骤 5 − 应用以下激活函数计算输出

$$y_{j}\:=\:f(y_{inj})\:=\:\begin{cases}+1 & if\:y_{inj}\:>\:0\-1 & if\:y_{inj}\:\leqslant\:0\end{cases}$$

异联想记忆

与自联想记忆网络类似,这也是一个单层神经网络。但是,在这个网络中,输入训练向量和输出目标向量并不相同。权重的确定使得网络存储一组模式。异联想网络本质上是静态的,因此不存在非线性和延迟操作。

架构

如下图所示,异联想记忆网络的架构具有'n'个输入训练向量和'm'个输出目标向量。

异联想记忆

训练算法

对于训练,该网络使用 Hebb 或 Delta 学习规则。

步骤 1 − 将所有权重初始化为零,因为 wij = 0 (i = 1 到 n, j = 1 到 m)

步骤 2 − 对每个输入向量执行步骤 3-4。

步骤 3 − 激活每个输入单元,如下所示 −

$$x_{i}\:=\:s_{i}\:(i\:=\:1\:to\:n)$$

步骤 4 −激活每个输出单元如下 −

$$y_{j}\:=\:s_{j}\:(j\:=\:1\:to\:m)$$

步骤 5 − 调整权重如下 −

$$w_{ij}(new)\:=\:w_{ij}(old)\:+\:x_{i}y_{j}$$

测试算法

步骤 1 − 为 Hebb 规则设置训练期间获得的权重。

步骤 2 − 对每个输入向量执行步骤 3-5。

步骤 3 −将输入单元的激活设置为等于输入向量的激活。

步骤 4 − 计算每个输出单元的净输入 j = 1 到 m;

$$y_{inj}\:=\:\displaystyle\sum\limits_{i=1}^n x_{i}w_{ij}$$

步骤 5 − 应用以下激活函数计算输出

$$y_{j}\:=\:f(y_{inj})\:=\:\begin{cases}+1 & if\:y_{inj}\:>\:0\0 & if\:y_{inj}\:=\:0\-1 & if\:y_{inj}\:<\:0\end{cases}$$