Advertisement
Guest User

Untitled

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