Como funciona o processo Ornstein-Uhlenbeck e como ele é usado no DDPG?

Aug 22 2020

Na seção 3 do artigo Controle contínuo com aprendizado por reforço profundo , os autores escrevem

Conforme detalhado nos materiais suplementares, usamos um processo de Ornstein-Uhlenbeck (Uhlenbeck & Ornstein, 1930) para gerar exploração correlacionada temporalmente para eficiência de exploração em problemas de controle físico com inércia (uso semelhante de ruído autocorrelacionado foi introduzido em (Wawrzynski, 2015)).

Na seção 7, eles escrevem

Para o processo de ruído de exploração, usamos ruído correlacionado temporalmente, a fim de explorar bem em ambientes físicos que possuem momento. Usamos um processo de Ornstein-Uhlenbeck (Uhlenbeck & Ornstein, 1930) com θ = 0,15 e σ = 0,2. O processo de Ornstein-Uhlenbeck modela a velocidade de uma partícula browniana com fricção, o que resulta em valores correlacionados temporalmente centrados em torno de 0.

Em poucas palavras, o que é o processo Ornstein-Uhlenbeck? Como funciona? Como exatamente ele é usado no DDPG?

Quero implementar o algoritmo Deep Deterministic Policy Gradient e, nas ações iniciais, o ruído deve ser adicionado. No entanto, não consigo entender como funciona esse processo de Ornstein-Uhlenbeck. Pesquisei na internet, mas não entendi as informações que encontrei.

Respostas

3 DuttaA Aug 23 2020 at 13:02

O Processo Ornstein Ulhenebck é definido como (na configuração contínua):

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

O análogo para este processo no caso de tempo discreto que eu assumo será aplicável no caso RL será:$$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\}$$

Na definição de RL, os termos da equação provavelmente significam:

  • $X_t$representará um estado em RL, ou seja, o estado é o número$\in \mathbb R$para onde a partícula se move no tempo$t$.
  • $\beta$e$\alpha$são apenas constantes que decidem certas características de movimento da partícula. Confira aqui os gráficos plotados para vários$\beta$.
  • $W_t$é um processo de Weiner que começa em$W_0 = 0$e, em seguida, adiciona incrementos independentes de$\mathcal N(\mu,\sigma)$Como$W_{t+1} = W_t+\mathcal N(\mu,\sigma)$que é basicamente uma caminhada aleatória. Mais geralmente usamos$\mathcal N(0,1)$. Isso é formulado como$W_t-W_s = \sqrt{t-s} \mathcal N(0,1)$. Isso se deve ao fato,$W_t$pode ser escrito recursivamente como$W_t = \mathcal N(0,1)+W_{t-1} = \mathcal N(0,1) + \mathcal N(0,1) + ...W_s$e como as amostragens são independentes em cada etapa, a média é adicionada como$\mu_t+\mu_{t-1}...$e as variações como$\sigma_t^2 + \sigma_{t-1}^2...$. A partir dela as médias e variâncias são$0$e$1$respectivamente, a média final$\mu = 0$e variância$\sigma^2 = (t-s)$. E, portanto, por propriedades de variáveis ​​aleatórias gaussianas você pode escrever (é fácil mostrar isso por meio de transformação de variável)$W_t-W_s = \sqrt{t-s} \mathcal N(0,1)$. Aqui está a formulação do processo padrão de Weiner.
  • $\sigma$será o fator de ponderação do processo Weiner, que significa apenas a quantidade de ruído adicionado ao processo.

Outro recurso útil no processo discreto de Ornstein Ulhenbeck, muito menos generalizado. Acho que agora você pode estender isso para qualquer cenário em que esteja interessado na configuração de RL.