WEBVTT

00:00.450 --> 00:02.670
Cześć i witaj w tym schemacie to horror.

00:02.850 --> 00:06.890
W porządku, więc właśnie zaktualizowaliśmy pamięć po osiągnięciu nowego stanu.

00:06.900 --> 00:09.010
A teraz zajmijmy się następnego dnia.

00:09.330 --> 00:12.810
Według ciebie teraz, co będzie następną aktualizacją.

00:12.810 --> 00:20.040
W zasadzie skończyliśmy z jednym przejściem, z którym zetknęliśmy się z ostatnim elementem przejścia, jakim jest

00:20.040 --> 00:20.960
nowy stan.

00:21.150 --> 00:23.340
Teraz zaczynamy od nowa.

00:23.520 --> 00:25.530
A kiedy zaczynaliśmy wszystko od nowa.

00:25.650 --> 00:31.320
To tak jakbyś wiedział, że jesteśmy w nowym stanie środowiska i co teraz musimy zrobić naturalnie.

00:31.500 --> 00:37.170
Oczywiście, że to gra, ponieważ mamy już obserwację wiadomości.

00:37.410 --> 00:43.290
Teraz rzeczą, którą musimy zrobić, jest odgrywanie akcji i dlatego musimy teraz

00:43.290 --> 00:46.960
użyć funkcji wyboru akcji, aby zagrać akcję.

00:47.010 --> 00:54.320
Zróbmy zatem nową akcję wojewodzie i zagrajmy w akcję z wybraną akcją, więc

00:54.320 --> 00:55.240
biorę.

00:55.380 --> 01:03.150
Cóż, pierwsze ja, aby określić, że funkcja wyboru akcji jest metodą obiektu klasy, która

01:03.150 --> 01:04.300
zostanie utworzona.

01:04.470 --> 01:08.610
Więc jaźń, która wybiera akcję.

01:08.640 --> 01:09.520
No to ruszamy.

01:09.560 --> 01:11.090
To kolejna akcja.

01:11.310 --> 01:17.560
I oczywiście, ponieważ funkcja wyboru działania przyjmuje stan jako dane wejściowe, ponieważ oczywiście

01:17.560 --> 01:24.270
funkcja wyboru działania zwróci wynik sieci neuronowej, gdy bieżący stan wejściowy wejdzie do sieci

01:24.270 --> 01:25.220
neuronowej.

01:25.500 --> 01:31.650
Musimy więc wprowadzić tutaj etap wejściowy i ponieważ to są stany, które właśnie osiągnęliśmy w środowisku,

01:31.650 --> 01:37.350
w którym obecnie znajduje się stan wejściowy, ponieważ stanem, który właśnie osiągnęliśmy w chwili,

01:37.350 --> 01:40.070
w której teraz jesteśmy, jest Newstead.

01:40.290 --> 01:45.140
Więc w tej funkcji wyboru zaznaczam wstawianie nowych patyków.

01:45.150 --> 01:51.710
W porządku, w tej linii kodu po prostu zagrywamy nową akcję po osiągnięciu nowego stanu.

01:52.140 --> 01:58.780
OK, a teraz graliśmy akcję. Cóż, otrzymujemy nagrodę i dlatego otrzymujemy informację zwrotną z nagrodą.

01:59.010 --> 02:04.550
I dlatego, jeśli mamy więcej niż 100 elementów w pamięci, to nadszedł czas, aby się uczyć.

02:04.860 --> 02:10.830
A zatem to, co musimy teraz zrobić, jest tym, co logicznie wynika po wybraniu działania, które oczywiście ma na celu

02:10.830 --> 02:13.830
obniżenie potrzeb w zakresie sztucznej inteligencji, aby rozpocząć naukę.

02:13.950 --> 02:15.620
Jeśli robi to we właściwy sposób.

02:15.870 --> 02:22.530
A teraz, ponieważ po prostu dobrze grało akcję, zamierzamy sprawić, by sztuczna inteligencja uczyła się na podstawie swoich działań w

02:22.530 --> 02:23.940
ciągu ostatnich 100 wydarzeń.

02:24.130 --> 02:31.320
Zanim jednak zastosujemy tę wyuczoną funkcję, musimy spełnić ten warunek, aby upewnić się, że osiągnęliśmy już

02:31.320 --> 02:37.380
ponad 100 zdarzeń, ponieważ wiesz, że uczymy się na losowych próbkach pamięci.

02:37.530 --> 02:41.110
Wiesz, że mamy ogromną pamięć 10000 elementów.

02:41.190 --> 02:48.930
Pobieramy losowe próbki z pamięci 100 elementów, a AI uczy się na podstawie informacji zawartych

02:48.990 --> 02:52.850
w tej próbie 100 losowych przejść.

02:52.860 --> 03:00.690
Zróbmy to, jeśli warunkiem jest upewnienie się, że liczba elementów pamięci tej pamięci, a następnie

03:00.810 --> 03:06.390
ostrożność, to mała sztuczka pamięci samouków, która jest przedmiotem klasy

03:06.390 --> 03:12.380
pamięci powtórzeń, ale klasa pamięci powtórek ma atrybut, który jest pamięcią.

03:12.510 --> 03:21.780
W rzeczywistości musimy wziąć część pamięci, że pamięć pierwsza jest przedmiotem klasy pamięci powtórzenia,

03:21.780 --> 03:28.170
a druga pamięć jest tutaj atrybutem tej pamięci.

03:28.200 --> 03:37.350
Więc jeśli liczba elementów w pamięci jest dobra, chcemy, żeby była większa niż 100, następnie Cullin A potem co się

03:37.860 --> 03:38.800
stanie.

03:38.970 --> 03:46.320
Cóż, możemy się nauczyć, ale aby nauczyć się, musimy pobrać tę losową próbkę 100 przejść i to możemy

03:46.320 --> 03:48.840
uzyskać za pomocą prostej funkcji.

03:48.840 --> 03:55.140
A ponieważ prosta funkcja zwraca różne partie do stanów w czasie t te dane 20 plus jedno

03:55.290 --> 03:57.950
działanie czasu t i mieliśmy 20.

03:58.200 --> 04:03.360
Cóż, musimy teraz zrobić kilka nowych przebudów, które będą serią

04:03.360 --> 04:08.580
stanów w czasie t partia kolejnych datuje partię słów i grupę

04:08.580 --> 04:16.030
akcji i możemy po prostu podać te same nazwy jak daliśmy argumenty tutaj i są tutaj.

04:16.200 --> 04:24.720
A te zmienne będą równe temu, co zwraca funkcja prosta, ponieważ zwraca dokładnie te partie, a

04:24.720 --> 04:28.320
następne państwo bierze słowa i akcje.

04:28.320 --> 04:35.570
Więc to, co musimy teraz zrobić, to najpierw nasz obiekt pamięci, a następnie z tego obiektu

04:35.620 --> 04:40.300
pamięci użyjemy prostej metody, która przyjmie jako dane wejściowe.

04:40.500 --> 04:46.370
Cóż, liczba przejść, których chcemy nauczyć się z naszej sztucznej inteligencji, wynosi 100.

04:46.620 --> 04:50.540
Dlatego upewniliśmy się, że mamy ponad sto przejść.

04:50.610 --> 04:54.780
Więc będzie się uczyć od 100 przejść pamięci.

04:54.840 --> 04:56.500
Tak więc nauka będzie znacznie lepsza.

04:56.610 --> 04:59.560
A więc teraz sprawmy, żeby to się naprawdę stało.

04:59.700 --> 05:04.560
Cóż, odkąd metoda uczenia się jest metodą naszej klasy.

05:04.830 --> 05:11.180
Cóż, musimy uzyskać dostęp do tej metody uczenia się z przyszłych obiektów, które zostaną utworzone z innej klasy,

05:11.190 --> 05:14.300
a zatem to, co musimy zrobić, to self.

05:14.430 --> 05:21.960
Self odnosi się do tego celu, aby zrobić podczas zajęć, a następnie nauczyć się, jak ta metoda nauczyłem

05:22.470 --> 05:29.340
się metody, do której po złożeniu Oczywiście ci goście tutaj złe państwo belgijskie naturalny świat i

05:29.340 --> 05:30.530
akcja Bachche.

05:30.630 --> 05:38.730
To są nasze partie pobrane z naszej pamięci i otrzymujemy ich 100, ponieważ mamy 100 przejść z tych

05:39.330 --> 05:47.750
100 przejść, które przyjmujemy 100 państw 100 kolejnych państw 100 nagród i 100 działań, stójmy twarzą w twarz tu

05:47.780 --> 05:51.530
i tam, gdzie teraz pójdziemy, nauka się wydarzy.

05:51.850 --> 05:54.490
Stanie się tak ze wszystkich tych losowych partii.

05:54.520 --> 05:55.850
Idealny.

05:55.960 --> 06:03.310
A teraz musimy zrobić ostatnie aktualizacje, po tym jak poznasz nowy stan i grasz w

06:03.310 --> 06:04.140
akcji.

06:04.330 --> 06:08.890
Dobrze, że mamy grać, ale wciąż nie mieliśmy takiej reakcji.

06:08.920 --> 06:11.590
To jest nasza ja, wojewoda ostatniej akcji.

06:11.770 --> 06:13.730
Upewnijmy się, że tego nie zapomnimy.

06:13.780 --> 06:15.160
Zróbmy to teraz.

06:15.190 --> 06:24.610
Zaktualizujemy ostatnią akcję, że ostatnie działanie jest równe i oczywiście działamy akcją, w której po prostu pozostajemy z

06:24.610 --> 06:27.020
tą funkcją wyboru akcji.

06:27.020 --> 06:30.520
W tej chwili ostatnia sekcja jest aktualizowana.

06:30.520 --> 06:31.890
To samo dotyczy nowego stanu.

06:31.930 --> 06:39.190
Doszliśmy do nowego stanu, ale nie zaktualizowaliśmy jeszcze ostatniej daty, ponieważ oczywiście ostatnia była przed stanem w

06:39.280 --> 06:40.590
chwili t.

06:40.750 --> 06:44.870
Ale od teraz osiągnęliśmy nadwyżkę stanu, kiedy nadejdzie czas, aby ją przekroczyć.

06:45.070 --> 06:48.180
Cóż, ostatnia staje się tym, co tu powiedziałeś.

06:48.190 --> 06:50.290
Dlatego potrzebujemy również aktualizacji.

06:50.290 --> 06:57.070
Jaźń tego ostatniego stanu równa się naszemu nowemu państwu.

06:57.280 --> 06:58.020
No to jedziemy.

06:58.210 --> 06:59.620
A teraz, czego potrzebujemy do tej pory.

06:59.830 --> 07:01.640
Zostało tylko jedno.

07:01.660 --> 07:08.070
To oczywiście słowo i słowo jest dokładnie tym słowem, które otrzymujemy w rzeczywistości.

07:08.290 --> 07:15.910
Tak więc będzie to argument tej funkcji, który, jeśli zrobimy połączenie z naszą mapą, będzie

07:15.910 --> 07:17.160
ostatnim słowem.

07:17.200 --> 07:23.250
To jest słowo, które otrzymujemy zaraz po zagraniu akcji w tym nowym stanie.

07:23.470 --> 07:30.260
Więc jeśli przejdziemy do jakiegoś dźwięku, to ostatnie słowo będzie takie, że minus jeden, jeśli przejdziemy dalej od

07:30.290 --> 07:35.580
tego, otrzymamy nieco złe słowo minus 0. 2, jeśli zbliżysz się do celu.

07:35.660 --> 07:38.680
Otrzymamy niewielką nagrodę 0. 1.

07:38.830 --> 07:43.370
A jeśli znajdziemy się zbyt blisko krawędzi mapy, to będzie to kara.

07:43.510 --> 07:45.330
Otrzymamy minus jeden za każdego.

07:45.440 --> 07:47.110
To ostatnie słowo, które otrzymujemy.

07:47.110 --> 07:50.700
W rzeczywistości dzieje się tak naprawdę na mapie.

07:50.830 --> 07:53.550
I to będzie argument funkcji.

07:53.600 --> 07:54.690
Ostatnie słowo tutaj.

07:54.700 --> 07:56.200
Właśnie to.

07:56.250 --> 08:01.840
I dlatego, że jest to argument funkcji aktualizacji, która odpowiada

08:02.170 --> 08:11.590
temu, czego nie było tutaj, a zatem nasza jaźń, ta zmienna ostatniego słowa zainicjowana na początku w tej funkcji

08:12.070 --> 08:20.570
staje się nowym słowem, które otrzymujemy w rzeczywistości, to jest słowo lub to to samo ostatnie słowo.

08:20.730 --> 08:21.360
W porządku.

08:21.410 --> 08:23.680
Teraz zaktualizowaliśmy nasze ostatnie słowo.

08:23.990 --> 08:27.240
A teraz, odkąd dostaliśmy ostatnie słowo.

08:27.500 --> 08:29.470
Cóż, możemy teraz umawiać się na randki z całym światem.

08:29.850 --> 08:37.140
Pamiętasz wojnę, kiedy zainicjowaliśmy ją tutaj jako jedną ze zmiennych obiektu naszej klasy.

08:37.190 --> 08:42.500
To okno, które będzie śledzić przebieg tego pociągu, biorąc średnią z

08:42.500 --> 08:44.270
ostatniej 100 nagrody.

08:44.300 --> 08:50.180
Więc wiesz, że to będzie jak przesuwane okno pokazujące nam, jak rozwija się średnia świata.

08:50.180 --> 08:52.730
I dlatego, że właśnie dostaliśmy nasze ostatnie słowo.

08:52.910 --> 08:56.910
Cóż, możemy zaktualizować nasze okno, w jaki sposób możemy je zaktualizować.

08:57.080 --> 09:03.680
Cóż, po prostu musimy dodać to ostatnie słowo do okna i dlatego to, co

09:03.980 --> 09:12.350
zamierzam zrobić, to wziąć moje okno wojenne, o którym mówimy, kiedy to usłyszą i zamierzam użyć funkcji dopisywania.

09:12.530 --> 09:18.830
Wewnątrz funkcji otwartej musimy wprowadzić element, który chcemy dołączyć do tego, co

09:18.830 --> 09:21.480
robiliśmy, oczywiście, gdy chcemy.

09:21.500 --> 09:22.610
Wszystko w porządku.

09:22.610 --> 09:29.480
A ponieważ okno wojny będzie miało ustalony rozmiar, wiesz, że nie będzie to rosnące okno, będzie

09:29.480 --> 09:35.300
to okno o stałej wielkości przesuwające się z czasem, aby pokazać ewolucję świata.

09:35.500 --> 09:38.590
Teraz musimy zdecydować o wielkości tej zimy.

09:38.750 --> 09:43.600
I to po prostu liczba środków nagrody, jaką będziemy mieli w tym oknie.

09:43.900 --> 09:49.330
Na przykład poznajmy ostatnie 1000 słów z ostatnich 100 słów.

09:49.340 --> 09:58.730
Aby się upewnić, że dodamy, jeśli następnie zaplanujemy, to zajmiemy się naszym oknem roboczym i po

09:58.740 --> 10:05.810
prostu dodamy tutaj, jeśli liczba elementów w oknie jest większa niż 1000.

10:05.990 --> 10:14.780
Cóż, chcemy usunąć pierwszy element tego, który naszemu okno i pierwszemu elementowi

10:14.780 --> 10:19.070
tego okna musi być zero.

10:19.150 --> 10:19.550
W porządku.

10:19.550 --> 10:24.620
Teraz upewniamy się, że to okno wojny nigdy nie otrzyma więcej niż 1000 elementów.

10:24.620 --> 10:31.130
Jest tysiąc środków z ostatnich 100 słów, które są idealne, to będzie okno o stałym rozmiarze,

10:31.310 --> 10:34.360
abyśmy mogli zobaczyć, czy średnia słowa rośnie.

10:34.460 --> 10:39.560
A zatem, jeśli szkolenie idzie dobrze, a zatem sąd robi to, co chcemy.

10:39.800 --> 10:40.760
Idealny.

10:41.000 --> 10:46.010
A teraz jedna drobna rzecz do zrobienia w lewo według ciebie, co to będzie.

10:46.190 --> 10:52.130
Pamiętajcie, że ta funkcja aktualizacji nie tylko aktualizuje różne elementy przejścia w oknie wojny,

10:52.140 --> 10:57.960
ale także zwraca działanie, które zostało wykonane po osiągnięciu tego nowego stanu.

10:58.190 --> 11:05.270
To dlatego mamy i wtedy to działanie równa się tej dacie, że jesteśmy mniejszym sygnałem i

11:05.360 --> 11:10.760
dlatego ma coś zwrócić, a to, co ma powrócić, jest oczywiście działaniem.

11:10.820 --> 11:18.950
Tak więc ostatnią rzeczą, którą musimy tutaj zrobić, to po prostu powrót do akcji, która została właśnie zagrana po osiągnięciu

11:18.950 --> 11:20.180
nowego etapu.

11:20.600 --> 11:23.670
I to jest nasza funkcja aktualizacji jest gotowa.

11:23.840 --> 11:29.110
Wykona wszystkie wymagane aktualizacje i zmieni działanie po osiągnięciu nowego etapu.

11:29.480 --> 11:30.650
To idealne.

11:30.650 --> 11:35.230
To była ostatnia trudna czynność, aby zrobić to wszystko.

11:35.240 --> 11:37.120
Teraz reszta będzie dobra.

11:37.220 --> 11:42.170
Zrobimy tylko podstawową funkcję zwracania środków, które chcemy w oknie.

11:42.200 --> 11:47.450
Wtedy stworzymy bezpieczną funkcję, aby uratować mózg samochodu, kiedy tylko chcesz wyjść z aplikacji i

11:47.600 --> 11:48.840
wrócić do niej.

11:48.890 --> 11:53.720
I oczywiście, ponieważ chcesz mieć możliwość załadowania mózgu twojego samochodu, gdy wrócisz do niego, wróć

11:53.720 --> 11:54.730
do aplikacji.

11:55.040 --> 12:01.370
Cóż, skończymy, tworząc funkcję ładowania, która załaduje twój model po zapisaniu modelu z tą

12:01.370 --> 12:02.800
samą funkcją.

12:02.840 --> 12:06.470
Tak więc trzy funkcje do tego, ale będzie to proste.

12:06.500 --> 12:12.760
A potem będziemy mieli najbardziej ekscytującą sekcję tego pierwszego modułu, czyli demo, które zobaczymy, jeśli

12:12.770 --> 12:13.840
działa powietrze.

12:13.850 --> 12:19.430
Zobaczymy, czy samochód osiągnie cele, a my zobaczymy, jak możemy to poprawić, a potem w końcu

12:19.430 --> 12:21.980
trzeba będzie zbudować swoją pierwszą sztuczną inteligencję.

12:22.160 --> 12:24.010
Nie mogę się doczekać rozpoczęcia demo.

12:24.140 --> 12:27.580
Zróbmy najpierw te trzy funkcje i do tego czasu I.
