[Home] AI로 돌아가기 Wikipedia - Autoencoder
Introduction to Autoencoders
위키독스의 Autoencoder 개요

Autoencoder [YouTube]
(AE, 오토인코더)


01. 개요


1) 오토인코더와 딥러닝의 시작


2) 왜 오토(Auto)인가?


3) 오토인코더의 원래 목적은?


02. 구성

오토인코더(Autoencoder)입력 데이터를 저차원 표현으로 압축(인코딩)하고, 다시 이를 원래 차원으로 복원(디코딩)하는 방식의 신경망 구조이다. 이 과정에서 데이터의 중요한 특징만을 남기고 불필요한 요소를 제거한다.


1) 인코더 (Encoder)


2) 잠재 공간 (Latent Space)

잠재 공간(Latent Space)은 오토인코더의 중간 표현으로, 입력 데이터의 압축된 형태를 나타낸다.


...
MNIST 데이터셋의 숫자 탐지를 위한 오토인코더의 잠재 공간 비교
출처: DOI:10.48550/arXiv.2004.07543
  1. Trained Autoencoder (왼쪽):
    일반적인 오토인코더가 생성한 잠재 공간이다. 숫자별로 군집(Cluster)을 이루고 있지만, 경계면에서 서로 겹치거나 섞여 있는 모습이 관찰된다.
  2. Classifier / ReGene Classifier (오른쪽):
    분류기(Classifier) 기반의 오토인코더가 생성한 잠재 공간이다. 왼쪽보다 숫자들 사이의 거리가 더 명확하고 깔끔하게 분리되어 있다. 이는 해당 모델이 각 숫자의 고유한 특징을 더 잘 구별하여 압축했음을 의미한다.

3) 디코더 (Decoder)


03. 수학적 정의

오토인코더는 재구성 오차(Reconstruction Error)를 최소화하도록 학습된다. 이는 입력 데이터와 복원된 데이터 사이의 차이를 측정하는 것이다.


04. 학습 과정

오토인코더는 입력과 출력의 차이를 최소화하는 방향으로 학습되며, 일반적으로 다음과 같은 손실 함수를 사용한다.


1) 손실 함수


2) 최적화


05. 오토인코더 변형


1) 언더컴플리트 오토인코더 (Undercomplete Autoencoder)


2) 희소 오토인코더 (Sparse Autoencoder)


3) 디노이징 오토인코더 (Denoising Autoencoder, DAE)


4) 수축 오토인코더 (Contractive Autoencoder, CAE)


5) 변분 오토인코더 (Variational Autoencoder, VAE)


06. 활용

1) 차원 축소 (Dimensionality Reduction)

...
PCA와 오토인코더의 비교
출처: Nugroho, Herminarto. (2020). Fully Convolutional Variational Autoencoder For Feature Extraction Of Fire Detection System. Jurnal Ilmu Komputer dan Informasi. 13. 10.21609/jiki.v13i1.761.

2) 이상 탐지 (Anomaly Detection)

...
오토인코더 기반 이상 탐지/분할의 개념
출처: Baur, Christoph & Denner, Stefan & Wiestler, Benedikt & Albarqouni, Shadi & Navab, Nassir. (2020). Autoencoders for Unsupervised Anomaly Segmentation in Brain MR Images: A Comparative Study. 10.48550/arXiv.2004.03271.

3) 노이즈 제거 (Denoising)

...
오토인코더를 사용한 이미지 노이즈 제거
출처: https://levelup.gitconnected.com/unsupervised-deep-learning-using-auto-encoders-4813bec64d

4) 생성 모델 (Generative Model)

...
변분 오토인코더를 사용하여 이미지를 생성하는 방법
출처: https://theaisummer.com/Autoencoder/
  1. 인코더 (Inference):
    입력 이미지($x$)를 받아 잠재 공간의 평균($\mu$)과 표준편차($\sigma$)를 추론한다. 이는 $q_\phi(z|x)$라는 확률 모델로 표현된다.
  2. 잠재 분포 (Latent Distribution):
    중앙의 정규분포 그래프는 압축된 정보가 가우시안 분포 형태를 띠고 있음을 보여준다. 이 분포 덕분에 모델은 학습하지 않은 데이터 사이의 값도 자연스럽게 생성할 수 있는 능력을 갖추게 된다.
  3. 디코더 (Generative):
    잠재 분포에서 샘플링된 변수($z$)를 사용하여 원래의 이미지를 복원($\tilde{x}$)한다. 이는 $p_\theta(x|z)$ 모델에 해당한다.

07. 구현 예시

1) MNIST 데이터셋의 숫자 탐지

Autoencoder 개념도
MNIST 데이터셋의 숫자 탐지를 위한 오토인코더 구조
출처: 위키독스 (wikidocs.net)
  1. 인코더(Encoder): 데이터 압축
    그림 왼쪽의 파란색 영역으로, 입력 이미지의 특징을 추출하여 작은 차원으로 압축하는 과정
  2. 잠재 공간(Latent Space)
    그림 중앙의 가장 좁은 부분
  3. 디코더(Decoder): 데이터 복원
    그림 오른쪽의 녹색 영역으로, 압축된 정보로부터 원래 이미지로 다시 재구성하는 과정

2) 이미지 복원

Autoencoder 구조 개념도
Figure 10: Face completion by filling in the missing pixels (source: SymmFCNet)
출처: https://pyimagesearch.com/
  1. 이미지의 구성:
  2. 오토인코더: 작동 원리