Cześć, witam ponownie w naszym autem do samodzielnego prowadzenia Maggio.
Tak więc w samym toile zamierzam wyjaśnić środowisko, w którym będziemy implementować naszą sztuczną inteligencję i która będzie
zawierała Oczywiście samochód, który będzie trenował, aby sam jeździć i ominąć przeszkody, i na których narysuje kilka
dróg i kilka bloków dla nasze samochody do poruszania się po nich.
Później skonstruujemy tę sztuczną inteligencję, aby wyszkolić ten samochód, aby jeździł po drogach, które znasz,
bez przekraczania granic i unikania przeszkód, które zostaną wprowadzone na drogę.
To jest ekscytujące wyzwanie.
W rzeczywistości istnieją dwa oddzielne pliki, ponieważ można zobaczyć, że jest apeks i ptactwo, które są
sztuczną inteligencją, która zrobi całe szkolenie, aby wyszkolić samochód, jak sprzedać dysk.
I mamy mapę, którą znaleźliśmy, która jest kodem, który tworzy całe to środowisko.
Oto kod, który w rzeczywistości zawiera 200 linii kodu.
Więc ten kod nie jest zazwyczaj związany z sztuczną inteligencją.
Jest to tylko kod, który sprawia, że środowisko tworzy mapę.
Przejdę więc przez poszczególne sekcje, aby wyjaśnić, ale nie zamierzamy implementować tej
linii kodu po linii od zera, ponieważ chcemy skupić się na sztucznej inteligencji.
Ale przejdźmy kolejno przez poszczególne sekcje, aby zrozumieć, co się dzieje.
Tak więc najpierw importujemy biblioteki centralne, które są dla dowolnego kodu.
Potrzebujemy trochę bibliotek, aby wykonać pewne zadanie wydajniej niż importujemy wszystkie pakiety cavy.
Nie jest to bardzo ważne, ponieważ to wszystko jest właściwe dla Cavey'ego, używamy cavy do tworzenia mapy.
Dlatego importujemy wiele klas i obiektów, aby móc wykonać tę mapę i dodać kilka narzędzi
do mapy.
W porządku, ta linia jest ważna.
Ta linia jest powiązana, ponieważ w zasadzie to tutaj importujemy nasz mózg do mózgu samochodu, który będzie kolejnym
odrzutowcem tego w klasie i nauczycielu w klasie.
Czy nasza sztuczna inteligencja jest sama w sobie.
Zobaczysz, że wprowadzimy korektę w klasie w poniższych samouczkach.
I jak mogłeś się domyślić instancji piszącej dla głębokich sieci Q.
Więc zaimplementujemy sieć uczenia się z kolejki, a kiedy będzie gotowa,
zaimportujemy ją tutaj z tej linii z AI, a oczy oczywiście są plikami Pythona.
W porządku.
Więc nie mogę się doczekać, aby to wdrożyć.
To będzie dość podróż, ale przekonasz się, że będzie to bardzo ekscytujące,
bo dzięki I samochód będzie mógł sam jeździć.
W porządku.
A teraz zanim przejdę do następnej sekcji, musimy wyjaśnić, jak będziemy trenować ten samochód.
Nie zamierzam teraz wyjaśniać sieci neuronowej, ale zamierzam wyjaśnić, w jaki
sposób możemy wyszkolić samochód do jazdy i unikania przeszkód.
Więc wiesz w prawdziwym życiu, jeśli chcesz trenować prawdziwy samochód, aby uniknąć niektórych murów lub przeszkód.
Cóż byś zrobił.
Na pewno nie wziąłbyś prawdziwych murów ani prawdziwych dużych przeszkód i nie zmiażdżysz ich samochodem.
To by kosztowało cię dużo pieniędzy.
Zamiast tego bardziej inteligentnym pomysłem byłoby ukaranie samochodu nie wtedy, gdy rozbije ścianę lub przeszkodę, ale
kiedy przejdzie na piasek.
Więc masz pole.
Na tym polu znajdują się drogi, na których samochód musi się znajdować, a drogi są ograniczone przez piasek.
Za każdym razem, gdy samochód jedzie do centrum, dzieje się tak, jakby działo się to z przeszkodą, ponieważ
gdy samochód wjedzie na piasek, zostanie spowolniony, a my upewnimy się, że samochód jest karany, jest karany za
to.
I to jest jeden istotny punkt sztucznej inteligencji.
Złe słowo pojawia się za każdym razem, gdy samochód w pewnym sensie ulega spowolnieniu.
W porządku.
I dlatego tutaj wprowadzam ostatni tekst i właśnie dlatego.
Jakie są współrzędne ostatniego punktu w pamięci, kiedy narysujemy jakiś zapach na mapie.
W porządku.
A potem otrzymujemy naszą sztuczną inteligencję, którą nazywamy mózgiem i która zawiera naszą sieć neuronową, a my
nazwiemy ją mózgiem, ponieważ jest to w rzeczywistości mózg samochodu i zawiera naszą
Noodle Network.
W porządku.
Więc w tym wierszu kodu, jak widzisz, tworzę obiekty na nauczycielu w klasie.
Przypominam, że klasy i przedmioty są tylko obiektem Brenny, który dehumanizuje klasę i 5: 3
i 0. 9 to dane wejściowe klasy.
To bardzo proste pięć odpowiada stanom, które są zakodowanymi wektorami pięciu wymiarów, zobaczymy, jak doskonale
opisują to, co dzieje się w środowisku na mapie.
Następnie trzy to liczba akcji, które będą trzy możliwe działania idź w lewo idź prosto lub
idź w prawo i 0. 9 jest znowu parametrem w algorytmie uczenia się zapisywania.
W porządku, a potem mamy akcję przez rotację.
Zatem akcja rotacji jest wektorem trzech elementów.
020 i minus 20.
Musimy to zrobić, ponieważ akcje są kodowane przez trzy liczby 0 1 i 2 i odpowiada to indeksom
tego wektora obrotu dwóch akcji.
Na przykład, jeśli akcja wybrana w czasie t wynosi zero.
Dobrze zero odpowiada indeksowi tego działania dwóch wektorów obrotu, a wartość wskaźnika 0 wynosi zero.
I dlatego pójdziemy prosto, jeśli wybrana akcja to 1.
Cóż, jeden odpowiada wskaźnikowi tej akcji, dwa dodatkowe wektor, a wartość tego wektora,
który ma następny, wynosi 20.
Tak więc 20 odpowiada obrotowi o 20 stopni, co oznacza, że kod będzie przechodził
20 stopni w prawo, a następnie, jeśli wybrane działanie będzie dobrze odpowiadać indeksowi tego działania względem wektora obrotu.
I dlatego kod wykona obrót o minus 20 stopni, a zatem będzie on przesuwany w lewo.
W porządku, wtedy wprowadzamy lewostronnego Wojewodę, ponieważ na każdym etapie otrzymamy ostatnie słowo.
Więc pamiętaj, że jeśli karta nie ma jakiegoś sensu, to nagroda będzie pozytywna.
A jeśli kod dojdzie do pewnego sensu, otrzyma złą nagrodę i za każdym razem ta zmienna
będzie zawierała tę nagrodę, że dostaje H20.
Następnie inicjujemy wyniki, które są wektorami, które będą zawierały nagrodę.
Nie wszystkie, ale nagroda.
Na przesuwanym oknie, abyś wiedział, że możemy krzywa średniej przysadzić nagrodę w odniesieniu
do czasu.
W porządku w tej sekcji kodu zainicjujemy mapę, abyśmy ją zainicjowali.
Na przykład wspomniana zmienna.
To ważne.
Drugą zmienną będzie faktycznie tablica, w której komórki będą pikselami mapy, aw
każdej komórce będziemy mieć 1.
Jeśli jest zero w sensie, jeśli na początku nie ma centrum, nie będziemy niczego rysować.
Więc nie będzie żadnego sensu i dlatego wszystkie komórki tablicy centralnej będą miały zero.
Wszędzie będą zera i jak tylko zaczniemy rysować sens, podczas gdy komórki,
na których narysujemy sens, dostaną jeden, a my zainicjujemy wyścig z wszystkimi zerami tutaj wysłanymi równymi i zerami.
Następnie mamy tę ważną rzecz, która jest celem.
Tak więc celem jest punkt na mapie, który pociągnie samochód do osiągnięcia.
To jest jak miejsce docelowe.
Jaki więc będzie ten cel?
Cóż, to będzie lewy górny róg mapy, aby wszyscy trenowali samochód, aby przejść do lewego górnego
rogu mapy.
A potem, gdy dojdzie do lewego górnego rogu mapy, będziemy mieli tendencję do przejścia w
prawy dolny róg mapy, abyśmy mogli sobie wyobrazić następujący scenariusz.
W lewym górnym rogu mapy znajduje się lotnisko miasta, a prawy dolny róg mapy
to śródmieście miasta.
I będziemy trenować taksówkę lub Uber, aby odbyć kilka podróży między lotniskiem a centrum miasta.
Oczywiście utrudnimy zadanie tej taksówce, rysując coraz trudniejsze drogi i dodając coraz
więcej przeszkód na ulicy, aby sprawdzić, czy taksówkarzowi uda się dotrzeć z lotniska
do centrum miasta.
To będzie dobra zabawa.
I dlatego właśnie ustawiam współrzędne pierwszego celu, czyli lotniska, które znajduje się w lewym
górnym rogu ekranu.
Mapa będzie więc podobna do kwadratu, a współrzędne punktu współrzędnych 00
są właśnie tutaj.
A większy jest tutaj ten dystans.
Zatem współrzędne 20 i Najah minus 20 będą w tym miejscu w lewym górnym rogu mapy.
I dlaczego wybrałem 20, a nie zero.
Cóż, to dlatego, że chcemy wyszkolić samochód, żeby nie rzucał się w ściany.
Wiesz, że chcemy również trenować w ścianach, a zatem nie jest to zero, ponieważ nie chcemy, aby
samochód dotykał miejsca, do którego chcemy się zbliżyć.
Musimy więc umieścić to tutaj, a potem dopiero wprowadzam ostatnią zmienną odległości, która właśnie podaje
aktualną odległość od samochodu do drogi i zaczynam od zera.
W porządku.
A teraz czas na samochód i grę.
Zrobimy więc dwie klasy jedną klasę dla samochodu i jedną klasę dla gry.
I w tych klasach będą już pewne połączenia z naszą sztuczną inteligencją.
Więc zrobimy to w następnym Statoil.
I do tego czasu ciesz się.