main2.m

来自「matlab写的简单的联想网络实例」· M 代码 · 共 86 行

M
86
字号
%% p=[light meat]'
%  带记忆衰退的联想学习
%  通过双层网络可构造刺激达到一定积累后才形成的联想 
%       f=hardlim(w2*purelin(w1*p)-b)
%       w1在第一层有响应时改变,w2只做一个阈值处理

clear
clc

p1=[0 1]';
p2=[1 1]';
p3=[1 0]';
p4=[0 0]';

w=[0 1];  %!
r=0.1;

% f=hardlim(wp)
% w=(1-r)*w+r*a*p';

km=20;
k=0;
disp('no light,only meat');
while ~isequal(k,km)
    k=k+1;
    p=p1;
    a=hardlim(w*p-0.000001);
    w=(1-r)*w+r*a*p';
    disp(a);
end

k=0;
disp('only light,no meat');
while ~isequal(k,km)
    k=k+1;
    p=p3;
    a=hardlim(w*p-0.000001);
    w=(1-r)*w+r*a*p';
    disp(a);
end

k=0;
disp('meat with light');
while ~isequal(k,km)
    k=k+1;
    p=p2;
    a=hardlim(w*p-0.000001);
    w=(1-r)*w+r*a*p';
    disp(a);
end

k=0;
disp('only light,no meat');
while ~isequal(k,km)
    k=k+1;
    p=p3;
    a=hardlim(w*p-0.000001);
    w=(1-r)*w+r*a*p';
    disp(a);
end

k=0;
disp('--------------- no light no meat ---------------- 200 times');
while ~isequal(k,200)
    k=k+1;
    p=p4;
    a=hardlim(w*p-0.000001);
    w=(1-r)*w+r*a*p';
end
disp(a);

% 长时间无任何刺激,记忆消退,联想消失
% 先天的 meat->1 也消退了! 通过改变规则定义出不可衰退的先天规则

k=0;
disp('meat with light');
while ~isequal(k,km)
    k=k+1;
    p=p2;
    a=hardlim(w*p-0.000001);
    w=(1-r)*w+r*a*p';
    disp(a);
end

    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?