まだ粘る。GW終わるまでには何らかのアウトプットがほしい。
指数移動平均のαを増やすと性能(誤差、エントロピー)が悪化する傾向あり。特に0.5以上(瞬間値の重みを大きく)すると、悪化が顕著。
分散行列の逆行列を見てみると、非常に大きい値を取っていることが分かる。これは特異にかなり近いのではないかと予測している。
また、指数移動平均で求めた分散行列の対角要素は経験分散に漸近するはずで、対角要素は時間遅延が加わった自分自身との2乗和で、全てが同じ値になることを期待していたが、なっていなかった。これは、指数移動平均は入力の順序により最終結果が異なるという状態が現れていると思う。(例:1,1,1,0 という系列と 0,1,1,1 という系列では指数移動平均の結果が異なる。)
学習率の設定も音源依存でだいぶ変わってしまう印象。ボイスでは 0.0001 が、ピアノでは 0.00001、50Hzサイン波では発散した(恐らくこれはほぼ定常な信号になっているからと思われる。定常な信号では全ての分散と共分散が同じ値になって、行列が特異になる。正則化(分散行列に定数を掛けた単位行列を加算)を行ったら安定した...)
行き詰まりを感じ、適応的自然勾配の更新式を逆行列補題(Woodburyの恒等式)から導いていた。
そのときに、論文では勾配ベクトルの分散行列を求めていることに気づく。そして自分が間違っている事がわかった。 情報行列は勾配ベクトルの分散行列だった。(データベクトルの分散行列ではない...) いままで入力データの分散行列を計算していたので、これは明確な誤り。
フィッシャー情報行列はスコア関数(対数尤度関数の勾配)の分散行列で定義される。よって、情報行列とデータの分散行列は一般に一致しない。
もう一つ自然勾配とフィッシャー情報行列に関する有益な情報源あり:
今一度Jupyterから出戻りしてみる。 思ったけど、今考えているのは絶対値誤差最小化のためにSigned-LMSだけど、データ側を符号とするLMSや、Sign-SignLMSの解析もありじゃないかと思ってきた。データ側を符号とするLMSは何を最小化しているのか?などが気になる。