From 2b8c08fd2b2af81be7b3cd1eed031b5bfdeee09b Mon Sep 17 00:00:00 2001
From: Paweł Dybiec <pawel.to.malpa@gmail.com>
Date: Mon, 12 Feb 2018 16:09:25 +0100
Subject: głównie poprawki stylistyczne
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Chapters/chapter4.tex | 46 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 33 insertions(+), 13 deletions(-)

(limited to 'Chapters/chapter4.tex')

diff --git a/Chapters/chapter4.tex b/Chapters/chapter4.tex
index b34809a..e71eda7 100644
--- a/Chapters/chapter4.tex
+++ b/Chapters/chapter4.tex
@@ -1,18 +1,38 @@
-\chapter{Co dalej}
-Najprostszym następnym krokiem jest zwiększenie danych o dodatkowy wymiar, i nauczenie takiej
-sieci decyzji na podstawie $k$ (niekoniecznie) ostatnich zdjęć. Innym prostym rozwiązaniem,
-które można z tym połączyć jest zmiana perspektywy kamery na zdjęcie z góry.
+\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.
 
-Bardziej ambitnym pomysłem jest wytrenowanie rekurencyjnej sieci neuronowej (RNN),
-gdyby ją dobrze nauczyć sama wyciągnie kontekst. Ale problemem przy jej trenowaniu
-będzie fakt, że prostą strategią dla takiej sieci jest powtarzanie ostatniego wypisanego
-wyniku, a to dlatego że prędkość jest ciągła.
+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.
 
-Kolejnym rozwiązaniem jest reinforced learning, sieć karało by się za
-każdą interwencję lub wyjechanie poza trasę. Niestety problemem tutaj jest 
-fakt, że jak błąd prawdziwego pojazdu może być kosztowny lub niebezpieczny.
+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.
 
-Oczywiście pozostają też rozwiązania nie używające sieci neuronowych, można
-przykładowo stworzyć program pilnujący aby łazik nie wjechał w przeszkodę.
+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.
 
-- 
cgit 1.4.1

