Sieci neuronowe w modelowaniu obiektów dynamicznych
Definicja
(Sztuczna) sieć neuronowa - ogólna nazwa struktur matematycznych złożonych ze sztucznych neuronów i ich programowych lub sprzętowych modeli, które realizują obliczenia, tym samym rozwiązując pewien problem np. z dziedziny przetwarzania sygnałów. Zbudowane na wzór naturalnych neuronów i połączeń między nimi. Sieci neuronowe mają zdolność generalizacji danych.
Najprostsze sieci to sieci składające się z pojedynczego perceptronu progowego (jeden neuron McCullocha-Pittsa) z pewną ilością wejść z wagami w i progową funkcją aktywacji:
Bardziej złożone sieci posiadają także dodatkowe warstwy ukryte w swojej strukturze (powstające poprzez łączenie ze sobą neuronów) lub inne bloki funkcyjne oraz różne nieliniowe funkcje aktywacji takie jak np. tangens hiperboliczny.
Metody uczenia:
- Bez nauczyciela – na wejście sieci podawany jest zawsze ciąg wejściowy uczący. Stałe wyrażenie opisuje w jaki sposób za każdym razem mają zmieniać się wagi np. reguła Hebba
- Z nauczycielem – nauczyciel dostaje ciąg uczący, na który składa się ciąg wejściowy i spodziewany wyjściowy, na tej podstawie tak zarządza siecią, aby dobrać wagi (+ ew. inne parametry), przy których błąd uczenia będzie jak najmniejszy. Np. wsteczna propagacja błędów.
Na koniec po nauczeniu sieci przeprowadzana jest jej weryfikacja ciągiem weryfikującym (danych spoza ciągu treningowego), sprawdza się tutaj jakie zdolności generalizacji ma sieć.
Do efektywnego uczenia sieci w zależności od jej budowy stosuje się różne algorytmy jak np. w/w algorytm propagacji wstecznej dla sieci perceptronowych wielowarstwowych. Po nauczeniu zapamiętuje się wagi (nie można będzie ich już potem zmieniać) i inne parametry oraz implementuje się taką sieć np. w atmedze. Po prostych operacjach jak dodawanie, mnożenie, czy porównywanie szybko mamy odpowiedź na wyjściu w przeciwieństwie do standardowego podejścia dla danego problemu.
Obiekt (układ) dynamiczny (z wiki, pozmienianie) – model matematyczny rzeczywistego zjawiska przyrody, którego ewolucja jest wyznaczona jednoznacznie przez stan początkowy; Modele dynamiczne opisywane są za pomocą równań różniczkowych, a zwykle ich wektorową wersją – równaniem stanu. Teoria sterowania zajmuje się modelowaniem oraz analizą tego typu obiektów. Obiekty dynamiczne w przeciwieństwie do statycznych posiadają magazyny energii np. kondensator, a obiekty statyczne zdolne są tylko do rozpraszania energii (np. idealny rezystor).
Modelowanie – jest procesem uzyskiwania opisu, zwykle matematycznego, rzeczywistego zjawiska fizycznego lub obiektu. Aby móc stworzyć model obiektu należy najpierw przeprowadzić identyfikację na rzeczywistym obiekcie. Na podstawie analizy charakterystyki skokowej/ impulsowej można utworzyć przybliżony model (im prostszy (mniejszy rząd; liniowy) tym lepiej; ale nie może być za prosty).
Cele i Metody
Modelowanie rzeczywistych obiektów dynamicznych z użyciem sieci neuronowych może mieć bardzo szerokie zastosowanie. Modele matematyczne, mimo że są dokładniejsze, wymagają zazwyczaj wielu skomplikowanych obliczeń, głównie numerycznych w celu otrzymania odpowiedzi na pobudzenie. W przypadku modelu z użyciem sieci neuronowej wykonujemy tylko proste operacje. Neuronowe modele obiektów mogą być używane w identyczny sposób jak byłby to model matematyczny. Można przeprowadzić uczenie z nauczycielem stosując odpowiednie ciągi uczące i weryfikujące. Po to, aby sieć miała jak najlepsze zdolności generalizacji zwykle stosuje się ciągi uczące w postaci skoków o losowym czasie trwania i losowej amplitudzie (oczywiście z zadanego zakresu) i spodziewanych odpowiedzi na nie, skuteczne w uczeniu sieci neuronowych są także ciągi uczące w oparciu o funkcję chirp (sinus o płynnie rosnącej częstotliwości w czasie). W celu utworzenia modelu obiektu dynamicznego, do utworzenia sieci potrzeba użyć neuronów o charakterystyce dynamicznej, taką charakterystykę mają na przykład sieci rekurencyjne ze sprzężeniami zwrotnymi. Inny przykład neuronu o charakterystyce dynamicznej z filtrem:
Dynamiczny system liniowy z rysunku to filtr, ze sprzężeniami zwrotnymi oraz opóźnionymi w czasie próbkami. Funkcja aktywacji jest nieliniowa z konfigurowalnym(i) parametrami(em) dobieranym(i) (oprócz wag i innych parametrów) podczas uczenia sieci.
Przykład jak radzi sobie dobrze wyuczona sieć w porównaniu do modelu matematycznego:
Źródła:
BOGDAN ŻAK, „MODELOWANIE DYNAMIKI RUCHU OKRĘTU PRZY WYKORZYSTANIU SIECI NEURONOWYCH”