Q-learning jest pozaprocesowym podejściem wspomagającym obliczanie nauki, które ma na celu zlokalizowanie najlepszego ruchu do wykonania w obecnym stanie. Jest ono uważane za pozasystemowe na tej podstawie, że przyjmowanie q-taking w pracy zyskuje na czynnościach, które są poza obecnymi ustaleniami, takich jak podejmowanie arbitralnych działań, i w ten sposób podejście nie jest wymagane. Tym bardziej wyraźnie, q-learning próbuje zapoznać się z podejściem, które wzmacnia absolutną kompensację.
Co to jest “Q”?
Q” w q-learningu reprezentuje jakość. Jakość w tej sytuacji mówi o tym, jak bardzo dana czynność jest pomocna w zwiększeniu pewnej przyszłej nagrody.
Zrób tabelę q
W momencie, gdy przeprowadzamy q-learning, tworzymy to, co jest znane jako tablica q lub szkielet, który dąży do osiągnięcia stanu [stanu, działania] i przekazujemy nasze cechy do zera. W tym momencie odświeżamy i przechowujemy nasze wartości q po danej scenie. Ta tabela q zamienia się w tabelę odniesienia dla naszego specjalisty, aby wybrać najlepszą aktywność zależną od wartości q.
importujemy numpy jako np.
# Wprowadzić cechy q-table do 0
Q = np.zera((state_size, action_size))
Q-learning i odświeżanie
Kolejny etap jest tylko dla specjalisty, aby połączyć się z uziemieniem i dokonać aktualizacji dopasowania aktywności stanu w naszej q-tabeli Q[stan, działanie].
Wykonanie ruchu: Zbadajcie lub przygotujcie się
Operator związany z ziemią na 1 z 2 różnych sposobów. Pierwszym z nich jest wykorzystanie tablicy q jako źródła perspektywy i obejrzenie każdej możliwej do wyobrażenia aktywności dla danego stanu. Operator w tym momencie wybiera czynność – w zależności od maksymalnego oszacowania tych czynności. Jest to tzw. nadużycie, ponieważ wykorzystujemy dostępne nam dane do rozliczenia się z wyboru.
Kolejnym sposobem na wykonanie ruchu jest działanie przypadkowe. Nazywa się to badaniem. Zamiast wybierać działania zależne od maksymalnej przyszłej nagrody, wybieramy działanie arbitralne. Przypadkowe działanie jest istotne ze względu na to, że pozwala specjalistom na zbadanie i znalezienie nowych wyrazów, które na ogół nie mogą być wybrane w trakcie procedury nadużycia. Można dostosować dochodzenie/nadużycie przy użyciu epsilonu (ε) i określić, jak regularnie należy przeprowadzać dochodzenie w stosunku do nadużycia. Oto kilka nieprzyjemnych kodów, które będą zależały od tego, jak układa się stan i przestrzeń działania.
importować arbitralny
# Set the percent you need to investigate
epsilon = 0,2
w przypadku, gdy random.uniform(0, 1) < epsilon:
“””
Zbadaj: wybierz dowolne działanie
“””
Inaczej:
“””
Endeavor: wybierz działanie z maksymalnym szacunkiem (przyszła nagroda)
“””
Odświeżenie tabeli q
Aktualizacje mają miejsce po każdym przejściu lub aktywności i zamykają się po zakończeniu sceny. Zrobione dla tej sytuacji oznacza przybycie do jakiegoś punktu końcowego przez operatora. Stan końcowy, na przykład, może być w dowolny sposób podobny do przybycia na stronę kasy, przybycia na koniec jakiegoś meczu, zakończenia jakiegoś idealnego gola, itd. Specjalista nie dostosuje się zbytnio po samotnej scenie, jednak nieuchronnie z wystarczającym badaniem (kroki i sceny) połączy i zapozna się z idealnymi q-qualities lub q-gwiazdą (Q∗).
Oto 3 podstawowe postępy:
Specjalista zaczyna w stanie (s1) wykonuje ruch (a1) i dostaje nagrodę (r1)
Operator wybiera aktywność odwołując się do tabeli Q o największej wartości (max) lub arbitralnie (epsilon, ε).
Aktualizacja wartości q
Oto podstawowa reguła aktualizacji dla q-learningu:
# Aktualizuj szacunek do q
Q[stan, działanie] = Q[stan, działanie] + lr * (kompensacja + gamma * np.max(Q[new_state, :]) – Q[stan, działanie])
W powyższej aktualizacji znajdują się dwa lub trzy czynniki, do których nie odnieśliśmy się w tym momencie. Chodzi o to, że zmieniamy nasze wartości q w zależności od różnicy między ograniczonymi nowymi i starymi cechami. Obniżamy nowe jakości wykorzystując gammę i modyfikujemy wielkość progresji wykorzystując współczynnik uczenia się (lr). Poniżej znajduje się kilka odniesień.
Współczynnik uczenia się: lr lub współczynnik uczenia się, regularnie określany jako alfa lub α, może być scharakteryzowany jako wartość, którą potwierdzasz jako nową wartość w stosunku do starej. Powyżej przyjmujemy rozróżnienie między nową i starą, a następnie zwiększamy tę zachętę o wskaźnik uczenia się. Ta wartość w tym momencie jest dodawana do naszej dotychczasowej wartości q-esteem, co zasadniczo przesuwa ją w kierunku naszej ostatniej aktualizacji.
Gamma: gamma lub γ jest czynnikiem obniżającym wartość. Jest on używany do szybkiego i przyszłego wyrównywania nagród. Z naszej zasady aktualizacji powyżej widać, że stosujemy rabat do przyszłych nagród. Zwykle wartość ta może wynosić od 0,8 do 0,99.
Nagroda: nagroda to wartość, którą otrzymujemy po zakończeniu określonej czynności w danym stanie. Nagroda może pojawić się w jakimś przypadkowym kroku czasowym lub po prostu w końcowym kroku czasowym.
Max: np.max() wykorzystuje bibliotekę numpy i bierze limit rzeczy, które mają być wynagradzane i stosuje je do nagrody za obecny stan. To, co to robi, to kołysanie obecnej aktywności przez możliwą przyszłą nagrodę. Jest to wspaniałość q-