W kontekście uczenia maszynowego i teorii decyzji, zaawansowane metody optymalizacji stają się kluczowym elementem w różnych dziedzinach, w tym w finansach. Jednym z przykładów jest G-uczenie, które wyłania się z klasycznego Q-uczenia. Jest to metoda, która uwzględnia regularizację entropijną, co ma na celu poprawienie skuteczności decyzji w stochastycznych i szumowych środowiskach.

Na początek warto zwrócić uwagę na podstawowe równanie, które łączy różne funkcje wartości i free energy (energia swobodna). Równanie (10.107) stanowi probabilistyczną relaksację klasycznego równania optymalności Bellmana, dodając do niego karę na podstawie informacji Kullbacka-Leiblera (KL), co stanowi rodzaj regularizacji. W tym przypadku kara ta jest kontrolowana przez parametr odwrotnej temperatury β\beta, który determinuje, jak silnie ma być wymuszana entropia w rozwiązywanych problemach decyzyjnych.

Dalsza analiza prowadzi nas do funkcji G, która jest rozbudowaną wersją klasycznej funkcji akcji-wartości. Funkcja G, czyli funkcja swobodnej energii stanu-akcji, jest określona równaniem (10.110), które uwzględnia zarówno natychmiastową nagrodę R^\hat{R}, jak i wartość przewidywanej energii w kolejnych krokach. Równanie to odnosi się do szeregów czasowych, gdzie każdy krok jest uwzględniany z odpowiednim współczynnikiem discountingowym γ\gamma. Z kolei parametr β\beta reguluje intensywność wpływu tej entropii na ostateczną decyzję.

Porównując równanie (10.110) z równaniem (10.107), uzyskujemy związek pomiędzy funkcją G a funkcją free energy. Warto zauważyć, że zmiana w rozkładzie polityki π\pi, czyli strategii wyboru akcji, jest w tym kontekście minimalizowana za pomocą rozkładu, który uwzględnia teoretycznie „optymalną” wartość G oraz entropijną karę, której wysokość zależy od β\beta.

Mówiąc wprost, G-uczenie jest generalizacją klasycznego Q-uczenia, ponieważ wprowadza możliwość działania na politykach stochastycznych. Działa to w sposób, który pozwala na uwzględnienie większej niepewności w modelach decyzyjnych. Dla zrozumienia tego w kontekście inwestycji, taka metodologia daje możliwość uwzględnienia większej zmienności na rynku, niż w klasycznych metodach deterministycznych.

Ważnym uzupełnieniem teorii G-uczenia jest również zrozumienie procesu optymalizacji portfela. Optymalizacja portfela w tym kontekście może być traktowana jako równanie Nasha w grze między agentem a jego „przeciwnikiem”, gdzie to agent stara się znaleźć najlepszą politykę, podczas gdy jego przeciwnik z kolei wprowadza pewne trudności w postaci szumów i niepewności. Ostatecznie, taka forma optymalizacji portfela jest matematycznie równoważna analizie równowagi Nasha w grze, co wprowadza nową perspektywę na zagadnienie optymalizacji w stochastycznych środowiskach.

Istotnym dodatkiem w tym kontekście jest rozważenie, jak funkcje swobodnej energii i G funkcjonują w praktyce w zadaniach, takich jak prognozowanie cen akcji. Istotną różnicą między klasycznymi algorytmami a G-uczeniem jest to, że G-uczenie działa w oparciu o polityki stochastyczne, co daje możliwość bardziej elastycznego podejścia do zmiennych warunków rynkowych. Użycie tej metody w kontekście portfeli inwestycyjnych polega na przetwarzaniu sygnałów rynkowych, które nie są deterministyczne, ale zawierają elementy niepewności i ryzyka.

Poziom zaawansowania metody G-uczenia znajduje również zastosowanie w rozwiązywaniu problemów z dużymi, ciągłymi przestrzeniami stanów i akcji. W takim przypadku nie można stosować tradycyjnych tabel, jak w przypadku metod opartych na dyskretnych przestrzeniach stanów, dlatego konieczne jest wykorzystanie zaawansowanych technik przybliżenia funkcji, takich jak sieci neuronowe, które pozwalają na estymowanie wartości funkcji G w warunkach nieprzewidywalnych i skomplikowanych.

W kontekście implementacji tej teorii, ważnym wyzwaniem staje się również obliczanie wielowymiarowych całek, które mogą znacząco spowolnić proces uczenia w przypadku nieodpowiedniej parametryzacji. W związku z tym kluczowe jest opracowanie takich metod, które pozwalają na szybkie obliczenie wymaganych wartości, co jest szczególnie istotne w zastosowaniach praktycznych, takich jak optymalizacja portfela.

Wnioskiem z tej analizy jest to, że G-uczenie stanowi silne rozszerzenie klasycznego podejścia Q-uczenia, oferując możliwość bardziej elastycznego podejścia do rozwiązywania problemów decyzyjnych w środowiskach, gdzie niepewność i entropia są istotnymi czynnikami.

Jak agent podejmuje decyzje w kontekście nagród stochastycznych?

Reinforcement learning (RL) opiera się na zadaniu, w którym agent stara się zmaksymalizować całkowitą nagrodę, podejmując decyzje w kontekście niepewności o przyszłe nagrody. Celem jest znalezienie optymalnej polityki działania, która będzie maksymalizować sumaryczny zysk w długim okresie. Rozważmy klasyczny przypadek, w którym agent wybiera spośród kilku dostępnych opcji (tzw. ramion) w każdym z rund. Załóżmy, że nagrody RtR_t są niezależnymi i identycznie rozkładającymi się zmiennymi losowymi z rozkładem ν[0,1]n\nu \in [0, 1]^n i średnią μ\mu. Najlepszym działaniem w tym przypadku jest wybór ramienia o najwyższej średniej μ\mu^*. Różnica pomiędzy zgromadzoną nagrodą a maksymalną nagrodą, którą mogłaby uzyskać osoba znająca wszystkie parametry, jest nazywana "skumulowaną żalem" i wynosi:

t[T]Rˉt=TμE[Rt]\sum_{t \in [T]} \bar{R}_t = T \mu^* - \mathbb{E} [R_t]

Intuicyjnie, agent powinien wybierać te ramiona, które dobrze wypadały w przeszłości, ale jednocześnie musi upewnić się, że żaden potencjalnie dobry wybór nie został pominięty. Kluczem jest balansowanie pomiędzy eksploracją (sprawdzaniem nowych opcji) a eksploatacją (wykorzystywaniem już znanych, dobrze ocenionych ramion). Jeśli agent stale będzie wybierał tylko te ramiona, które dały najwyższe nagrody w przeszłości, może przeoczyć lepsze opcje, które wymagają więcej czasu, by się ujawniły.

Teoretyczne podstawy reinforcement learningu wywodzą się z programowania dynamicznego stochastycznego. W tym kontekście agent podejmuje sekwencję decyzji w sytuacji niepewności dotyczącej nagród. Jeśli niepewność ta jest modelowana przez rozkłady prawdopodobieństwa, problem ten staje się znacznie łatwiejszy do rozwiązania. Zakłada się, że czytelnik ma pewną znajomość programowania dynamicznego — rozszerzenie tego podejścia o niepewność stochastyczną stanowi stosunkowo prosty rozwój koncepcyjny. Więcej na ten temat można znaleźć w rozdziale 9, który omawia kluczowe aspekty programowania dynamicznego, w tym optymalność Bellmana.

Przykład 1.4 ilustruje sytuację, w której strategia alokuje 600 dolarów pomiędzy trzema rynkami, gdzie każdy rynek ma inną płynność i różne prawdopodobieństwo zrealizowania większych zleceń. Modelowanie tego problemu jako problemu programowania dynamicznego stochastycznego umożliwia znalezienie optymalnej alokacji środków. Zastosowanie formuł rekurencyjnych pozwala uzyskać optymalną alokację, ale co ważne, w rzeczywistości te prawdopodobieństwa nie są znane z góry — trzeba je nauczyć się poprzez obserwację wyników.

Jeśli założymy, że prawdopodobieństwa wypełnienia zleceń są nieznane i muszą być uczone na podstawie zaobserwowanych wyników w kolejnych okresach, problem ten nie może zostać rozwiązany przy użyciu klasycznej rekurencji. Zamiast tego, trzeba przejść do ramy reinforcement learningu, który pozwoli agentowi na naukę najlepszych działań na podstawie zbieranych danych. W praktyce, problem ten jest znacznie bardziej złożony, szczególnie w kontekście rzeczywistych rynków finansowych, gdzie zmienne losowe mają dynamiczny charakter i przestrzeń stanów jest znacznie większa.

Przykład 1.5 przenosi nas do bardziej klasycznego problemu finansowego, w którym inwestor ma do czynienia z inwestowaniem w portfel indeksowy. Załóżmy, że cena ryzykownego aktywa StS_t zmienia się w sposób losowy w czasie, a inwestor stara się zoptymalizować swoje decyzje inwestycyjne poprzez odpowiednią alokację swojego majątku pomiędzy ryzykowną inwestycję a bezpieczne konto bankowe. W tym przypadku, proces majątkowy inwestora jest samo-finansujący, co oznacza, że wszelkie zakupy ryzykownych aktywów są finansowane ze środków na koncie bankowym, a sprzedaż aktywów generuje wpływy do tego samego konta.

Optymalizacja takiego procesu polega na maksymalizacji zysków skorygowanych o ryzyko. W przypadku modelowania tego procesu, funkcja celu inwestora staje się funkcją w czasie, którą należy zoptymalizować za pomocą strategii alokacji. Ważnym elementem jest uwzględnienie awersji do ryzyka, która pozwala inwestorowi uwzględnić zmienność wyników inwestycyjnych. Problem ten można rozwiązać zarówno przy użyciu programowania dynamicznego, jak i technik reinforcement learningu, co daje inwestorowi narzędzie do podejmowania lepszych decyzji na podstawie obserwowanych wyników w czasie.

Optymalizacja takich złożonych procesów finansowych w rzeczywistości nie jest trywialna. Wymaga zastosowania zaawansowanych technik obliczeniowych i strategii uczenia maszynowego. Mimo iż przykłady przedstawione w tym rozdziale są stosunkowo uproszczone w porównaniu do realnych problemów rynkowych, stanowią one ważną bazę do nauki i testowania algorytmów reinforcement learningu, które można później zastosować w bardziej złożonych przypadkach.

Jakie są wyzwania związane z skalowalnością procesów Gaussa (GP) w kontekście regresji i prognozowania?

Procesy Gaussa (GP) w kontekście uczenia maszynowego stają się coraz bardziej popularne, szczególnie w obszarach, gdzie modelowanie stochastyczne i predykcja są niezbędne. W tym rozdziale omówimy, w jaki sposób procesy Gaussa są wykorzystywane w kontekście regresji bayesowskiej i predykcji, ze szczególnym uwzględnieniem skalowalności algorytmów w przypadku dużych zbiorów danych. Zaczniemy od podstaw, by przejść do bardziej zaawansowanych zagadnień związanych z wydajnością obliczeniową i skalowalnością, a także wyzwań, które pojawiają się w kontekście dużych zbiorów danych.

W procesach Gaussa, zarówno czas trenowania, jak i czas prognozowania, zależą w dużej mierze od liczby punktów treningowych oraz wymiarowości danych. W przypadku klasycznych procesów Gaussa (GP), obliczenia bazują na macierzy kowariancji, której rozmiar rośnie wraz z liczbą punktów treningowych, co prowadzi do znacznego wzrostu czasów obliczeniowych. W kontekście analizy cen opcji, procesy Gaussa mogą służyć jako narzędzie do tworzenia tzw. modeli surrogatowych, które przyspieszają proces wyceny pochodnych instrumentów finansowych. Jednak wyzwanie polega na tym, by zapewnić skalowalność takich algorytmów, szczególnie w obliczu rosnącej liczby danych.

Na przykład, w eksperymencie przedstawionym w poprzednich rozdziałach, czas trenowania procesu Gaussa został określony dla 1000 iteracji metody Stochastic Gradient Descent (SGD), co pozwoliło na uzyskanie wyników w rozsądnych ramach czasowych przy relatywnie mniejszej liczbie punktów treningowych. Jednak w miarę jak liczba tych punktów rosła, czas treningu i prognozy stawał się coraz dłuższy, co stanowiło wyzwanie, szczególnie w kontekście modeli o dużej złożoności. Dla przykładu, przy 10-krotnym zwiększeniu liczby punktów treningowych, czas treningu wzrósł około 1,4 raza, a czas prognozy około 2 razy. Wynikało to z faktu, że każdy punkt prognozy wymagał załadowania nowych danych do pamięci, co spowodowało opóźnienia związane z dostępem do pamięci. W przyszłości, stosowanie szybszych podejść do buforowania danych mogłoby pomóc w redukcji tego opóźnienia.

Jednak wyzwanie z czasem treningu i prognozy nie kończy się na kwestiach pamięciowych. Kolejnym problemem, z którym borykają się tradycyjne procesy Gaussa, jest fakt, że operacje związane z obliczaniem macierzy kowariancji wymagają O(n^3) operacji, co może stać się niewykonalne w przypadku bardzo dużych zbiorów danych. Istnieje wiele prób optymalizacji tych obliczeń, w tym podejście separowalne, które wykorzystuje strukturę jądra (kernel), co pozwala na przyspieszenie obliczeń. Dzięki temu zyskujemy algorytmy, które skalują się lepiej, ale nadal napotykają na ograniczenia związane z wymiarowością danych.

Równocześnie rozwijają się także techniki, które wykorzystują procesy Gaussa do modelowania wielu zmiennych jednocześnie. W tzw. wielozmiennowych procesach Gaussa (MGP), modelowanie zależności pomiędzy wieloma odpowiedziami (outputami) odbywa się poprzez zdefiniowanie macierzy kowariancji, która uwzględnia interakcje między zmiennymi. W tym przypadku, model zakłada, że odpowiedzi są wektorem wartości, a ich zależności są wyrażane przez macierz kowariancji. Jest to rozszerzenie tradycyjnego modelu GP na scenariusze, w których interesują nas nie tylko pojedyncze prognozy, ale także relacje między wieloma zmiennymi. W tym przypadku, obliczenia również stają się bardziej złożone, gdyż muszą uwzględniać zarówno kowariancję między zmiennymi, jak i zależności między punktami treningowymi.

Mimo że procesy Gaussa w wersji wielozmiennowej mogą oferować bardziej elastyczne podejście do modelowania, wymagają one także skomplikowanych obliczeń i są obarczone wyzwaniami związanymi z wydajnością. Na przykład, w przypadku takiego modelu, konieczne jest wyznaczenie wspólnej macierzy kowariancji, która łączy ze sobą różne zmienne, a także obliczenie ich wpływu na prognozy w każdym punkcie testowym. Przewidywanie takich procesów staje się jeszcze bardziej czasochłonne i wymaga zaawansowanych technik optymalizacji obliczeniowej, takich jak użycie jednostek GPU, co nie zostało jednak uwzględnione w przedstawionych badaniach.

Kiedy mówimy o modelowaniu z wykorzystaniem procesów Gaussa, warto także wspomnieć o roli hiperparametrów. Ich odpowiedni dobór jest kluczowy w kontekście dokładności modelu. Hiperparametry, takie jak funkcje jądra (kernel) i macierze kowariancji, mają bezpośredni wpływ na to, jak model będzie odwzorowywał rzeczywiste dane. Często w takim przypadku minimalizujemy funkcję logarytmu prawdopodobieństwa marginalnego, aby uzyskać najlepsze dopasowanie modelu do danych. Jednocześnie proces ten wiąże się z koniecznością optymalizacji, która może być kosztowna obliczeniowo, szczególnie przy dużych zbiorach danych.

W przypadku dużych zbiorów danych, czas prognozowania i trenowania może wzrosnąć nieproporcjonalnie do rozmiaru danych. Istnieją różne techniki przyspieszania obliczeń, takie jak zmniejszenie liczby punktów indukcyjnych lub zastosowanie zaawansowanych metod obliczeniowych, jak CUDA na GPU, które mogą znacznie poprawić wydajność modelu. Z drugiej strony, bardziej zaawansowane metody pozwalają na bardziej efektywne zarządzanie pamięcią, co może pomóc w zmniejszeniu czasów obliczeniowych.

Jak zrozumieć pamięć w Recurrent Neural Networks (RNN) i stabilność modeli RNN?

Recurrent Neural Networks (RNN) są zaawansowaną architekturą wykorzystywaną do analizy danych szeregów czasowych, której główną cechą jest możliwość przechowywania informacji z przeszłości w stanie ukrytym. Jednak, mimo ich popularności, analizowanie pamięci RNN i związanych z nimi zależności jest skomplikowane, szczególnie gdy mówimy o modelach nieliniowych. Pomimo tego, że matematyczne podejście do RNN może wydawać się trudne, pewne funkcje statystyczne, jak funkcja autokowariancji, mogą dostarczyć cennych informacji na temat struktury pamięci tych sieci.

W przypadku modelu RNN(1), funkcja autokowariancji opóźnionych wartości, czyli γ̃1, jest wyrażona przez oczekiwaną wartość iloczynu różnic pomiędzy wartościami wyjściowymi i średnimi z dwóch różnych chwil czasowych. Wzór na tę funkcję przyjmuje postać:

\gammã1 = E[y_t - \mu, y_{t-1} - \mu] = E[\hat{y}_t + \epsilon_t - \mu, y_{t-1} - \mu],

gdzie y^t=σ(ϕyt1)\hat{y}_t = \sigma(\phi y_{t-1}), a ϕ\phi to waga dla poprzedniego stanu. Po założeniu, że średnia μ=0\mu = 0, powyższy wzór daje:

\gammã1 = E[y_{t-1} \sigma(\phi y_{t-1})].

Jeżeli funkcja aktywacji jest liniowa (to znaczy σ(x)=x\sigma(x) = x), wzór ten sprowadza się do klasycznego modelu AR(1), gdzie autokowariancja zależy od wartości wcześniejszego stanu, co odpowiada tradycyjnym procesom autoregresyjnym. Jednak w przypadku nieliniowej funkcji aktywacji, jak np. sigmoidalnej, pamięć modelu może być bardziej złożona, a autokowariancja może przyjąć bardziej nietypowe formy, które nie będą już liniowe.

W odniesieniu do autokowariancji dla opóźnienia 2 (lag-2), sytuacja staje się jeszcze bardziej interesująca. Po zastosowaniu modelu RNN(1), gdzie P(ytyt1)P(y_t | y_{t-1}) jest aproksymowane przez y^t=σ(ϕyt1)\hat{y}_t = \sigma(\phi y_{t-1}), otrzymujemy wyrażenie:

\gammã2 = E[\epsilon_t, y_{t-2} - P(y_{t-2} | y_{t-1})].

Dzięki przyjętym założeniom, gdzie zależność yt2y_{t-2} od yt1y_{t-1} jest traktowana przez sieć RNN jako zależność nieliniowa, okazuje się, że autokowariancja dla opóźnienia 2 może wynosić 0. To pokazuje, jak pamięć w modelu RNN może ulegać wygaszeniu w miarę wzrostu opóźnienia, co jest cechą różniącą się od tradycyjnych procesów AR(p), w których autokowariancja nie zanika w sposób tak wyraźny.

Podobnie jak dla procesów AR(p), w przypadku RNN można mówić o tzw. "cięciu" funkcji autokorelacji. Dla RNN(p) funkcja autokorelacji częściowa (PACF) wykazuje, że dla s>ps > p autokorelacja staje się równa zero, co sugeruje, że modele RNN mają "granice pamięci", w których wpływ wcześniejszych danych na wyjście sieci staje się zaniedbywalny.

Analizując stabilność modelu RNN, warto zauważyć, że kluczowym aspektem jest zachowanie odpowiedzi modelu na impulsy czasowe. W przypadku tradycyjnych procesów autoregresyjnych (AR), takie impulsy wygasają w sposób wyraźny i przewidywalny. W kontekście RNN, aby model był stabilny, funkcja aktywacji powinna spełniać warunek σ1|\sigma| \leq 1, co zapewnia, że wpływ danych z przeszłości na wyjście sieci będzie malejący. Dla funkcji aktywacji takich jak tanh, która spełnia ten warunek, efekty perturbacji z przeszłości będą stopniowo wygasać, co jest szczególnie istotne dla modelowania szeregów czasowych, gdzie stabilność i przewidywalność są kluczowe.

Kiedy mówimy o stacjonarności RNN, sytuacja staje się bardziej złożona. Dla tradycyjnych modeli AR(p) stacjonarność jest łatwa do sprawdzenia, ponieważ opiera się na macierzy towarzyszącej, której wartości własne muszą spełniać odpowiednie warunki. Dla RNN jednak nie jest możliwe zastosowanie tego samego podejścia, ponieważ nieliniowość aktywacji sprawia, że tradycyjne metody analizy stacjonarności nie są wystarczające. W związku z tym, aby zapewnić stacjonarność, konieczne jest stosowanie nieliniowych funkcji aktywacji, które pozwalają na bardziej elastyczne modelowanie szeregów czasowych.

Wreszcie, pojęcie "połowicznego życia" (half-life) jest istotnym narzędziem do oceny, jak szybko informacje z przeszłości stają się nieistotne dla modelu. W przypadku RNN, obliczanie połowicznego życia polega na analizie liczby iteracji funkcji aktywacji, które są wymagane, aby efekt impulsu z przeszłości zmniejszył się o połowę. Ta wartość daje wgląd w to, jak długo sieć RNN przechowuje informację, zanim jej wpływ na wyniki modelu stanie się znikomy.

Zrozumienie tych mechanizmów jest kluczowe dla praktycznego stosowania RNN w analizie szeregów czasowych. Odpowiedni dobór funkcji aktywacji, analiza stabilności oraz zrozumienie pojęcia połowicznego życia pozwalają na lepsze dostosowanie modelu do specyficznych potrzeb, a także umożliwiają jego bardziej precyzyjne wykorzystanie w zadaniach związanych z prognozowaniem szeregów czasowych.

Jak przybliżenia funkcji wartości i funkcji akcji w uczeniu przez wzmacnianie mogą wspomóc procesy optymalizacji w przestrzeniach ciągłych

W tradycyjnych metodach uczenia przez wzmacnianie (Reinforcement Learning, RL) funkcje wartości, takie jak funkcja wartości stanu V(s)V(s), oraz funkcje wartości akcji Q(s,a)Q(s, a), są reprezentowane w postaci rozkładów dyskretnych. Taki sposób reprezentacji jest stosunkowo prosty, ale w przypadku bardziej złożonych problemów, jak te oparte na przestrzeniach ciągłych, podejście to może okazać się niewystarczające. W takim przypadku konieczne staje się wprowadzenie przybliżeń funkcji, które umożliwiają operowanie w przestrzeniach o nieskończonej liczbie punktów.

W kontekście przestrzeni dyskretnych, jednym z najczęściej używanych rozwiązań jest funkcja bazowa typu „one-hot” (względna do funkcji Diraca), czyli funkcja ϕn(s)=δs,sn\phi_n(s) = \delta_{s,s_n}, która przyjmuje wartość 1, gdy stan ss odpowiada stanowi sns_n, i 0 w przeciwnym przypadku. Dzięki temu możliwe jest przedstawienie każdej zmiennej stanu w sposób jednoznaczny i rozłączny. Jednak przejście do przestrzeni ciągłych wymaga zastosowania bardziej zaawansowanych technik, umożliwiających agregację punktów w obrębie sąsiedztw, przy jednoczesnym zachowaniu ograniczonej liczby członów w sumie.

Przybliżenia funkcji w przestrzeniach ciągłych można uzyskać przez rozszerzenie metody funkcji bazowych, wykorzystując do tego celu wygładzone wersje funkcji Diraca. Przykładem mogą być tutaj funkcje B-splajnów czy jądra Gaussa, które, w przeciwieństwie do funkcji bazowych opartej na polinomiach czy funkcjach trygonometrycznych, mają charakter lokalny. Oznacza to, że funkcje B-splajnów są zdefiniowane tylko na ograniczonym odcinku przestrzeni, co sprawia, że ich wpływ na wartości w sąsiednich punktach jest minimalny. W takim ujęciu, przestrzeń stanów jest przybliżana jako suma funkcji bazowych, co umożliwia reprezentację funkcji wartości jako sumy odpowiednich wag tych funkcji.

W przypadku funkcji wartości akcji, rozszerzenie podobne do przedstawionego wcześniej dla funkcji wartości stanu pozwala na reprezentację funkcji Q(s,a)Q(s, a) za pomocą sumy członów zależnych od wybranych funkcji bazowych ψk(s,a)\psi_k(s, a), co skutkuje uproszczeniem problemu optymalizacji do problemu optymalizacji K-wymiarowej. Wartości parametrów θk\theta_k, które odpowiadają wagom tych funkcji, można dostosować przy pomocy różnych technik optymalizacyjnych, takich jak metoda najmniejszych kwadratów, uzyskując w ten sposób przybliżoną funkcję wartości akcji.

Przewagą metod opartej na architekturach liniowych jest ich prostota obliczeniowa oraz możliwość uzyskania analitycznych rozwiązań, jeśli funkcja strat jest kwadratowa, lub numerycznych rozwiązań, jeśli funkcja strat jest wypukła. Użycie takich metod w uczeniu przez wzmacnianie gwarantuje zbieżność procesu, a także pozwala na kontrolowanie jakości przybliżenia poprzez odpowiedni dobór funkcji bazowych. Jednak wadą tego podejścia jest brak jednoznacznych wskazówek dotyczących wyboru odpowiednich funkcji bazowych, szczególnie w przypadku wielowymiarowych przestrzeni ciągłych, co stanowi wyzwanie w kontekście rozwiązywania problemów z zakresu ekstrakcji cech.

W takich przypadkach rozważane są alternatywne podejścia, oparte na nieliniowych architekturach, takich jak drzewa decyzyjne czy sieci neuronowe. W szczególności, głębokie uczenie przez wzmacnianie (Deep Reinforcement Learning) wykorzystuje sieci neuronowe do przybliżania funkcji wartości oraz polityki działań, umożliwiając elastyczne reprezentacje funkcji oparte na dużych zbiorach danych, bez potrzeby wcześniejszego definiowania funkcji bazowych.

Kiedy jednak operujemy w kontekście algorytmów działających na danych historycznych, konieczne jest przejście do trybu wsadowego, czyli tzw. batch-mode. Dzięki wykorzystaniu większej liczby próbek danych, możliwe jest uzyskanie bardziej precyzyjnych estymacji parametrów θk\theta_k. Metody te, choć bardziej zasobożerne, pozwalają na osiągnięcie mniejszej wariancji estymacji w porównaniu do tradycyjnych metod online.

W kontekście implementacji algorytmu Q-learning w trybie wsadowym, celem jest rozwiązanie równań optymalności Bellmana za pomocą regresji. Poprzez analizę wielu danych (np. tuple (s,a,r,s)(s, a, r, s')) możliwe jest dostosowanie funkcji wartości do zbioru obserwacji zebranych podczas działania innego agenta, co daje bardziej stabilne i precyzyjne wyniki w porównaniu do pojedynczych obserwacji w metodzie online.

Zatem, przy projektowaniu systemów opartych na uczeniu przez wzmacnianie w przestrzeniach ciągłych, należy pamiętać, że wybór odpowiednich funkcji bazowych ma kluczowe znaczenie dla efektywności procesu optymalizacji. W miarę jak przestrzenie stają się coraz bardziej złożone, nieliniowe podejścia, takie jak głębokie sieci neuronowe, mogą stać się bardziej odpowiednie, zapewniając większą elastyczność w reprezentacji funkcji wartości.