Rozważmy funkcję, która jest przybliżana za pomocą sieci neuronowych, a dokładniej rozważmy przypadek, w którym f(x)=cos(2πx)f(x) = \cos(2\pi x). W tym przykładzie, dla xk=(2k1)ϵx_k = (2k−1)\epsilon', funkcja Y^=f(xk)Ŷ = f(x_k) jest zdefiniowana na przedziale [xkϵ,xk+ϵ][x_k - \epsilon', x_k + \epsilon'], który stanowi wsparcie funkcji bazowej φk(x)\varphi_k(x). Z racji ciągłości Lipschitza funkcji f(x)f(x), możemy określić, że największy błąd pojawi się w punkcie środkowym dowolnego przedziału [xk,xk+1)[x_k, x_k+1). Błąd ten można opisać wzorem:

f(xk+ϵ)f^(x+ϵ)=f(x+ϵ)f(xk)f(xk)+Lϵf(xk)=ϵ,|f(x_k + \epsilon') - f̂(x + \epsilon')| = |f(x + \epsilon') - f(x_k)| \leq |f(x_k)| + L\epsilon' - |f(x_k)| = \epsilon,

gdzie LL jest stałą Lipschitza, a ϵ\epsilon' jest małą jednostką dyskretizacji. Ten przykład jest specjalnym przypadkiem ogólnego reprezentowania funkcji przez perceptrony wielowarstwowe (MLP), gdzie, zamiast wymagać regularnego siatkowania punktów, zakłada się jedynie obecność KK punktów danych w przestrzeni pRp \in \mathbb{R}. Granice regionów tworzone przez ukryte jednostki w tej przestrzeni generują diagram Voronoia, który dzieli przestrzeń na regiony na podstawie odległości do wybranych punktów. Takie podejście pozwala na traktowanie sieci neuronowych jako reprezentacji funkcji w postaci splajnów.

Przedstawienie sieci neuronowych jako splajnów jest możliwe dzięki zastosowaniu diagramów Voronoia, co może wydawać się abstrakcyjne, ale skutkuje prostszym i bardziej efektywnym przybliżeniem funkcji. W rzeczywistości, sieci neuronowe są szczególnym przypadkiem splajnów, a takie rozumienie pomaga w projektowaniu sieci w oparciu o teorię przybliżeń, która dostarcza narzędzi do określania jakości przybliżenia funkcji.

Istnieje wiele dowodów teoretycznych, które wskazują, że głębokie sieci neuronowe są bardziej efektywne od modeli liniowych, takich jak regresja liniowa, w przypadku złożonych problemów z wieloma zmiennymi. Poggio (2016) wykazał, że głębokie sieci mogą osiągnąć lepsze wyniki, unikając problemu „klątwy wymiarowości”, który występuje w klasycznych modelach liniowych. Z kolei analiza teoretyczna funkcji aproksymujących wskazuje na zależność wydajności sieci od głębokości, szerokości i poziomu sparsity (rozrzedzenia) sieci, co ma istotne znaczenie w projektowaniu bardziej złożonych architektur.

Również badania dotyczące wymiaru VC (Vapnika-Chervonenkisa) sieci neuronowych pokazują, że sieci z funkcją aktywacji ReLU mają dużą zdolność wyrażania funkcji, co jest kluczowe dla zrozumienia, dlaczego większa liczba warstw w sieci może prowadzić do lepszej aproksymacji złożonych funkcji. Teoretyczne dowody wskazują, że głębokie sieci z ReLU są w stanie dokładniej aproksymować funkcje nieliniowe niż ich płytkie odpowiedniki, które wymagałyby ogromnej liczby jednostek w każdej warstwie.

Kiedy dodajemy kolejne warstwy do sieci, sieć staje się bardziej elastyczna i zdolna do reprezentowania funkcji w bardziej złożony sposób. Zauważmy, że w sieci neuronowej głębokiej, aktywacja ReLU jest funkcją kawałkowo-liniową, co oznacza, że każde dodatkowe warstwy pozwalają na bardziej złożoną kompozycję funkcji. W rezultacie, zamiast po prostu dodawać funkcje, jak to się dzieje w modelach liniowych, sieci neuronowe wykonują kompozycje funkcji, co znacznie zwiększa ich zdolność do wyrażania bardziej skomplikowanych zależności.

Aby lepiej zrozumieć, jak to działa w praktyce, rozważmy przykład rozkładu liczby dziesiętnej na postać binarną. W tym przypadku sieć neuronowa wykorzystuje dwie jednostki w każdej warstwie z różnymi funkcjami aktywacyjnymi – Heaviside i funkcją tożsamościową. W ten sposób można skutecznie przybliżyć liczbę dziesiętną do jej reprezentacji binarnej.

Sieci neuronowe w tym przypadku wykorzystują rozkład liczby dziesiętnej do rozbicia jej na sumę składników, co pozwala na lepsze przybliżenie funkcji. Takie podejście jest możliwe dzięki odpowiedniej liczbie warstw w sieci, które umożliwiają wykonanie tego typu kompozycji funkcji. Z kolei, jeśli chodzi o wielomiany, istnieje teoria, która pokazuje, że sieci neuronowe o odpowiedniej strukturze (np. z jednostkami Heaviside i ReLU) mogą skutecznie aproksymować funkcje wielomianowe o dowolnym stopniu.

Również ważnym aspektem, który należy uwzględnić, jest fakt, że głębokie sieci neuronowe nie tylko umożliwiają dokładne aproksymowanie funkcji, ale również samodzielnie się regularizują. To oznacza, że z biegiem kolejnych warstw sieć staje się bardziej odporną na nadmierne dopasowanie do danych treningowych, co jest korzystne w kontekście ogólnej jakości modelu.

Jak rozumieć metody TD w kontekście algorytmu przybliżonego Bellmana?

W klasycznych metodach uczenia ze wzmocnieniem, takich jak SARSA czy Q-learning, celem jest znalezienie optymalnej polityki, która maksymalizuje oczekiwaną sumę nagród w danym środowisku. Aby osiągnąć ten cel, najczęściej korzystamy z równań Bellmana, które stanowią matematyczny fundament dla takich algorytmów. Jednak, aby skutecznie je zastosować w praktyce, wprowadzamy przybliżenie stochastyczne, które pozwala na iteracyjne aktualizowanie wartości funkcji Q lub polityki na podstawie obserwacji w czasie rzeczywistym.

W rzeczywistości, kiedy model środowiska jest nieznany, próbujemy rozwiązać równanie optymalności Bellmana poprzez zastąpienie oczekiwań empirycznymi średnimi. Podejście to wykorzystuje metodę przybliżeń stochastycznych, jak na przykład algorytm Robbins-Monro, który umożliwia estymację średniej bez bezpośredniego sumowania wszystkich próbek. Przykład estymacji średniej wartości można przedstawić za pomocą prostego wzoru:

x^k+1=(1αk)x^k+αkxk\hat{x}_{k+1} = (1 - \alpha_k) \hat{x}_k + \alpha_k x_k

gdzie x^k\hat{x}_k to bieżąca estymata średniej, xkx_k to nowa próbka, a αk\alpha_k to współczynnik uczenia (learning rate), który określa stopień, w jakim nowa obserwacja wpływa na aktualną estymatę. Wzór ten jest podstawą do zrozumienia, jak Q-learning wykorzystuje iteracyjne poprawki w swoich obliczeniach.

Kluczową cechą tego podejścia jest to, że każde nowe doświadczenie aktualizuje naszą dotychczasową estymatę wartości Q, co pozwala na szybkie dostosowywanie się do nowych informacji. Taki proces jest szczególnie przydatny, gdy musimy pracować w dynamicznych środowiskach, gdzie dostępne dane mogą pochodzić z różnych źródeł i być przetwarzane w trybie online. Co więcej, metoda przybliżenia stochastycznego daje możliwość uczenia się na podstawie danych, które są dostarczane w partiach (batch), zamiast w pojedynczych próbkach. To z kolei umożliwia efektywniejsze wykorzystanie zasobów obliczeniowych, szczególnie w przypadku bardzo dużych zbiorów danych.

Jednym z przykładów zastosowania takich technik jest problem handlu akcjami, który jest podobny do wcześniej omawianego przypadku "financial cliff walking". W takim przypadku broker musi sprzedać określoną liczbę akcji, minimalizując wpływ na cenę rynkową. Zamiast podejmować decyzje w sposób losowy, agent podejmuje kroki oparte na bieżącej estymacie wartości Q dla danej sytuacji, uwzględniając przy tym przewidywane skutki swojej decyzji na przyszłość.

Pomimo że metody przybliżenia stochastycznego, takie jak Q-learning, są skuteczne, ich efektywność zależy od wyboru odpowiedniego współczynnika uczenia αk\alpha_k. Ten parametr musi być odpowiednio dostosowany do konkretnego problemu, co może wymagać eksperymentowania. Dodatkowo, w przypadku bardzo dużych środowisk, takie jak w zadaniach z przestrzenią ciągłych stanów i akcji, konieczne jest stosowanie wersji partii tych algorytmów, które pozwalają na uczenie się na podstawie większych zbiorów danych. Jest to szczególnie ważne w przypadku uczenia głębokiego, gdzie proces treningu może obejmować setki, a nawet tysiące iteracji.

Warto również zwrócić uwagę, że algorytmy oparte na przybliżeniu stochastycznym, jak Q-learning, mogą być wykorzystywane nie tylko w klasycznych zadaniach uczenia ze wzmocnieniem, ale również w bardziej złożonych problemach optymalizacji, takich jak planowanie sekwencji działań w robotyce czy zarządzanie portfelem inwestycyjnym. W takich zastosowaniach, efektywność algorytmu zależy nie tylko od dokładności przybliżeń, ale również od sposobu eksploracji przestrzeni stanów i akcji.

W kontekście praktycznym, jednym z kluczowych aspektów jest stopniowe dostosowywanie parametrów, takich jak współczynnik uczenia α\alpha, a także polityki eksploracji, jak np. ϵ\epsilon-greedy. Dodatkowo, w zadaniach o dużej złożoności obliczeniowej, przydatne staje się stosowanie mini-batchy, które pozwalają na równoczesne przetwarzanie wielu danych, co przyspiesza proces nauki.