WEBVTT

00:00.490 --> 00:01.720
Witam wszystkich i witamy ponownie.

00:02.080 --> 00:05.290
W ostatnim wykładzie zaczęliśmy budować nasze środowisko.

00:05.300 --> 00:13.090
Zasadniczo mamy tutaj siatkę 11 na 11, którą chcemy, aby nasz listonosz przeszedł przez iterację, aby rozwiązać nasze wyzwanie.

00:14.020 --> 00:18.430
Chcemy teraz zacząć myśleć o tym, jak będziemy mieli siatkę.

00:18.430 --> 00:23.860
Potrzebujemy również działań dla naszego agenta i zamierzam je bardzo szybko usunąć.

00:23.860 --> 00:24.940
Nie potrzebujemy tych komórek.

00:24.940 --> 00:27.670
Po prostu chciałem mieć trochę odstępu.

00:27.790 --> 00:29.440
Po prostu ułatwia Ci zobaczenie.

00:29.440 --> 00:35.290
Daj mi 1/2, pozwól, że je usunę, a ten możemy zostawić tutaj.

00:35.950 --> 00:36.280
Więc.

00:37.390 --> 00:43.060
Zostawiłem tekst, w którym mamy i chcemy ustawić nasze działania jak w pozycji pionowej, dolnej i lewej.

00:43.630 --> 00:45.550
W Pythonie jest to całkiem proste.

00:45.550 --> 00:48.010
Możemy budować listę i ustalać nasze działania.

00:48.280 --> 00:51.160
Nasze działania będą równe.

00:52.200 --> 00:55.170
Dwa jak mamy w górę w prawo, w dół w lewo.

00:55.380 --> 00:56.760
Więc skonfigurujmy to.

00:57.630 --> 01:01.050
Prawo dół i lewo.

01:01.380 --> 01:07.020
Musimy dać naszemu agentowi, przepraszam, pewną zdolność manewrowania tymi działaniami w labiryncie.

01:08.300 --> 01:11.780
Oprócz tego musimy też zacząć ustalać nagrody.

01:12.110 --> 01:17.990
Teraz to będzie trochę trudniejsze, ponieważ musimy ustawić różne stany

01:17.990 --> 01:24.920
naszego środowiska, różne stany w tym sensie, że chcemy móc przypisać te -100

01:24.920 --> 01:31.670
i ujemne te kroki lub te wartości stanów do każdego kwadratu w siatce.

01:32.090 --> 01:39.260
Widzimy więc, że aby pomóc naszemu agentowi poznać każdy stan lub lokalizację w naszym mieście, chcemy mieć wartość nagrody.

01:39.260 --> 01:40.700
Tak nauczy się nasz agent.

01:41.030 --> 01:45.020
Tak więc agent może zacząć od dowolnego białego kwadratu, ale jego cel jest zawsze ten sam.

01:45.260 --> 01:50.900
Chce zmaksymalizować swoje łączne nagrody dzięki negatywnym nagrodom w nauce Q, wiemy, że są one określane

01:50.900 --> 01:51.770
jako kary.

01:52.040 --> 01:54.040
Są one używane dla wszystkich stanów z wyjątkiem celu.

01:54.050 --> 01:59.840
W ten sposób zamierzamy ustalić optymalną politykę, która zachęca oko do identyfikowania najkrótszej

01:59.840 --> 02:02.540
drogi do celu poprzez minimalizowanie kar.

02:03.200 --> 02:03.560
W porządku.

02:04.460 --> 02:09.830
Ponadto, aby zmaksymalizować skumulowane nagrody, agent będzie musiał znaleźć najkrótszą drogę między obszarem pakowania przedmiotów,

02:09.830 --> 02:14.510
naszym Zielonym Placem, pamiętajcie, a innymi miejscami w mieście, w których listonosz może

02:14.510 --> 02:16.310
podróżować po białych kwadratach.

02:16.730 --> 02:20.420
Agenci nauczą się unikać zderzenia z granicami miasta.

02:20.420 --> 02:23.050
To są czarne kwadraty, jak widzimy przy -100.

02:23.120 --> 02:24.260
Chcemy trzymać się od nich z daleka.

02:24.470 --> 02:26.480
Mają więcej kary.

02:26.930 --> 02:32.450
Aby to zrobić, mamy naszą siatkę, środowisko, które stworzyliśmy powyżej za pomocą naszych wierszy.

02:32.810 --> 02:35.990
Ale chcemy też przypisać mu te wartości.

02:36.410 --> 02:42.020
Aby to zrobić, spróbujmy zastanowić się, jak możemy ustalić, że możemy używać NumPy, a

02:42.020 --> 02:46.880
także możemy zacząć ustawiać go na -100 dla wierszy i kolumn środowiska.

02:47.120 --> 02:49.310
Mamy więc nasze wiersze i kolumny środowiska.

02:49.580 --> 03:02.540
Nazwijmy więc tę nagrodę równą numpy full i przepuśćmy w naszym środowisku wiersze, kolumny środowiska i

03:03.290 --> 03:10.100
aby ustawić nasze wartości, możemy zacząć od -100.

03:11.920 --> 03:18.370
Oprócz tego chcemy również ustawić nasze okno nagród.

03:20.090 --> 03:23.510
Użyj indeksów zero i pięć.

03:24.260 --> 03:25.640
Równe 100.

03:26.650 --> 03:28.420
I to za chwilę nabierze sensu.

03:28.540 --> 03:30.130
Więc przyglądamy się naszemu Zielonemu Placowi.

03:30.160 --> 03:31.280
Mamy naszą piątkę zero.

03:31.300 --> 03:37.060
Mamy nasz zielony kwadrat ustawiony na 100, przyjmując tę lub tę lokalizację, aby ustawić wartość.

03:37.540 --> 03:41.650
Teraz wkleję następny fragment kodu, abyśmy mogli go przejrzeć.

03:41.680 --> 03:44.700
Więc nie musisz patrzeć, jak oceniam każdy krok, ponieważ jest to trochę powtarzalne.

03:44.710 --> 03:47.440
A teraz mamy nasze białe przestrzenie.

03:47.650 --> 03:51.580
Ustawmy naszą wiedzę na temat naszych punktów nagrody.

03:52.120 --> 03:57.420
W tym fragmencie kodu używamy słownika i ustawiamy każdą z naszych wartości w naszym słowniku.

03:57.430 --> 03:58.450
Więc mamy nasze alejki.

03:58.450 --> 04:05.230
Myślimy o tym jako o każdym osobnym wierszu i możemy ustawić za pomocą naszego krojenia, z naszym indeksem od

04:05.230 --> 04:06.340
jednego do dziewięciu.

04:06.610 --> 04:11.230
I chcemy użyć iteracji z naszą pętlą for, aby ustawić te wartości.

04:11.860 --> 04:16.000
Robiąc to, zobaczysz, czy spojrzymy na jeden do dziesięciu, jeden, siedem i dziewięć.

04:16.180 --> 04:21.280
Używając tego, możemy ustawić indeks wiersza w naszym zakresie od jednego do dziesięciu, nad którym

04:21.280 --> 04:23.050
pracujemy w naszym środowisku.

04:23.530 --> 04:25.300
Możemy ustawić indeks kolumny.

04:26.530 --> 04:33.280
W naszych alejkach naszego indeksu wierszy z naszym słownikiem, naszym indeksem wierszy nagród i indeksem kolumn, możemy ustawić go

04:33.280 --> 04:34.450
na wartość ujemną.

04:34.870 --> 04:41.590
Więc to co to robi, to zasadniczo, jeśli spojrzymy na każdy szczegół, jeśli weźmiemy tutaj zakres, na przykład, dam

04:41.590 --> 04:48.100
dziewięć dla I w naszym zakresie, mamy ujemny jeden zestaw w całym środowisku lub w każdym stanie w naszym

04:48.100 --> 04:49.030
środowisku .

04:49.570 --> 04:52.410
Na osiem mamy trzy i siedem.

04:52.420 --> 04:57.670
Więc jeśli możemy przewinąć w górę, możemy zobaczyć, że w trzech i siedmiu, ustawiamy ujemną jeden, ponieważ wszystkie

04:57.670 --> 05:00.130
byłyby -100 lub ustawione na ujemną setkę.

05:00.370 --> 05:07.180
W tej iteracji możemy ustawić te nagrody lub ustawić każdy stan, który definiujemy w naszych przejściach,

05:07.180 --> 05:08.590
na stan ujemny.

05:08.860 --> 05:10.390
To bardzo ułatwia.

05:10.390 --> 05:17.200
Zamiast pisać dalszą logikę lub może bardziej szczegółowe funkcje lub instrukcje, możemy iterować i ustawiać

05:17.200 --> 05:18.640
te wartości.

05:18.940 --> 05:24.280
Gorąco polecam poświęcenie minuty na zbadanie eksperymentu, jeśli chcesz później zmienić środowisko.

05:24.280 --> 05:29.410
Po uruchomieniu tego rozwiązania jest to świetny sposób na poznanie i wzmocnienie tych zasad.

05:29.410 --> 05:34.990
Ale to zaczyna nabierać kształtu i fajną rzeczą, którą możemy zrobić, jest to, że możemy to sobie wyobrazić.

05:34.990 --> 05:38.380
Więc zróbmy cztery rzędy nagród.

05:40.050 --> 05:46.620
Wydrukuj wiersz i wydrukujmy to, a zobaczymy, że być może będę musiał ponownie uruchomić te komórki.

05:46.620 --> 05:47.400
Przepraszam.

05:47.640 --> 05:50.010
Nie byłem podłączony do notebooka działającego tutaj.

05:50.280 --> 05:51.210
Daj mu 1/2.

05:51.210 --> 05:52.260
Wygeneruje błąd.

05:52.620 --> 05:55.240
Muszę wrócić i ponownie przeszukać komórki.

05:55.240 --> 05:56.940
Pozwólcie, że powtórzę to bardzo szybko.

05:57.210 --> 05:58.560
Chcę zaimportować NumPy.

05:58.770 --> 06:01.470
Właściwie mogę tylko mieć nadzieję na moje przeprosiny.

06:02.130 --> 06:03.360
Pozwól mi przejść przez ten rok.

06:03.690 --> 06:04.830
Zejdę na dół.

06:04.830 --> 06:06.780
Chcemy kierować naszym środowiskiem.

06:07.170 --> 06:08.550
Chcemy kierować naszymi działaniami.

06:08.550 --> 06:10.680
Pozostałe to tylko tekst, więc ich nie potrzebujemy.

06:10.680 --> 06:14.430
Ale lubię to mieć, żebyście mogli mieć do tego odniesienie.

06:14.730 --> 06:18.450
Chcemy nagradzać punkty i wreszcie chcemy to sobie wyobrazić.

06:18.870 --> 06:25.770
Możemy zobaczyć wizualizację, rzeczywistą reprezentację liczbową w numpy naszego środowiska.

06:25.920 --> 06:26.760
Bardzo fajny.

06:27.030 --> 06:28.860
Więc mamy skonfigurowane nasze środowisko.

06:29.130 --> 06:30.140
Znakomita robota.

06:30.150 --> 06:31.620
Mam nadzieję, że uznacie to za przydatne.

06:31.740 --> 06:36.540
Teraz ograniczymy to tutaj, ponieważ w następnym wykładzie zaczniemy trenować model.

06:36.810 --> 06:41.910
Więc to było ustawienie działań naszych agentów, ustawienie naszego środowiska, ustalenie naszych nagród.

06:41.910 --> 06:46.440
Nasza kara pomoże temu agentowi ustalić optymalną politykę uczenia się Q.

06:46.680 --> 06:53.310
Ogólnie rzecz biorąc, mamy zbudowaną wizualną reprezentację lub ten obraz i możemy to zobaczyć tutaj, jeśli

06:53.310 --> 06:54.750
wydrukujemy nasz wiersz.

06:55.970 --> 06:56.510
Zdumiewający.

06:56.900 --> 06:57.290
W porządku.

06:57.740 --> 06:58.970
Nie będę dalej gadać.

06:58.970 --> 07:00.630
Zostawmy to tutaj w następnym wykładzie.

07:00.650 --> 07:02.090
Zacznijmy trenować model.

07:02.570 --> 07:03.860
Do zobaczenia na następnym wykładzie.
