한양과학기술고등학교

에듀테크 프로젝트 대시보드

오토인코더 (Autoencoder)

오토인코더 (Autoencoder)

지금까지 본 모델은 대부분 정답 라벨이 있었다. 오토인코더는 라벨 없이, 입력 자신을 다시 만들어내는 것을 목표로 학습하는 비지도학습 신경망이다. 핵심은 중간에 있는 병목(bottleneck) — 입력보다 훨씬 작은 잠재공간(latent space)을 강제로 통과시키기 때문에, 네트워크는 데이터의 가장 중요한 특징만 압축해서 담는 법을 스스로 익힌다.

1. 인코더 → 잠재공간 → 디코더

입력 x예: 100차원 이미지
──▶
인코더차원을 줄이는 층들
──▶
잠재벡터 z예: 2차원 (병목)
──▶
디코더차원을 늘리는 층들
──▶
복원 x̂입력과 같은 크기

학습 목표(손실함수)는 단순하다 — 재구성 오차 = ‖x − x̂‖² 를 최소화. 정답 라벨이 필요 없는 이유는 입력 자신이 곧 정답이기 때문이다(그래서 "자기지도(self-supervised)"라고도 부른다). 병목이 없다면 그냥 입력을 복사하면 그만이라 아무것도 배우지 못한다 — 병목이 억지로 정보를 요약하게 만드는 핵심 장치다.

2. 곡선 위의 데이터를 1차원으로 압축해보기

아래 점들은 사실 눈에 보이지 않는 곡선(다양체, manifold) 위에 나잡음이 섞여 흩어져 있다. "학습된 인코더"는 각 점을 곡선 위에서 가장 가까운 위치 하나(잠재값 z, 1차원 숫자)로 요약하고, "학습된 디코더"는 그 z 하나만 보고 곡선 위의 점을 다시 그려낸다. 캔버스를 클릭해 점을 놓아보자.

원본(잡음 섞인) 점 복원된 점 x̂ 실제 곡선(다양체)
점을 클릭해보세요.
왼쪽 슬라이더는 인코더를 거치지 않고 디코더에 z값을 직접 넣는 것 — 즉 "새로운 샘플을 생성"하는 것과 같다. 오토인코더의 디코더 부분만 떼어 쓰면 GAN·디퓨전 모델처럼 생성 모델의 뼈대가 된다.

3. 어디에 쓰나

활용아이디어
차원 축소잠재공간 z를 PCA처럼 압축된 특징으로 사용 (비선형이라 PCA보다 표현력이 큼)
이상치 탐지정상 데이터로만 학습하면, 이상 데이터는 재구성 오차가 유독 크게 나온다
디노이징(잡음 제거)일부러 잡음을 섞은 입력을 넣고 깨끗한 원본을 복원하도록 학습
생성 모델의 시작점디코더가 "z → 그럴듯한 데이터"를 만드는 법을 배운다는 점이 VAE·GAN·디퓨전으로 이어짐

4. 핵심 정리

라벨이 필요 없다

입력 자신이 정답 — 비지도(자기지도) 학습.

병목이 핵심

차원을 억지로 줄이지 않으면 그냥 항등함수(복사)를 배워버려 아무 의미가 없다.

손실 = 재구성 오차

‖x − x̂‖² 를 최소화하도록 인코더·디코더를 함께 학습.

디코더 = 생성기 원형

z만 바꿔 넣으면 새 데이터를 만들 수 있어 생성 모델로 이어진다.