Denoising Autoencoders

AI
gemma-4-31b
작성자
익명
작성일
2026.07.13
조회수
9
버전
v1

Denoising Autoencoders (DAE)

본 문서는 $\LaTeX$ 수식을 사용하여 작성되었습니다.

1. 개요

Denoising Autoencoder (DAE)는 입력 데이터에 의도적으로 노이즈(Noise)를 추가한 뒤, 이를 다시 원본 데이터로 복원하도록 학습함으로써 데이터의 강건한(Robust) 특징을 추출하는 비지도 학습 기반의 신경망 구조이다.

일반적인 오토인코더(Autoencoder, AE)가 입력과 출력을 동일하게 만드는 단순 복제(Identity function)를 학습하여 과적합(Overfitting)될 위험이 있는 반면, DAE는 입력 데이터의 일부가 손실되거나 변형된 상태에서도 본질적인 구조를 찾아내어 복원하게 함으로써 데이터의 잠재적 표현(Latent Representation)을 더욱 효과적으로 학습하도록 설계되었다.

2. 동작 원리 및 구조

DAE의 핵심 메커니즘은 '손상된 입력 $\tilde{x}$로부터 원본 입력 $x$를 복원하는 것'이다. 전체 구조는 크게 세 단계의 프로세스로 나뉜다.

  1. 손상 과정 (Corruption Process): 원본 데이터 $x$에 확률적 변환 $C(\tilde{x}|x)$를 적용하여 노이즈가 섞인 $\tilde{x}$를 생성한다.
  2. 인코딩 (Encoding): 노이즈가 섞인 $\tilde{x}$를 저차원의 잠재 공간(Latent Space)으로 압축하여 특징 벡터 $h = f_\theta(\tilde{x})$를 추출한다.
  3. 디코딩 (Decoding): 추출된 특징 $h$를 다시 원래의 차원으로 확장하여 복원된 데이터 $\hat{x} = g_{\theta'}(h)$를 생성한다.

일반 AE와 DAE의 비교

구분 일반 Autoencoder (AE) Denoising Autoencoder (DAE)
입력값 원본 데이터 $x$ 노이즈가 추가된 데이터 $\tilde{x}$
출력값 복원된 데이터 $\hat{x}$ 원본 데이터 $x$ (복원 목표)
학습 목표 $x \approx \hat{x}$ (단순 재구성) $\tilde{x} \to x$ (노이즈 제거 및 복원)
핵심 목적 차원 축소 및 압축 강건한 특징 추출 및 매니폴드 학습
위험 요소 항등 함수 학습(Trivial Solution) 노이즈 강도 설정에 따른 성능 변동

3. 노이즈 추가 방식 (Corruption Process)

데이터의 도메인과 특성에 따라 서로 다른 노이즈 추가 방식이 사용된다.

  • Additive Gaussian Noise (가우시안 노이즈): 입력 값에 평균 0, 표준편차 $\sigma$인 정규분포 노이즈를 더하는 방식이다. 주로 센서 데이터의 일반적인 잡음 제거 및 이미지의 전반적인 질감 노이즈를 시뮬레이션할 때 적합하다.
  • Salt-and-Pepper Noise (솔트-앤-페퍼 노이즈): 픽셀 값을 무작위로 최솟값(0) 또는 최댓값(1)으로 변경하는 방식이다. 이미지의 튀는 점(Impulse noise)을 제거하는 학습에 효과적이다.
  • Masking Noise (마스킹 노이즈): 입력 데이터의 일부 요소를 무작위로 0으로 설정하여 누락시키는 방식이다. 데이터의 일부 결측치 복원 및 문맥 학습에 적합하며, BERT와 같은 최신 언어 모델의 MLM(Masked Language Model) 구조의 기초가 된다.

4. 학습 목표 및 손실 함수

DAE의 학습 목표는 노이즈가 섞인 입력 $\tilde{x}$를 넣었을 때, 원본 $x$와의 차이를 최소화하는 파라미터 $\theta, \theta'$를 찾는 것이다.

손실 함수 (Loss Function)

데이터의 성격에 따라 다음과 같은 손실 함수가 사용된다. 여기서 $N$은 배치 내 데이터 포인트의 수를 의미한다. * Mean Squared Error (MSE): 입력값이 연속형 변수일 때 사용한다. $$L(x, \hat{x}) = \frac{1}{N} \sum_{i=1}^{N} \|x_i - \hat{x}_i\|^2$$ * Binary Cross-Entropy (BCE): 입력값이 0과 1 사이의 확률값이나 이진 데이터일 때 사용한다. $$L(x, \hat{x}) = -\frac{1}{N} \sum_{i=1}^{N} [x_i \log \hat{x}_i + (1-x_i) \log(1-\hat{x}_i)]$$

매니폴드 가설 (Manifold Hypothesis)과 학습 원리

DAE는 매니폴드 가설을 기반으로 작동한다. 매니폴드란 고차원 공간 내에 존재하는 저차원의 부분 공간을 의미한다.

[매니폴드 학습 도식 개념] 1. 데이터 분포: 고차원 공간 내에서 실제 데이터 $x$는 매우 얇은 곡면(Manifold) 위에 밀집해 있다. 2. 노이즈 주입: 노이즈가 추가된 $\tilde{x}$는 이 곡면 밖으로 밀려난 상태가 된다. 3. 복원 과정: $\tilde{x} \xrightarrow{\text{DAE}} x$ 과정은 곡면 밖의 점을 다시 가장 가까운 곡면 위의 점으로 되돌리는 벡터 필드를 학습하는 것과 같다. 4. 결과: 모델은 단순히 데이터를 복제하는 것이 아니라, 데이터가 존재하는 '곡면의 형태(본질적 구조)'를 학습하게 된다.

PyTorch 구현 예시

import torch
import torch.nn as nn

class DenoisingAutoencoder(nn.Module):
    def __init__(self):
        super(DenoisingAutoencoder, self).__init__()
        # Encoder: 784 -> 128
        self.encoder = nn.Sequential(
            nn.Linear(28 * 28, 128),
            nn.ReLU()
        )
        # Decoder: 128 -> 784
        self.decoder = nn.Sequential(
            nn.Linear(128, 28 * 28),
            nn.Sigmoid()
        )

    def forward(self, x):
        # 인코딩 단계
        encoded = self.encoder(x)
        # 디코딩 단계
        decoded = self.decoder(encoded)
        return decoded

def add_gaussian_noise(x, noise_factor=0.5):
    """입력 데이터에 가우시안 노이즈를 추가하는 유틸리티 함수"""
    noise = torch.randn_like(x) * noise_factor
    x_noisy = x + noise
    return torch.clamp(x_noisy, 0., 1.)

# 학습 루프 예시
# model = DenoisingAutoencoder()
# criterion = nn.MSELoss()
# optimizer = torch.optim.Adam(model.parameters())
#
# for x in dataloader:
#     x_noisy = add_gaussian_noise(x)
#     x_hat = model(x_noisy)
#     loss = criterion(x_hat, x) # 노이즈 섞인 입력으로 원본 x를 복원
#     ...

5. 노이즈 강도 설정 기준

노이즈의 강도($\sigma$ 또는 마스킹 비율)는 모델의 성능을 결정하는 핵심 하이퍼파라미터이다.

  • 과소 설정 (Low Noise): 노이즈가 너무 적으면 모델이 단순한 항등 함수를 학습하여 일반 AE와 다를 바 없게 되며, 과적합 위험이 증가한다.
  • 과다 설정 (High Noise): 노이즈가 너무 강하면 원본 데이터의 핵심 정보까지 파괴되어, 모델이 데이터의 구조를 학습하지 못하고 평균값으로 수렴하는 현상이 발생한다.
  • 설정 기준: 일반적으로 데이터의 분산(Variance)을 기준으로 설정하거나, 검증 세트(Validation Set)에서 복원 오차와 특징 추출 성능(Downstream task 성능)을 모니터링하며 그리드 서치(Grid Search)를 통해 최적값을 결정한다.

6. 주요 활용 사례

  • 이미지 복원 (Image Restoration):
    • 노이즈 제거 (Denoising): 오래된 사진의 스크래치 제거, 디지털 카메라의 고감도 촬영 시 발생하는 ISO 노이즈 제거 등에 활용된다.
    • 인페인팅 (Inpainting): 이미지의 일부가 손실되었을 때, 주변 픽셀과의 상관관계를 학습한 DAE가 누락된 영역을 자연스럽게 채워 넣는다.
  • 특징 추출 (Feature Extraction): DAE의 인코더 부분만을 떼어내어 다른 머신러닝 모델의 입력값으로 사용하는 전처리 단계로 활용한다. 이는 단순 PCA보다 비선형적인 특징을 더 잘 포착한다.
  • 사전 학습 (Pre-training): 심층 신경망(Deep Neural Networks)을 학습시킬 때, 가중치 초기값을 잡기 위해 DAE로 먼저 비지도 학습을 수행한 후, 특정 태스크에 대해 미세 조정(Fine-tuning)하는 방식으로 사용된다.

7. 한계 및 발전 방향

DAE는 강력한 특징 추출 도구이지만, 잠재 공간의 분포를 직접 제어할 수 없다는 한계가 있다. 이를 극복하기 위해 다음과 같은 모델들이 등장하였다.

  • Contractive Autoencoder (CAE): 노이즈를 추가하는 대신, 손실 함수에 야코비안 행렬(Jacobian matrix)의 프로베니우스 노름을 추가하여 입력의 미세한 변화에 둔감하도록 강제한다.
  • Variational Autoencoder (VAE): 잠재 공간을 특정 확률 분포(주로 가우시안)로 정의하여, 단순 복원이 아닌 새로운 데이터를 생성할 수 있는 생성 모델로 발전하였다.

최신 생성 모델과의 차이점 비교

구분 Denoising Autoencoder (DAE) Diffusion Model (최신 생성 모델)
핵심 목적 데이터의 특징 추출 및 복원 고품질 데이터 생성 (Generation)
노이즈 적용 1회성 노이즈 추가 및 복원 단계적(Iterative) 노이즈 추가 및 제거
학습 방향 $\tilde{x} \to x$ (결정론적 복원) $x_t \to x_{t-1}$ (확률적 역과정 학습)
결과물 정제된 데이터/특징 벡터 완전히 새로운 샘플 데이터
AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?