Advertisement
Sawy3R11

Untitled

Apr 25th, 2017
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.24 KB | None | 0 0
  1. % wczytanie środowiska, wyłączenie ostrzeżeo oraz uruchomienie skróconego zapisu liczb
  2. clear all
  3. nntwarn off
  4. format compact
  5. % wczytanie danych, zapis do zmiennych: P danych wejściowych, T danych wyjściowych
  6. file = dlmread ('od0do1.txt',',');
  7. P = file(:,1:6)';
  8. T = file(:,7)';
  9. % inicjalizacja zmiennych pomocniczych, zostaje wypełniona danymi podczas wykonywania 10 eksperymentów dla każdej pary neuronów
  10. PROC_TMP=zeros(1,10); % procent nauczenia dla każdego eksperymentu
  11. EPOCH_TMP=zeros(1,10); % ilośd przebytych epok podczas nauki dla każdego eksperymentu
  12. SSE_TMP=zeros(1,10); % wartośd błędu średniokwadratowego dla każdego eksperymentu
  13. % inicjalizacja tablic dla danych zapisywanych do plików
  14. wyniki_pelne=[];
  15. odpowiedzi=[];
  16. % główna pętla algorytmu
  17. for S1=1:10:120, % początek : krok : docelowa liczba
  18. for S2=1:10:S1,
  19. for lr_inc=1.03:0.01:1.07, % lr_inc - współczynnik wzrostu prędkości uczenia (domyślnie 1.05)
  20. for lr_dec=0.6:0.05:0.8, % lr_dec - współczynnik redukcji prędkości uczenia (domyślnie = 0.7)
  21. for max_err=1.02:0.01:1.06, % max_err- maksymalna wartośd współczynnika błędu (domyślnie = 1.04)
  22. for eksperyment=1:1:10,
  23. % deklaracja częstotliwości odświeżania, maksymalnej ilości epok możliwych do przebycia, % błędu granicznego oraz współczynnika uczenia
  24. disp_freq=100;
  25. max_epoch=20000;
  26. err_goal=.25;
  27. lr=.001;
  28. % inicjalizacja parametrów dla funkcji trainbpa
  29. TP = [disp_freq , max_epoch , err_goal , lr, lr_inc, lr_dec, max_err] ;
  30. % inicjalizacja współczynników wagowych i przesunięd w sieci jednokierunkowej (do 3 warstw)
  31. [W1,B1,W2,B2,W3,B3] = initff(P,S1,'tansig',S2,'tansig',T,'purelin') ;
  32. % wywołanie funkcji uczącej trainbpa, opisanej poniżej
  33. [W1,B1,W2,B2,W3,B3,TE,TR] = trainbpa(W1,B1,'tansig',W2,B2,'tansig',W3,B3,'purelin',P,T,TP) ;
  34. % symulacja sieci jednokierunkowej (do 3 warstw)
  35. A3 = simuff(P,W1,B1,'tansig',W2,B2,'tansig',W3,B3,'purelin') ;
  36. % obliczenie różnicy błędu oczekiwanego od otrzymanego
  37. E = T-A3;
  38. % obliczenie sumy kwadratów błędów
  39. SSE = sumsqr(E);
  40. % wyświetlenie aktualnych wartości obliczonej i wzorcowej
  41. [T' A3' (T-A3)' (abs(T-A3)>0.5)']
  42. %obliczenie procentowej wartości uczenia się sieci
  43. proc=100*(1-sum((abs(T-A3)>.5)')/length(T));
  44. % tworzenie macierzy pełnych wartości po każdym eksperymencie oraz ich zapis do pliku
  45. wyniki_pelne=[S1 S2 eksperyment lr_inc lr_dec max_err proc lr TE SSE]
  46. dlmwrite('wyniki_pelne_s1s2eks10_01.txt', wyniki_pelne, '-append', 'delimiter', '\t');
  47. % wypełnienie danymi po wykonywaniu każdego eksperymentu dla wszystkich par neuronów
  48. PROC_TMP(1,eksperyment)=proc;
  49. EPOCH_TMP(1,eksperyment)=TE;
  50. SSE_TMP(1,eksperyment)=SSE;
  51. end
  52. % obliczenie najmniejszej wartości błędu średniokwadratowego oraz ilości epok podczas nauki
  53. sse_best=min(SSE_TMP);
  54. epoch_best=min(EPOCH_TMP);
  55. % obliczenie średniej wartości procentu nauczenia, ilości epok podczas nauki oraz błędu średniokwadratowego
  56. PROC_SR=mean(PROC_TMP);
  57. EPOCH_SR=mean(EPOCH_TMP);
  58. SSE_SR=mean(SSE_TMP);
  59. % tworzenie macierzy uśrednionych wartości oraz ich zapis do pliku
  60. odpowiedzi=[S1 S2 sse_best epoch_best PROC_SR EPOCH_SR SSE_SR lr_inc lr_dec max_err];
  61. dlmwrite('odpowiedzi_s1s2eks10_01.txt', odpowiedzi, '-append', 'delimiter', '\t');
  62. end
  63. end
  64. end
  65. end
  66. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement