勾配法
損失関数
学習パラメータを持つ関数に関して、損失関数を考え、関数の性能を損失のについての期待値
で測る。さしあたり、の確率分布は不明なので、期待値を取る代わりに、観測されるデータの個々の損失の平均値
で代用します。これは真の分布の代わりに経験分布によって代用しているということになります。
を訓練誤差と呼び、これを最小化するを獲得することを学習と呼びます。
本来は真の損失関数を最小化したいのに、代わりに訓練誤差を使う(すなわち真の分布の代わりに経験分布を使う)ため、通常は過学習に陥ります。逆に経験分布が十分に真の分布を表していれば過学習の可能性をぐっと減らせるわけです(これは事実上、対象とするあらゆるデータを十分に数多く所持し、全て網羅しているということ)。
勾配学習
でを更新していくのが勾配学習です。この時、経験損失を算出する際に、手持ちの全てのデータを用いるのがバッチ学習、ランダムに幾つかのデータを用いて算出するのが確率勾配学習になります。ランダムに幾つかのデータを算出すれば、それは本来の損失から経験損失が離れてしまいがちです。
従って時として、真の損失を上昇させる方向に学習が進む可能性もありますが、手元のデータが十分にあれば平均的には減少させる方向に進むことが期待できます。
このランダムな振る舞いのお陰で、勾配が小さくなるような場所や、あるいは局所解を脱出してくれることも期待できます。
自然勾配法
最急降下法
関数を考えた時、その微分は値を上昇させる方向を向いています。テイラー展開から
であり、を方向に取れば
で明らかです。しかし、増加させる方向であるのは良いとして、最も増加させる方向であるかどうかが問題になります。これがをユークリッド空間であると考えた場合には、確かに微分した方向が直接、最も増加させる方向になり、
この負の方向へ更新することにより、最急降下法
が獲得できます。
リーマン空間
ユークリッド空間ではとの内積は
となっていますが、
ベクトルの長さは自分自身との内積を取ることで獲得でき、距離なる概念は、空間に対して内積を定義することで得られるとも考えることができます。
そこで、
という内積を考えます。ここでを単位行列としたケースに相当するのがユークリッド空間です。として単位行列でないものを考えることにすれば、ユークリッド空間ではない空間(リーマン空間)を考えることができます。(は正定対称行列)
勾配法を再び
は通常ユークリッド空間ではないため、微分を求めた方向は必ずしも最急上昇方向(あるいは微分の負が最急降下方向)とはなっていません。ここで、空間を決定づけるを残した状態で、最急上昇方向を探ってみます。
をある方向を用いてに変更してみます(ここでは非常に小さな数)。
はどの方向を向いた時にも一定の大きさにして置かなければならないため制約条件として
を一定という条件の元、を方向へ変化させた際の損失関数の変化量を測ります。
この変化量が最大となるが見つかれば、その負方向に進むことで最急降下法を構築することができます。
ラグランジュの未定乗数法によって
が求める方程式であり、を行列として
となり、この解は
と求まります。
自然勾配法
従って、最急降下方向はで取ればよく、最急降下法は
で導入されます。
これを自然勾配法と呼び、最急降下法の一般的な形式となります。
この時、が単位行列であれば、やはり、普通の更新式
が最急降下学習則を与えることになります(自体もの関数。すなわち空間上の場所ごとに空間の曲がり具合が違うということ)。
自然勾配法とその亜種
の推定を行う適応的自然勾配法
自然勾配法は、曲がった空間を座標系に取ったスカラー関数に対する最急降下を与えるため、一般的に普通の勾配法に比べて性能が良いとされます。しかし、を求め、更にその逆行列を計算するのは、実用上中々手に負えないため、の方を直接求めることにします。その1つの解法が以下の適応的自然勾配法です。
ここではも未知数であるため、これも学習の中に組み込んで、適応的に最急降下方向を獲得するように学習します。
参照:Singularities Affect Dynamics of Learning in Neuromanifolods
https://bsi-ni.brain.riken.jp/modules/xoonips/download.php/280.pdf?file_id=274
を推定しない擬似的自然勾配法
自然勾配法の狙いは、曲がった空間での最急降下法を与えることでした。そのためには曲がった空間を規定するが必要となりましたが、これは一般に求めることが難しいため、これを諦めるという方法があります。
そうではなく、逆に曲がったパラメータ空間の方が真っ直ぐに伸びてしまう(つまりが単位行列になる)ような変換をニューラルネットワークに挿入することで、普通の勾配法が自然勾配法に近づくように仕立てあげる方法があります。
それはニューラルネットワークのとある層について
のようにアフィン変換→非線形変換という変換を行っている場合にバッチ正規化を非線形変換の前後に挟み込み
とすると良いそうです。(ただし仮定をおいた理論上の話。詳しい議論は以下の参照を)
参照:自然勾配近似法を起点としたバッチ正規化の数理的理解
https://kaigi.org/jsai/webprogram/2017/pdf/1151.pdf