Advertisement
Guest User

Untitled

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