1、实验2 双向联想记忆一、实验目的熟悉Kosko型双向联想记忆网络的原理与结构,通过仿真实验掌握具体的实现方法,了解该网络的功能及性能,加深对该类网络的稳定状态和能量函数等概念的理解。二、实验原理联想记忆功能分为自联想和异联想,异联想也称为双向联想记忆,简写为BAM。BAM存储器可存储两组矢量,若有如下N维矢量A和P维矢量B:A=a0,a1,aN-1T-1,1NB=b0,b1,bP-1T-1,1P构成M对矢量As,Bs,s=0,1,M-1,给定A可经联想得到对应的标准样本B,当有噪声或残缺时,联想功能可使样本对复原。如图1所示,与矢量A相应的一层有N个节点,另一层对应矢量B,有P个节点,两层间双
2、向连接。假定B到A的传输为正向,正向的权矩阵为W。如果输入矢量由上层加入,且相应于网络中B的稳定状态,则经W之作用产生A稳定状态。当任意矢量输入时,网络要经若干次次迭代计算演变至稳态,过程可示意为:WBtAt+1WTAt+1Bt+2WBt+2At+3直至A、B为稳态,演变过程结束。网络学习遵从Hebb规则,若给定M个双极性矢量对:A0,B0,A1,B1,(AM-1,BM-1)则正,反向权矩阵为:W=s=0M-1As,BsTWT=s=0M-1Bs,AsT如果BAM网络神经元函数值为0,则称为齐次BAM网络,其能量函数为:EA,B=-12ATWB-12BTWTA=-ATWB三、实验内容及步骤2、连
3、接权值W= 4 2 2 -2 0 -2 0 -2 4 0 2 0 0 -4 2 0 2 0 2 -2 2 0 0 0 2 0 -2 -4 2 2 -2 -4 0 0 2 0 2 0 -2 -2 0 2 2 2 -4 -2 0 2 0 0 -2 0 0 0 -2 0 2 4 -2 -2 0 2 -2 2 0 2 -4 -2 0 4 -2 0 -4 0 2 4 -2 0 -2 2 4 2 2 -2 0 -2 0 -2 4 0 0 -2 2 -2 0 -2 4 2 0 -4 0 -2 2 2 0 -2 0 -2 0 0 -2 -4 0 0 2 0 2 0 -2 -2 2 4 0 0 -2 0 -2
4、0 2 2 0 2 -2 -2 0 2 0 2 0 0 0 2 -2 2 0 2 -4 -2 0 4稳定状态能量值:E=-158 -142 -158 -1463、验证网络的联想能力对B2采用W进行迭代直到稳定求得的A2与原A2相同。对A3采用W进行迭代直到稳定求得的B3与原B3相同。4、验证网络抗噪能力取A1畸变度为3,观察10次输出,显示能量correct:1 and energy:-82 -158correct:1 and energy:-90 -158correct:0 and energy:-98 -146correct:1 and energy:-90 -158correct:1 a
5、nd energy:-106 -158correct:1 and energy:-98 -158correct:1 and energy:-98 -158correct:1 and energy:-98 -158correct:1 and energy:-98 -158 -158 -158correct:1 and energy:-98 -1585、噪声大小对联想能力的影响分别对A取反 1到3 位数各验证300 次:the degree of accuracy from A1 to A4: 1bit 2bits 3bits 1.0000 0.9733 0.8400 1.0000 0.9567
6、0.8067 0.9100 0.7600 0.56331.0000 0.8833 0.5767分别对B取反 1到3 位数验证100 次:the degree of accuracy from B1 to B4: 1bit 2bits 3bits 1.0000 0.7000 0.3200 0.8200 0.7200 0.3500 0.9400 0.5500 0.1600 0.7600 0.6400 0.1600四、实验思考题1、在实验步骤4中观察网络能量E是如何变化的?根据网络机理说明原因。从步骤4中可以看出,网络能量E随迭代的次数而减小。这是因为双向联想网络是Hopfield网络的一种,网络总
7、是朝着能量函数E减小的方向运动,且达到稳态时,E取极小值。2、如果我们想要“擦除”存储矢量中的某对(Ai,Bi),应如何调整网络? 双向联想记忆网络特性主要体现在权值W上,如果想要“擦除”存储矢量中的某对(Ai,Bi),取:W=W-AiBiT3、通过总结第5步和第6步的实验结果,得出什么结论?简要解释其中的原因。随着矢量位取反的位数增多,噪声增大,网络联想正确率剧烈下降,说明网络恢复的记忆力是有限的。这种二进制的存储映射是一对一的,容差性差。五、实验结论对于Kosko型其次双向联想记忆网络:1 随着时间的推移,网络在状态空间中总是朝着能量函数减小的方向移动,当网络达到稳定时,能量取得极小值。2
8、 随着网络噪声的增大,网络联想正确率下降,同时说明网络恢复的记忆力是有限的。六、MATLAB源程序clear;clcdisp(实验步骤2 显示连接权矩阵及能量值);A= A1 A2 A3 A4 ;B= B1 B2 B3 B4 ;W=zeros(15,10);for s=1:4W=W+A(:,s)*B(:,s);endWE=zeros(4,1);% E= diag(-A*W*B);for s=1:4E(s)=-A(:,s)*W*B(:,s);endEclear E sdisp(实验步骤3 验证网络联想能力)disp(1 choose B2 to test)B2_fo=B2; B2_la=1;A2
9、_fo=2; A2_la=3;while isequal(A2_fo,A2_la)|isequal(B2_fo,B2_la)A2_fo=hardlims(W*B2_fo);B2_la=hardlims(W*A2_fo);A2_la=hardlims(W*B2_la);B2_fo=hardlims(W*A2_la);enddisp(correct or not : )disp(isequal(A2,A2_la)&isequal(B2,B2_la)clear B2_fo B2_la A2_fo A2_la disp(2 choose A3 to test)A3_fo=A3;A3_la=1;B3_f
10、o=2;B3_la=3;while (isequal(A3_fo,A3_la)&isequal(B3_fo,B3_la)B3_fo=hardlims(W*A3_fo);A3_la=hardlims(W*B3_fo);B3_la=hardlims(W*A3_la);A3_fo=hardlims(W*B3_la);enddisp(correct or not : )disp(isequal(A3,A3_la)&isequal(B3,B3_la)clear B3_fo B3_la A3_fo A3_la disp(实验步骤4 验证网络的抗噪能力)disp(取 A1 畸变度为3,观察10次输出,显示能
11、量)for qbx=1:10A1_zs= A1.*(1-2*randerr(1,15,3);A1_fo=A1_zs;Ezs=;A1_la=1;B1_fo=2;B1_la=3;while (isequal(A1_fo,A1_la)&isequal(B1_fo,B1_la)B1_fo=hardlims(W*A1_fo);ezs=-A1_fo*W*B1_fo;Ezs=Ezs,ezs;A1_la=hardlims(W*B1_fo);B1_la=hardlims(W*A1_la);ezs=-A1_la*W*B1_la;Ezs=Ezs,ezs;A1_fo=hardlims(W*B1_la);endstat
12、e3=isequal(A1,A1_la)&isequal(B1,B1_la);disp(strcat(correct:,num2str(state3), and energy:),num2str(Ezs);endclear B1_fo B1_la A1_fo A1_la state3 ezs Ezs A1_zsdisp(实验步骤5 噪声大小对联想能力的影响)disp(分别对A取反 1到3 位数各验证300 次)times=300 300 300;%循环次数向量for qbx123=1:3 %取反1到3位数 %分别取出times各项 state4=0; %验证正确与否的状态矩阵,用0和1表示 for qbxa=1:4 %分别取出A的每一列,即A1到A4进行操作 for qbx=1:times(qbx123) %循环次数 A_zs= A(:,qbxa).*(1-2*randerr(1,15,qbx123);%随机位取反 A_fo=A_zs; %输入矢量Ai A_la=3;B_fo=1;B_la=2;%声明迭代过程矢量while (isequal(A_fo,A_la)&isequal(B_fo,B_la) %Ai和Bi迭代后状态稳定了吗B_fo=hardlims(W*A_fo);A_la=hardlims(W*B_fo);B_la=hardlims(W*A_la);A_fo
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1