Witam wszystkich i witamy ponownie.
W tym wykładzie zajmiemy się konfiguracją naszego środowiska.
I chcę przedstawić ten bardziej ogólny przegląd dla tych, którzy chcą spróbować rozwiązać go na własną
rękę.
I to może wyglądać znajomo w ostatnim wykładzie, który to widziałeś.
Więc jeśli to przeczytasz, przepraszam.
Po prostu przejdziemy przez to bardzo szybko.
Najpierw najważniejsze.
W tym projekcie naprawdę dążymy do tego, aby był tak prosty, jak to tylko możliwe, w tym sensie, że nie musimy
importować zbyt wielu bibliotek.
Po prostu będziemy używać do tego NumPy.
Musimy tylko zaimportować NumPy jako i P, zwykle wspólne odniesienie dla numpy.
Chcemy też skonfigurować nasze środowisko, jak zobaczysz tutaj.
I po prostu przejdziemy przez to ponownie bardzo szybko jako przegląd.
Pierwszym krokiem w naszej nauce Q jest znalezienie środowiska, w którym listonosz musi się poruszać.
Potrzebujemy skonfigurowania tego środowiska, abyśmy mogli rzeczywiście iterować i przechodzić przez nie.
Na tym wykładzie środowisko będzie składać się ze stanów, działań i nagród.
Stany i działania są danymi wejściowymi dla agenta uczenia Q, podczas gdy możliwe działania są agentami,
wyjścia to stany, o których możemy myśleć i patrzeć na ten obraz jako naszą reprezentację.
Stany w naszym otoczeniu to wszystkie możliwe lokalizacje w mieście, które możemy nazwać tym przykładowym miastem.
Niektóre z tych lokacji to granice miasta, które będą naszymi czarnymi kwadratami, podczas gdy inne lokacje to
wyspy, z których listonosz może podróżować po mieście.
To będą białe kwadraty.
Zielony kwadrat wskazuje miejsce pakowania i wysyłki przedmiotu.
Czarne i zielone kwadraty nazywamy stanami końcowymi.
Tak więc ogólnie, naszym celem lub celem naszego agenta, chcemy wybrać najkrótszą ścieżkę.
Chcemy, aby nasz agent nauczył się najkrótszej drogi między obszarem pakowania przedmiotów, słoikiem, zielenią i wszystkimi innymi
miejscami w mieście, w których listonosz może podróżować.
Na powyższym obrazku mamy 121 możliwych stanów lub lokalizacji w mieście.
Stany te są ułożone w siatce 11 na 11.
Każdą lokalizację można zidentyfikować na podstawie indeksu wiersza i kolumny.
Więc jaki byłby nasz pierwszy krok?
I to jest naprawdę chęć, żebyście zaczęli myśleć o tym, jak możecie to zdefiniować.
Musimy zdefiniować nasze środowisko.
To dobry przykład naszego wizerunku i tego, jak do niego podejdziemy.
Więc jak byś to wymodelował?
Pamiętaj, że używamy NumPy, więc musimy zdefiniować te granice i możemy zdefiniować tablicę 3D numpy, aby przechowywać
nasze bieżące wartości Q dla każdej pary stanów i akcji, tak jak widzimy naszą reprezentację.
A dla tych z Was, którzy nie są z nim zaznajomieni, a może jest to
nowość lub po prostu chcą się odświeżyć, podręcznik Air Z z tego kursu jest niezwykle pomocny, wysoce zalecany.
Więc co mamy tutaj zrobić?
Właściwie możemy.
Pozwólcie, że rozwinę to bardzo szybko dla nas, abyśmy mogli trochę łatwiej go zobaczyć.
Dodam tylko kilka komórek kodu.
Zdefiniujemy nasze imperium 3D.
Jak byś się do tego zabrał?
Mamy więc kilka opcji.
Ale najprostszą i najprostszą opcją, nazwijmy to wierszami środowiska.
Rose i ustawmy ją na 11.
To 11 na 11.
Wtedy też możemy zrobić środowisko, podkreślenie kolumn.
Możemy też ustawić to na 11.
Na koniec możemy ustawić nasze wartości Q, ponieważ musimy dodać nasz numpy z wierszami środowiska, kolumnami
środowiska.
I możemy ustawić to jako wartości Q równe zerom NumPy i musimy użyć naszych wierszy środowiska, kolumn
środowiska.
I mamy naszą tablicę 3D numpy, naszą reprezentację środowiska 3D ustawioną z naszym środowiskiem.
Niesamowite.
Teraz zamierzamy to zostawić, ale chcę, żebyście zaczęli myśleć o tym, jak to rozwiązać,
ponieważ macie już skonfigurowane środowisko.
Następną rzeczą, którą będziesz chciał zrobić jako wskazówkę, jest ustawienie swoich działań.
Twój agent musi być w stanie poruszać się po środowisku.
Więc jak byś to reprezentował?
Jak byś to napisał?
W przypadku tego problemu zostawmy to tutaj.
W następnym filmie ponownie przyjrzymy się tym działaniom.
Niesamowite.
Do zobaczenia w następnym filmie.