Funkcje nagrody opisują, jak agent powinien się zachowywać. Innymi słowy, mają „normatywną” treści, stanowiąc, co ty chcesz środkiem do osiągnięcia. Na przykład, niektóre satysfakcjonujące stan s może reprezentować smak jedzenia. A może (s,a) może oznaczać degustację jedzenia. Tak więc, o ile funkcja nagrody określa, jakie są motywacje agenta, tak, musisz to nadrobić!
Nie ma żadnych bezwzględnych ograniczeń, ale jeśli twoja funkcja nagrody jest „lepiej zachowana”, agent będzie się uczył lepiej. W praktyce oznacza to szybkość konwergencji i brak utknięcia w lokalnych minimach. Ale dalsze specyfikacje będą silnie zależeć od gatunku uczenia się, którego używasz. Na przykład, czy przestrzeń stanu / akcji jest ciągła czy dyskretna? Czy wybór świata lub akcji jest stochastyczny? Czy nagroda jest zbierana ciągle, czy tylko na końcu?
Jednym ze sposobów spojrzenia na problem jest to, że funkcja nagrody określa twardość problemu. Na przykład tradycyjnie możemy określić pojedynczy stan, który ma zostać nagrodzony:
R(s1)=1
R(s2..n)=0
W tym przypadku problem do rozwiązania jest dość trudny w porównaniu z powiedzmy R(si)=1/i2 , gdzie występuje gradient nagrody nad stanami. W przypadku trudnych problemów, określając więcej szczegółów, np.R(s,a) lubR(s,a,s′) może pomóc w niektórych algorytmach, dostarczając dodatkowych wskazówek, ale potencjalnie kosztem konieczności przeprowadzenia większej ilości badań. Konieczne może być uwzględnienie kosztów jako ujemnych warunków wR (np.Koszty energii), aby problem był dobrze określony.
W przypadku ciągłej przestrzeni stanów, jeśli chcesz, aby agent łatwo się uczył, funkcja nagrody powinna być ciągła i zróżnicowana . Tak więc wielomiany mogą działać dobrze dla wielu algorytmów. Ponadto spróbuj usunąć zlokalizowane minima. Istnieje wiele przykładów, jak NIE wykonywać funkcji nagrody - na przykład funkcji Rastrigin . To powiedziawszy, kilka algorytmów RL (np. Maszyny Boltzmanna ) jest w pewnym stopniu do nich odpornych.
Jeśli używasz RL do rozwiązania problemu w świecie rzeczywistym, prawdopodobnie przekonasz się, że chociaż znalezienie funkcji nagrody jest najtrudniejszą częścią problemu, jest ona ściśle związana z tym, jak określasz przestrzeń stanu . Na przykład w przypadku problemu zależnego od czasu odległość do celu często powoduje słabą funkcję nagrody (np. W przypadku samochodu górskiego ). Takie sytuacje można rozwiązać za pomocą przestrzeni stanów o wyższych wymiarach (stany ukryte lub ślady pamięci) lub hierarchicznej RL.
Na poziomie abstrakcyjnym uczenie się bez nadzoru miało na celu uniknięcie określania „dobrych i złych” wyników. Ale widzimy teraz, że RL po prostu przenosi odpowiedzialność z nauczyciela / krytyka na funkcję nagrody. Jest mniej okrągły sposób rozwiązania problemu: to znaczy, aby wyliczyć najlepszą funkcję nagrody . Jedna metoda nazywana jest odwrotnym RL lub „uczeniem się przyuczania do zawodu ” , która generuje funkcję nagrody, która odtwarzałaby zaobserwowane zachowania. Znalezienie najlepszej funkcji nagrody w celu odtworzenia zestawu obserwacji można również zaimplementować metodami MLE, Bayesian lub teoretykami informacji - jeśli korzystasz z wyszukiwarki „nauka odwrotnego wzmacniania”.
Projektowanie funkcji premiowych jest naprawdę trudnym problemem. Ogólnie rzecz biorąc, rzadsze funkcje nagrody są łatwiejsze do zdefiniowania (np. Zdobądź +1, jeśli wygrasz grę, w przeciwnym razie 0). Jednak rzadkie nagrody spowalniają naukę, ponieważ agent musi podjąć wiele działań, zanim odbierze jakąkolwiek nagrodę. Ten problem jest również znany jako problem przypisania kredytu .
Zamiast mieć tabelę reprezentującą nagrody, możesz również używać funkcji ciągłych (takich jak wielomian). Dzieje się tak zwykle, gdy przestrzeń stanu i przestrzeń akcji są ciągłe, a nie dyskretne.
źródło