⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nnd11bc.m

📁 Martin T.Hagan等著,戴葵等译,神经网络设计,机械工业出版社,一书的所有例程
💻 M
📖 第 1 页 / 共 3 页
字号:
  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 + -