Witam,
Chciałbym zapytać o jak wykonać zadanie poniżej.
NAI.png
Rozważmy zbiór wszystkich możliwych wektorów binarnych długości . Elementy tego zbioru odpowiadają kodom znaków w standardzie ASCII (http://pl.wikipedia.org/wiki/ASCII), np. wektor
1 0 0 0 0 0 1
reprezentuje w tym modelu zależności znak (decymalna wartość kodu ASCII równa ), a wektor
1 1 0 0 0 0 1
odpowiada znakowi (decymalna wartość kodu ASCII równa ).
Zadanie
Zaprojektuj, zaimplementuj (dowolny język programowania) i wytrenuj sieć neuronową, która dla zadanego zestawu wejściowego wektorów dokona jego klasyfikacji ze względu na to, czy ciąg jest ciągiem kodów ASCII liter Twojego imienia, gdzie jest liczbą liter Twojego imienia nad alfabetem angielskim (zakładamy stosowną podmianę polskich znaków). Za poprawnie klasyfikowane uznajemy wszystkie możliwe warianty zapisu imion z użyciem małych i dużych liter, np.
JAN, JAn, JaN, jAN, Jan, jAn, jaN, jan.
Jako algorytmu uczenia zaprojektowanej sieci neuronowej zastosuj metodę wstecznej propagacji błędów dla samodzielnie dobranego zbioru trenującego wektorów binarnych długości .
Zbadaj kolejno:
efektywność procesu nauki sieci ze względu na wybór typu dostępnych perceptronów oraz wartość współczynnika kroku nauki ,
efektywność klasyfikacji danych wejściowych w zależności od wartości parametrów sterujących funkcjami aktywacji.
Dla każdego z w/w zadań badawczych wprowadź własne miary efektywności i uzasadnij ich wybór.
Uwaga! Zaproponowana przez Państwa implementacja sieci neuronowej nie może bazować na gotowych bibliotekach generujących tego rodzaju struktury.
Wytyczne rozwiązania
rozwiązanie składa się z kodu źródłowego w danym języku programowania oraz dokumentacji opisowej w postaci pliku w formacie pdf,
kod źródłowy zawiera:
imię, nazwisko i numer indeksu autora,
niezbędne komentarze,
dokumentacja opisowa zawiera:
imię, nazwisko i numer indeksu autora,
schemat graficzny sieci neuronowej,
szczegółowy opis użytych neuronów (wejście, wagi wejściowe, funkcja aktywacji, wyjście),
wykresy efektywności procesu nauki ze względu na wartość współczynnika kroku nauki ,
wykresy efektywność klasyfikacji danych wejściowych w zależności od wartości parametrów sterujących funkcjami aktywacji,
opis zastosowanych miar efektywności i uzasadnienie ich wyboru.
Potrafie napisac prosta sieć neuronowa i zaimplementować algorytm propagacji w tej <image>BPropagation.png</image> def. Natomiast nie wiem jak tego uzyc w stosunku do tych imion , jak dobierac wagi, jak dobierac progi. czy to ma byc tak ze zaszywam sobie kod ASCI litery mojego imienia np K
mnoze x1w1+x2w2+x(n)*w(n) i wynik jesli jest inny niz prawidlowy kod dziesietny asci danej litery to na wyjscie daje 0?
Pozdrawiam.