natural gradient descentは見かけるたびに怪しい理解のままスルーしてたので、ちょっとここら辺でちゃんと確認しておくかと思って↓を読んだ
arxiv.org
natural gradient descentといえば勾配にフィッシャー情報行列の逆行列をかけたものを使って更新してく奴だけど、どうも文献によってフィッシャー情報行列という名前で経験フィッシャーの方を指したりで定義がばらついてるみたいなので、改めて状況設定を定義する
natural gradient descent
データがからi.i.d.に生成されるとし、一方モデルの分布をとする*1とき、フィッシャー情報行列は
最急降下法で通常考える勾配はユークリッド空間での勾配であるのに対し、natural gradientはフィッシャー情報行列によって定義されるリーマン計量からなるリーマン多様体での勾配を指し、目的関数をとすれば
フィッシャー情報行列によるリーマン多様体を考える直感的理解として以下のようなものがある
以上がnatural gradientの概要だが、これだけでは多くの場合natural gradient descentが最急降下法より少ない回数で収束することの直接的な説明にはなっていない
そこでここからは、natural gradient descentがフィッシャー情報行列をヘッセ行列の代替として用いた上での2nd order methodになっていることを確認する
2nd-order optimization
目的関数のを中心とする空間を二次関数で近似することを考える
ここではcurvature matrixであり、が正定値ならば平方完成によってはで最小値を取ることがわかるので、特にnatural gradient descentはとしてフィッシャー情報行列を採用した2nd-order optimizationだと考えることができる
フィッシャー情報行列とヘッセ行列の期待値
入力の分布を学習せず、かつその分布が未知である場合はを経験分布で近似することが考えられ、この場合
一方、モデルとなる分布が決定的関数と分布を用いてと分解できるとし、さらに損失関数がによって定義され*3、目的関数がと定義されているとすると、目的関数のヘッセ行列は
以上より、フィッシャー情報行列とヘッセ行列の違いは、期待値の分布をとするかとするかによるものだと考えることができる
generalized Gauss-Newton (GGN) matrix
上の類似点に加えて、更なるフィッシャー情報行列とヘッセ行列の類似点を見るために、まずはGGN matrixというものの定義を確認する
のに関するヘッセ行列を、のに関するJacobianをと表すことにするとき、GGN matrix はと定義される
目的関数のヘッセ行列は
また、GGN matrixのヘッセ行列に対する利点として、GGN matrixは常に正定値行列であることが挙げられる*4
フィッシャー情報行列とGGN matrix
モデルとなる分布が決定的関数と分布を用いてと分解できるとすると、フィッシャー情報行列は
よってGGN matrixとフィッシャー情報行列の違いはとにあり、損失関数がと表されるときは
以上の話より、パラメータが局所解にある時はヘッセ行列とGGN matrixが近似的に等しくなり、かつ例えばが指数方分布族の時はGGN matrixとフィッシャー情報行列が等しくなるため、natural gradient descentは近似的にヘッセ行列による2nd-order optimizationになっていることがわかる
このほかに、natural gradient descentが2nd-order optimizationと見做せることから、後者において用いられるdampingなどのテクニックを援用する話などがあって、割とためになった気がする