今まで書いてきたことを一般の次元に拡張してみます。
入力層と出力層のノードの数が、中間層のノードの数がで、であるとします。よって、このオートエンコーダへの入力データの次元数はになります。入力層の番目の入力をで表します。中間層の番目のノード(=ニューロン)の出力をで表します。両者の関係は
- ・・・・(23)
で定義されます。ここでは中間層のニューロンの入力についての重みであり、は中間層のニューロンのしきい値です。次に出力層の番目のニューロンの出力をとします。は中間層の出力を受けて作成されるのであり、両者の関係は
- ・・・・(24)
で定義されます。ここでは出力層のニューロンの入力についての重みであり、は出力層のニューロンのしきい値です。このオートエンコーダの入力層に個の次元の入力データを入力し、出力層からの出力が入力層への入力データと出来るだけ近くなるように、、、、を調整していきます。この「出来るだけ近くなるように」をもう少し厳密に定義しましょう。まず番目の入力データをで表します。そしての番目の成分をで表すことにします。つまりです。同様に番目の出力データをで表します。そしての番目の成分をで表すことにします。出力層からの出力が入力層への入力データと出来るだけ近くなるようにするとは、以下で定義される入力と出力の間の2乗平均誤差を最小にすること、であるとします。
- ・・・・(25)
を最小にするように、、、を調整した結果、中間層の出力が、入力データの主成分分析による次元削減になるかどうかを調べていきます。
ここで、式(23)が主成分分析の結果になりやすいように、以下のような小ワザを使います。
まず、個の入力データの各成分の平均がゼロになるように、入力データの各成分の値からそれぞれの成分の平均を引いたものを、新しい入力データとします。そして式(23)のをとし、式(24)のもとします。
また、
- ・・・・(26)
という制限を課します。すると式(25)のを最小にするために調整するパラメータはのみになり、問題が扱いやすくなります。