Come funziona il processo Ornstein-Uhlenbeck e come viene utilizzato in DDPG?

Aug 22 2020

Nella sezione 3 del documento Controllo continuo con apprendimento profondo per rinforzo , scrivono gli autori

Come dettagliato nei materiali supplementari, abbiamo utilizzato un processo Ornstein-Uhlenbeck (Uhlenbeck & Ornstein, 1930) per generare un'esplorazione temporalmente correlata per l'efficienza dell'esplorazione nei problemi di controllo fisico con inerzia (un uso simile del rumore autocorrelato è stato introdotto in (Wawrzynski, 2015)).

Nella sezione 7, scrivono

Per il processo del rumore di esplorazione abbiamo utilizzato il rumore correlato temporalmente per esplorare bene in ambienti fisici che hanno slancio. Abbiamo usato un processo di Ornstein-Uhlenbeck (Uhlenbeck & Ornstein, 1930) con θ = 0.15 e σ = 0.2. Il processo di Ornstein-Uhlenbeck modella la velocità di una particella browniana con attrito, che si traduce in valori correlati temporalmente centrati attorno a 0.

In poche parole, cos'è il processo Ornstein-Uhlenbeck? Come funziona? Come viene utilizzato esattamente in DDPG?

Voglio implementare l'algoritmo Deep Deterministic Policy Gradient e, nelle azioni iniziali, deve essere aggiunto il rumore. Tuttavia, non riesco a capire come funzioni questo processo Ornstein-Uhlenbeck. Ho cercato in internet, ma non ho capito le informazioni che ho trovato.

Risposte

3 DuttaA Aug 23 2020 at 13:02

Il processo Ornstein Ulhenebck è definito come (nell'impostazione continua):

$$dX_t = -\beta(X_t - \alpha)dt + \sigma dW_t$$

L'analogo per questo processo nel caso del tempo discreto che presumo sarà applicabile nel caso RL sarà:$$X_{t+1} = X_t -\beta(X_t - \alpha) + \sigma \{W_{t+1}-W_t\}=$$ $$X_{t+1} = (1 -\beta)X_t - \alpha + \sigma \{W_{t+1}-W_t\}$$

Nella RL impostare i termini nell'equazione significa probabilmente:

  • $X_t$starà per uno stato in RL cioè lo stato è il numero$\in \mathbb R$dove si sposta la particella in quel momento$t$.
  • $\beta$e$\alpha$sono solo costanti che decidono certe caratteristiche di movimento della particella. Controlla qui per i grafici tracciati per vari$\beta$.
  • $W_t$è un processo Weiner che inizia a$W_0 = 0$e quindi aggiunge incrementi indipendenti di$\mathcal N(\mu,\sigma)$come$W_{t+1} = W_t+\mathcal N(\mu,\sigma)$che è fondamentalmente una passeggiata radom. Più in generale usiamo$\mathcal N(0,1)$. Questo è formulato come$W_t-W_s = \sqrt{t-s} \mathcal N(0,1)$. Ciò è dovuto al fatto,$W_t$può essere scritto ricorsivamente come$W_t = \mathcal N(0,1)+W_{t-1} = \mathcal N(0,1) + \mathcal N(0,1) + ...W_s$e poiché i campionamenti sono indipendenti ad ogni passo, la media viene aggiunta come$\mu_t+\mu_{t-1}...$e le varianze come$\sigma_t^2 + \sigma_{t-1}^2...$. Da lei i mezzi e le varianze sono$0$e$1$rispettivamente, la media finale$\mu = 0$e varianza$\sigma^2 = (t-s)$. E quindi, per proprietà delle variabili casuali gaussiane che puoi scrivere (è facile mostrarlo tramite trasformazione variabile)$W_t-W_s = \sqrt{t-s} \mathcal N(0,1)$. Ecco la formulazione del processo Weiner standard.
  • $\sigma$sarà il fattore di ponderazione del processo Weiner, che significa semplicemente la quantità di rumore aggiunta al processo.

Un'altra risorsa utile sul processo discreto di Ornstein Ulhenbeck, molto meno generalizzato. Penso che ora puoi estenderlo a qualsiasi scenario tu sia interessato all'impostazione RL.