Moduł sztucznych sieci neuronowych dla GRASS 7

35
Sieci neuronowe w GRASS Paweł Netzel

description

prezentacja w formacie *.pdf z wykładu na warsztatach "Analizy przestrzenne z wykorzystaniem GRASS" 13-16.09.2010. Autor: Paweł Netzel.

Transcript of Moduł sztucznych sieci neuronowych dla GRASS 7

Page 1: Moduł sztucznych sieci neuronowych dla GRASS 7

Sieci neuronowe w GRASS

Paweł Netzel

Page 2: Moduł sztucznych sieci neuronowych dla GRASS 7

2

Sieci neuronowe

Skąd pomysł?Sprawność układu nerwowego

– Generalizacja wiedzy– Wnioskowanie– Pamięć skojarzeniowa

„Inteligencja”Przetwarzanie równoległe

Page 3: Moduł sztucznych sieci neuronowych dla GRASS 7

3

Neuron biologiczny

Page 4: Moduł sztucznych sieci neuronowych dla GRASS 7

4

Sieć neuronów biologicznych

Page 5: Moduł sztucznych sieci neuronowych dla GRASS 7

5

Model neuronu

x1

x2

x3

xn

.

.

.

w1

w2

w3

wn

yf(wtx)

wagi mnożące

połączeniasynaptyczne

węzełprzetwarzający neuronu

Page 6: Moduł sztucznych sieci neuronowych dla GRASS 7

6

Model matematyczny

Ujmując to matematycznie:

gdzie - odpowiedź neuronu - wektor wag - wektor wejściowy

y= f w t x= f ∑i=1

n

wi x i

yw=[w1 , w2 , ,wn]

t

x=[ x1 , x 2 , , xn]t

Page 7: Moduł sztucznych sieci neuronowych dla GRASS 7

7

Funkcja przejścia

Sama suma ważona wielkości wejściowych to za małoFunkcja przejścia (aktywacji)Czynnik nieliniowyPierwsze podejście to funkcja skoku.Funkcja sigmoidalnaFunkcja liniowa

Page 8: Moduł sztucznych sieci neuronowych dla GRASS 7

8

Funkcja przejścia cd.

Stosowane funkcje:(a) skoku

(b) liniowa

(c) logistyczna

(d) tangens hiperboliczny

f x = x

f x =1

1e−ax

f x =tanh ax

f x =1, gdy x0

Page 9: Moduł sztucznych sieci neuronowych dla GRASS 7

9

Funkcja przejścia cd.

Page 10: Moduł sztucznych sieci neuronowych dla GRASS 7

10

Sztuczna sieć neuronowa

Page 11: Moduł sztucznych sieci neuronowych dla GRASS 7

11

Sieci jednokierunkowe

Sieć jednokierunkowa to sieć w której sygnał może przemieszczać się jedynie od wejść do wyjść.Wyróżnione:

– warstwa wejściowa– warstwa(y) ukryta– warstwa wyjściowa

Połączenia między warstwami tylko w jedną stronęMożliwość łączenia „ponad” warstwami

Page 12: Moduł sztucznych sieci neuronowych dla GRASS 7

12

Sprzężenia zwrotne

Sieci w których dopuszcza się łączenie sygnałów wyjściowych z wejściami warstwy bieżącej lub poprzedniej.

Page 13: Moduł sztucznych sieci neuronowych dla GRASS 7

13

Możliwe zastosowania

Liczne zastosowania– Interpolacja– Rozpoznawanie obrazów– Klasyfikacja obiektów– Generalizacja– Prognozowanie (ekstrapolacja)

Model „czarnej skrzynki”Najczęściej implementowane są sieci jednokierun-kowe, warstwowe, uczone algorytmem wstecznej propagacji błędu

– backpropagation network

Page 14: Moduł sztucznych sieci neuronowych dla GRASS 7

14

Algorytm uczenia

Stan sieci i jej odpowiedź określona jest poprzez macierz wagUczenie sieci = dobór wagDla sieci jednokierunkowych warstwowych algorytm wstecznej propagacji błędu (wraz z różnymi wariantami)Prezentacja wzorca + prezentacja wyniku, obliczenie błędu, zmodyfikowanie wag na podstawie błęduOpis matematyczny (..........)

Page 15: Moduł sztucznych sieci neuronowych dla GRASS 7

15

Uczenie sieci jednokierunkowej

Wybór zbioru uczącego (ważne!)Wybór architektury sieci (liczba warstw, liczba neuronów w warstwie, liczba połączeń i sposób łaczenia)Dobór parametrów uczeniaPrezentacja zbioru uczącego (epoka)Modyfikacja wagPowtarzanie procesu uczenia aż do osiągnięcia warunków zakończenia

Page 16: Moduł sztucznych sieci neuronowych dla GRASS 7

16

Problemy

Zły dobór zbioru uczącegoZła reprezentacja danychZa mało neuronówZa dużo neuronówWpadanie w minima lokalneWpadanie w cykleNiestabilność numeryczna

Page 17: Moduł sztucznych sieci neuronowych dla GRASS 7

17

Implementacje sieci

Wiele implementacji ANNW dużych programach obliczeniowychDedykowaneGPLSNNS- Stuttgart Neural Network SimulatorBiblioteki (np. FANN Fast Artificial Neural Network Library)Matlab/OctaveS / R

Page 18: Moduł sztucznych sieci neuronowych dla GRASS 7

18

Sieci ANN a GRASS

Możliwość wykorzystania zewnętrznych pakietów do obliczeń neuronowychR

– AMORE • http://r.meteo.uni.wroc.pl/web/packages/AMORE

– monmlp• http://r.meteo.uni.wroc.pl/web/packages/monmlp

– Neuralnet• http://r.meteo.uni.wroc.pl/web/packages/neuralnet

– Nnet• http://r.meteo.uni.wroc.pl/web/packages/nnet

Octave– nnet -> Neural Network Toolbox (MATLAB)

Rozwiązania dedykowane

Page 19: Moduł sztucznych sieci neuronowych dla GRASS 7

19

R, Octave

Kilka rozwiązań Istnieje interfejs do transferu danychPrzykład

– AMORE• http://r.meteo.uni.wroc.pl/web/packages/AMORE

net.start <- newff(n.neurons=c(2,4,2,2),learning.rate.global=1e-2, momentum.global=0.5, error.criterium="LMS", Stao=NA, hidden.layer="tansig", output.layer="purelin", method="ADAPTgdwm")

Problemy– Konieczność tworzenia kompletnych struktur danych w

pamięci komputera– Konwersja danych pomiędzy strukturami pakietów R– Importowanie danych do GRASS

Page 20: Moduł sztucznych sieci neuronowych dla GRASS 7

20

Rozwiązanie dedykowane

Interpolacja wymaga dostępu do dużych struktur danychSystem GIS jest zorientowany na przetwarzanie i szybki dostęp do dużych struktur danychBiblioteki zoptymalizowane pod kątem wydajnościSzeroka funkcjonalnośćMożliwość połączenia odwołań do bibliotek GRASS i ANN za pomocą PythonaBiblioteka FANN

Page 21: Moduł sztucznych sieci neuronowych dla GRASS 7

21

FANN

FANN Fast Artificial Neural Network Library– Biblioteka w C dla sieci wielowarstwowych– Algorytm wstecznej propagacji błędu (wraz z

odmianami)– Szybsza ok 150 razy od innych bibliotek (ponoć)– Możliwość głębokiej ingerencji w ustawienia

parametrów– Dobrze udokumentowana– Wieloplatformowa– Wiele funkcji aktywacji

Licencja LGPL

Page 22: Moduł sztucznych sieci neuronowych dla GRASS 7

22

Python

Interfejs dla FANN w PythonieMożliwość tworzenia skryptów dla GRASS w PythonieDostęp do API GRASSMożliwość przetwarzania danych na poziomie elementów rastraSzybkość

Page 23: Moduł sztucznych sieci neuronowych dla GRASS 7

23

Pakiet nn.*

Kontynuacja rozwiązania z GRASS 5.0Główny cel – interpolacja danych przestrzennychZestaw poleceń pozwalających na obsługę sieci neuronowych:

– nn.create – tworzenie sieci– nn.info – informacja o sieci– nn.data.rast – pobranie danych uczących– nn.learn – uczenie sieci– nn.run.rast – uruchomienie sieci

Page 24: Moduł sztucznych sieci neuronowych dla GRASS 7

24

nn.create

Polecenie tworzy sieć o zadanej architekturzenn.create [-l] in=value hidd=value[,value,...] out=value

net=filename [conn_rate=value] [learn_rate=value] [--verbose] [--quiet]

Opcje:-l Ustawia liniową funkcję aktywacji dla neuronów

wyjściowych

Parametry:– in Liczba neuronów wejściowych (def. 1)– hidd Liczby neuronów w warstwach ukrytych (def.

jedna warstwa z 2 neuronami)– out Liczba neuronów wyjsciowych (def. 1)– net Nazwa pliku z siecią xxxx.net– conn_rate Połączenia (0.0 - brak, 1.0 – pełne) (def. 1)– learn_rate Szybkość uczenia (def. 0.7)

Page 25: Moduł sztucznych sieci neuronowych dla GRASS 7

25

nn.info

Wypisuje dostępne sieci neuronowe lub opisuje wybraną sić

nn.info [-l] [net=filename] [--verbose] [--quiet]

Opcje:-l Wypisuje wszystkie definicje sieci neuronowych

zawarte w bieżącej kartotece

Parametry:net nazwa wybranej sieci (zostanie wypisana

informacja o tej sieci)

Page 26: Moduł sztucznych sieci neuronowych dla GRASS 7

26

nn.data.rast

Przygotowuje dane uczące na podstawie lokalizacji oraz warstw rastrowych

– nn.data.rast in=string[,string,...] out=string[,string,...] [vector=string] [points=filename] [east_north=string] output=filename

Parametry:in Lista warstw rastrowych z których zostaną pobrane

dane wejścioweout Lista warstw rastrowych z których zostaną pobrane

dane wyjściowevector Warstwa wektorowa zawierająca punkty

wskazujące lokalizacje danych uczącychpoints Plik tekstowy zawierający współrzędne punktóweast_north Lista współrzędnych punktówoutput Nazwa pliku do którego zostanie zapisany zbiór

danych uczących

Page 27: Moduł sztucznych sieci neuronowych dla GRASS 7

27

nn.learn

Uczenie sieci neuronowejnn.learn net=filename data=filename [max_iter=value]

[iter_report=value] [error=value] [output=string]

Parametry:net Nazwa sieci (pliku z siecią)data Nazwa pliku ze zbiorem uczącymmax_iter Maksymalna liczba epokiter_report Liczba epok po której wypisywany jest

raport z uczeniaerror Dopuszczalny błądoutput Nazwa pliku do którego zostanie zapisana

nauczona sieć

Page 28: Moduł sztucznych sieci neuronowych dla GRASS 7

28

nn.run.rast

Uruchomienie nauczonej sieci ze wskazanymi danymi wejściowymi

nn.run.rast in=string[,string,...] [net=filename] output=string[,string,...] [--verbose] [--quiet]

Parametry:in Warstwy rastrowe z danymi wejściowyminet Nazwa siecioutput Warstwy rastrowe wygenerowane przez sieć

Page 29: Moduł sztucznych sieci neuronowych dla GRASS 7

29

Przykład wykorzystania

Kolejne polecenia:Utworzenie definicji sieci (3 neurony wejściowe,

dwie warstwy ukryte zaierające 3 oraz 4 neurony, jeden neuron wyjsciowy) i zapisanie jej pod nazwą test

nn.create in=3 hidd=3,4 out=1 net=test

Pobranie danych uczących (wielkości wejściowe z warstw dtm,slope,asp; wielkości wyjsciowe z warstwy green; warstwy będą próbkowane w punktach smpl; plik wynikowy ma nazwę learndata)

nn.data.rast in=dtm,slope,asp out=green vector=smpl output=learndata

Page 30: Moduł sztucznych sieci neuronowych dla GRASS 7

30

Przykład wykorzystania cd.

Uczenie sieci (uczona bedzie sieć test na podstawie zbioru learndata przez 10000 epok, sieć wynikowa zostanie zapisana pod nazwą test.learn)

nn.learn net=test data=learndata max_iter=1000000 ouput=test.learn

Uruchomienie sieci (dane wejściowe pobrane zostaną z warstw dtm,slope,asp; wyniki zapisane do warstwy green.nn; do obliczeń zostanie wykorzystana sieć test.learn)

nn.run.rast in=dtm,slope,asp out=green.nn net=text.learn

Page 31: Moduł sztucznych sieci neuronowych dla GRASS 7

31

Przykład wykorzystania cd.

Interpolacja wysokości:Dane wejściowe: x, yDane wyjściowe: zUwaga: dane powinny być skalowanePunkty uczące losowo rozproszonePo wygenerowaniu wyników trzeba powrócić z danych przeskalowanych do wielkości rzeczywistychLiczebność zbioru uczącego: 986Dopuszczalny błąd: 0.001Liczba epok uczenia: 114298

Page 32: Moduł sztucznych sieci neuronowych dla GRASS 7

32

Dane wejściowe

Page 33: Moduł sztucznych sieci neuronowych dla GRASS 7

33

Zbiór uczący

Page 34: Moduł sztucznych sieci neuronowych dla GRASS 7

34

Dane wejściowe

Page 35: Moduł sztucznych sieci neuronowych dla GRASS 7

35

Dziękuję!