みんなのAI
機械学習AI論文
読み込み中…

学ぶ

🏅マイ実績

Ch.19

オートエンコーダ:圧縮してから復元

オートエンコーダ: 圧縮と復元

付箋メモに要約してから本文に戻すイメージ。

入力 xxx を エンコーダ が潜在 ボトルネック zzz に圧縮し、デコーダ が x^\hat{x}x^ に展開します。再構成損失が小さいほど原入力に近づきます。

入力 xエンコーダボトルネック zデコーダ損失

学習の流れ

  1. ① 入力: xxx を与える。
  2. ② エンコーダ: x→zx\to zx→z。
  3. ③ ボトルネック: 小さな zzz。
  4. ④ デコーダ: z→x^z\to \hat{x}z→x^。
  5. ⑤ 損失: xxx と x^\hat{x}x^ の差を最小化。
高次元データ xxx を エンコーダ が重要な要約コード zzz(潜在表現)に符号化し、デコーダ が同じ形の x^\hat{x}x^ に復号する対称ネットワークが オートエンコーダ です。学習目標は入力 xxx と出力 x^\hat{x}x^ の差を減らす 再構成損失 の最小化。ラベルなしでデータ自体を教師にする典型的な 教師なし学習 です。
狭いボトルネックで次元削減・異常検知の基礎を固め、次章の VAE(変分オートエンコーダ) へつなげます。

数式の読み方(オートエンコーダ)

1. エンコーダ・デコーダの一行
z=fθ(x)z=f_\theta(x)z=fθ​(x), x^=gϕ(z)\hat{x}=g_\phi(z)x^=gϕ​(z)。損失例: L=∥x−x^∥22\mathcal{L}=\|x-\hat{x}\|_2^2L=∥x−x^∥22​。
- zzz: ボトルネックの潜在コード
- x^\hat{x}x^: 復元出力
xエンコーダzボトルネックデコーダx̂x と x̂ の比較・再構成損失
要点: xxx を狭い zzz に圧縮し x^\hat{x}x^ に展開し、xxx と比較します。
2. ボトルネックと圧縮
入力次元 ddd, 潜在 k≪dk\ll dk≪d のとき圧縮比はおおよそ k/dk/dk/d。
- kkk が小さいほど 強い圧縮(情報損失の可能性)
- kkk が大きいほど 復元は楽だが要約は弱くなりうる
3. 線形 AE と PCA
活性化が線形で MSE なら、条件によって主成分方向と結びつく直感があります。
- 非線形ならより豊かな表現が可能
4. 実務のヒント
スケールを揃え、ボトルネックと深さを調整し、必要ならノイズを入れる DAE で頑健な表現を学びます。

オートエンコーダ: 圧縮して復元する

1. 対称構造: エンコーダとデコーダ
概念: 入力 xxx を エンコーダ fθf_\thetafθ​ が z=fθ(x)z=f_\theta(x)z=fθ​(x) に変換し、デコーダ gϕg_\phigϕ​ が x^=gϕ(z)\hat{x}=g_\phi(z)x^=gϕ​(z) に戻します。zzz は入力よりはるかに小さい ボトルネック に閉じ込められます。
直感: 目撃者が似顔絵師に「目が垂れ気味、鼻が高い…」と少数の特徴(zzz)だけ伝え、師が元の顔に近い絵を描くのと同じです。
2. 損失: どれだけ復元できたか
概念: 実数連続値にはピクセル単位の MSE 1d∑i(xi−x^i)2\frac{1}{d}\sum_i (x_i-\hat{x}_i)^2d1​∑i​(xi​−x^i​)2 が一般的です。[0,1][0,1][0,1] に正規化したグレースケールには BCE も使われます。
直感: 原画とコピーを重ねてピクセルずれを採点するイメージです。
3. なぜボトルネックか
zzz が入力と同じ大きさなら、ネットワークは 恒等写像(コピー) だけ学ぶかもしれません。狭いボトルネックが、データの本質的パターンだけを zzz に押し込みます。
実務(異常検知): 正常データだけで復元を学習すると、未知の異常では再構成誤差が跳ね上がります。
4. デノイジング AE (DAE)
応用: ノイズやマスクを付けた入力からきれいな元へ戻すよう学習し、頑健な特徴を得ます。
5. 潜在空間(Latent space)とは?
概念: 潜在空間は、ピクセルや生の特徴ではなく、エンコーダが作った コード zzz が置かれる低次元ベクトル空間のことです。各サンプルは空間内の 1点(座標ベクトル)に対応し、学習が進むと似た入力は近く、異なるパターンは離れるといった 幾何学的な構造が現れやすくなります。
オートエンコーダでは: ボトルネック次元 kkk が潜在空間の 次元です。デコーダ gϕg_\phigϕ​ はこの空間の点を、元の次元の x^\hat{x}x^ に 展開します。(次章の VAE ではこの空間に 確率分布を載せてサンプリング・生成へ広げます。)
6. PCA(主成分分析)とは?
概念: PCA は、高次元データのうち 分散が最も大きく広がる方向を順に求め、互いに直交する 主成分軸 を作る 線形 の次元削減です。先頭の少数軸へ射影すると、できるだけ分散を残した低次元の要約が得られます(捨てた軸の分散ぶん情報が減ります)。
オートエンコーダとの比較: PCA は 線形変換のみ。活性化を入れた AE は 非線形でより複雑な構造を学べます。(線形 AE + MSE は条件によって PCA と結びつく直感があります。)

重要性

PCAを超える次元削減
上で PCA の説明のとおり、PCA は 線形な圧縮に近いです。一方オートエンコーダは非線形活性化で、高次元データを 2〜3 次元により柔軟に圧縮・可視化できます。
教師なしの特徴抽出
ラベル付けは高コスト。AEはデータだけで zzz を得られ、学習済みエンコーダは分類器への転移学習に使えます。
生成AIへの入口
圧縮だけでなく、潜在 zzz を動かして新しい顔や画像を想像する発想が VAE や GAN へつながります。

使い方

ステップ1: 正規化・スケーリング
画素は多く 000〜255255255 なので Min–Max で [0,1][0,1][0,1] にするか、チャネルごとに標準化します。RGB のチャネル順 (R,G,B)(R,G,B)(R,G,B) を固定し、バッチごとに同じ前処理をかけます。スケールが揃わないと MSE の勾配スケールが変わり、収束が遅くなったり不安定になります。
ステップ2: 構造・ボトルネック kkk・損失
画像は局所を保つ CAE が一般的で、ベクトル・系列は 1D 畳み込みや全結合の積み上げも選びます。kkk が小さいほど圧縮は強いが細部が失われ、大きいほど復元は楽だが要約は弱くなります—検証損失で kkk を選びます。実数出力なら MSE、[0,1][0,1][0,1] に近いグレースケールなら BCE も候補です。
ステップ3: 学習ループ・出力・安定化
ミニバッチごとに x^\hat{x}x^ を計算して MSE/BCE を逆伝播。[0,1][0,1][0,1] ならデコーダ最終層に シグモイド。Adam、学習率スケジュール、必要なら 勾配クリッピング。学習/検証を分け、過学習なら 早期終了・ドロップアウト/重み減衰・Denoising AE を検討します。
ステップ4: 評価・可視化・下流
損失曲線だけでなく x^\hat{x}x^ を目で確認します。潜在 zzz を 2D に射影(例: t-SNE)して構造や外れ値を見ます。異常検知は正常のみ学習し、検証で再構成誤差の閾値を決めます。学習済みエンコーダを固定/微調整して少数ラベル分類やクラスタリングに繋げます。
用途の早見表
  • 目的異常検知
  • 要点正常だけで学習 → 再構成誤差が大きいサンプルを疑う
  • 目的ノイズ除去
  • 要点DAE: 破損入力 → きれいな元
  • 目的次元削減・可視化
  • 要点狭い zzz や zzz の 2D 射影
  • 目的表現の事前学習
  • 要点エンコーダを分類器の前段などに転移
目的要点
異常検知正常だけで学習 → 再構成誤差が大きいサンプルを疑う
ノイズ除去DAE: 破損入力 → きれいな元
次元削減・可視化狭い zzz や zzz の 2D 射影
表現の事前学習エンコーダを分類器の前段などに転移

まとめ

一行要約: エンコーダが狭いボトルネック zzz に圧縮し、デコーダが元の形 x^\hat{x}x^ に復元する。再構成誤差を小さくしてデータの核となる特徴を学ぶ。
つながり: Dense と CNN を組み合わせてブロックを組めます。複雑なデータほど畳み込み AE が有利です。
次章: 潜在 zzz に確率分布を載せて生成する VAE へ。

解法のヒント

オートエンコーダの問題は「z=fθ(x)z=f_\theta(x)z=fθ​(x), x^=gϕ(z)\hat{x}=g_\phi(z)x^=gϕ​(z)」の一行と「再構成損失で xxx と x^\hat{x}x^ を近づける」という目的をセットで思い出すと解きやすいです。ボトルネックでは通常 k≪dk \ll dk≪d、全結合 d→kd \to kd→k 一層のパラメータはおおよそ 重み d×kd \times kd×k + バイアス kkk。画像を展開した長さは 縦×横(RGBなら ×3)、パッチ数(CLS なし)は (H/p)×(W/p)(H/p)\times(W/p)(H/p)×(W/p) です(ViT のパッチ・格子、Chapter 05 の復習と同じ考え方)。
異常検知は正常データだけで再構成を学習し、再構成誤差が大きいサンプルを疑う図式です。Denoising AE は壊れた入力をきれいな元に戻し、頑健な特徴を学びます。実数ピクセルには MSE、[0,1][0,1][0,1] 灰度などには BCE がよく使われます。k/dk/dk/d やパーセントは分子分母の対応を確認します。
畳み込みオートエンコーダは Chapter 12 の CNN で局所・空間構造を保ったまま積み上げるイメージです。kkk が大きすぎると恒等写像(入力のコピー)に近づきやすく、問題では kkk を小さくすると何が強まるかなど圧縮と表現力のトレードオフを問うことがあります。
次章の VAE はこの潜在 zzzに確率分布を載せて生成へ進みます。「確率的な潜在・サンプリング」なら VAE を連想してください。