Witam wszystkich i witamy ponownie.
W ostatnim wykładzie zaczęliśmy budować nasze środowisko.
Zasadniczo mamy tutaj siatkę 11 na 11, którą chcemy, aby nasz listonosz przeszedł przez iterację, aby rozwiązać nasze wyzwanie.
Chcemy teraz zacząć myśleć o tym, jak będziemy mieli siatkę.
Potrzebujemy również działań dla naszego agenta i zamierzam je bardzo szybko usunąć.
Nie potrzebujemy tych komórek.
Po prostu chciałem mieć trochę odstępu.
Po prostu ułatwia Ci zobaczenie.
Daj mi 1/2, pozwól, że je usunę, a ten możemy zostawić tutaj.
Więc.
Zostawiłem tekst, w którym mamy i chcemy ustawić nasze działania jak w pozycji pionowej, dolnej i lewej.
W Pythonie jest to całkiem proste.
Możemy budować listę i ustalać nasze działania.
Nasze działania będą równe.
Dwa jak mamy w górę w prawo, w dół w lewo.
Więc skonfigurujmy to.
Prawo dół i lewo.
Musimy dać naszemu agentowi, przepraszam, pewną zdolność manewrowania tymi działaniami w labiryncie.
Oprócz tego musimy też zacząć ustalać nagrody.
Teraz to będzie trochę trudniejsze, ponieważ musimy ustawić różne stany
naszego środowiska, różne stany w tym sensie, że chcemy móc przypisać te -100
i ujemne te kroki lub te wartości stanów do każdego kwadratu w siatce.
Widzimy więc, że aby pomóc naszemu agentowi poznać każdy stan lub lokalizację w naszym mieście, chcemy mieć wartość nagrody.
Tak nauczy się nasz agent.
Tak więc agent może zacząć od dowolnego białego kwadratu, ale jego cel jest zawsze ten sam.
Chce zmaksymalizować swoje łączne nagrody dzięki negatywnym nagrodom w nauce Q, wiemy, że są one określane
jako kary.
Są one używane dla wszystkich stanów z wyjątkiem celu.
W ten sposób zamierzamy ustalić optymalną politykę, która zachęca oko do identyfikowania najkrótszej
drogi do celu poprzez minimalizowanie kar.
W porządku.
Ponadto, aby zmaksymalizować skumulowane nagrody, agent będzie musiał znaleźć najkrótszą drogę między obszarem pakowania przedmiotów,
naszym Zielonym Placem, pamiętajcie, a innymi miejscami w mieście, w których listonosz może
podróżować po białych kwadratach.
Agenci nauczą się unikać zderzenia z granicami miasta.
To są czarne kwadraty, jak widzimy przy -100.
Chcemy trzymać się od nich z daleka.
Mają więcej kary.
Aby to zrobić, mamy naszą siatkę, środowisko, które stworzyliśmy powyżej za pomocą naszych wierszy.
Ale chcemy też przypisać mu te wartości.
Aby to zrobić, spróbujmy zastanowić się, jak możemy ustalić, że możemy używać NumPy, a
także możemy zacząć ustawiać go na -100 dla wierszy i kolumn środowiska.
Mamy więc nasze wiersze i kolumny środowiska.
Nazwijmy więc tę nagrodę równą numpy full i przepuśćmy w naszym środowisku wiersze, kolumny środowiska i
aby ustawić nasze wartości, możemy zacząć od -100.
Oprócz tego chcemy również ustawić nasze okno nagród.
Użyj indeksów zero i pięć.
Równe 100.
I to za chwilę nabierze sensu.
Więc przyglądamy się naszemu Zielonemu Placowi.
Mamy naszą piątkę zero.
Mamy nasz zielony kwadrat ustawiony na 100, przyjmując tę lub tę lokalizację, aby ustawić wartość.
Teraz wkleję następny fragment kodu, abyśmy mogli go przejrzeć.
Więc nie musisz patrzeć, jak oceniam każdy krok, ponieważ jest to trochę powtarzalne.
A teraz mamy nasze białe przestrzenie.
Ustawmy naszą wiedzę na temat naszych punktów nagrody.
W tym fragmencie kodu używamy słownika i ustawiamy każdą z naszych wartości w naszym słowniku.
Więc mamy nasze alejki.
Myślimy o tym jako o każdym osobnym wierszu i możemy ustawić za pomocą naszego krojenia, z naszym indeksem od
jednego do dziewięciu.
I chcemy użyć iteracji z naszą pętlą for, aby ustawić te wartości.
Robiąc to, zobaczysz, czy spojrzymy na jeden do dziesięciu, jeden, siedem i dziewięć.
Używając tego, możemy ustawić indeks wiersza w naszym zakresie od jednego do dziesięciu, nad którym
pracujemy w naszym środowisku.
Możemy ustawić indeks kolumny.
W naszych alejkach naszego indeksu wierszy z naszym słownikiem, naszym indeksem wierszy nagród i indeksem kolumn, możemy ustawić go
na wartość ujemną.
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
dziewięć dla I w naszym zakresie, mamy ujemny jeden zestaw w całym środowisku lub w każdym stanie w naszym
środowisku .
Na osiem mamy trzy i siedem.
Więc jeśli możemy przewinąć w górę, możemy zobaczyć, że w trzech i siedmiu, ustawiamy ujemną jeden, ponieważ wszystkie
byłyby -100 lub ustawione na ujemną setkę.
W tej iteracji możemy ustawić te nagrody lub ustawić każdy stan, który definiujemy w naszych przejściach,
na stan ujemny.
To bardzo ułatwia.
Zamiast pisać dalszą logikę lub może bardziej szczegółowe funkcje lub instrukcje, możemy iterować i ustawiać
te wartości.
Gorąco polecam poświęcenie minuty na zbadanie eksperymentu, jeśli chcesz później zmienić środowisko.
Po uruchomieniu tego rozwiązania jest to świetny sposób na poznanie i wzmocnienie tych zasad.
Ale to zaczyna nabierać kształtu i fajną rzeczą, którą możemy zrobić, jest to, że możemy to sobie wyobrazić.
Więc zróbmy cztery rzędy nagród.
Wydrukuj wiersz i wydrukujmy to, a zobaczymy, że być może będę musiał ponownie uruchomić te komórki.
Przepraszam.
Nie byłem podłączony do notebooka działającego tutaj.
Daj mu 1/2.
Wygeneruje błąd.
Muszę wrócić i ponownie przeszukać komórki.
Pozwólcie, że powtórzę to bardzo szybko.
Chcę zaimportować NumPy.
Właściwie mogę tylko mieć nadzieję na moje przeprosiny.
Pozwól mi przejść przez ten rok.
Zejdę na dół.
Chcemy kierować naszym środowiskiem.
Chcemy kierować naszymi działaniami.
Pozostałe to tylko tekst, więc ich nie potrzebujemy.
Ale lubię to mieć, żebyście mogli mieć do tego odniesienie.
Chcemy nagradzać punkty i wreszcie chcemy to sobie wyobrazić.
Możemy zobaczyć wizualizację, rzeczywistą reprezentację liczbową w numpy naszego środowiska.
Bardzo fajny.
Więc mamy skonfigurowane nasze środowisko.
Znakomita robota.
Mam nadzieję, że uznacie to za przydatne.
Teraz ograniczymy to tutaj, ponieważ w następnym wykładzie zaczniemy trenować model.
Więc to było ustawienie działań naszych agentów, ustawienie naszego środowiska, ustalenie naszych nagród.
Nasza kara pomoże temu agentowi ustalić optymalną politykę uczenia się Q.
Ogólnie rzecz biorąc, mamy zbudowaną wizualną reprezentację lub ten obraz i możemy to zobaczyć tutaj, jeśli
wydrukujemy nasz wiersz.
Zdumiewający.
W porządku.
Nie będę dalej gadać.
Zostawmy to tutaj w następnym wykładzie.
Zacznijmy trenować model.
Do zobaczenia na następnym wykładzie.