에듀테크 프로젝트 대시보드
오토인코더 (Autoencoder)
지금까지 본 모델은 대부분 정답 라벨이 있었다. 오토인코더는 라벨 없이,
입력 자신을 다시 만들어내는 것을 목표로 학습하는 비지도학습 신경망이다.
핵심은 중간에 있는 병목(bottleneck) — 입력보다 훨씬 작은 잠재공간(latent space)을
강제로 통과시키기 때문에, 네트워크는 데이터의 가장 중요한 특징만 압축해서 담는 법을 스스로 익힌다.
학습 목표(손실함수)는 단순하다 — 재구성 오차 = ‖x − x̂‖² 를 최소화. 정답 라벨이
필요 없는 이유는 입력 자신이 곧 정답이기 때문이다(그래서 "자기지도(self-supervised)"라고도 부른다).
병목이 없다면 그냥 입력을 복사하면 그만이라 아무것도 배우지 못한다 — 병목이 억지로
정보를 요약하게 만드는 핵심 장치다.
아래 점들은 사실 눈에 보이지 않는 곡선(다양체, manifold) 위에 나잡음이 섞여 흩어져 있다.
"학습된 인코더"는 각 점을 곡선 위에서 가장 가까운 위치 하나(잠재값 z, 1차원 숫자)로 요약하고,
"학습된 디코더"는 그 z 하나만 보고 곡선 위의 점을 다시 그려낸다.
캔버스를 클릭해 점을 놓아보자.
| 활용 | 아이디어 |
|---|---|
| 차원 축소 | 잠재공간 z를 PCA처럼 압축된 특징으로 사용 (비선형이라 PCA보다 표현력이 큼) |
| 이상치 탐지 | 정상 데이터로만 학습하면, 이상 데이터는 재구성 오차가 유독 크게 나온다 |
| 디노이징(잡음 제거) | 일부러 잡음을 섞은 입력을 넣고 깨끗한 원본을 복원하도록 학습 |
| 생성 모델의 시작점 | 디코더가 "z → 그럴듯한 데이터"를 만드는 법을 배운다는 점이 VAE·GAN·디퓨전으로 이어짐 |
입력 자신이 정답 — 비지도(자기지도) 학습.
차원을 억지로 줄이지 않으면 그냥 항등함수(복사)를 배워버려 아무 의미가 없다.
‖x − x̂‖² 를 최소화하도록 인코더·디코더를 함께 학습.
z만 바꿔 넣으면 새 데이터를 만들 수 있어 생성 모델로 이어진다.