Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. clear all;
  2. nntwarn off;
  3. format compact
  4.  
  5. disp_freq = 100;
  6. max_epoch = 20000;
  7. err_goal = 1e-3;
  8. lr=0.001;
  9. error=[];
  10.  
  11. X=-1:.1:1;
  12. Y=-1:.1:1;
  13. Z=zeros(length(X), length(Y));
  14.  
  15. XX = [];
  16. YY = [];
  17. ZZ = [];
  18.  
  19. for i = 1 : length(X),
  20. for j = 1 : length(Y),
  21. XX = [XX X(i)];
  22. YY = [YY Y(j)];
  23. Z(i, j) = ((X(i)^2 + Y(j)^2));
  24. ZZ = [ZZ Z(i, j)];
  25. end
  26. end;
  27.  
  28. P = [XX; YY];
  29. [R, Q] = size(P);
  30. S1=10;
  31. [S3,Q]=size(ZZ);
  32. S2=round(sqrt(S1*S3));
  33.  
  34. [W1, B1] = nwtan (S1, R);
  35. [W2, B2] = nwtan (S2, S1);
  36. [W3, B3] = rands (S3, S2);
  37.  
  38. A1 = tansig (W1*P, B1);
  39. A2 = tansig (W2*A1, B2);
  40. A3 = purelin (W3*A2, B3);
  41.  
  42. E = ZZ - A3;
  43. SSE = sumsqr (E);
  44.  
  45. for epoch = 1 : max_epoch,
  46. if SSE < err_goal, epoch = epoch - 1;
  47. break,end
  48.  
  49. D3 = deltalin (A3, E);
  50. D2 = deltatan (A2, D3, W3);
  51. D1 = deltatan (A1, D2, W2);
  52.  
  53. [dW1, dB1] = learnbp (P, D1, lr);
  54. [dW2, dB2] = learnbp (A1, D2, lr);
  55. [dW3, dB3] = learnbp (A2, D3, lr);
  56.  
  57. W1 = W1 + dW1; B1 = B1 + dB1;
  58. W2 = W2 + dW2; B2 = B2 + dB2;
  59. W3 = W3 + dW3; B3 = B3 + dB3;
  60.  
  61. A1 = tansig (W1*P, B1);
  62. A2 = tansig (W2*A1, B2);
  63. A3 = purelin (W3*A2, B3);
  64.  
  65. E = ZZ - A3;
  66. SSE = sumsqr(E);
  67. error = [error, SSE];
  68. if (rem (epoch, disp_freq) == 0),
  69. epoch
  70. SSE
  71. % tu można skończyć
  72. A3_ = zeros (size (Z));
  73. for i = 1 : length(X),
  74. for j = 1 : length(Y),
  75. A1_ = tansig(W1*[X(i); Y(j)], B1);
  76. A2_ = tansig(W2*A1_, B2);
  77. A3_(i, j) = purelin(W3*A2_,B3);
  78. end
  79. end
  80.  
  81. set(gcf,'renderer','painters');
  82. subplot (1, 2, 1), mesh (X, Y, Z);
  83. subplot (1, 2, 2), mesh (X, Y, A3_);
  84. pause (1e-200);
  85. end
  86. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement