オートエンコーダ(潜在空間への圧縮と復元)
入力を 2 次元の潜在ベクトル z にエンコードし、そこからデコードで復元する。潜在点を直接ドラッグすると復元画像が連続的に変化(モーフィング)します。/ deep-learning
入力を選ぶ(エンコーダが潜在点 z に圧縮します)
またはエンコードせず潜在軸を直接動かす(=デコーダだけを使う)
-1.20
1.00
潜在 z = (z₁, z₂)
—
圧縮率(入力次元 → 潜在次元)
—
復元誤差 ‖x − x̂‖(再構成損失)
—
最も近いプロトタイプ
—
潜在空間 z(点をドラッグ ✋)
学習データの埋め込み(=エンコード結果)
現在の z(ドラッグ可)
エンコード → 潜在 z → デコードによる復元
入力 x(選択中)
復元 x̂ = decode(z)
潜在ベクトル z(2 次元のボトルネック)
オートエンコーダは、入力 x をエンコーダ z = f(x) で低次元の潜在ベクトルへ圧縮し、デコーダ x̂ = g(z) で元に戻すニューラルネットです。学習は復元が元に近づくよう
途中のボトルネック(ここでは 2 次元)が情報の通り道で、ここに「意味のある軸」が自然に生まれます。PCA と違い、デコーダ側=生成・復元に焦点を当て、潜在点を直接動かして画像がどう作られるかを見るのがこの POC です。
‖x − g(f(x))‖² を最小化するだけ(教師ラベル不要の自己教師あり)。途中のボトルネック(ここでは 2 次元)が情報の通り道で、ここに「意味のある軸」が自然に生まれます。PCA と違い、デコーダ側=生成・復元に焦点を当て、潜在点を直接動かして画像がどう作られるかを見るのがこの POC です。
いま何が起きている?
ここがポイント
- エンコード→デコードの往復 ── x → z → x̂。狭いボトルネック z を通すことで、特徴だけが残り余分が削ぎ落とされる。
- 潜在空間は連続 ── 学習点の「間」を動かすと、復元画像がなめらかに別の形へモーフィングする(補間・生成)。
- 潜在軸が意味を持つ ── ここでは z₁ が線の太さ、z₂ が傾きに対応。軸を動かす=属性を操作する、になる。
- 復元誤差が学習の損失 ── ラベルなしで ‖x − x̂‖² を下げるだけ。離れた所ほど復元はぼやけ誤差が増える。