📄 nnd11bc.m
字号:
nnsound(blp);
nnpause(pause_time);
set(vars(2),'color',nndkblue);
set(t_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
set(state1,'color',nndkblue);
set(p_marker,'color',nnltgray);
set(t_marker,'color',nnltgray);
nnsound(blp);
nnpause(pause_time)
set(state_ptr,'userdata',2);
set(go_button,'string','Simulate');
set(p_ptr,'userdata',p);
set(t_ptr,'userdata',t);
% SIMULATE
% ========
elseif (state == 2)
p = get(p_ptr,'userdata');
t = get(t_ptr,'userdata');
W1 = get(W1_ptr,'userdata');
b1 = get(b1_ptr,'userdata');
W2 = get(W2_ptr,'userdata');
b2 = get(b2_ptr,'userdata');
% A1
a1 = logsig(W1*p+b1);
set(state2,'color',nngreen);
set(vars(3),'color',nnwhite);
set(vars(4),'color',nnwhite);
set(vars(5),'color',nnwhite);
nnsound(blip);
nnpause(pause_time)
set(a11_name,'color',nnwhite);
set(a12_name,'color',nnwhite);
set(fp1_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'logsig(W1*p+b1)';
set(vals(3),'color',nnltgray);
set(vals(3),'string',str);
set(vals(3),'color',nndkblue);
nnsound(blp);
nnpause(pause_time);
str = sprintf('logsig(W1*p+b1) = [%5.3f; %5.3f]',a1(1),a1(2));
set(vals(3),'color',nnltgray);
set(vals(3),'string',str);
set(vals(3),'color',nndkblue);
nnsound(blp);
nnpause(1);
set(a11_name,'color',nndkblue);
set(a12_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
% A2
a2 = W2*a1+b2;
set(a2_name,'color',nnwhite);
set(fp2_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'purelin(W2*a1+b2)';
set(vals(4),'color',nnltgray);
set(vals(4),'string',str);
set(vals(4),'color',nndkblue);
nnsound(blp);
nnpause(pause_time);
str = sprintf('purelin(W2*a1+b2) = %5.3f',a2);
set(vals(4),'color',nnltgray);
set(vals(4),'string',str);
set(vals(4),'color',nndkblue);
nnsound(blp);
nnpause(pause_time);
set(a2_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
% E
e = t-a2;
set(e_name,'color',nnwhite);
set(fp3_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 't-a2';
set(vals(5),'color',nnltgray);
set(vals(5),'string',str);
set(vals(5),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('t-a2 = %5.3f',e);
set(vals(5),'color',nnltgray);
set(vals(5),'string',str);
set(vals(5),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(e_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
set(vars(3),'color',nndkblue);
set(vars(4),'color',nndkblue);
set(vars(5),'color',nndkblue);
set(fp1_marker,'color',nnltgray);
set(fp2_marker,'color',nnltgray);
set(fp3_marker,'color',nnltgray);
set(state2,'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(state_ptr,'userdata',3);
set(go_button,'string','Backprop');
set(a1_ptr,'userdata',a1);
set(a2_ptr,'userdata',a2);
set(e_ptr,'userdata',e);
% BACKPROPAGATE
% =============
elseif (state == 3)
a1 = get(a1_ptr,'userdata');
a2 = get(a2_ptr,'userdata');
e = get(e_ptr,'userdata');
W1 = get(W1_ptr,'userdata');
b1 = get(b1_ptr,'userdata');
W2 = get(W2_ptr,'userdata');
b2 = get(b2_ptr,'userdata');
% S2
s2 = -2*e;
set(state3,'color',nngreen);
set(vars(6),'color',nnwhite);
set(vars(7),'color',nnwhite);
nnsound(blip);
nnpause(pause_time)
set(s2_name,'color',nnwhite);
set(bp1_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = '-2*dpurelin(n2)/dn2*e';
set(vals(6),'color',nnltgray);
set(vals(6),'string',str);
set(vals(6),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('-2*dpurelin(n2)/dn2*e = %5.3f',s2);
set(vals(6),'color',nnltgray);
set(vals(6),'string',str);
set(vals(6),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(s2_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
% S1
s1 = (1-a1).*a1.*(W2'*s2);
set(s11_name,'color',nnwhite);
set(s12_name,'color',nnwhite);
set(bp2_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'dlogsig(n1)/dn1*W2''*s2';
set(vals(7),'color',nnltgray);
set(vals(7),'string',str);
set(vals(7),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('dlogsig(n1)/dn1*W2''*s2 = [%5.3f;%5.3f]',...
s1(1),s1(2));
set(vals(7),'color',nnltgray);
set(vals(7),'string',str);
set(vals(7),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(s11_name,'color',nndkblue);
set(s12_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
set(vars(6),'color',nndkblue);
set(vars(7),'color',nndkblue);
set(bp1_marker,'color',nnltgray);
set(bp2_marker,'color',nnltgray);
set(state3,'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(state_ptr,'userdata',4);
set(go_button,'string','Update');
set(s1_ptr,'userdata',s1);
set(s2_ptr,'userdata',s2);
% UPDATE
% ======
elseif (state == 4)
p = get(p_ptr,'userdata');
a1 = get(a1_ptr,'userdata');
a2 = get(a2_ptr,'userdata');
e = get(e_ptr,'userdata');
W1 = get(W1_ptr,'userdata');
b1 = get(b1_ptr,'userdata');
W2 = get(W2_ptr,'userdata');
b2 = get(b2_ptr,'userdata');
s1 = get(s1_ptr,'userdata');
s2 = get(s2_ptr,'userdata');
lr = 0.1;
% W1
W1 = W1-lr*s1*p';
set(state4,'color',nngreen);
set(vars(8),'color',nnwhite);
set(vars(9),'color',nnwhite);
set(vars(10),'color',nnwhite);
set(vars(11),'color',nnwhite);
nnsound(blip);
nnpause(pause_time)
set(W11_name,'color',nnwhite);
set(W12_name,'color',nnwhite);
set(W1_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'W1-lr*s1*p''';
set(vals(8),'color',nnltgray);
set(vals(8),'string',str);
set(vals(8),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('W1-lr*s1*p'' = [%5.3f;%5.3f]',...
W1(1),W1(2));
set(vals(8),'color',nnltgray);
set(vals(8),'string',str);
set(vals(8),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(W11_name,'color',nndkblue);
set(W12_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
% b1
b1 = b1-lr*s1;
set(b11_name,'color',nnwhite);
set(b12_name,'color',nnwhite);
set(b1_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'b1-lr*s1';
set(vals(9),'color',nnltgray);
set(vals(9),'string',str);
set(vals(9),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('b1-lr*s1 = [%5.3f;%5.3f]',...
b1(1),b1(2));
set(vals(9),'color',nnltgray);
set(vals(9),'string',str);
set(vals(9),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(b11_name,'color',nndkblue);
set(b12_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
% W2
W2 = W2-lr*s2*a1';
set(W21_name,'color',nnwhite);
set(W22_name,'color',nnwhite);
set(W2_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'W2-lr*s2*a1''';
set(vals(10),'color',nnltgray);
set(vals(10),'string',str);
set(vals(10),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('W2-lr*s2*a1'' = [%5.3f;%5.3f]',...
W2(1),W2(2));
set(vals(10),'color',nnltgray);
set(vals(10),'string',str);
set(vals(10),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(W21_name,'color',nndkblue);
set(W22_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
% b2
b2 = b2-lr*s2;
set(b2_name,'color',nnwhite);
set(b2_marker,'color',nngreen);
nnsound(blip);
nnpause(pause_time)
str = 'b2-lr*s2';
set(vals(11),'color',nnltgray);
set(vals(11),'string',str);
set(vals(11),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
str = sprintf('b2-lr*s2 = %5.3f',b2);
set(vals(11),'color',nnltgray);
set(vals(11),'string',str);
set(vals(11),'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(b2_name,'color',nndkblue);
nnsound(bloop);
nnpause(pause_time)
set(vars(8),'color',nndkblue);
set(vars(9),'color',nndkblue);
set(vars(10),'color',nndkblue);
set(vars(11),'color',nndkblue);
set(W1_marker,'color',nnltgray);
set(b1_marker,'color',nnltgray);
set(W2_marker,'color',nnltgray);
set(b2_marker,'color',nnltgray);
set(state4,'color',nndkblue);
nnsound(blp);
nnpause(pause_time)
set(state_ptr,'userdata',5);
set(go_button,'string','Continue');
set(W1_ptr,'userdata',W1);
set(b1_ptr,'userdata',b1);
set(W2_ptr,'userdata',W2);
set(b2_ptr,'userdata',b2);
% CONTINUE
% ========
elseif (state == 5)
W1 = get(W1_ptr,'userdata');
b1 = get(b1_ptr,'userdata');
W2 = get(W2_ptr,'userdata');
b2 = get(b2_ptr,'userdata');
e = get(e_ptr,'userdata');
set(W11_name,'color',nnwhite);
set(W12_name,'color',nnwhite);
set(b11_name,'color',nnwhite);
set(b12_name,'color',nnwhite);
set(W21_name,'color',nnwhite);
set(W22_name,'color',nnwhite);
set(b2_name,'color',nnwhite);
nnsound(blip);
nnpause(pause_time);
set(W11_box,'facecolor',nnwhite);
set(W12_box,'facecolor',nnwhite);
set(b11_box,'facecolor',nnwhite);
set(b12_box,'facecolor',nnwhite);
set(W21_box,'facecolor',nnwhite);
set(W22_box,'facecolor',nnwhite);
set(b2_box,'facecolor',nnwhite);
set(W11_text,'color',nndkblue);
set(W12_text,'color',nndkblue);
set(b11_text,'color',nndkblue);
set(b12_text,'color',nndkblue);
set(W21_text,'color',nndkblue);
set(W22_text,'color',nndkblue);
set(b2_text,'color',nndkblue);
nnsound(blp);
nnpause(pause_time);
set(W11_box,'facecolor',nnltgray);
set(W12_box,'facecolor',nnltgray);
set(b11_box,'facecolor',nnltgray);
set(b12_box,'facecolor',nnltgray);
set(W21_box,'facecolor',nnltgray);
set(W22_box,'facecolor',nnltgray);
set(b2_box,'facecolor',nnltgray);
set(W11_text,'string',sprintf('%5.3f',W1(1)));
set(W12_text,'string',sprintf('%5.3f',W1(2)));
set(b11_text,'string',sprintf('%5.3f',b1(1)));
set(b12_text,'string',sprintf('%5.3f',b1(2)));
set(W21_text,'string',sprintf('%5.3f',W2(1)));
set(W22_text,'string',sprintf('%5.3f',W2(2)));
set(b2_text,'string',sprintf('%5.3f',b2));
set(W11_name,'color',nndkblue);
set(W12_name,'color',nndkblue);
set(b11_name,'color',nndkblue);
set(b12_name,'color',nndkblue);
set(W21_name,'color',nndkblue);
set(W22_name,'color',nndkblue);
set(b2_name,'color',nndkblue);
nnsound(blp);
nnpause(pause_time);
set(state_ptr,'userdata',1);
set(go_button,'string','Target');
for i=1:11
set(vals(i),'color',nnltgray);
set(vals(i),'string','?');
set(vals(i),'color',nndkblue);
end
nnsound(bloop);
set(last_text,'color',nnltgray);
set(last_text,'string',sprintf('%5.3f',e));
set(last_text,'color',nndkblue);
end
set(go_box,'color',nnred);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -