AutoEncoder는 입력 데이터를 압축했다가 복원하는 과정을 통해
특징을 학습하는 비지도 학습모델을 의미한다. AutoEncoder는 잡음 제거,
이상 감지, 이미지 생성, 텍스트 번역 등 다양한 분야에서 활용된다.
01. Autoencoder 기본 개념
- Encoder : 입력 데이터를 저차원 잠재 공간(latent space)으로 압축
- Latent space : 정보가 압축된 표현(코드)
- Decoder : 잠재 공간에서 원래 입력으로 복원

02. 수식으로 정리
(1) Encoder
z=fθ(x)
- fθ(x) : Encoder 함수, 파라미터 θ
- 보통 선형 + 활성화 함수 형태(예시: Linear, ReLU)
(2) Decoder
x^=gϕ(z)
- gθ : Decoder함수, 파라미터 ϕ
(3) 손실 함수(Loss function)
- 목표는 복원된 x^가 입력 x와 최대한 유사하도록 학습하는 것
보통 MSE(Mean Squared Error) 사용
L(x,x^)=∥x−x^∥2=∥x−gϕ(fθ(x))∥2
03. 구조적 특징
- 병목 구조 : 중간 차원을 의도적으로 축소해 중요한 정보만 통과시킴
- 비지도학습 : 라벨 없이 입력 데이터만으로 학습
- 재구성기반 : 입력 복원을 통해 특징을 학습
- 잡음 제거 : Denoising Autoencoder는 일부러 노이즈를 주고 원래를 복원
04. Autoencoder 종류
- Vanilla Autoencoder : 기본 구조
- Denoising Autoencoder : 노이즈 추가 후 복원
- Sparse Autoencoder : 활성 노드 수에 제약 (희소성)
- Variational Autoencoder (VAE) : 잠재공간에 확률 분포 적용
- Convolutional Autoencoder : CNN 기반, 이미지 입력에 적합
05. Pytorch 구조 예시
import torch
import torch.nn as nn
import torch.optim as optim
class Autoencoder(nn.Module):
def __init__(self):
super(Autoencoder, self).__init__()
self.encoder = nn.Sequential(
nn.Linear(784, 128),
nn.ReLU(),
nn.Linear(128, 64)
)
self.decoder = nn.Sequential(
nn.Linear(64, 128),
nn.ReLU(),
nn.Linear(128, 784),
nn.Sigmoid()
)
def forward(self, x):
z = self.encoder(x)
out = self.decoder(z)
return out
model = Autoencoder()
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=1e-3)
x = torch.rand((16, 784))
output = model(x)
loss = criterion(output, x)
loss.backward()
optimizer.step()
06. 읽으면 좋을 자료 리스트
회사 다니면서 여기까지 챙겨볼 여유가 있을지는 모르겠지만, 일단 나중에 보기 위해서라도 리스트를 남겨두었다. 사실 이것 말고도 arxiv에서
Autoencoder 관련 논문은 넘치지만, 여기 나열한 것 읽고 나서 생각하자.
- Auto-Encoding Variational Bayes (Kingma & Welling, 2013)
- VAE의 원조로, KL divergence와 재구성 항으로 모델링하는 기본 구조 제시
- Adversarial Autoencoders (Makhzani et al., 2015)
- GAN 기반의 확률적 AE: prior와 hidden code의 posterior를 정렬하여 생성 모델로 활용
- Scheduled Denoising Autoencoders (Geras & Sutton, 2014)
- 노이즈 스케줄링을 통해 coarse→fine representation 학습 강화
- Autoencoders (Dor Bank et al., 2020)
- 다양한 AE 변종 정리, 애플리케이션 및 use-case 총망라
- Recent Advances in Autoencoder-Based Representation Learning (Tschannen et al., 2018)
- disentanglement, structured prior 등 representation 학습 관점 리뷰
- On a Mechanism Framework of Autoencoders (Changcun Huang, 2022)
- encoder의 bijective map, disentanglement, 일반화 메커니즘 이론적 분석
- An Introduction to Autoencoders (Umberto Michelucci, 2022)
- 수학 & 개념 중심 정리 논문, MSE, output activation 함수, 응용 포함