Politechnika Warszawska
Praca przejściowa inżynierska
Zastosowanie sieci neuronowych
w zagadnieniu sterowania
odwróconym wahadłem
Prowadzący:
Autor:
dr inż. Cezary
Bartosz Ciechanowski
Rzymkowski
30 maja 2011
Spis treści
1 Wprowadzenie 3
2 Sieć neuronowa 3
2.1 Wybór metody nauczania sieci . . . . . . . . . . . . . . . . . . . . . 3
2.2 Budowa zastosowanej sieci . . . . . . . . . . . . . . . . . . . . . . . 4
3 Badany układ 6
4 Równania ruchu układu 6
4.1 Układy współrzędnych . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Położenie ciał . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2.1 Położenie kulki . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2.2 Położenie wózka . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3 Energia kinetyczna . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3.1 Energia kinetyczna kulki . . . . . . . . . . . . . . . . . . . . 9
4.3.2 Energia kinetyczna wózka . . . . . . . . . . . . . . . . . . . 9
4.3.3 Energia kinetyczna układu . . . . . . . . . . . . . . . . . . . 10
4.4 Energia potencjalna . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.4.1 Energia potencjalna kulki . . . . . . . . . . . . . . . . . . . 10
4.4.2 Energia potencjalna wózka . . . . . . . . . . . . . . . . . . . 10
4.4.3 Energia potencjalna układu . . . . . . . . . . . . . . . . . . 10
4.5 Równania Eulera-Lagrange a . . . . . . . . . . . . . . . . . . . . . . 10
4.5.1 Lagranżjan układu . . . . . . . . . . . . . . . . . . . . . . . 10
4.5.2 Pochodne lagranżjanu . . . . . . . . . . . . . . . . . . . . . 11
4.5.3 Siły uogólnione . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.6 Układ równań . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.7 Postać macierzowa układ równań . . . . . . . . . . . . . . . . . . . 12
4.8 Równania ruchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.8.1 Rozwiązanie układu równań . . . . . . . . . . . . . . . . . . 13
4.8.2 Ostateczna postać równań ruchu . . . . . . . . . . . . . . . 13
4.9 Symulacja układu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Proces nauki 14
5.1 Przyjęte wartości parametrów . . . . . . . . . . . . . . . . . . . . . 14
5.2 Normowanie wartości sygnałów . . . . . . . . . . . . . . . . . . . . 14
5.3 Symulacja obrotu toru . . . . . . . . . . . . . . . . . . . . . . . . . 15
1
6 Uzyskane wyniki 15
6.1 Modyfikacja oryginalnego algorytmu . . . . . . . . . . . . . . . . . 15
6.2 Przeprowadzone testy . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.3 Sprawność nauczania . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.3.1 Średnia liczba porażek . . . . . . . . . . . . . . . . . . . . . 18
7 Symulator sieci 19
7.1 Aplikacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.2 Parametry nauczania . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.3 Stawianie wahadła . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2
1 Wprowadzenie
Klasycznym testem dla systemów sterowania jest utrzymywanie odwróconego wa-
hadła w pozycji pionowej. Wahadło takie jest zazwyczaj umieszczone na wózku
jeżdżącym po płaskiej powierzchni i napędzanym siłą o stałej wartości, działającej
w lewo lub w prawo (Rysunek 1). Zwrot tej siły jest dobierany przez układ stero-
wania. Za porażkę sterowania przyjmuje się sytuację, w której wahadło odchyli się
od pionu o kąt większy od zadanego.
<6A#FHNPxjŁ^]X
=8-B)EK~|{nTa
0 *$&LOzrg
19C!G Q f
>:.+%JI mid
2 ( vk W[
? " w e\Z
3 tqc
;/ ySV
@,D'M}uloh
4 Rb
5 s _Y
7 p
ą
F
h
Rysunek 1: Klasyczny układ fizyczny z wahadłem zamocowanym na ruchomym
wózku
Układ ten jest nieliniowy i niestabilny. Układ sterujący nie zna dynamiki kon-
trolowanego układu. Wahadło wraz z wózkiem jest postrzegane jako czarna skrzyn-
ka, na której zawartość oddziałuje tylko sygnał siły, a która generuje stan wahadła
i wózka oraz ewentualny sygnał kary. Dodatkowo, dla danego stanu układu nie ist-
nieje unikalne, poprawne rozwiązanie problemu sterowania. Każda sekwencja sił
gwarantująca sukces jest akceptowalna. Z tych powodów sterowanie takim ukła-
dem jest trudne.
W pracy tej podjęto próbę nauczenie sztucznej sieci neuronowej kontroli takiego
układu. Podczas przeprowadzonych doświadczeń, sprawdzono wpływ różnych pa-
rametrów nauczania na efektywność nauki. Dodatkowo, napisano program, który
pozwala sprawdzić działanie sieci w czasie rzeczyiwstym. Wyniki przeprowadzo-
nych badań są przedstawione w niniejszej pracy.
2 Sieć neuronowa
2.1 Wybór metody nauczania sieci
Zasadniczo rozróżnia się trzy metody nauczania sieci. Najczęściej stosowane jest
uczenie nadzorowane (supervised learning). Polega ono na dostarczaniu sieci dużej
ilości danych i kontrolowaniu czy otrzymany rezultat pokrywa się z oczekiwanym.
Po każdym korku wagi sieci są modyfikowane, proporcjonalnie do różnicy między
3
uzyskanym wynikiem a wzorcem. Metoda taka nie mogła zostać użyta w opisywa-
nym problemie, ponieważ nie sposób stworzyć wzorca prawidłowych odpowiedzi
dla określonego stanu układu.
W uczeniu nienadzorowanym (unsupervised learning), sieć neuronowa uczy się
wyszukiwać powtarzalnego wzorca w danym zbiorze danych. Tak nauczona sieć
znajduje zastosowanie przy klasyfikacji sygnałów wejściowych. Trzeba podkreślić,
że z założenia sieć taka nie przyjmuje informacji zwrotnych, trudno więc mówić o
praktycznym zastosowaniu takiej metody nauczania w prezentowanym zagadnie-
niu,
W trzeciej metodzie uczenia, uczeniu ze wzmocnieniem (reinforcement lear-
ning), jedyną informacją zwrotną jaką otrzymuje sieć neuronowa, jest sygnał kary,
mówiący o tym, czy wypracowany rezultat jest dobry czy zły. Na podstawie tyl-
ko tej informacji sieć ma poprawić swoje wyniki. Chociaż sieć podejmuje decyzje
na bieżąco, to sygnał kary zostaje wysłany dopiero po spełnieniu określonych wa-
runków. Bywa, że błędna decyzja prowadząca do porażki, zostanie podjęta wiele
kroków wcześniej i mimo, że kolejne decyzje będa poprawne, to nie uda się osiągnąć
sukcesu. W tego typu nauczaniu bardzo ważne jest wykrycie które decyzje najbar-
dziej przyczyniły się do porażki i poprawne przyznanie im odpowiedzialności za
uzyskany rezultat.
2.2 Budowa zastosowanej sieci
Anderson zaproponował [2] podział układu sterującego na dwie sieci - sieć oce-
niającą (evaluation network) i sieć decyzyjną (action network). Sieć decyzyjna
odpowiada za wybór kierunku siły dla danego stanu układu. Sieć oceniająca, uży-
wana tylko w procesie nauki, uczy się przewidywać sygnał kary, wykorzystując
przy tym metodę różnic czasowych (temporal difference), stworzoną przez Suttona
[3]. Dzięki tej metodzie, sieć uczy się powiązań pomiędzy sygnałami oddalonymi
od siebie w czasie. Oceniając stan układu, sieć generuje sygnał wyjściowy. Im jest
on mocniejszy, tym szybciej, zdaniem sieci, wystąpi sygnał kary.
Na rysunku 2 schematycznie przedstawiono budowę układu sterowania w trybie
nauki.
4
<6AD'KNPtoŁ^]X
=8-B)EJI Q W[
07,$! w f
19CFLOzrTd\Z
>:.+%H~|{sjh
2 ySa
3 uqV
? "(&M}mg
@*#G vnibY
4 k
5 lpe
;/ x _
Rc
sygnał kary
sieć oceniająca
zmienne
stanu
ocena
stanu
sieć decyzyjna
układ fizyczny
sygnał siły
wahadła
Rysunek 2: Budowa układu sterowania w trybie nauki
Obie sieci składały się z dwóch warstw. W pierwszej warstwie umieszczono
7 neuronów 4 dla zmiennych stanu i 3 dla parametrów. W drugiej znajdował
się jeden neuron o czternastu wejściach, który oprócz sygnałów z pierwszej war-
stwy, przyjmował również wartości wysyłane przez układ fizyczny (Rysunek 3).
Ten schemat, zaproponowany przez Andersona [1], różni się nieco od klasycznej,
trójwarstwowej sieci.
<6AD'KNPtoŁ^]X
=8-B)EJI Q W[
07,$! w f
19CFLOzrTd\Z
>:.+%H~|{sjh
2 ySa
3 uqV
? "(&M}mg
@*#G vnibY
4 k
5 lpe
;/ x _
Rc
wyjście
zmienne stanu
Rysunek 3: Budowa pojedynczej sieci
5
3 Badany układ
Ponieważ standardowy układ fizyczny (Rysunek 1) został już wielokrotnie prze-
badany, w tej pracy zdecydowano się sprawdzić zachowanie bardziej skompliko-
wanego układu. Przedstawiono go na rysunku 4. Wahadło (1) jest modelowane
przez kulkę o masie m, zamocowanej na sztywnym, nieważkim pręcie. Pręt ten
jest przyczepiony do wózka (2) i może swobodnie obracać się w obie strony bez
tarcia. Wózek ma masę M, a jego napęd stanowi silnik, zdolny tworzyć impul-
sy siły o zadanej wartości F, ukierunkowane w lewo lub w prawo. Wózek może
swobodnie poruszać się po torze w kształcie okręgu (3). Dodatkowo, tor ten może
być swobodnie obracany względem bezwzględnego układu wokół swojej osi (4). W
układzie założono całkowity brak tarcia.
<7AD'KNPsjŁ]X
08BEJI vlpib
=9-+)"FL~|{ng^\Z
1 $&M}w c
>:. ,*%HOzrTeY
2 x
3 y _
;5 ( Q f
? # m W[
@C!G uoh
4 tk
/ qa
6 RV
Sd
3
4
1
2
g
Rysunek 4: Badany układ
4 Równania ruchu układu
4.1 Układy współrzędnych
Rozpatrywanie położeń ciał najlepiej rozpocząć od układu związanego ze środkiem
wózka układem x2 y2 . Kąt określa odchylenie wahadła od pionu (Rysunek 5).
6
m
y'
F
x'
M
Rysunek 5: Układ x2 y2
Układ x2 y2 znajduje się wewnątrz układu xy. Kąt jaki zatoczył wózek, w sto-
sunku do najniżej położonego punktu toru po jakim się porusza, oznaczono jako
Ponieważ układ x2 y2 jest związany z wózkiem, również on porusza się po okręgu
w taki sposób, że oś y2 zawsze wskazuje środek układu xy (Rysunek 6).
<7AD'KNPsjŁ]X
08BEJI vlpib
=9-+)"FL~|{ng^\Z
1 $&M}w c
>:. ,*%HOzrTeY
2 x
3 y _
;5 ( Q f
? # m W[
@C!G uoh
4 tk
/ qa
6 RV
Sd
y
x
ą
m
y'
x'
F
M
Rysunek 6: Układ xy
Bezwględnym układem odniesienia jest układ XY . Kąt ł określa kąt obrotu
układu xy względem układu XY . Wartości X0 oraz Y0 nie mają żadnego znaczenia,
ta translacja służy wyłącznie poprawie czytelności rysunku .
7
y
Y
x
ł
X0
ą
y'
m
x'
M
F
g
X
Y0
Rysunek 7: Układ XY
4.2 Położenie ciał
W poniższych wyprowadzeniach długość wahadła oznaczono jako l, a promień toru
jako r.
4.2.1 Położenie kulki
Na początek należy wyznaczyć położenie kulki w układzie x2 y2
[ ] [ ]
x2 -l sin
k
=
2
yk l cos
W celu wyznaczenia położenia kulki w układzie xy trzeba dokonać obrotu i trans-
lacji układu współrzędnych
[ ] [ ] [ ] [ ] [ ]
xk cos ą - sin ą xk r sin ą -l sin cos ą - l cos sin ą + r sin ą
= + =
yk sin ą cos ą yk -r cos ą -l sin sin ą + l cos cos ą - r cos ą
8
Korzystając z tożsamości trygonometrycznych można uprościć powyższe równanie
do postaci
[ ] [ ]
xk -l sin(ą + ) + r sin ą
=
yk l cos(ą + ) - r cos ą
W układzie XY
[ ] [ ] [ ] [ ]
Xk cos ł - sin ł xk X0
= + =
Yk sin ł cos ł yk Y0
[ ]
-l sin(ą + ) cos ł + r sin ą cos ł - l cos(ą + ) sin ł + r cos ą sin ł + X0
=
-l sin(ą + ) sin ł + r sin ą sin ł + l cos(ą + ) cos ł - r cos ą cos ł + Y0
W ostateczności
[ ] [ ]
Xk -l sin(ą + + ł) + r sin(ą + ł) + X0
= (1)
Yk l cos(ą + + ł) - r cos(ą + ł) + Y0
4.2.2 Położenie wózka
Położenie wózka można wyznaczyć w analogiczny sposób
[ ] [ ]
Xw r sin(ą + ł) + X0
= (2)
Yw -r cos(ą + ł) + Y0
4.3 Energia kinetyczna
4.3.1 Energia kinetyczna kulki
1
2
Tk = m(k + k2)
2
Po uproszczeniach otrzymujemy
( )
1
Ł Ł
Tk = m l2(ą + + ł)2 - 2lr(ą + + ł)(ą + ł) cos + r2(ą + ł)2 (3)
Ł Ł Ł Ł Ł Ł Ł Ł
2
4.3.2 Energia kinetyczna wózka
( ) ( )
1 1
2 2
Tw = M w + w = M r2 cos2(ą + ł)(ą + ł)2 + r2 sin2(ą + ł)(ą + ł)2
Ł Ł Ł Ł
2 2
Ostatecznie
1
Tw = Mr2(ą + ł)2 (4)
Ł Ł
2
9
4.3.3 Energia kinetyczna układu
Energia kinetyczna układu jest równa sumie energii kinetycznych poszczególnych
ciał
)
1(
Ł Ł
T = ml2(ą + + ł)2 - 2mlr(ą + + ł)(ą + ł) cos + (m + M)r2(ą + ł)2 (5)
Ł Ł Ł Ł Ł Ł Ł Ł
2
4.4 Energia potencjalna
Przy obliczaniu energii potencjalnej jako poziom odniesienia przyjęto wartość Y0.
Jest to początek układu współrzędnych xy.
4.4.1 Energia potencjalna kulki
( )
Vk = mg(Yk - Y0) = mg l cos(ą + + ł) - r cos(ą + ł) (6)
4.4.2 Energia potencjalna wózka
Vw = Mg(Yw - Y0) = -Mgr cos(ą + ł) (7)
4.4.3 Energia potencjalna układu
Energia potencjalna układu jest sumą energii potencjalnych ciał
( )
V = g ml cos(ą + + ł) - (m + M)r cos(ą + ł) (8)
4.5 Równania Eulera-Lagrange a
4.5.1 Lagranżjan układu
Funkcja Lagrange a jest opisana równaniem L = T -V , po wstawieniu obliczonych
wcześniej równań otrzymujemy
)
1(
Ł Ł
L = ml2(ą + + ł)2 - 2mlr(ą + + ł)(ą + ł) cos + (m + M)r2(ą + ł)2
Ł Ł Ł Ł Ł Ł Ł Ł
2
( )
- g ml cos(ą + + ł) - (m + M)r cos(ą + ł) (9)
Równania Eulera-Lagrange a są dane równaniem
( )
d "L "L
- = Q (10)
dt "q "q
Ł
W rozpatrywanym układzie uogólniony wektor przemieszczeń q składa się z dwóch
współrzędnych
[ ]
ą
q = (11)
10
W rezultacie mamy do czynienia z dwoma równaniami
( )
d "L "L
- = Qą (12)
dt "ą "ą
Ł
( )
d "L "L
- = Q (13)
Ł
dt "
"
4.5.2 Pochodne lagranżjanu
Można przystąpić do obliczeń poszczególnych pochodnych występujących w rów-
naniu (12)
)
"L 1(
Ł Ł
= 2ml2(ą + + ł) - 2mlr(2ą + + 2ł) cos + 2(m + M)r2(ą + ł)
Ł Ł Ł Ł Ł Ł
"ą 2
Ł
( )
d "L
= ml2(ą + + ł) - mlr(2ą + + 2) cos
ł
dt "ą
Ł
Ł Ł
+ mlr(2ą + + 2ł) sin() + (m + M)r2(ą + ł)
Ł Ł
( )
"L
= g ml sin(ą + + ł) - (m + M)r sin(ą + ł)
"ą
oraz w równaniu (13)
)
"L 1(
Ł
= 2ml2(ą + + ł) - 2mlr(ą + ł) cos
Ł Ł Ł Ł
Ł
2
"
( )
d "L
Ł
= ml2(ą + + ł) - mlr(ą + ł) cos + mlr(ą + ł) sin()
Ł Ł
Ł
dt
"
"L
Ł
= mlr(ą + + ł)(ą + ł) sin + gml sin(ą + + ł)
Ł Ł Ł Ł
"
4.5.3 Siły uogólnione
W układzie działa tylko siła F i jest ona przyłożona do wózka, stanowiąc odzwier-
ciedlenie wbudowanego napędu. Jej składowe w układzie XY wynoszą
[ ] [ ]
FX F cos(ą + ł)
F = = (14)
FY F sin(ą + ł)
W celu obliczenia sił uogólnionych działających w układzie należy dokonać nastę-
pującego przekształcenia
( )T
dr
Q = F (15)
dq
11
dr
gdzie jest jakobianem przekształceń i przyjmującym postać
dq
["X "Xw ] [ ]
w
dr
r cos(ą + ł) 0
"ą "
= = (16)
"Yw "Yw
r sin(ą + ł) 0
dq
"ą "
Wstawiając równania (14) i (16) do równania (15) otrzymujemy
[ ] [ ] [ ]
r cos(ą + ł) r sin(ą + ł) F cos(ą + ł) F r
Q = = (17)
0 0 F sin(ą + ł) 0
4.6 Układ równań
Podstawiając obliczone wcześniej wyrażenia do równań (12) i (13) uzyskujemy
układ dwóch równań różniczkowych drugiego rzędu
Ł Ł
ml2(ą + + ł) - mlr(2ą + + 2) cos + mlr(2ą + + 2ł) sin()
ł Ł Ł
( )
+ (m + M)r2(ą + ł) - g ml sin(ą + + ł) - (m + M)r sin(ą + ł)
= F r
Ł
ml2(ą + + ł) - mlr(ą + ł) cos + mlr(ą + ł) sin()
Ł Ł
( )
Ł
- mlr(ą + + ł)(ą + ł) sin + gml sin(ą + + ł)
Ł Ł Ł Ł
= 0
4.7 Postać macierzowa układ równań
Wyprowadzony układ równań o wiele wygodniej jest przedstawić w postaci macie-
rzowej
[ ] [ ] [ ]
a11 a12 ą b1
= (18)
a21 a22 b2
Współczynniki macierzy są dane wzorami
a11 = ml2 - 2mlr cos + (m + M)r2 (19)
a12 = ml2 - mlr cos (20)
a21 = ml2 - mlr cos (21)
a22 = ml2 (22)
Ł Ł
b1 = -ml2ł + 2mlrł cos - mlr(2ą + + 2ł) sin() - (m + M)r2ł
Ł Ł
( )
+ g ml sin(ą + + ł) - (m + M)r sin(ą + ł) + F r (23)
b2 = -ml2ł + mlrł cos + mlr(ą + ł)2 sin
Ł Ł
+ gml sin(ą + + ł) (24)
12
4.8 Równania ruchu
4.8.1 Rozwiązanie układu równań
Macierzowe równanie (18) jest przedstawione w postaci Ax = b, pozostaje znalezć
zależność na x. W tym celu musimy znalezć odwrotność macierzy A
[ ]-1 [ ]
1
a11 a12 a22 -a12
A-1 = = (25)
a21 a22
det A -a21 a11
Wyznacznik macierzy A wynosi
(
( ) ( )2)
det A = ml2 ml2 - 2mlr cos + (m + M) r2 - ml2 - mlr cos
= ml2r2(m sin2 + M) (26)
Mnożąc lewostronnie obie strony równania (18) przez A-1 sprowadzamy układ do
postaci x = A-1b, co po podstawieniu obliczonych wyrażeń daje
[ ] [ ] [ ]
ą 1
a22 -a12 b1
= (27)
det A -a21 a11 b2
4.8.2 Ostateczna postać równań ruchu
Wymnażając macierze w równaniu (27) otrzymujemy ostatecznie
1
ą = (a22b1 - a12b2) (28)
det A
1
= (a11b2 - a21b1) (29)
det A
Z obliczeniowego punktu widzenia, warto pozostawić równania w takiej postaci.
Podczas rozwiązywania układu, wartości b1, b2 oraz (det A)-1 będą musiały być
policzone tylko raz w każdym kroku, zmniejszając przy tym koszt obliczeniowy.
Celem sterowania jest taki dobór sekwencji sił działających w lewo i w prawo,
żeby utrzymać wahadło w pionie względem wózka. Wahadło powinno pokazywać
więc środek okrągłego toru. Przyjęto, że wahadło może odchylić się od pionu o
12ć%. Ten stosunkowo duży przedział tolerancji odchylenia nie nadawałby się w
zastosowaniach wymagających bardzo precyzyjnej kontroli położenia, jest jednak
standardową wartością przyjmowaną w pracach badawczych.
13
4.9 Symulacja układu
Z powyższych rozważań wynika, że stan układu jest w danej chwili opisany cztere-
Ł
ma zmiennymi stanu: ą, ą, i . Dodatkowo w równaniach ruchu występują trzy
Ł
parametry: ł, ł i ł.
Ł
Problematyczną cechą sieci neuronowych jest ich długi czas uczenia. Przepro-
wadzenie nauki na układzie fizycznym wiązałoby się ze znacznymi trudnościami.
Z tego względu zdecydowano się na numeryczną symulację rzeczywistego układu.
Równania ruchu byłe całkowane metodą Rungego-Kutty IV rzędu z krokiem 0.005s
(200 Hz).
5 Proces nauki
5.1 Przyjęte wartości parametrów
Podczas badań zdecydowano się przyjąć następujące parametry układu
m = 0.1
M = 0.5
r = 1.0
l = 0.2
F = 7.0
g = 9.81
5.2 Normowanie wartości sygnałów
Ponieważ wartości zmiennych stanu generowanych przez symulator wahadła po-
chodzą z dość szerokiego przedziału wartości należało je najpierw unormować, tak,
aby sieć dostawała sygnały z przedziału ą0.1.
ą ą
Ł
x1 = x2 =
2.0 180ć%
Ł
x3 = x4 =
1.25 12ć%
ł ł
Ł
x5 = x6 =
25.0 6.0
ł
x7 =
180ć%
14
Dodatkowo w każdym procesie nauki wstępne wagi wszystkich połączeń były
losowane z przedziału (-0.1; 0.1).
5.3 Symulacja obrotu toru
Ponieważ proces nauczania był przeprowadzony na komputerze stacjonarnym, a
nie na tablecie, należało w jakiś sposób symulować obrót urządzenia. Zadanie to
spełniała następująca funkcja
( )
ńł
ł0.001 sin (i - 1000) " Ą jeśli i mod 2000 e" 1000
f(i) = 1000 (30)
ół
0 w przeciwnym wypadku
i - krok symulacji
6 Uzyskane wyniki
6.1 Modyfikacja oryginalnego algorytmu
Jednym z głównych założeń Andersona jest zdefiniowanie sygnału kary jako
{
-1 jeśli || e" 12ć%
r(t) = (31)
0 w przeciwnym wypadku
Podczas badań można było zauważyć, że sieć potrafiła nauczyć się utrzymywać
wahadło w zadanym przedziale. Często jednak okazywało się, że wahadło nie by-
ło stabilizowane dokładnie w pionie, lecz pod niewielkim, aczkolwiek widocznym,
kątem. Sytuacja taka jest co prawda sukcesem został osiągnięty cel utrzymania
wahadła w określonym przedziale. Kłóci się to jednak z próbą utrzymania ideal-
nego pionu, pozwalając na odchylenie o większy kąt podczas kryzysowych sytuacji,
oczywiście ciągle w zadanych granicach.
Aby temu zaradzić, postanowiono zmodyfikować nieco oryginalną funkcję kary
ńł
ł-1 jeśli || e" 12ć%
ł
r(t) = n jeśli || d" (p 12ć%) (32)
ł
ół0 w przeciwnym wypadku
15
Parametr n określa wartość sygnału jakim sieć zostanie nagrodzona w przy-
padku utrzymania wahadła w przedziale p procent mniejszym od zadanego. Oczy-
wistym jest, że wartość n powinna być dodatnia, natomiast wartość p winna być
mniejsza od jedności.
6.2 Przeprowadzone testy
Przeprowadzono badania dla 0 d" n d" 1 oraz 0 d" p d" 1 z krokiem 0.1, łącznie 121
testów. Dla każdej pary wartości wykonano 100 prób nauczania sieci.
Za sukces próby nauczania przyjmowano moment, w którym przez 120000 ite-
racji symulatora (10 minut czasu rzeczywistego) sieć utrzymywała wahadło w za-
danym przedziale tj. || e" 12ć%. Za porażkę próby przyjęto sytuację, w której przez
400000 iteracji symulatora sieć nie zdołała nauczyć się utrzymywać wahadło w
pionie. Dla każdego ze 121 testów mierzono dwie wartości, sprawność nauczania,
oraz średnią liczbę porażek sieci przed osiągnięciem sukcesu.
6.3 Sprawność nauczania
Sprawność naczania zdefiniowano jako
liczba prób nauczania zakończonych sukcesem
=
całkowita liczba prób
Na rysunku 8 przedstawiono uzyskane wyniki.
16
Rysunek 8: Sprawność nauczania w funkcji p i n (im więcej tym lepiej)
Interpretując powyższy wykres od razu dostrzega się zawodność procesu na-
uczania przy skrajnych wartościach parametrów. Algorytm z równania (31), od-
powiadający wartości n = 0 w równaniu (32), osiągnął średnią sprawność równą
0.728 co stanowi stosunkowo słaby rezultat. Warto zauważyć, że podobne wyniki
uzyskano dla p = 0. Wynika to z prostego faktu, że sieć była wówczas nagradzana
tylko w wyjątkowych przypadkach gdy kąt przyjął wartość 0. Uwzględniając
znaczną niestabilność układu, skończenie mały krok całkowania i sporą precyzję
liczb zmiennoprzecinkowych można z dużą pewnością założyć, że takie zdarzenie
nigdy nie miało miejsca, co znajduje odzwierciedlenie w wynikach.
Fatalne wyniki, na średnim poziomie 0.469, otrzymano dla parametru p równe-
mu jedności. Jest to zrozumiałe, sieć była nagradzana nawet wtedy, gdy wahadło
znajdowało się na granicy zadanego przedziału, trudno mówić więc o sensownej
dystrybucji kar i nagród.
Najlepsze rezultaty uzyskano dla wartości obu parametrów z przedziału (0.2 :
0.5). Sieć była wówczas nagradzana za utrzymywanie wahadła blisko pionu (pa-
rametr p), warunek ten był jednak na tyle nie wyśrubowany, że dawał szanse na
17
nagradzanie. Jednocześnie sygnał nagrody nie był zbyt mocny (parametr n), upa-
dek wahadła miał o wiele większą moc karzącą i stanowił główne zródło wiedzy.
6.3.1 Średnia liczba porażek
Średnią liczbę porażek przed zakończeniem procesu nauczania f zdefiniowano jako
k
"
1
f = m
k
i=1
m - liczba porażek przed zakończeniem procesu nauczania
k - liczba prób nauczania zakończonych sukcesem, w danym teście
Wartość ta określała szybkość uczenia się sieci w danym teście, uwzględniając
tylko udane próby nauczania. Na rysunku 9 przedstawiono uzyskane wyniki.
Rysunek 9: Średnia liczba porażek w funkcji p i n (im mniej tym lepiej)
18
Porównując powyższy wykres z rysunkiem 8 można zauważyć, że dla wartości
parametrów n i p bliskich zeru, sieć szybko się uczyła pomimo niskiej sprawności
nauczania. Oznacza to, że dla tych wartości proces nauki nie zawsze kończył się
sukcesem, jeśli jednak udało się osiągnąć cel to następowało to szybko.
Zdecydowanie najlepsze rezultaty, średnio 9.845 porażek na test, otrzymano dla
wartości 0.3 d" n d" 0.4 oraz 0.2 d" p d" 0.4. Pokrywa się to z obszarem najlepszej
sprawności nauczania.
Najgorsze wyniki uzyskano dla dużych wartości obu parametrów. Szukając
przyczyn tak dużej liczby porażek łatwo odwołać się do wcześniej uzyskanych
wyników.
7 Symulator sieci
7.1 Aplikacja
Jednym z głównych celów badań było napisanie aplikacji zdolnej pokazać działanie
sieci neuronowej w czasie rzeczywistym. Chociaż sam proces nauczania sieci był
przeprowadzany na komputerze stacjonarnym, to symulację zaimplementowano na
urządzeniu mobilnym - tablecie iPad firmy Apple. W napisanej aplikacji związano
z urządzeniem układu xy (Rysunek 10). Oznacza to, że obrót tabletu odpowiada
obrotowi okrągłego toru.
<7AD'KNupg_\Z
=9-B"FH~|wjŁ]X[
08+EJ Q c
1 # I m e
>:. ,*)(&M}PtoidY
2 zr W
3 $ vnh
? %LO{sTb
4 k
5 lqV
;6 x
@C!G y
/ Ra
Sf^
y
Y
ax
x
ay
X
Rysunek 10: Symulacja układu na tablecie
19
Urządzenie to jest wyposażone w trzyosiowy akcelerometr, oraz trzyosiowy ży-
roskop. Częstotliwość pomiaru obu tych przyrządów wynosi 100 Hz. Ich odczyty
pozwalają na dostarczanie do symulatora rzeczywistych wartości prędkości kąto-
wych oraz kierunku grawitacji jakie działałyby na fizyczny układ. W aplikacji
korzystano trzech pomiarów: przyspieszeń liniowych ax i ay oraz z prędkości kąto-
wej wokół osi z oznaczonej jako . Wartości tych pomiarów pozwoliły na obliczenie
parametrów
ax
ł = arctan
ay
ł =
Ł
dł "
Ł
ł = H"
dt "t
W napisanym programie wyniki te są liczone na bieżąco i podawane symulato-
rowi.
7.2 Parametry nauczania
Bazując na uzyskanych wynikach zdecydowano się przeprowadzić proces nauczania
sieci dla parametrów n = 0.5 i p = 0.3. Sieć była uczona przez 800000 kroków
(co odpowiada 67 minutom czasu rzeczywistego). Podczas nauki sieć zawiodła
tylko dwa razy: po 114 i 16542 krokach, by następnie prawidłowo utrzymywać
postawione wahadło aż do zakończenia procesu uczenia.
7.3 Stawianie wahadła
Podczas nauczania sieci cały układ fizyczny był przywracany do warunków po-
czątkowych, gdy wahadło odchyliło się o kąt większy od zadanego. Sieć neurono-
wa miała szansę uczyć się prawidłowych zachowań tylko w wąskim przedziale 24ć%
stopni. Po zakończeniu procesu nauczania blokadę tę usunięto - wahadło miało
pełną swobodę obrotu.
Uzyskano przy tym nieoczekiwany rezultat - sieć neuronowa była wstanie po-
stawić wahadło całkowicie odchylone od pion tj. wiszące pod kątem 180ć%. Tę za-
skakującą zdolność można jednak łatwo wytłumaczyć próbą minimalizacji kąta
(Rysunek 5). Sieć nauczyła się powiązań pomiędzy aktualnym stanem układu a
tym, jakie działania musi podjąć, żeby osiągnąć sukces.
W celu potwierdzenia tej teorii zbadano reakcję sieci na kombinacje parame-
Ł
trów i - kąta wychylenia wahadła i jego prędkości kątowej. Badano, z jakim
prawdopodobieństwem sieć będzie chciała przesunąć wózek w lewo w zależności od
aktualnej wartości tych parametrów. Wartość 0.0 odpowiada więc stu procentowej
20
pewności, że wózek, pod wpływam działania sterującej siły, przesunie się w prawo.
Na rysunku 11 przedstawiono uzyskane wyniki.
Rysunek 11: Prawdopodobieństwo wymuszenia ruchu wózka w lewo w zależności
Ł
od parametrów i
Wykres ten potwierdza powyższe rozumowanie. Gdy wahadło przechodzi przez
najniższy punkt, tj. gdy kąt skokowo zmienia się z -180ć% na 180ć% zmienia się też
siła. Powoduje to rozhuśtanie wahadła.
Jednocześnie warto zauważyć, że sieć potrafi niejako przewidzieć przyszłe wyda-
rzenia. Gdy wahadło jest blisko pionu ( blisko 0), reakcja sieci zależy od aktualnej
prędkości kątowej wahadła. Sieć wie, że duża dodatnia prędkość kątowa oznacza,
że wahadło będzie przechylać się w lewo, stara się przeciwdziałać temu ruchowi
przesuwając wózkiem w lewo.
Literatura
[1] C.W. Anderson Strategy Learning with Multilayer Connectionist Representa-
tions, GTE Laboratories, Waltham, MA, 1987
21
[2] C.W. Anderson. Learning to control an inverted pendulum using neural ne-
tworks, IEEE Controls Systems Magazine, 9:31-37, 1989.
[3] R.S. Sutton. Learning to Predict by the Methods of Temporal Differences, Ma-
chine Learning, vol. 3. pp. 9-44, 1988.
22
Wyszukiwarka
Podobne podstrony:
Zastosowanie sieci neuronowych w ekonomiAnaliza porównawcza zastosowania sieci neuronowych do klasyfikacji obiektówpraca dyplomowa sieci neuronoweZastosowanie sztucznych sieci neuronowych do szacowania spadków napiecia w sieciach nStatSoft Wprowadzenie do sieci neuronowychNieeuklidesowe sieci neuronowePRACA PRZEJŚCIOWA OPTYMALIZACJA PROCESÓW ENERGETYCZNYCH POPRZEZ ZASOTOWANIE NOWOCZESNYCH ALGORYTMÓSIECI NEURONOWEZastosowanie mikrokontrolera 8051 do sterowania ATA ATAPI CDROMSieci neuronowe Skrypt rozdzial 10lab5 Sieci neuronowesieci neuronowe pytaniasieci neuronowe i uczenie maszynowe próba integracji readmesieci neuronowe i uczenie maszynowe próba integracji readmePraca przejściowaPraca przejściowawięcej podobnych podstron