双向联想记忆(BAM)是一种由Bart Kosko于1988年提出的递归神经网络。它是一种联想记忆形式,以异联想方式存储模式,这意味着给定一个层中的模式,它可以检索另一层中的对应模式,该模式的大小可能不同。这与自联想记忆(如Hopfield网络)形成对比,后者返回相同大小的模式。BAM是双向的,因为它可以响应来自输入层或输出层的输入,使用权重矩阵及其转置进行前向和后向回忆。
拓扑结构
BAM由两层神经元组成,分别记为X和Y,它们彼此全连接。一旦权重建立,向X层输入一个模式会在Y层产生一个模式,反之亦然。连接是双向的:从X层发送到Y层的权重矩阵记为W,而从Y层到X层的信号权重矩阵是W的转置W^T。因此,权重矩阵在两个方向上使用,实现了对称回忆。
学习
为了存储关联,模式首先转换为双极形式(1和-1)。例如,要存储两个关联A1:B1和A2:B2,其中A1 = (1, 0, 1, 0, 1, 0)且B1 = (1, 1, 0, 0),其双极形式为X1 = (1, -1, 1, -1, 1, -1)和Y1 = (1, 1, -1, -1)。类似地,A2 = (1, 1, 1, 0, 0, 0)和B2 = (1, 0, 1, 0)变为X2 = (1, 1, 1, -1, -1, -1)和Y2 = (1, -1, 1, -1)。权重矩阵M计算为每对外积之和:M = Σ X_i^T Y_i。对于该示例,这产生一个6x4矩阵,其条目如2、0、-2等,反映了输入和输出模式之间的相关性。
回忆
要检索一个关联,将输入模式乘以权重矩阵。例如,将A1(双极形式)乘以M得到(4, 2, -2, -4),应用阈值(正值变为1,负值变为0)后得到(1, 1, 0, 0),即B1。反向关联通过将输出模式乘以M的转置获得,允许从Y到X进行回忆。
容量
BAM的存储容量由min(m, n)给出,其中n是X层中的单元数,m是Y层中的单元数。内部权重矩阵具有n x p个独立自由度,其中n是第一个向量的维度(例如,6),p是第二个向量的维度(例如,4)。这允许BAM可靠地存储和回忆最多min(n, p)个独立向量对;在示例中,min(6, 4) = 4。容量可以超过此限制增加,但以可靠性为代价,会在输出中引入错误位。
稳定性
一对(A, B)定义了BAM的状态。要使模式被存储,其能量函数值必须占据能量景观中的最小值。Kosko为双向情况提出了李雅普诺夫(能量)函数E(A, B) = -A M B^T。当呈现一个配对模式时,神经元改变状态,直到达到双向稳定状态(A_f, B_f),Kosko证明了这对应于能量函数的局部最小值。离散BAM保证收敛到稳定状态。对于A = B的特殊情况,能量函数简化为E(A, A) = -A M A^T,这与Hopfield网络的自联想能量函数相匹配。