Trust Region Policy Optimizationを自然勾配の観点から見た時に出てくるフィッシャー情報行列について。
色々と調べたので、まとめてみようと思う。
速習 強化学習 ―基礎理論とアルゴリズム の105ページに言及されている内容についてです。
結論
実はこれ計量テンソルっぽい。
#TRPO
通常の方策勾配法は以下の最適化問題を解くことになる。ただし、目的関数は$\rho _{w}$とする。
maxmize $$\rho _{w+\Delta w} - \rho _{w} \approx \nabla _{w}\rho^{T} _{w}{\Delta w}$$
subject to $$\Delta w^{T}\Delta w \leq \varepsilon$$
一方、TRPOの肝はKLダイバージェンス$D_{kL}$を用いて、信頼領域を定義し、これを制約条件とした最適化問題の解をもたらす$\Delta w$を使ってパラメータを更新する。
maxmize $$ \nabla _{w}\rho^{T} _{w}{\Delta w}$$
subject to $$E\left[ D_{KL}\left( \pi _w\right | \pi _{w+\Delta w}) \right]\leq \varepsilon$$
ただし、ここで期待値をとる分布は方策$\pi _w$によって定まる状態に関する定常分布である。
この記事(かなり詳しく導出しています)を参考にすると、KLダイバージェンスの2次近似がフィッシャー情報行列を使って表せそう(参考にしている記事ではKLダイバージェンスを対称化して、距離の公理を満たすようにしている。TRPOは普通のKLダイバージェンスを使っているので、どうやってやるのかはちょっと分からない)。そうすると、TRPOの制約条件は
subject to $$\frac{1}{2}\Delta w^{T} F _w\Delta w \leq \varepsilon$$
と近似可能。
計量テンソル
この本を参考にしている。
内積 $u\cdot v$ は任意のベクトル$u$, $v$に対して実数値を対応させる双線形関数と考えることができる。いま、$u$, $v$を反変ベクトルと考えて、内積を
$$ g\left( u,v\right) = u\cdot v$$
と表せば、$g$は2階の共変テンソルと考えることができる。
2つの反変ベクトル$\boldsymbol{u}=\left( u^{i}\right)$, $\boldsymbol{v}=\left( v^{i}\right)$に対して、
$$ g\left( u,v\right) = g_{i,j}u^{i}v^{j}$$
となる。ただし、ここでは1つの項の中で上側と下側とに1度ずつ現れているような指標について規約を適用する(これもアインシュタインの総和の規約と言っていいのかな?)。ちなみに、テンソルの成分を扱う時に反変テンソルは上付き文字、共変テンソルは下付き文字で表すのが慣習。
ここで注意すべきなのは内積を計算する時には2階の共変テンソル$g$の成分を知る必要があるということ。
まとめ
計量テンソルの式を見れば分かる通り、フィッシャー情報行列って計量テンソルなんです。え、じゃあどの空間で計量を計算してるのかというと、今回のケースだと確率的方策の空間の計量を使って、計算してます。自然勾配を使うと、通常のユークリッド空間で計算された勾配よりもうまくいくことを示す様々な研究が存在していて、ユークリッド空間の計量を使った勾配がパラメータ空間の大部分で非常に小さくなってしまったりする一方で、自然勾配は有効だったりする場合があります。つまり、この話はTRPOがうまくいく理由付けの1つと言えます。