联想记忆网络
这类神经网络基于模式关联工作,这意味着它们可以存储不同的模式,并在输出时通过将输入模式与存储的模式匹配来产生其中一种存储模式。这类记忆也称为内容寻址存储器 (CAM)。联想记忆将存储的模式作为数据文件进行并行搜索。
以下是我们可以观察到的两种类型的联想记忆:
- 自联想记忆
- 异联想记忆
自联想记忆
这是一种单层神经网络,其中输入训练向量和输出目标向量相同。权重被确定,以便网络存储一组模式。
架构
如下图所示,自联想记忆网络的架构具有‘n’个输入训练向量和类似的‘n’个输出目标向量。
训练算法
对于训练,此网络使用Hebb或Delta学习规则。
步骤1 - 将所有权重初始化为零,如wij = 0 (i = 1 to n, j = 1 to 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 to 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 to n, j = 1 to 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 to 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}$$