Advertisement
cristiano002

3warstwowa, momentum

May 26th, 2014
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.27 KB | None | 0 0
  1. clear all
  2. clf
  3. nntwarn off
  4. format compact
  5. S1=15;
  6.  
  7.  
  8. P=-1:.1:-.5;
  9. T=[-.9602 -.5770 -.0729 .3771 .6405 .6600];
  10. [R,Q]=size(P);
  11.  
  12. S1=15;
  13. S2=15;
  14. [S2,Q]=size(T);
  15.    [W1,B1]=nwtan(S1,R);
  16.   [W2,B2] = rands(S2,S1);
  17.  
  18.   save wagis2w;
  19. %load wagis2w;
  20.  
  21.  
  22. disp_freq = 100;
  23. max_epoch = 20000;
  24. err_goal = 1e-8;
  25. lr = 0.02;
  26. error = [];
  27.  
  28. A1 = tansig(W1*P,B1);
  29. A2 = purelin(W2*A1,B2);
  30. %A3 = purelin(W3*A2,B3);
  31. E = T-A2;
  32. SSE = sumsqr(E);
  33. mc = 0.01;
  34. dW1 = zeros(size(W1));
  35. dB1 = zeros(size(B1));
  36. dW2 = zeros(size(W2));
  37. dB2 = zeros(size(B2));
  38. %dW3 = zeros(size(W3));
  39. %dB3 = zeros(size(B3));
  40.  
  41.  
  42. for epoch=1:max_epoch
  43.    if (SSE<err_goal)
  44.        epoch=epoch-1;
  45.        break;
  46.    end
  47.    D2=deltalin(A2,E);
  48.    D1=deltatan(A1,D2,W2);
  49.    
  50.    
  51.    [dW1,dB1] = learnbpm(P,D1,lr,mc,dW1,dB1);
  52.    [dW2,dB2] = learnbpm(A1,D2,lr,mc,dW2,dB2);
  53.   % [dW3,dB3] = learnbpm(A2,D3,lr,mc,dW3,dB3);
  54.  
  55.      
  56.    W1 = W1+dW1;
  57.    B1 = B1 + dB1;
  58.    W2 = W2+dW2;
  59.    B2 = B2 + dB2;
  60. %    W3 = W3+dW3;
  61. %    B3 = B3 + dB3;
  62.    A1 = tansig(W1*P,B1);
  63.    A2 = tansig(W2*A1,B2);
  64. %    A3 = purelin(W3*A2,B3);
  65.    E = T-A2;
  66.    SSE = sumsqr(E);
  67.    error = [error SSE];
  68.    if(rem(epoch,disp_freq)==0)
  69.        epoch
  70.        SSE
  71.        plot(P,T,'r',P,A2,'g');
  72.        pause(0.005)
  73.    end
  74. end
  75. epoch
  76. SSE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement