Neural networks
Wprowadzenie do sieci neuronowych
Table of Contents
Elementy składowe sieci neuronowej
inspiracja biologiczna:
model aksonu wykorzystywany w sieciach neuronowych:
aksony model obliczania: (uzupełnij brakujące liczby)
Problem komiwojażera a sieci neuronowe… dokładność vs. czas.
źródło: R.Tadeusiewicz, Sieci neuronowe Akademicka Oficyna Wydawanicza, W-wa 1993
Ćwiczenia w programie EasyNN-plus:
Proszę pobrać plik programu EasyNN-plus z: * http://www.easynn.com/108491/ennsetup.exe *
Ćwiczenie 1
W pierwszym ćwiczeniu utworzymy prostą sieć neuronową symulującą bramkę XOR.
- XOR (alternatywa wykluczająca to operator logiczny, który przyjmuje wartość "prawda", jeżeli jeden z argumentów funkcji ma wartość "prawda". W przypadku, gdy oba argumenty mają wartość "prawda", funkcja przyjmuje wartość "fałsz". http://pl.wikipedia.org/wiki/Alternatywa_wykluczaj%C4%85ca
- otwórz plik 'xor.tvq' w katalogu \EasyNN-plus\Samples Wszystkie potrzebne dane zostały wprowadzone. Sieć neuronowa została stworzona, jednak nie został przeprowadzony proces uczenia.
- zostanie zaznaczone pole 'Input A' w wierszu zapytania (Query row). Można zaznaczyć wejście B 'Input B' klikając myszką lub korzystając z klawiszy strzałek. Wartość pól wejściowych można zmieniać poprzez menu 'Query > Increase' lub 'Query > Max' na wartość true a 'Query > Decrease' lub 'Query > Min' na wartość false. Pole wyjściowe nie zmieni się.
- kiedy jedno z pól wejściowych ma wartość true, wyjście powinno zmienić wartość na true, jednak nic takiego nie ma miejsca. Dzieje się tak dlatego, iż nie przeprowadziliśmy procesu uczenia się sieci neuronowej. Sieć neuronowa uczy się z przykładów w wierszach T:1 do T:4 (jest to zbiór poprawnych danych na wejściu oraz oczekiwanych odpowiedzi funkcji XOR).
- uczymy sieć korzystając z polecenia 'Action > Start Learning'.
- zmieniając wartości pól wejściowych, wyjście zmieni się adekwatnie do działania funkcji XOR. (proszę sprawdzić kilka przypadków).
Ćwiczenie 2
- W drugim ćwiczeniu dane w pliku są niekompletne.
- Należy zatem je uzupełnić.
- Następnie zbudować z tych danych sieć neuronową
- ustalić parametry (przyjąć domyślne)
- przeprowadzić proces uczenia sieci neuronowej
- skorzystać z polecenia 'Views' w celu wizualizacji wyniku
- W trakcie ćwiczenia zostanie utworzona sieć neuronowa, która uczy się …… (odpowiedź na końcu tego ćwiczenia).
- otwórz plik 'Clr Circle.tvq' w katalogu \EasyNN-plus\Samples. Zostanie wyświetlony arkusz 'Clr Circle.tvq'.
- Większość danych znajduje się już w arkuszu. Aby uzupełnić pozostałe, należy kliknąć na komórkę '?' w kolumnie 'Blue' oraz wpisać '1'. Otworzy się okno 'Edit Grid'. Ustawienia w tym oknie są właściwe, wciskamy OK i zamykamy okno. Wartość komórki zmieni się na 1. Proszę również zmienić wartość komórki '?' w kolumnie 'Cyan', wciskając 'f' i potwierdzając OK. Arkusz jest teraz wypełniony.
- Korzystając z polecenia 'Action > New Network' otwieramy okno utworzenia nowej sieci 'New Network'. Okno zawiera poprawne ustawienia - potwierdzamy OK. Zostanie wyświetlone okno z podsumowaniem właściwości tworzonej sieci. Potwierdzamy "Tak"/"Yes", i przechodzimy do okna ustawień parametrów.
- Domyślne ustawienia są odpowiednie dla tego rodzaju sieci, potwierdzamy OK. Zostanie wyświetlone okno z podsumowaniem parametrów. Aby zamknąć i zacząć proces uczenia sieci proszę wcisnąć "Tak"/"Yes".
- Korzystając z 'View > Graph > Learning Progress' zauważmy jak podczas uczenia sieci zmniejszył się średni błąd i przybliżył do oczekiwanej wartości błędu równej 0.01.
- Korzystając z polecenia 'View > Network' proszę zobaczyć utworzone węzły sieci oraz ich połączenia po ukończonym procesie uczenia. Sieć neuronowa jest teraz przygotowana, by użyć ją do odkrywania wiedzy/zadawania pytań (Query).
- Korzystając z polecenia 'View > Grid' proszę przywrócić widok arkusza danych.
- przykładowy wiersz zapytania Query został już dodany.
- Zmieńmy dowolne dwa pola wejściowe na 1, wpisując ją z klawiatury i akceptując OK.
- Co otrzymujemy na wyjściu?
Ćwiczenie 3
- To ćwiczenie pokazuje inne zastosowanie sieci neuronowych. Korzystając z właściwości asocjacji określimy nawyki klientów jednego z supermarketów.
- otwórz plik 'Basket.tvq' w katalogu \EasyNN-plus\Samples. Arkusz danych zawiera 89 wierszy. Każdy z nich opisuje zawartość wózka z zakupami. Każda kolumna jest jednym produktem w koszyku. W tym relatywnie małym przykładzie z zakupami mamy 74 produkty.
- Wykonaj polecenie 'Action > Start Associating' by zainicjalizować arkusz. Odpowiedz "Tak"/"Yes" w przypadku wiadomości 'Do you want to reset the existing associations and clusters'. Naciśnij OK, gdy otworzy się okno zatytułowane 'Associations and Clusters'. Proces kojarzenia uruchomi się automatycznie, poczekaj na komunikat 'Stopped Associating', na pasku statusu u dołu okna programu. Proces ten może potrwać kilka minut.
- Proces tworzenia skojarzonych ze sobą (skorelowanych) elementów przebiega poprzez tworzenie i uczenie sieci neuronowej z ustawionymi poszczególnymi kolumnami jako wyjście. Pozostałe kolumny są wejściami sieci. Wagi połączeń pomiędzy wejściami i warstwą ukrytą każdej sieci są zapamiętane. Wejście z największą sumą wag połączone z wartwą ukrytą jest najsilniejszym skojarzeniem. Korzystając z polecenia 'View > Associations' zobacz listę utworzonych par skojarzonych ze sobą produktów, które znajdowały się w koszykach klientów. Są one posortowane pod względem siły skojarzenia (korelacji). Najsilniejsze związki pomiędzy poszczególnymi produktami można stosunkowo łatwo wytłumaczyć, gdy siła korelacji jest słabsza, znalezienie wytłumaczenia nastręcza coraz większych trudności.
wersja strony: 34, ostatnia edycja: 26 Apr 2009 20:31