AutoEncoder란?
- 입력 데이터를 압축(encoding)하고 다시 복원(decoding)하는 인공신경망
- 주로 feature extraction, dimensionality reduction, anomaly detection에 사용됨
목적
- 입력 데이터의 중요한 특징을 유지하면서 압축
- 불필요한 정보를 제거하고 데이터의 본질적인 패턴을 학습
- 차원 축소된 데이터를 활용하여 클러스터링, 이상 탐지 등에 활용
구조
입력 -> 인코더(Encoder) -> 잠재 공간(Latent Space) -> 디코더(Decoder) -> 출력
- 인코더: 입력 데이터를 압축하여 저차원 표현(latent space)으로 변환
- 잠재 공간: 압축된 데이터가 저장되는 공간
- 디코더: 잠재 공간 데이터를 다시 원래 데이터로 복원
오토인코더의 주요 특징
비지도 학습
- 오토인코더는 출력(target) 없이 입력 데이터 자체를 학습하는 비지도 학습 모델
- 입력과 출력이 동일하도록 하면서 중요한 특징을 추출하는 방식
차원 축소
- PCA 같은 전통적인 차원 축소 기법보다 비선형적인 구조까지 학습 가능
- 데이터의 중요한 정보만 남기고 압축하여 고차원 데이터를 효과적으로 표현할 수 있음
노이즈 제거
- 입력 데이터를 깨끗하게 복원하는 과정에서 노이즈를 제거하는 효과가 있음
- CT, MRI 등에서 노이즈를 줄이거나 손상된 데이터를 복원하는데 사용 가능함
이상 탐지
- 정상 데이터만 학습한 후 새로운 데이터를 입력했을 때 reconstruction error를 계산하여 이상 탐지 가능
오토인코더의 동작 방식
- 입력(X) -> 신경망을 통해 압축(encoding)
- 압축된 표현(latent space) -> 신경망을 통해 복원(decoding)
- 출력(X')이 입력 (X)와 최대한 비슷해지도록 학습
손실함수
- reconstruction loss를 최소화하는 방향으로 학습됨
- 보통 MSE(Mean Squared Error) 또는 BCE(Binary Cross Entropy) 사용
오토인코더의 종류
Stacked AE

- 가장 기본적인 AE 구조의 경우 input layer, hidden layer, output layer로 이루어짐
- 기본적인 AE 구조에서 hidden layer의 개수를 늘린 것
- Deep AE 라고도 불림
Sparse AE

- 기본적인 AE 구조와는 다르게 hidden layer 내의 노드 수가 많아짐
- AE를 사용할 때, 원본 데이터의 특징을 압축하다 보면 다른 데이터가 들어와도 training set과 비슷하게 만들어버리는 오버피팅의 문제점이 존재함
- 이를 방지하기 위해 Sparse AE를 사용함 (오버피팅을 줄이는 효과)
Denoising AE

- 입력층에서 hidden layer로 갈 때, 노이즈를 추가한 것
Variational AE

- 입력 데이터(X)를 잘 설명하는 특징을 추출하여 latent vector
z에 담고 latent vector z를 통해 X와 유사하지만 새로운 데이터를 생성하는 것을 목표로 함
- 각 특징은 가우시안 분포를 따른다고 가정하고 평균과 분산값을 나타내줌
VAE의 손실함수
- VAE의 손실함수는 두 부분으로 구성되어 있음
- 첫 번째로 AE가 입력을 재구성하도록 만드는 일반적인 reconstruction loss
- 두 번째로 가우시안 분포에서 샘플링된 것 같은 코딩을 가지도록 인코더를 제어하는 latent loss