Advertisement
sildren12

Sieć neuronowa 2w

May 23rd, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.10 KB | None | 0 0
  1. clear all
  2. NNTWARN OFF
  3. format compact
  4.  
  5.  
  6. P = -1:0.1:-0.5;
  7. T = [-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600];
  8.  
  9.  
  10. [R,Q] = size(P);
  11.  
  12. %%%
  13. S1 = 2;
  14. %[S1,Q] = size(T);
  15. [S2,Q] = size(T);
  16. %%%
  17. [W1,B1] = nwtan(S1,R);
  18. [W2,B2] = rands(S2,S1);
  19. %%%
  20.  
  21. disp_freq = 100;
  22. max_epoch = 20000;
  23. err_goal = 1e-30;
  24. lr = 0.1;
  25. error = [];
  26. A1 = tansig(W1*P,B1);
  27. %%%
  28. A2 = purelin(W2*A1,B2);
  29. %%%
  30. %%%E = T-A1;
  31. E = T-A2;
  32. %%%
  33. SSE = sumsqr(E);
  34.  
  35.  
  36. for epoch = 1:max_epoch
  37.    
  38.     if (SSE < err_goal)
  39.         epoch = epoch-1;
  40.         break;
  41.     end
  42.    
  43.     D2 = deltalin(A2,E);
  44.     %%%D1 = deltatan(A1,E);
  45.     D1 = deltatan(A1,D2,W2);
  46.     [dW2,dB2] = learnbp(A1,D2,lr);
  47.     %%%%
  48.     [dW1,dB1] = learnbp(P,D1,lr);
  49.     %%%
  50.     W2 = W2 + dW2;
  51.     W1 = W1 + dW1;
  52.     B2 = B2 + dB2;
  53.     B1 = B1 + dB1;
  54.     %%%
  55.    
  56.     A1 = tansig(W1*P,B1);
  57.     %%%
  58.     A2 = purelin(W2*A1,B2);
  59.     %%%E = T-A1;
  60.     E = T-A2;
  61.     %%%
  62.     SSE = sumsqr(E);
  63.     error = [error SSE];
  64.    
  65. if(rem(epoch,disp_freq)==0)
  66. %%epoch
  67. %%SSE
  68. %%%plot(P,T,'r',P,A1,'g')
  69. plot(P,T,'r',P,A2,'g') %wyjscie 2
  70.  
  71. pause(1e-50)
  72. end
  73.  
  74. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement