Advertisement
Guest User

Untitled

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