Witam i zapraszam do przyprawy Intertoto.
W porządku, więc w tej nowej sekcji kodu zamierzamy wprowadzić doświadczenie z grą.
Zrobimy więc nową klasę, którą nazwiemy pamięcią powtórki i która zaimplementuje doświadczenie, by grać dokładnie
tak, jak widzieliście w wykładach intuicyjnych.
Najpierw jednak przypomnijmy, co jest powtórką doświadczenia.
Więc wiesz, że cała ta sztuczna inteligencja jest oparta na procesach decyzyjnych Markowa, a
proces decyzyjny Markowa polega na oglądaniu serii wydarzeń.
Więc wydarzenia są znane, na przykład przechodząc od jednego stanu do następnego stanu i tipis jeden.
Ale jeśli wydarzenia były tak dobre, od następnego dnia są bardzo skorelowane z obecnym stanem.
Cóż, sieć nie radziłaby sobie zbyt dobrze.
Tak więc dla tych, którzy przybyli z kursu głębokiego uczenia się dokładnie tak samo, jak w przypadku, gdy nauczyliśmy się
naszych szeregów czasowych z tylko jednym taktem.
Nie uczył się niczego, ponieważ jeden czas nie był wystarczający, aby model
mógł nauczyć się rozumieć długoterminowe korelacje.
Więc to jest to samo i dlatego musimy wprowadzić powtórkę doświadczenia.
Jak to działa.
Cóż, to bardzo proste, zamiast tylko brać pod uwagę obecny stan, który jest tylko jednym stanem w
czasie t.
Zamierzamy rozważyć więcej w przeszłości.
Tak samo jak w przypadku litów, a zatem nasza seria wydarzeń nie będzie taka.
I przypuszczam, że będzie to na przykład sto stanów w przeszłości.
Zatem jako T-minus sto osiemdziesiąt minus 99 aż do minus 1, a następnie S-T.
Innymi słowy, wprowadzamy 100 mniej przejść do pamięci, którą nazywamy pamięcią, i dlatego mamy pamięć długotrwałą
w przeciwieństwie do pamięci krótkotrwałej, a nawet powinienem powiedzieć natychmiastową pamięć i to sprawia,
że cały proces działa znacznie lepiej.
A potem, gdy stworzymy pamięć ostatnich 100 zdarzeń, będzie to proste, że zajmiemy kilka
losowych partii tych przejść, aby dokonać kolejnej aktualizacji.
To jest nasz następny ruch, wybierając następną sekcję, a zatem w tej klasie pamięci powtórek,
którą implementujemy do odtwarzania powtórzeń, wykonamy trzy funkcje.
Przede wszystkim funkcja jak zwykle ma miejsce w przypadku każdej klasy.
I tak w tej funkcji określimy zmienne, które będą dołączone do przyszłych wystąpień klasy, która
jest przyszłymi obiektami, które zostaną utworzone z tej klasy.
I tak po prostu te zmienne będą pamięcią 100 przejść do 100 zdarzeń.
A pojemność, która jest liczbą 100, pozwoli ci wypróbować dłuższe wspomnienie, zwiększając
pojemność.
Jest to więc pierwsza funkcja w nim działająca, a następnie udostępnimy dwie inne funkcje, jedną funkcję push,
aby upewnić się, że pamięć nie zawiera więcej niż 100 przejść.
W tym celu wykorzystamy pojemność, wykonując jeden prosty warunek, a następnie ostatecznie
wykonamy prostą funkcję, która będzie oczywiście próbą pewnych przejść w pamięci
ostatnich 100 przejść.
W porządku, zacznijmy od wprowadzenia klasy.
Jak wiesz, zaczynamy od klasy, a następnie przekazujemy je klasie, którą nazywamy pamięcią powtórzenia, a
następnie w nawiasach wstawiamy obiekt, następnie Cullin, a następnie zaczynamy od pierwszej funkcji.
Koniec jest funkcją.
Więc to dokładnie to samo, co przed rozpoczęciem śmierci.
Następnie dwa podkreślenia w nim dwa ponownie podkreślają, a następnie zmienne.
Więc istnieje oczywiście jaźń, która jest zmienną związaną z przyszłymi instancjami klasy
przyszłych obiektów, a następnie będziemy mieć kolejną zmienną, abyś mógł spróbować innych doświadczeń
z niektórymi wspomnieniami i to będzie być pojemnością.
Więc ta zdolność będzie po prostu liczbą sto, ponieważ zamierzamy doświadczyć,
aby grać ze stoma mniejszymi przejściami.
W porządku, a potem Collon. Idziemy.
Wejdźmy do funkcji i określmy zmienne naszego obiektu pamięci replay.
Tak więc pierwsza z nich będzie zdolnością samokształceniową i jak zapewne zrozumieliście, będzie to maksymalna
liczba przejść, jakie chcemy mieć w pamięci zdarzeń.
I będzie to równe argumentom, które wprowadzą podczas tworzenia obiektu klasy pamięci
powtórzeń, a zatem jest to pojemność.
To jest argument funkcji init.
Więc pojemność.
Więc znowu nie mylić siebie, że pojemność jest nazwą zmiennej, która jest dołączona
do obiektu, a pojemność tutaj jest argumentem, który wprowadzi podczas tworzenia obiektu klasy pamięci powtórki.
W porządku.
A potem mamy drugiego wojewodę.
To oczywiście pamięć.
Tak samo uczony Nemec.
W porządku.
I do czego będzie potrzebne to wspomnienie Wojewody.
Cóż, ta pamięć ma zawierać ostatnie 100 zdarzeń i dlatego powinien to być prosty test.
Znasz listę, która będzie zawierać 100 ostatnich zdarzeń ostatnich 100 przejść i zainicjować
listę.
Nie ma nic prostszego, po prostu dodajemy takie nawiasy.
I oto idziemy.
Nasza pamięć jest inicjowana, więc oczywiście na początku eksperymentu lub dokładniej na
początku eksploracji pamięć będzie pustą listą, a następnie wprowadzimy przejścia.
Za każdym razem, gdy osiągamy przyszły stan.
I mówiąc o tym, właśnie to zrobimy z następną funkcją, którą nazwiemy
funkcją wypychania.
Uczynimy tę funkcję wypychania, aby obsadzić zdarzenia na tej liście pamięci, a następnie wykorzystamy pojemność, aby
upewnić się, że ta lista pamięci zawiera zawsze 100 zdarzeń i nigdy więcej.
W porządku, zróbmy to również w następnym.
I do tego czasu I.