- 機械学習
VCAとLS(3) 小さなことからコツコツと。そして Least Squares 再び。
VCAとLS(3) 小さなことからコツコツと。そして Least Squares 再び。
一つ前の投稿では、関数を多項式のクラスに限定することにより、(字面上は)簡単にVCが見つかることを示しました。
観測行列に多項式を追加していき、追加の際にその多項式が、与えられたデータを変換したベクトルをうまく使うことで、観測行列の正規直交性を保つことができるため、追加した多項式がVCかどうかは観測行列の対応する特異値が 0 かどうかでチェックできます。
ここでは、「ではどのような順序で多項式を追加すべきか」について考えてみます。
多項式は高次になればなるほど表現能力が上がりますが、それはオーバーフィッティングしやすいということと同義ですので、低次から進めて行くのが常識的ではないかと思います。
まずは「定数(つまり0次)」から始め、続いて「1次多項式」までの H を作ります。
その後は、2次多項式は 1次多項式 x 1次多項式 + 1次多項式 + 1 と表現できることから、1次多項式 x 1次多項式の組合せで多項式集合を作り、直交化し、null spaceかどうかを判断し、3次多項式については 2次 と 1次から、、、D次については D-1次 と 1次から…… と進めていきます。
すると、各多項式(データ X に関して互いに正規直交)は、実は多項式を和と積でつないだネットワーク構造で表現できることがわかります(当たり前ですね)。
VCA は、このネットワーク構造を効率良く学習できる手法である、と言えるのではないかな、と思います。
LS との比較を最後にすると、VCA ではネットワークは高次に行くにしたがってその深さはどんどん増して行きますが、LS はどんなに高次になろうとネットワークは1層のみです。あたり前と言えばあたり前ですがw
次回は学習の終了条件(の曖昧さ)と誤差に対するロバスト性、、、、、、、なんて言えるといいなあなんて思ってます。