Advertisement
pabloducato

learbpm

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