Advertisement
sildren12

Sieć neuronowa 3w

May 23rd, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.93 KB | None | 0 0
  1. clear off
  2. nntwarn  off
  3. format compact
  4.  
  5. P=-1:.1:-.5;
  6. T=[-.9602, -.5770, -.0729, .3771, .6405, .6600];
  7. [R,Q]=size(P);
  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=0.01;
  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.  
  25. for epoch=1:max_epoch
  26. if SSE<err_goal
  27.      epoch=epoch-1;
  28.      break    
  29.  end
  30.   D3=deltalin(A3,E);
  31.   D2=deltatan(A2,D3,W3);
  32.   D1=deltatan(A1,D2,W2);
  33.  [dW1,dB1]=learnbp(P,D1,lr);
  34.  [dW2,dB2]=learnbp(A1,D2,lr);
  35.  [dW3,dB3]=learnbp(A2,D3,lr);
  36.  W1=W1+dW1; B1=B1+dB1;
  37.  W2=W2+dW2; B2=B2+dB2;
  38.  W3=W3+dW3; B3=B3+dB3;
  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.  
  46.  
  47. if(rem(epoch,disp_freq)==0)
  48.     epoch
  49.     SSE
  50.     plot(P,T,'r',P,A3,'g')
  51.     pause(1e-50)
  52. end
  53. end
  54.  
  55.  epoch
  56.  SSE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement