Cześć, witamy w Statoil i rozmawiamy zainicjowaliśmy mapę.
A teraz czas na ekscytujące rzeczy, które tworzymy, i robimy to z klasą oczywiście.
Przekonasz się, że klasa jest bardzo praktyczna, aby stworzyć pewne rzeczy, które mają wiele właściwości, ponieważ jak
widzisz, nie tylko znajduję pewne zmienne z mojego samochodu, ale także pewne funkcje, które oczywiście są funkcją,
która sprawi, że samochód ruszy do lewo na prawo lub idź prosto.
Mamy więc kilka zmiennych, które są ważne, aby opisać środowisko, które
mamy na przykład kąt, który jest kątem między osią x a osią kierunku samochodu.
Następnie mamy rotację, która jest jego ostatnią rotacją, która pamięta albo 0 stopni 20 stopni, albo
minus 20 stopni.
Następnie mamy prędkość, współrzędną x wektora prędkości i współrzędną y wektora
prędkości.
A następnie wektor współrzędnych prędkości x i prędkość Y, następnie mamy czujniki i sygnały.
I to jest bardzo ważne, że wywołanie, które tworzymy, będzie miało trzy czujniki czujnik jeden czujnik
drugi i czujnik trzy czujniki jeden wykryje, czy jest jakiś sens przed samochodem.
Następnie czujnik 2 jest czujnikiem, który wykrywa, czy jest jakiś sens po lewej stronie samochodu, a czujniki 3
to czujnik, który wykrywa, czy jest jakiś sens po prawej stronie samochodu.
A następnie z tych trzech czujników otrzymujemy sygnały, że sygnały odbierane przez każdy z czujników.
Tak więc sygnał jeden jest sygnałem odebranym przez czujnik jeden sygnał to sygnał odbierany przez czujnik 2 i
sygnał 3 jest sygnałem pojedynczym odbieranym przez czujniki 3.
A więc jak to działa.
Sygnał 1 to gęstość wysyłania wokół czujnika jednego sygnału, do którego gęstość centrum wokół czujnika,
aby zasygnalizować trzy, to gęstość wysyłanej wokół czułości i jak obliczamy gęstość piasku.
To bardzo proste.
Robimy duże kwadraty wokół każdego z czujników.
Są to faktycznie kwadraty o wartości 200 na 200 i dla każdego z kwadratów dzielimy liczbę na
kwadraty przez całkowitą liczbę komórek w kwadracie wynoszącą 22, a 20 równą 400.
I to daje nam gęstość piasku, ponieważ te odpowiadają centrum.
Robimy to dla każdego czujnika i daje nam gęstość piasku wokół każdego czujnika.
To są sygnały.
W porządku, więc teraz mamy wszystko, by wykryć czujnik, a potem mamy funkcję ruchu.
Oczywiście funkcja ruchu pozwala rdzewieć iść w lewo, idąc prosto lub idąc
w prawo.
Przejdźmy więc szybko.
Mamy tutaj aktualizację położenia samochodu z jego ostatnią pozycją, którą jest tu samo przejazd
i wektor prędkości.
Tak więc dzięki wektorowi prędkości pozycja będzie aktualizowana w kierunku wektora prędkości.
Następnie dostajemy rotację, którą otrzymamy w dalszej części kodu tutaj.
Obrót jest równy akcji względem akcji rotacji.
On wybierze akcję, a następnie wejdzie w rotację.
Tak więc ta samoobrona jest tutaj równa rotacji.
W tej rotacji wiemy, w jaki sposób musimy obrócić samochód, który jedzie w lewo
lub w prawo.
Następnie aktualizujemy kąt, który sobie przypominam, to kąt między osią x a osią
kierunku samochodu.
A potem, gdy samochód się ruszył, musimy zaktualizować czujniki i sygnał, ponieważ oczywiście, kiedy
samochód właśnie się obrócił, a czujniki również się obróciły i dlatego musimy je obracać za
pomocą funkcji obrotu i do której dodajemy nowa pozycja.
I dlaczego mamy ten wektor 30 0.
Cóż, to dlatego, że 30 to odległość między samochodem a czujnikiem.
Wiesz, jest odległość między samochodem i tym, co samochód wykrywa.
A potem, gdy czujniki zostaną zaktualizowane, to czas zaktualizować sygnały.
Tak więc robimy dokładnie to, co wyjaśniłem wam, sygnały komputerowe.
Podajemy współrzędne x naszego czujnika, a następnie weźmiemy wszystkie komórki od Manstona do plusa 10, a następnie robimy
to samo dla współrzędnej y przyjmującej wszystkie komórki od Madisona do plus 10.
Tak więc otrzymujemy kwadrat o wielkości 20 na 20 pikseli otaczających czujnik, a wewnątrz kwadratu -
niektóre starsze.
Więc w zasadzie z niektórymi komórkami, ponieważ komórki zawierają 0 lub 1, a ponieważ w 20 na 20 kwadratach jest
20 razy 20 równa się 400 komórek.
Cóż, dzielimy go przez 400, aby uzyskać gęstość tych w kwadracie i to w ten sposób otrzymujemy sygnał
gęstości centrów wokół czujnika i robimy to samo dla drugiego czujnika, a trzeci czujnik, aby uzyskać
drugi sygnał i trzeci sygnał.
DOBRZE.
Więc to jest wziąć czujnik, a te trzy linie kodu są tutaj bardzo ważne.
Kolejna rzecz, jaką chcemy, chcemy dostać do naszego samochodu, gdy dociera do jednej z krawędzi
mapy.
Wiesz, że nie chcemy, żeby samochód wjechał w niektóre mury i dlatego chcemy go ukarać, aby
go ukarać, gdy zbliża się zbyt blisko Wall i dlatego właśnie to robimy.
Jeśli pierwszy czujnik jest większy niż dłuższy minus 10, który jest większy niż tutaj, ponieważ dłuższy jest ten dystans tutaj, więc
tutaj jest już minus minus 10.
Więc jeśli czujnik działa dłużej niż dłużej Manison dotyczy wszystkich punktów tutaj.
Oznacza to, że jeśli samochód zbliża się do prawej krawędzi mapy lub czujnik czujnika działa mniej niż
10, to tutaj, gdy samochód zbliża się do lewej krawędzi mapy lub gdy czujnik Y jest
większy niż większy minus 10 to jest górna krawędź mapy i lub jeśli samocenzura Y jest mniejsza niż
10, to jest dolna krawędź mapy.
Jeśli więc czujnik osiągnie jedną z tych czterech krawędzi Cóż, umieścimy sygnał czujnika,
gdy sygnał wysłany.
Ustawimy go na taki.
I co to znaczy.
Oznacza to, że pełny dźwięk przypomina pełną gęstość piasku.
To jest najgorsze i można dostać.
Jest tyle sensu, że zatrzyma twój samochód.
Tak więc sygnał będzie jeden, a zatem samochód otrzyma strasznie złą nagrodę.
W porządku.
A potem robimy to samo dla sygnału i sygnalizuje trzy z czujnika dwa wystąpienia trzy.
W porządku.
A potem tworzymy klasę gry, więc jest to w zasadzie klasa do stworzenia gry, ponieważ do
tej pory stworzyliśmy tylko samochód, a teraz oczywiście musimy stworzyć mapę.
Musimy stworzyć samą grę.
Więc nie będziemy grać w grę, to nasza sztuczna inteligencja, która będzie grała w grę, a gra polega
na unikaniu przeszkód i na przemieszczaniu się z lotniska do centrum i na odwrót.
W tej klasie gry musimy stworzyć obiekty takie jak samochód, a następnie zdefiniować funkcję
aktualizacji.
To jest najważniejsze, a teraz skupimy się na tym właśnie teraz, ponieważ
jest to funkcja aktualizacji, która wybierze działanie, które samochód musi wykonać i za każdym razem, aby osiągnąć swój cel.
A ta akcja jest dokładnie wynikiem naszej sieci neuronowej.
Nowa wola będzie działała w sercu naszej sztucznej inteligencji.
A więc ta akcja jest zwracana przez mózg samochodu, który pozostaje przedmiotem naszej ludzkiej klasy, która będzie
robiła w naszym pliku AI.
I ten obiekt ma metodę, która nazywa się aktualizacją i przyjmuje jako dane wejściowe ostatnie słowo i
ostatni sygnał.
Tak więc ostatnie słowo jest oczywiście ostatnim słowem uzyskanym przez samochód, a ostatni sygnał jest
oczywiście ostatnim sygnałem z trzech czujników, które sygnalizują jeden z czujnika jeden sygnał drugi z czujnika do sygnału trzy z
czujnika 3.
Ale potem dodaję dwa inne wejścia, które są orientacją samochodu pod względem celu.
Jeśli na przykład samochód zmierza w kierunku celu, orientacja będzie równa zeru.
Jeśli przesunie się nieco w prawo, orientacja będzie bliska 45 stopni.
A jeśli pójdzie nieco w lewo, orientacja będzie bliska minus 45 stopni.
To jest siła wejściowa naszych stanów wejściowych.
A potem pojawia się lekcja, która ma orientację minus.
Tak więc zwykle dane wejściowe sieci neuronowej są niezależne. Nie ma wielobiegunowości, ale nie ma znaczenia, czy tak
jest, ponieważ sieć neuronowa po prostu naprawi to za pomocą wag.
Ale nadal zauważam, że dodanie tej orientacji minusowej dobrze pozwala samochodowi na szkolenie
samochodu w celu stabilizacji przyspieszenia.
Wiesz, że robimy to w ten sposób, że sztuczna inteligencja nie zawsze eksploruje w tym samym kierunku, dodając
tę orientację ujemną.
Upewniamy się, że eksploruje on w prawo lub w lewo.
Tak więc te trzy sygnały Plus orientacja i orientacja ujemna to pięć wejść naszego
zakodowanego wektora, które wejdą do sieci, którą nasz wektor wejściowy przejdzie do sieci i po
przejściu do sieci Cóż sieć zwróci wyniki, które to akcja do grania.
I za każdym razem, dane wyjściowe są zwracane przez tę funkcję aktualizacji, która zawiera samą
sieć i dane wyjściowe sieci, i dlatego właśnie musimy wprowadzić ostatni sygnał, który
jest stanem wejściowym, a także ostatnie słowo, ponieważ akcja do odtwarzania również zależy od ostatniego słowa.
W porządku, a następnie aktualizujemy główny wynik słów, które aktualizujemy rotacja, używamy funkcji ruchu,
aby obrócić samochód zgodnie z wybraną akcją.
Odbieramy odległość samochodu od drogi i otrzymamy pozycje czujników piłkę po jednej kulce dwa w odpowiedzi
Riekera na piłki, które będą reprezentować czujniki na mapie.
Zobaczysz to bardzo szybko.
I tutaj ta część jest bardzo ważna, ponieważ tam właśnie karamy samochód, jeśli
ma to jakiś sens, ponieważ jak widać, oznacza to, że jeśli samochód jest w jakimś sensie, zostanie spowolniony.
Właśnie tam zmniejszamy prędkość.
Wiesz, że jego prędkość wynosi zwykle 6, jak widać tutaj.
A jeśli dojdzie do pewnego sensu, będzie to spowolnienie do 1.
Zobaczysz, jak samochód zostanie spowolniony, gdy w pewnym sensie to nastąpi.
Jest spowolniony.
A poza tym dostaje złą nagrodę dostaje minus, którego chcemy.
I to jest najgorsza nagroda, jaką możesz dostać.
Najlepsza nagroda to jedna z najgorszych, jakie mamy, to minus jeden, a nagroda to od minus 1 do plus 1.
A poza tym.
A samochód nie jest na jakimś piasku.
Cóż, zachowuje swoją zwykłą szybkość prędkości seksu, a następnie dodajemy coś innego.
Jeśli zbliży się do celu, otrzyma nieco pozytywną nagrodę.
A jeśli odsunie się od celu, otrzyma nieznacznie ujemną nagrodę minus 0. 2.
A potem ostatni.
Warunki, które są związane z nagrodą.
Cóż, jeśli samochód zbliża się zbyt blisko krawędzi, jak mówiliśmy wcześniej.
Pamiętaj, kiedy rozmawialiśmy o czujniku paliwa.
Jeśli samochód zbliży się do lewej krawędzi mapy, otrzyma minus jedno słowo, jeśli zbliży się do
prawego brzegu mapy, a otrzyma nagrodę minus jeden.
A jeśli znajdzie się zbyt blisko dolnej krawędzi mapy, dostaniesz minus lub minus jeden.
A jeśli znajdzie się zbyt blisko lewego górnego rogu mapy, otrzyma nagrody minus jeden.
To straszna kara.
I zobaczysz, jak jest pełna i szybka, aby nie spieszyć się z czymś innym.
W porządku, a następnie to, aby zaktualizować go, gdy cel zostanie osiągnięty.
Więc wiesz, kiedy samochód dociera na lotnisko, które jest pierwszym, gdzie znajduje się lewy górny róg
mapy.
Podczas gdy cel zmienia się w prawy dolny róg mapy, która jest w centrum.
Dokładnie to robimy, aktualizujemy współrzędną x Crow i białe współrzędne
połączenia, a następnie aktualizujemy odległość od samochodu do samochodu.
W porządku.
A to mniej ważne.
To tylko klasa, która doda nam narzędzia do malowania, które znamy, aby móc namalować niektóre drogi lub przeszkody na
mapie, które są bardziej związane z K. V. Mogę rzucić okiem, jeśli chcę, przedstawię skondensowaną
wersję tego kodu, a ja dam ci znać, jeśli chcesz dowiedzieć się więcej o tym, jak to
zrobić z skivvy.
Ale my idziemy dalej od sztucznej inteligencji, więc nie zamierzam zagłębiać się w szczegóły.
I tak samo jest w przypadku ostatniej sekcji kodu z klasą samochodów, która jest tak samo, jak przyciski interfejsu czystego
zapisywania i ładowania.
Więc to właśnie tutaj robimy.
Wyczyść płótno bezpieczne.
I to jest dla nas bardzo ważne, abyśmy mogli uratować dzień, w którym wiem,
aby zapisać mózg, aby móc go później wykorzystać, przejmując funkcję ładowania, która jest kolejnym narzędziem, które dodajemy
na mapie, aby załadować mózg samochodu, który to załadować pamięć samochodu, jak poruszać się po mapie.
I wreszcie mamy ostatnią z ostatniej sekcji kodu, która uruchamia całą rzecz,
która uruchamia mapę i samą AI.
I właśnie to właśnie teraz zrobimy.
Rzućmy okiem na wszystko, co zrobiliśmy w tym kodzie.
Więc teraz sztuczna inteligencja nie jest zaimplementowana.
Tak więc kod będzie miał bardzo losowy ruch.
Będzie to wyglądało jak owad, ale nie martw się, naprawimy to.
Zwykle szkolimy go, aby poruszał się jak prawdziwy samochód i trenował go, aby nawigować po niektórych drogach
i omijać przeszkody.
Zróbmy to.
Zamierzam wybrać wszystko i wykonać.
A oto mapa.
A tu jest samochód.
W porządku.
Oto mała rzecz, która wygląda jak owad w naszym samochodzie.
Tak jak ci powiedziałem, działania są całkowicie przypadkowe.
Za każdym razem samochód wybiera losowo akcję, czy iść prosto w lewo, czy w prawo.
Dlatego właśnie robi pewne nonsensowne ruchy i dlatego wygląda jak owad.
Naprawimy to oczywiście.
I oczywiście od momentu aktywacji sztucznej inteligencji, to nie jest cel, którym jest lotnisko lub centrum
miasta w prawym dolnym rogu mapy.
Naprawimy to wszystko, wykonując sztuczną inteligencję, która zaimplementuje sztuczną inteligencję w tym samochodzie lub tym owadzie,
dzięki czemu zobaczysz trzy kulki, żółtą, czerwoną i białą.
To nasze trzy czujniki.
Więc to wykryjemy.
Jest w tym trochę zapachu.
I mówiąc o zapachu Cóż, rzućmy trochę.
Aby to zrobić, wystarczy kliknąć lewym przyciskiem myszy i w pewnym sensie nadal uczę się od lewej.
Więc teraz dodam trochę piasku, możemy dodać trochę więcej.
Więc za każdym razem w szaleństwie, jak widać, umieszczając je w środkowej tablicy, to wysyłamy tablicę,
która ma 00 współrzędnych pochodzenia.
A tutaj jest ich wiele.
A jak widzisz, dobrze jest zobaczyć samochód.
Właśnie ruszyliśmy w dół i zwolniliśmy.
Tak więc, jak widać, teraz jest bardzo wolna, ponieważ wchodzi w piasek.
A teraz próbuje uciec.
A więc wiesz, co zrobimy, to narysujemy kilka dróg i narysujemy kilka dróg z lotniska do
centrum, a my wyszkolimy samochód, aby pozostał na drodze i aby uniknąć przeszkód.
W porządku.
I jak widać jasny przycisk, aby wyczyścić piasek, znajduje się przycisk zapisu, aby uratować
mózg samochodu.
I rzeczywiście istnieje ta podstawowa krzywa, którą mówiliśmy o bezpieczeństwie, które zapisuje twój model
w mózgu samochodu, a następnie możesz wiedzieć, kiedy wychodzisz z zimna lub wyłączyć komputer i chcesz
do niego wrócić.
Możesz użyć przycisku obciążenia, aby załadować swój tryb, który ma załadować mózg, a to dostanie
pociągi AI twojego samochodu.
W porządku, więc teraz nie mogę się doczekać rozpoczęcia sztucznej inteligencji.
To będzie dużo zabawy.
Zrobimy naszą sieć neuronową i ukaramy samochód, gdy tylko nie zrobi tego, czego chcemy.
Zróbmy to z następnego samouczka.
A do tego czasu ciesz się.