logo

オートエンコーダー 📂機械学習

オートエンコーダー

定義

2つの自然数 $m \ll n$に対して、関数 $f : \mathbb{R}^{n} \to \mathbb{R}^{m}$を符号器encoderとする。関数 $g : \mathbb{R}^{m} \to \mathbb{R}^{n}$を復号器decoderとする。このとき、もし $h = g \circ f$が $h(x) = x$を満たすならば、オートエンコーダautoencoder, 自動符号器とする。

説明

符号器は関数の値の次元が変数の次元より小さいため、データを圧縮し暗号化する役割を果たすと考えられる。一方、復号器は圧縮・暗号化されたデータを再び復元する役割を果たす。もし $x = h(x)$を満たす $h = g \circ f$を見つけられれば、$f$は $x$を小さい次元でうまく圧縮し、$g$は圧縮されたデータを元の次元に復元することに成功したことになる。オートエンコーダが紹介されて間もないころ、これは次元削減といったデータの圧縮の観点から主に使用されていたが、最近2024-12-09では生成モデルでも多く活用されている。[ ^1]

オートエンコーダがデータの圧縮の観点で有用であるためには、$m$が $n$より十分に小さくなければならない。その場合、$x = h(x)$を正確に満たす $h$を見つけることは不可能であり、できる限り $x \approx h(x)$を満たす $h$を見つけることが目標となる。(もちろん数学的には $m = n - 1$だけでも $x = h(x)$を満たす $h$を見つけることはできない。

U-netは画像に対するオートエンコーダにスキップ接続を追加した構造である。