Sztuczna inteligencja/SI Ćwiczenia 12: Różnice pomiędzy wersjami
Rozwiązanie zadania 4 |
m Zastępowanie tekstu – „<math> ” na „<math>” |
||
(Nie pokazano 6 wersji utworzonych przez jednego użytkownika) | |||
Linia 6: | Linia 6: | ||
'''Rozwiązanie''' | '''Rozwiązanie''' | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Dla przykładowego zestawu wag otrzymano wykres odpowiedzi sieci jak na rysunku poniżej. [[Media:M12_Z1.m|Stąd]] pobrać można źródła programu napisanego w języku [http://en.wikipedia.org/wiki/GNU_Octave Octave]. Zmieniając wagi (zapisane w zmiennych W, V i Y) modyfikuje się wygląd funkcji. Zachęcamy do eksperymentów! | |||
[[Grafika:M12_Z1.png]] | |||
</div> | </div> | ||
</div> | </div> | ||
Linia 29: | Linia 32: | ||
'''Rozwiązanie''' | '''Rozwiązanie''' | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Odchylenie standardowe funkcji błędu średniej arytmetycznej wyjść obu sieci będzie równe <math>0,5\sqrt{\sigma_1^2 + \sigma_2^2}\,</math>, wartość średnia zaś równa będzie zero. Takie odchylenie standardowe jest na pewno mniejsze od <math>max(\sigma_1,\sigma_2)\,</math> (ponieważ jeśli <math>\sigma_1 > \sigma_2</math> to <math> \sigma_1^2 + \sigma_1^2 > \sigma_1^2 + \sigma_2^2</math> a zatem <math> \sigma_1 > {\sqrt{2} \over 2} * \sigma_1 > \sqrt{\sigma_1^2 + \sigma_2^2}</math>). Oznacza to, że korzystając ze średniej artytmetycznej wyjść dwóch sieci możemy otrzymać mniejsze odchylenie standardowe błędu, niż gdybyśmy korzystali z jednej tylko sieci. Jeśli nie wiemy, która sieć powoduje większy błąd aproksymacji, to w ten sposób możemy uniknąć ryzyka wybrania gorszej sieci kosztem niewybrania sieci lepszej. | Odchylenie standardowe funkcji błędu średniej arytmetycznej wyjść obu sieci będzie równe <math>0,5\sqrt{\sigma_1^2 + \sigma_2^2}\,</math>, wartość średnia zaś równa będzie zero. Takie odchylenie standardowe jest na pewno mniejsze od <math>max(\sigma_1,\sigma_2)\,</math> (ponieważ jeśli <math>\sigma_1 > \sigma_2</math> to <math>\sigma_1^2 + \sigma_1^2 > \sigma_1^2 + \sigma_2^2</math> a zatem <math>\sigma_1 > {\sqrt{2} \over 2} * \sigma_1 > \sqrt{\sigma_1^2 + \sigma_2^2}</math>). Oznacza to, że korzystając ze średniej artytmetycznej wyjść dwóch sieci możemy otrzymać mniejsze odchylenie standardowe błędu, niż gdybyśmy korzystali z jednej tylko sieci. Jeśli nie wiemy, która sieć powoduje większy błąd aproksymacji, to w ten sposób możemy uniknąć ryzyka wybrania gorszej sieci kosztem niewybrania sieci lepszej. | ||
</div> | </div> | ||
</div> | </div> | ||
Linia 57: | Linia 60: | ||
'''Rozwiązanie''' | '''Rozwiązanie''' | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Jest to zjawisko "nadreprezentacji" - nadmiernej reprezentacji pewnej części dziedziny aproksymowanej funkcji. Jest ono niepożądane, ponieważ algorytm doboru parametrów aproksymatora może mieć tendencję do "skupiania się" na tych punktach - ewentualny błąd aproksymacji funkcji w owych punktach będzie miał większą wagę i zostanie zminimalizowany w pierwszej kolejności. Wynik może być podobny, jak przy braku zbioru testującego - w części dziedziny aproksymator będzie miał mniejszy błąd, co zapewne spowoduje (dużo) większy błąd w innych jej częściach. Jeśli nie zależy nam na szczególnie dobrej aproksymacji w wybranych elementach (w wybranej części dziedziny aproksymowanej funkcji), powinniśmy usunąć wszystkie powtórzenia z danych. | |||
</div> | </div> | ||
</div> | </div> | ||
Linia 67: | Linia 71: | ||
'''Rozwiązanie''' | '''Rozwiązanie''' | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Zjawiska te wynikają z użytej funkcji aktywacji neuronu - tangensa hiperbolicznego. Sieć neuronowa jest aproksymatorem nieliniowym, dlatego dla pewnych zestawów wag występują lokalne minima funkcji błędu. | |||
Obszary o małych wartościach modułu gradientu mogą być efektem wejścia funkcji aktywacji w obszar nasycenia. Dla wartości z tego obszaru funkcje aktywacji przyjumją wartość 1 lub -1 (są to asymptoty ''tanh''). Dzieje się tak dla odpowiednio dużych lub małych wartości wag - gdy suma wejść wymnożonych przez odpowiednie wagi daje w wyniku wartość, w której otoczeniu funkcja aktywacji nieznacznie zbliża się lub oddaja od 1 lub -1. | |||
</div> | </div> | ||
</div> | </div> |
Aktualna wersja na dzień 22:15, 11 wrz 2023
Zadanie 1
Narysować trójwymiarowy wykres przedstawiający funkcję realizowaną przez aproksymator - sieć neuronową z rozdziału 12.
Rozwiązanie
Zadanie 2
Z czego wynika potrzeba rozdzielenia zbioru danych na dane uczące i testowe?
Rozwiązanie
Zadanie 3
Załóżmy, że mamy dwie różne sieci neuronowe, uczone niezależnie od siebie na tym samym zbiorze uczącym. Załóżmy też, że rozkład błędu obu sieci na zbiorze testowym jest rozkładem normalnym o zerowej wartości oczekiwanej i standardowych odchyleniach odpowiednio: i . Jaki jest rozkład na zbiorze testowym wartości gdzie , oznaczają wyjścia obu sieci? Jak można wykorzystać ten wynik do poprawy jakości aproksymacji?
Rozwiązanie
Zadanie 4
Załóżmy, że mamy użyć sieci neuronowej do prognozowania przyszłej wartości pewnego procesu zmiennego w czasie, charakteryzującego się tym, że jego przyszłe wartości zależą od przeszłych zgodnie z równaniem:
gdzie oznacza czas, jest nieznaną funkcją, zaś stałą, określającą najdalszą zależność między przeszłością a przyszłością (taki proces jest przykładem tzw. szeregu czasowego).
Zaproponować sposób użycia sieci neuronowej do wykonania prognozy. Jak stworzyć zbiór trenujący dla sieci?
Rozwiązanie
Zadanie 5
Czym skutkuje obecność w zbiorze trenującym elementów powtarzających się?
Rozwiązanie
Zadanie 6
Funkcja błędu minimalizowana w czasie uczenia sieci neuronowej ma minima lokalne i punkty siodłowe (w których gradient zeruje się), a także obszary płaskie o bardzo małych wartościach modułu gradientu. Z czego wynikają te zjawiska? Dla jakich wartości wag da się je zaobserwować?
Rozwiązanie