summary refs log tree commit diff
path: root/Chapters/chapter4.tex
blob: e71eda7d61f902dcd5608128163097b709153271 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
\chapter{Podsumowanie}
Sieć neuronowa wykonana w ramach projektu działa na ten moment dość intuicyjnie, 
co znaczy, że nie wykonuje żadnego planowania, decyzje podejmuje na bieżąco. 
Jest w stanie pokonać prostą trasę, w której tylko jeden tor może zostać uznany 
za prawidłowy. 
\section{Możliwe usprawnienia}
Aktualna sieć może nie być w stanie rozwiązać wszystkich problemów, w szczególności
planowania trasy. Dlatego też warto rozważyć opisane poniżej podejścia.

Najprostszym rozszerzeniem obecnej architektury może być wzięcie pod uwagę czasu -- 
np. reagowanie na $k$ ostatnich obrazków. Dzięki temu rozwiązaniu sieć byłaby w 
stanie wywnioskować aktualną prędkość, ale wciąż jej decyzje pozostałyby
spontaniczne.

Większym wyzwaniem byłoby wytrenowanie rekurencyjnej sieci neuronowej (RNN), zdolnej
do przekazania samej sobie kontekstu. Trenowanie takiej sieci mogłoby się okazać 
bardziej problematyczne. Prostą strategią dla takiej sieci jest powtarzanie 
ostatniego wypisanego wyniku. Mogłoby to doprowadzić do sytuacji, w której  łazik
wykonuje wciąż te same operacje, nie reagując na zmianę warunków.

Kolejnym rozwiązaniem jest reinforced learning, które polega na wskazywaniu sieci
sytuacji, w których sieć popełniła błąd. Przykładowo, za taką sytuację można uznać
konieczność interwencji człowieka lub wyjechanie łazika poza trasę. 
Niestety, modelu wytrenowanego na symulatorze nie da się przenieść bezpośrednio 
na pojazd (np. ze względu na znaczną różnicę obrazu). Dlatego też omawiane rozwiązanie
można trenować jedynie w rzeczywistości. Stwarza to niestety problemy -- 
błąd prawdziwego pojazdu może być kosztowny lub niebezpieczny.

Dodatkowo, każde ze wspomnianych rozwiązań można usprawinić poprzez zmianę 
perspektywy kamery na ujęcie z góry.

Oczywiście pozostają też rozwiązania nieużywające sieci neuronowych. Można
na przykład stworzyć program, który korzystając z mapy otoczenia lub mapy głebokości
z kamery nadzorowałby trasę łazika, zmniejszając ryzyko wjechania pojazdu w przeszkodę.

Zaproponowane powyżej rozwiązania mogą zostać zastosowane w przyszłości, w ramach 
dalszego rozwoju projektu.