Skip to main content

Denoising Autoencoder

Denoising Autoencoder は、意図的に noise を加えた input から、元の clean な input を復元するように training される Autoencoder です。

Denoising Autoencoder architecture

画像出典: Lilian Weng, “From Autoencoder to Beta-VAE”。Corrupted input から clean input を復元する構造が示されています。

目的​

通常の Autoencoder は、xx から xx を復元します。一方で、Denoising Autoencoder は、corrupted input x~\tilde{x} から元の input xx を復元します。

x~∼qD(x~∣x)\tilde{x} \sim q_D(\tilde{x} \mid x) z=fϕ(x~),x^=gθ(z)z = f_\phi(\tilde{x}), \qquad \hat{x} = g_\theta(z)

Training objective は、x^\hat{x} と clean input xx の差を小さくすることです。

L(x,x^)=∥x−x^∥2\mathcal{L}(x, \hat{x}) = \|x - \hat{x}\|^2

なぜ役に立つのか​

Denoising Autoencoder は、input の表面的な noise ではなく、data の本質的な構造を latent representation に捉えるように促されます。Noise を除去するには、単純な identity mapping ではなく、data manifold の構造を学習する必要があるためです。

Stacked Denoising Autoencoder​

Denoising Autoencoder は、複数の layer を積み重ねることで、より深い representation を学習できます。

Stacked Denoising Autoencoder

画像出典: Lilian Weng, “From Autoencoder to Beta-VAE”。Denoising Autoencoder を積み重ねて、より深い representation を学習する構成です。

数式で見る denoising objective​

Denoising Autoencoder は、clean input xx に noise を加えた corrupted input x~\tilde{x} から、元の xx を復元するように学習します。

x~∼q(x~∣x)\tilde{x}\sim q(\tilde{x}\mid x) LDAE=Eq(x~∣x)[∥x−Dθ(Eϕ(x~))∥2]\mathcal{L}_{\mathrm{DAE}}=\mathbb{E}_{q(\tilde{x}\mid x)}\left[\|x-D_\theta(E_\phi(\tilde{x}))\|^2\right]

この式の気持ちは、「入力をそのまま写すのではなく、壊れた入力から意味的に正しい構造を復元するように学ぶ」というものです。Denoising objective は、score matching や diffusion model の denoising loss とも直感的につながります。

関連ページ​