logo

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

オートエンコーダー

定義

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

説明

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

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

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