#オルンシュタイン=ウーレンベック過程を使用したノイズの振る舞いについて調べてみた。
強化学習アルゴリズムの一つDDPG(Deep Deterministic Policy Gradien)の解説Continuous control with deep reinforcement learningのなかで オルンシュタイン=ウーレンベック過程(Ornstein-Uhlenbeck process)が探索のためにノイズ(以降 OUノイズ)として使われている。
- DDPGの実装はWebに沢山挙げられており、OUノイズを採用したものはほぼ同内容の実装がされている。
- OUノイズには $\theta$, $\mu$,$\sigma$ の3パラメータがある。今回、オルンシュタイン=ウーレンベック過程と3パラメータのouノイズでの役割について調べた。
オルンシュタイン=ウーレンベック(Ornstein-Uhlenbeck Process)過程とは
3つのパラメータについて知りたい人はここを飛ばしてください。
1.確率過程
確率過程とは $X$が確率変数であり、タイムステップで起こる$X_1,X_2 \cdots X_t $ が並んだ列。
以降は$X$はある1ステップでの動点の移動、時刻 $t$ での動点位置を$x_t= \sum_{k=1}^tX_k$として話を進めます。
2.ウィーナー過程 $W$
時刻tでの$x_t$からの微少変化を考えたとき、ある正の定数 $\sigma$ に対して $\Delta x= \sigma\sqrt{\Delta t}$ を満たしつつ $\Delta x \rightarrow 0$,$\Delta t \rightarrow 0$で $x_t$ が近づく分布をウィーナー過程 $W$と呼ぶ。
3.オルンシュタイン=ウーレンベック過程
ウィーナー過程$W$の一つ。
${U(t)} = e^{-\mu{t}}W(\frac{\sigma^2{e^{2\mu{t}}}}{2\mu})$ で定められる。
Ornstein-Uhlenbeck 過程は平均 ${0}$ 分散 $\frac{\sigma^2}{2{\mu}}$ の正規分布 $N(0,\frac{\sigma^2}{2{\mu}})$ に従う。
##OUノイズの振る舞い
本題. 上で書いた式のままではある時刻$t$の動点位置 $\ x_t$ は計算できない。実装で使われている式はWiki:Euler–Maruyama methodで導出されています。
実装されている式は $dX(t)=\theta \cdot{(\mu-X_t)}dt+\sigma W(t)$ $(X_0 = X_{init})$
Wiki:Euler–Maruyama methodに記載されているPython実装を使用して各パラメータを変化させてみました。
- $\theta$: 0.1, 0.1, 1.0 と変化させました。$x_{t-1}$と$x_t$での振れ幅を保ったまま全体の変動が変化します。
- $\mu$: 1.0,1.5,2.0 と変化させてみました。漸近平均が$\mu$に近づきます。
- $\sigma $:0.1, 0.5, 1.0 と変化させました。ノイズの変動が変化します。
##終わりに
Continuous control with deep reinforcement learningを参考にしたとき探索ノイズのふるまいが気になったので調べてみました。
記事内の数学的な表現はイメージを伝えたいために記載したもので厳密ではありません。
参考にした書籍 数学のかんどころ 【26】
確率微分方程式入門―数理ファイナンスへの応用― もしくは他の書籍を参考にして頂きたいです。