본 블로그 포스트에서 사용된 표, 이미지 및 기타 관련 자료는 해당 논문에서 발췌한 것입니다. 이 자료들은 논문의 내용을 요약하고 이해를 돕기 위한 참고용으로 제공됩니다. 또한, 해석 과정에서 일부 오류가 있을 수 있으니 원 논문을 참고하여 확인하시기 바랍니다.
* 오토(auto)’는 ‘자동’(automatic)이 아니라 그리스어 αὐτός(autos)에서 온 ‘스스로(self)’라는 뜻이다. 즉, 오토인코더(autoencoder)는 입력을 “스스로” 재구성(self‐reconstruct)한다는 의미로, 입력 값 자체를 복원하는 과정을 통해 내부 표현을 학습하는 네트워크 구조다.
1. Introduction
신경망(neural networks)은 일반적으로 지도 학습(supervised learning) 환경에서 사용되며, 각 관측치 $x_i$에 대응하는 레이블 또는 기대값 $y_i$를 학습 과정에서 이용한다. 그러나 레이블이 전혀 없는 비지도 환경을 가정하면, 훈련 데이터셋은 오직 $M$개의 입력 관측치 $x_i$만으로 이루어진
$$S_T = \{\,x_i \mid i = 1, \dots, M\},\quad x_i \in \mathbb{R}^n$$
로 표현된다. 이러한 상황에서 룸멜하트·힌튼·윌리엄스(1986) 가 처음 제안한 오토인코더(autoencoder) 는, 입력 $x_i$ 자체를 가능한 한 정확히 재구성(reconstruct)하도록 학습함으로써 “입력 자체의 재현”을 목표로 한다.
1) 재구성 목표
오토인코더는 인코더와 디코더 두 함수 $g$와 $f$를 학습하여
$$\tilde x_i \;=\; f\bigl(g(x_i)\bigr)$$
가 입력 $x_i$와 최대한 유사하도록 만든다. 구체적으로, 평균 재구성 오차
$$\min_{f,g}\;\frac1M\sum_{i=1}^M \Delta\bigl(x_i,\,f(g(x_i))\bigr)$$
를 최소화하는 파라미터를 찾는다. 여기서 $\Delta$는 MSE나 교차 엔트로피 등 적절한 손실 함수(loss function)를 의미한다.
2) 의미 있는 잠재 표현의 학습
단순히 $f\circ g = \mathrm{id}$인 항등 함수를 학습해 입력을 그대로 복사하는 것은 아무런 특징을 추출하지 못하므로, 오토인코더는 다음과 같은 요소를 도입해 의미 있는(latent) 표현을 얻고자 한다.
- 병목층(bottleneck): 인코더 출력 차원 $q$를 입력 차원 $n$보다 작게 설정하여 압축하도록 강제
- 정규화(regularization): 가중치 페널티나 노이즈 주입 등을 통해 과도한 정보 흐름 차단
3) Definition 1
“오토인코더는 ‘입력 관측치를 충분히 잘 재구성함으로써, 데이터의 유용하고 의미 있는 표현을 학습하는 알고리즘’”으로 정의할 수 있다. 이 표현은 이후 분류, 클러스터링, 이상치 탐지 등 다양한 downstream task에 직접 활용된다.
4) 아키텍처 구성 요소
- Encoder $g$: 입력 $x_i\in\mathbb{R}^n$를 잠재 공간 $\mathbb{R}^q$로 사영하는 함수
- Latent representation $h_i$: $h_i = g(x_i)$ 형태의 실수 텐서(tensor)
- Decoder $f$: 이 잠재 표현에서 다시 원래 차원으로 복원하는 함수, $\tilde x_i = f(h_i)$
대부분의 구현에서 $g$와 $f$는 다층 퍼셉트론(MLP)으로 구성되며, TensorFlow·PyTorch의 자동 미분(backpropagation) 기능을 사용해 효율적으로 학습된다.
5) 인간의 학습 비유
손글씨 숫자 예시(MNIST)를 떠올려 보면, 우리는 획의 개수나 각도 등 “본질적 특징”만으로도 숫자를 구별한다. 오토인코더도 이처럼 “픽셀 그레이값 그 자체”가 아니라 “문제 해결에 필요한 핵심 정보”를 잠재 표현으로 학습하도록 설계된다.

1.1 Regularization in autoencoders
오토인코더에 정규화를 간단히 언급하면, 잠재 표현의 희소성(sparsity)을 강제하기 위한 기법이다. 가장 기본적인 방법은 손실 함수에 ℓ₁ 또는 ℓ₂ 페널티 항을 추가하는 것으로, 예를 들어 ℓ₂ 정규화는 다음과 같이 쓸 수 있다:
$$\min_{f,g}\;\mathbb{E}\bigl[\Delta(x_i,\,f(g(x_i)))\bigr]\;+\;\lambda\sum_i\theta_i^2$$
여기서 $\theta_i$는 $f$와 $g$의 파라미터(신경망일 경우 가중치)에 해당하며, 미분이 쉽기 때문에 구현이 간단하다.
또 다른 간단한 트릭으로는 인코더와 디코더의 가중치를 똑같이 묶는(weight tying) 방법이 있는데, 이 역시 잠재 공간의 정보량을 제한해 희소한 표현을 유도한다.이 외에도 다양한 정규화 기법이 있지만, 본문에서는 자세히 다루지 않고, 이후 병목 구조를 갖는 피드포워드 오토인코더를 중심으로 설명한다.
[참조] l2 정규화의 역할과 작동 원리
1) θ의 의미
- θ는 신경망의 가중치(weight)를 나타낸다.
- 학습 과정에서 이 값들이 불필요하게 커지면 과적합(overfitting) 위험이 커진다.
2) 전체 손실 함수
$$L(\theta)= \underbrace{\sum_i (x_i - \hat x_i)^2}_{\text{재구성 오차}}\;+\;\lambda \sum_j \theta_j^2$$
- 첫 항: 입력과 재구성 출력 차이의 제곱합(MSE)
- 둘째 항: 모든 가중치 제곱합에 λ를 곱한 L2 페널티
3) 경사하강법 업데이트 식
$$\theta_j \;\leftarrow\;\theta_j - \eta\;\frac{\partial L(\theta)}{\partial \theta_j}$$
여기서
$$\frac{\partial L}{\partial \theta_j}= \underbrace{\partial_{\theta_j}\sum_i (x_i - \hat x_i)^2}_{\text{재구성 오차 기여}} \;+\;2\lambda\,\theta_j$$
4) 추가되는 하강 압력
$2\lambda\,\theta_j$ 항은 현재 θj 크기에 비례한 양수 값이다.
경사하강법이 θj를 업데이트할 때, 이 값을 더해 “더 많이 빼주는” 역할을 하므로
$$\theta_j \leftarrow \theta_j - \eta\bigl(\text{오차 기여} + 2\lambda\,\theta_j\bigr)$$
결과적으로, 오차를 줄이려는 방향 외에도 “가중치를 0에 가깝게 유지하라”는 추가적인 압력이 지속적으로 작용한다.
5) 정규화의 효과
- 모델이 불필요하게 복잡해지지 않도록 가중치 크기를 억제
- 과적합 방지 및 일반화 성능 향상
이처럼 L2 정규화는 경사하강법 업데이트 식에 “가중치를 줄이라는 힘”을 더해, 학습 과정 전반에 걸쳐 θ를 자연스럽게 작은 값으로 유지하도록 돕는다.
2 Feed Forward Autoencoders
Feed-Forward Autoencoder는 입력층부터 출력층까지 완전연결(dense) 층으로만 구성된 대칭 신경망이다.
- 층 구조: 전체 층 수는 홀수로 설정하는 것이 일반적이며, 입력층(n₁=n)에서 시작해 은닉층을 거치며 뉴런 수가 점진적으로 감소하다가(bottleneck), 중앙층에서 최소 뉴런 수(q<n)에 도달한 뒤 다시 대칭적으로 증가하여 출력층(nₗ=n)에 이른다.
- 병목(bottleneck): 중앙층의 뉴런 수(q)가 입력 차원(n)보다 작기 때문에, 네트워크는 입력의 핵심 특징만 압축하여 학습하도록 강제된다.
- 인코더와 디코더: 입력층에서 중앙층까지의 구조를 인코더(encoder), 중앙층부터 출력층까지의 대칭 구조를 디코더(decoder)라고 부르며, 인코더가 잠재 표현(hᵢ)을 생성하면 디코더가 이를 바탕으로 입력을 재구성한다.
- 학습 목표: 성공적으로 학습된 FFA는 $\tilde x_i ≈ x_i$를 만족하며, 디코더는 오직 q개의 잠재 특징만으로 원본 입력을 정확히 복원할 수 있다.
- 잠재 표현: 중앙층의 출력 $h_i$는 입력 $x_i$의 \\학습된 표현(learned representation)\\으로, 차원 축소된 q차원 공간에서 입력의 본질적 정보를 담고 있다.
이와 같은 구조 덕분에 FFA는 차원 축소, 노이즈 제거, 이상치 탐지 등 다양한 비지도 학습 응용에 효과적으로 활용된다.

2.1 Activation Function of the Output Layer
오토인코더의 출력층 활성화 함수 선택은 재구성 품질과 학습 안정성에 큰 영향을 미친다. 주로 사용되는 두 가지 함수와 사용 조건은 다음과 같다.
2.1.1 ReLU
- 정의 $$\mathrm{ReLU}(x) = \max(0,\,x)$$
- 출력 범위: $[0, \infty)$
- 적용 조건:
- 입력값 $x_i$가 넓은 범위의 양수 실수일 때 적합
- 음수 값이 포함된 데이터에는 부적합(음수 영역이 모두 0으로 잘려버림)
- 장점: 희소 활성화(sparse activation) 유도, 계산 비용이 낮음
- 주의: 입력에 음수 값이 많다면 항등 함수(identity)가 더 나은 선택일 수 있음
2.1.2 Sigmoid
- 정의 $$\sigma(x) = \frac{1}{1 + e^{-x}}$$
- 출력 범위: $(0, 1)$
- 적용 조건:
- 입력값 $x_i$가 이미 $(0,1)$ 범위에 있거나, 정규화(예: 픽셀 값 0–255 → 0–1)된 경우에 사용
- 대표 예: MNIST 이미지의 픽셀 값을 255로 나눈 뒤 재구성
- 장점: 출력값이 확률처럼 해석 가능, 이진 교차 엔트로피 손실과 자연스럽게 결합
- 주의: 입력이 다른 범위를 가질 때는 부적절하며, 출력이 0 근처에서 기울기 소실(vanishing gradient) 발생 가능
두 함수 중 어느 것을 택할지는 입력 데이터의 범위와 모델의 학습 목표에 따라 결정해야 한다. ReLU는 비음수·고정밀 입력에, Sigmoid는 $[0,1]$ 범위로 정규화된 데이터에 특히 효과적이다.
2.2 Loss Function
오토인코더 학습에서 손실 함수는 입력 $x_i$와 재구성된 출력 $\tilde x_i$ 사이의 차이를 측정하며, FFAs에서는
$$\mathbb{E}\bigl[\Delta(x_i,\,f(g(x_i)))\bigr]$$
를 최소화하는 것이 목표다. 대표적으로 두 가지 손실 함수를 사용한다.
2.2.1 평균 제곱 오차 (MSE)
- 정의: $$L_{\mathrm{MSE}}= \frac{1}{M}\sum_{i=1}^M \lVert x_i - \tilde x_i\rVert^2.$$
- 특징:
- 연속값 회귀 문제에 직관적이고, 출력층 활성화나 데이터 정규화 방식에 상관없이 사용 가능
- 최적 해는 $\tilde x_i = x_i$일 때이며, $\displaystyle \frac{\partial L_\mathrm{MSE}}{\partial \tilde x_j} = -\tfrac{2}{M}(x_j - \tilde x_j) = 0$ 에서 증명됨.
- 두 번째 도함수 $\tfrac{\partial^2 L_\mathrm{MSE}}{\partial \tilde x_j^2} = \tfrac{2}{M} > 0$로 최소임이 확인됨.
2.2.2 이진 교차 엔트로피 (BCE)
- 정의: $$L_{\mathrm{BCE}}= -\frac{1}{M}\sum_{i=1}^M\sum_{j=1}^n\bigl[x_{j,i}\log\tilde x_{j,i}+ (1-x_{j,i})\log(1-\tilde x_{j,i})\bigr].$$
- 적용 조건:
- 출력층 활성화가 시그모이드(sigmoid)여야 하고,
- 입력 $x_{j,i}$가 모두 $(0,1)$로 정규화되어야만 사용 가능
- 최적화 해:$\displaystyle \frac{\partial L_{\mathrm{BCE}}}{\partial \tilde x_j} = -\frac{1}{M}\bigl[\tfrac{x_j}{\tilde x_j} - \tfrac{1-x_j}{1-\tilde x_j}\bigr]$를 0으로 두면 $\tilde x_j = x_j$가 되고,이때 두 번째 도함수도 양수여서 최소임이 보장된다.
이처럼 MSE는 범용적으로 사용 가능하고, BCE는 $[0,1]$ 범위 데이터를 다룰 때 출력 확률 해석과 자연스럽게 결합된다는 장점이 있다.
[참조]크로스엔트로피는 두 분포 $P$와 $Q$ 사이의 “차이”를 측정하는 지표로, 다음과 같이 정의된다:
$$H(P, Q) \;=\; -\sum_x P(x)\,\log Q(x).$$
$P$로부터 실제 데이터가 나올 확률을 기준으로, 이를 $Q$로 얼마나 “효율적으로” 설명할 수 있는지(코드화할 때 필요한 평균 비트 수)를 재는 것이며, $Q$가 $P$에 가까울수록 $H(P,Q)$는 작아지며, 최소값은 $Q=P$일 때 달성된다.
* KL 다이버전스와의 관계:
$$H(P, Q) = H(P) + D_{\mathrm{KL}}(P\parallel Q),$$
여기서 $H(P)$는 $P$의 엔트로피, $D_{\mathrm{KL}}(P\parallel Q)$는 $P$와 $Q$ 사이의 비대칭적 거리(쿨백-라이블러 다이버전스)이다.
* 분포 동일성 검정으로서의 역할:
* 크로스엔트로피 자체만으로 “두 분포가 같냐?”를 엄밀히 판정하는 통계 검정(statistical test)은 아니지만,
* $Q$를 바꿔 가며 $H(P,Q)$를 계산해 보면, 가장 작은 값을 주는 $Q$가 $P$에 가장 가까운 모델이라고 할 수 있다.
* 즉, 분포를 학습할 때 “실제 분포 $P$를 잘 모방하는 $Q$”를 찾는 방법으로 크로스엔트로피를 최소화한다.
정리하자면, 크로스엔트로피는 “두 분포가 얼마나 비슷한지(혹은 $Q$가 $P$를 얼마나 잘 설명하는지)”를 수치화하는 손실 함수로 쓰인다. 분포가 완전히 같으면 이 값이 $P$의 엔트로피 $H(P)$와 동일해지고, 그렇지 않으면 더 커진다.
[참조] 베르누이 분포에서 크로스엔트로피 손실까지의 흐름
1) 베르누이 분포 (Bernoulli Distribution)
단일 시행(trial)에서 성공(1) 또는 실패(0)만 나오는 이산확률분포 성공 확률을 $p$, 실패 확률을 $1-p$라 할 때, 확률질량함수(PMF):
$$P(X=1)=p,\quad P(X=0)=1-p.$$
2) 전체 우도 (Likelihood)
관측 데이터 $\{x_1,\dots,x_N\}$가 주어졌을 때, 파라미터 $\theta$ 하에서 이들이 관측될 확률의 곱으로 정의
$$L(\theta)=P(x_1,\dots,x_N\mid\theta)=\prod_{i=1}^N P(x_i\mid\theta).$$
베르누이 시행을 가정하고, 모델 예측 확률을 $\tilde x_i$라 하면
$$L(\theta)=\prod_{i=1}^N \tilde x_i^{\,x_i}\,(1-\tilde x_i)^{\,1-x_i}.$$
3) 로그 우도 (Log-Likelihood)
곱셈 형태의 우도를 그대로 최적화하면 언더플로우가 발생하기 쉬우므로, 로그를 취해 덧셈 형태로 변환
$$\ell(\theta)=\log L(\theta)=\sum_{i=1}^N \Bigl[x_i\log\tilde x_i + (1-x_i)\log(1-\tilde x_i)\Bigr].$$
4) 크로스엔트로피 (Cross-Entropy)
정보이론 관점에서, 실제 분포 $P$와 모델 분포 $Q$ 간의 차이를 측정하는 지표
$$H(P,Q)= -\sum_x P(x)\,\log Q(x).$$
이진 분류의 경우 실제 레이블 $y\in\{0,1\}$, 예측 확률 $\hat y = Q(y=1)$라 하면
$$H_{\mathrm{BCE}}(y,\hat y)= -\bigl[y\log\hat y + (1-y)\log(1-\hat y)\bigr].$$
5) Binary Cross-Entropy Loss
음의 로그 우도(negative log-likelihood)와 동일하며, 평균을 취해 손실 함수로 사용
$$\mathcal{L}_{\mathrm{BCE}}= -\frac{1}{N}\sum_{i=1}^N\Bigl[x_i\log\tilde x_i + (1-x_i)\log(1-\tilde x_i)\Bigr].$$
6) 크로스엔트로피 손실의 장점
- 최대우도추정(MLE) 관점: 우도 최대화 ⇔ 음의 로그 우도(크로스엔트로피) 최소화
- 수치 안정성: 로그 변환으로 언더플로우 회피
- 비선형 페널티: 틀린데 확신(confidence)이 높을수록 손실이 크게 증가
이처럼 베르누이 분포에서 시작해 전체 우도, 로그 우도, 정보이론적 크로스엔트로피 정의, 그리고 이를 손실 함수로 사용하기까지의 수학적·통계적 근거가 일관되게 연결된다.
[추가] 크로스엔트로피 손실 및 미분 흐름 정리
1)손실함수 정의
$$L_{\mathrm{CE}}= -\frac{1}{M}\sum_{i=1}^{M}\sum_{j=1}^{n}\Bigl[x_{j,i}\,\ln\tilde x_{j,i}+(1-x_{j,i})\,\ln(1-\tilde x_{j,i})\Bigr].$$
여기서 $x_{j,i}$는 $i$번째 샘플의 $j$번째 실제 레이블, $\tilde x_{j,i}$는 모델의 예측 확률이다.
한 샘플·한 클래스 항목에 해당하는 기여도는
$$\ell_{j,i}(\tilde x)= -\bigl[x_{j,i}\ln\tilde x + (1-x_{j,i})\ln(1-\tilde x)\bigr].$$
2) 출력 $\tilde x$에 대한 도함수
$$\frac{\partial \ell_{j,i}}{\partial \tilde x}= -\Bigl[\frac{x_{j,i}}{\tilde x}- \frac{1-x_{j,i}}{1-\tilde x}\Bigr].$$
전체 손실 $L_{\mathrm{CE}}$에 대해는 앞에 $-\tfrac1M$ 계수가 추가되어
$$\frac{\partial L_{\mathrm{CE}}}{\partial \tilde x_{j,i}}= -\frac{1}{M}\Bigl[\frac{x_{j,i}}{\tilde x_{j,i}}- \frac{1-x_{j,i}}{1-\tilde x_{j,i}}\Bigr].$$
3) 대수적 정리 (분수 통분)
$$\frac{x}{\tilde x} - \frac{1-x}{1-\tilde x}= \frac{x(1-\tilde x) - \tilde x(1-x)}{\tilde x\,(1-\tilde x)}= \frac{x - \tilde x}{\tilde x\,(1-\tilde x)}.$$
따라서
$$\boxed{\frac{\partial L_{\mathrm{CE}}}{\partial \tilde x_{j,i}}= -\frac{1}{M}\,\frac{x_{j,i}-\tilde x_{j,i}}{\tilde x_{j,i}\,(1-\tilde x_{j,i})}= \frac{1}{M}\,\frac{\tilde x_{j,i}-x_{j,i}}{\tilde x_{j,i}\,(1-\tilde x_{j,i})}}.$$
즉 $x_{j,i} = \hat{x_{j,i}}$ 일 때 최소값을 가진다.
4) 시그모이드 출력과 결합 시
$\tilde x_{j,i} = \sigma(z_{j,i})$일 때
$\tfrac{\partial\tilde x_{j,i}}{\partial z_{j,i}} = \tilde x_{j,i}(1-\tilde x_{j,i})$.
연쇄법칙 적용하면
$$\frac{\partial L_{\mathrm{CE}}}{\partial z_{j,i}}= \frac{\partial L_{\mathrm{CE}}}{\partial \tilde x_{j,i}}\cdot \frac{\partial \tilde x_{j,i}}{\partial z_{j,i}}= \frac{1}{M}\,(\tilde x_{j,i}-x_{j,i}).$$
즉, 시그모이드와 결합하면 “예측 확률과 실제 레이블의 차이”만 남아 계산이 매우 간단해진다.
2.3 Reconstruction Error
정의:
오토인코더가 입력 $x_i$를 얼마나 잘 재구성했는지를 평가하는 지표로, 가장 흔히 평균 제곱 오차(MSE) 를 사용한다:
$$\mathrm{RE}= \frac{1}{M}\sum_{i=1}^M \bigl\lVert x_i - \tilde x_i\bigr\rVert^2.$$
직관적 해석:
작을수록: 오토인코더가 입력을 충실히 복원함
클수록: 복원이 부정확해 “이상치”나 잘못 학습된 부분일 가능성
응용 예시:이상치 탐지(anomaly detection)에서는, 재구성 오차가 높은 샘플을 자동으로 이상치로 분류
2.4 손글씨 숫자 재구성 예시 (MNIST 활용)
1) 데이터 준비
MNIST: 0–9 손글씨 숫자 70 000장 (학습 60 000장 + 테스트 10 000장)
각 이미지는 28×28 픽셀 → 784차원 벡터로 입력
2) 모델 설정
아키텍처: (784 → q → 784), 3층 FFA
옵티마이저: Adam
손실 함수: Binary Cross-Entropy (입력값을 $[0,1]$로 정규화)
학습 조건: 30 에폭, 배치 크기 256
3) 병목 크기에 따른 결과
q = 16
6차원 잠재 공간만으로도 숫자 모양을 거의 구별 가능
재구성 오차 작음(그림 4)

q = 64
재구성 품질 더욱 향상(그림 5)
세부 디테일 복원이 더 선명

q = 8
과도한 압축으로 일부 숫자 오인식 (예: 4→9, 2→3) 발생(그림 6)

4) 차원 축소 효과
FFA를 통해 784차원에서 $q\ll784$로 압축해도 원본 정보를 상당 부분 보존
q값이 너무 작으면 복원 성능이 급격히 저하되므로, 적절한 병목 크기 선택이 중요
5) 비교 시각화
그림 7: q = 8, 16, 64 각각의 재구성 결과를 나란히 비교
그림 8: 손실 함수로 BCE vs. MSE 선택 시 재구성 품질 차이
이 예시를 통해 Feed-Forward Autoencoder가 입력 차원을 효과적으로 축소(dimensionality reduction)하면서도, 적절한 병목 크기(q)를 설정하면 실제 데이터의 주요 특징을 잘 보존함을 확인할 수 있다.

3 Autoencoders Applications
3.1 차원 축소 (Dimensionality Reduction)
- 병목층 활용:인코더가 학습된 후, 입력 차원 $n$보다 작은 $q$차원 잠재 벡터 $g(x_i)\in\mathbb{R}^q$를 생성하여 자연스럽게 차원 축소 수행
- 실용적 장점:
- 미니배치 학습: 대규모 데이터도 배치 단위로 처리 가능
- 비선형 변환: PCA의 선형 투사와 달리, 복잡한 비선형 구조도 학습
- 메모리·연산 절감: PCA는 공분산 행렬 계산에 $O(d^2)$ 메모리를 요구해 대규모 데이터에 비실용적인 반면, 오토인코더는 미니배치로 확장성 우수
- PCA와의 등가성 조건:
- 인코더·디코더가 모두 선형 함수
- 손실 함수로 MSE 사용
- 입력을 평균 0·분산 1로 정규화
→ 이론적으로는 PCA와 동일한 결과를 낼 수 있음
3.2 Classification
3.2.1 잠재 특징 기반 분류
원본 특성 : (MNIST 784차원) + k-NN(7) → 정확도 96.4%, 연산 시간 약 1 000 s
잠재 특성(latency feature): (q=8) + k-NN → 정확도 89.0%, 연산 시간 약 1.1 s
→ 1 000배 속도 향상에 불과 7.4% 정확도 손실
Fashion-MNIST 예시
원본 784차원 → 85.4% 정확도, 1 040 s
q=8 → 79.9% 정확도, 1.2 s
q=16 → 83.6% 정확도, 3.0 s
→ 330배 연산 시간 절감에 1.8% 정확도 손실
> 팁: 잠재 특징을 이용한 분류는 연산 효율을 수백~천 배로 높이면서 정확도 저하를 최소화하는 효과적인 기법
3.2.2 차원의 저주 (Curse of Dimensionality)
고차원 희소성 문제:
단위 초입방체 $[0,1]^d$에 무작위로 $m$개 점을 뿌릴 때, 한 점이라도 포함하는 최소 변 길이 $l \approx m^{-1/d}$
예: $m=1000$일 때 $d=2\to l\approx0.03$, $d=100\to l\approx0.99$
고차원일수록 공간이 극도로 희소해져 많은 데이터가 필요 → 실무에서 불가능
미니 초입방체 내 평균 점 개수:
$\displaystyle m\,10^{-d}$ → $d$가 크면 사실상 0개
해결책: 오토인코더로 차원 축소 후 분류 수행하면 희소성 문제 완화
오토인코더를 활용하면 비선형 차원 축소, 연산 효율 극대화, 차원의 저주 완화라는 세 마리 토끼를 동시에 잡을 수 있다.
3.3 Anomaly Detection
원리
정상 데이터만으로 학습된 오토인코더는 학습에 사용되지 않은 ‘이질적’ 샘플(이상치)을 잘 재구성하지 못해, 이들의 재구성 오차(RE)가 크게 나타남
절차
1) 모든(또는 이상치가 거의 없다고 알려진) 데이터로 오토인코더 학습
2) 관심 있는 데이터셋(이상치 포함) 각 샘플에 대해 RE 계산
3) RE 값을 내림차순 정렬
4) 상위 RE 샘플을 이상치로 분류
예시
MNIST(손글씨 숫자)로 학습한 FFA(784 → 64 → 784)에 패션 MNIST의 신발 이미지를 섞어 테스트
신발 샘플의 RE = 0.062로 전체(10 001개) 중 가장 큼 → 자동 탐지 성공
두 번째 RE = 0.022인 희미한 숫자 샘플도 잠재적 이상치로 간주 가능
유의사항
- 이상치는 전체 데이터의 극히 일부여야 학습에 영향이 없음
- 과도한 학습(identity mapping) 방지를 위해 정규화 필수
- 단일 모델 결과는 불안정(overfitting)할 수 있어, 앙상블(여러 모델의 평균 또는 최대 RE 사용) 기법 권장
3.4 Denoising Autoencoder
목적
입력에 인위적으로 추가된 잡음(예: 가우시안 노이즈)을 제거하고 원본 신호를 복원
학습 방식
1) 원본 이미지에 랜덤 노이즈 추가 → “입력”
2) 원본 이미지를 “정답”으로 하여 오토인코더 학습
예시: MNIST
28×28 픽셀 손글씨 숫자에 픽셀 단위 가우시안 잡음 추가
FFA(784 → 32 → 784)로 학습 후, 노이즈 이미지를 입력하면 오른쪽 열과 같이 깨끗한 이미지를 출력
효과: 노이즈가 전혀 없던 원본과 유사하게 복원하며, 이미지 전처리·전송 지연 완화 등 실제 응용에서 유용
이상치 탐지와 잡음 제거는 오토인코더의 대표적 비지도 응용으로, 재구성 오차와 역전파 학습을 단순히 이용해 실전 문제를 효과적으로 해결할 수 있다.
4 Beyond FFA – Convolutional Autoencoders
개념
전통적인 Feed-Forward Autoencoder 대신, 합성곱(convolutional) 층을 사용해 이미지의 공간적 구조를 보존하며 특징을 추출·재구성
구조 예시
입력:
$28\times28$ 텐서
인코더:
1. $26\times26\times64$ (커널 3×3, 패딩 없이)
2. $24\times24\times32$
3. $26\times26\times64$ (업샘플링)
디코더:
1. $28\times28\times1$ (업샘플링 후 출력)
비교:
FFA(784→32→784) 대비, 동일 조건(에폭 수·배치 크기 등)에서 CA가 더 선명한 이미지 복원 성능을 보임 (그림 13)
유연성:
- 특징 생성층(feature layer)은 합성곱 또는 완전연결층 중 자유롭게 선택 가능
- 문제 특성(이미지 여부, 잠재 표현 차원 등)에 따라 아키텍처 실험 필요
5 코드 예제 (Code Examples)
→ 논문에 기재된 내용이며, 확인하지 않음
제공 위치:
[https://adl.toelt.ai](https://adl.toelt.ai)
포함 내용:
- Feed-Forward Autoencoder 구현
- Convolutional Autoencoder 구현
- 이상치 탐지 예제 코드
- 잡음 제거(auto-denoising) 예제 코드
6 추가 참고 문헌 (Further Readings)
- Stanford UFLDL Tutorial: Autoencoders
http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/ - Keras 블로그: Building Autoencoders in Keras
https://blog.keras.io/building-autoencoders-in-keras.html](https://blog.keras.io/building-autoencoders-in-keras.html - TensorFlow 튜토리얼: Introduction to Autoencoders
https://www.tensorflow.org/tutorials/generative/autoencoder - Bank et al., “Autoencoders”
arXiv:2003.05991 (2020) - R. Grosse 강의 슬라이드: Autoencoders
http://www.cs.toronto.edu/~rgrosse/courses/csc321_2017/slides/lec20.pdf
[우도, 로그우도, 최대우도]
1. 우도(Likelihood) 정의
* 관측치 $x_1,\dots,x_N$가 주어졌을 때, 파라미터 $\theta$ 하에서 이들이 나올 “가능도”
$$
L(\theta)
= P(x_1,\dots,x_N\mid\theta)
= \prod_{i=1}^N P(x_i\mid\theta).
$$
* 연속분포는 확률밀도 $f(x_i;\theta)$, 이산분포는 확률질량 $p(x_i;\theta)$ 사용
* 다차원 벡터 $x_i$도 하나의 관측 단위로 취급 가능
2. 로그 우도(Log-Likelihood) 및 최대우도추정(MLE)
* 곱셈형 우도는 언더플로우 위험 → 로그 취해 덧셈으로 전환
$$
\ell(\theta)=\log L(\theta)
=\sum_{i=1}^N\log P(x_i\mid\theta).
$$
* 최대우도추정(MLE):
$$
\hat\theta_{\rm MLE}
= \arg\max_{\theta} L(\theta)
= \arg\max_{\theta} \ell(\theta).
$$
* 예: 정규분포 $\mathcal{N}(\mu,\sigma^2)$ 모델에서
* 우도 곡선 $L(\mu)$는 $\mu$축상에 종모양
* MLE $\hat\mu=\bar x$ (표본평균)
3. 카이제곱 검정과 분포 적합도 검정
* 카이제곱 검정: 범주형 데이터(또는 구간화된 연속형) 관측 빈도가 특정 이론 분포와 일치하는지 검정
* 연속형 적합도 검정: KS 검정, Anderson–Darling 검정 등
* 파라미터 가설 검정: t-검정, z-검정, F-검정 등
* 요점 정리
1. 우도는 “파라미터가 주어졌을 때 관측들이 나올 확률(밀도)의 곱”
2. 로그 우도로 변환해 최적화 → 최대우도추정(MLE)
3. 정규분포 가정 시 우도 곡선이 종모양, MLE가 표본평균
4. 분포 적합도 검정에는 카이제곱, KS, AD 등을 사용
5. 파라미터 값 검정에는 t-검정·z-검정 등 사용
정보이론부터 크로스 엔트로피까지 핵심 개념 정리
1) 자기 정보량(Self-Information)
* 사건 $x$의 발생 확률을 $P(x)$라 할 때, 해당 사건이 주는 정보량
$$I(x) = -\log P(x)$$
* 특징: $P(x)$가 작을수록 $I(x)$가 커짐 → 드문 사건이 더 큰 정보량을 가짐
2) 엔트로피(Entropy)
* 확률변수 $X$의 불확실성을 나타내는 지표로, 정보량의 기댓값
$$H(X) = \mathbb{E}[I(X)] = -\sum_x P(x)\,\log P(x)$$
* 해석: 분포가 고르게 퍼질수록(불확실할수록) $H(X)$가 커짐
3. 교차 엔트로피(Cross-Entropy)
* 두 분포 $P$ (실제/샘플 분포)와 $Q$ (모델 분포) 간 평균 정보량
$$H(P,Q) = -\sum_x P(x)\,\log Q(x)$$
* 역할: 모델 $Q$가 실제 분포 $P$를 설명할 때 필요한 평균 비트 수(혹은 nats)
* 손실 함수 적용: 이항 분류의 Binary Cross-Entropy
4. KL 다이버전스(Kullback–Leibler Divergence)
* 두 분포 간 순수한 불일치 정도
$$D_{\mathrm{KL}}(P\parallel Q)= \sum_x P(x)\,\log\frac{P(x)}{Q(x)}= H(P,Q) - H(P)$$
* 해석: 교차 엔트로피에서 $P$의 엔트로피(상수)를 뺀 값 → 모델과의 “거리”
5. 우도(Likelihood) & 최대우도추정(MLE) 와의 연결
* 우도: 관측치 $x_1,\dots,x_N$가 파라미터 $\theta$ 하에서 나올 확률(밀도) 곱
$$L(\theta)= \prod_{i=1}^N P(x_i\mid\theta).$$
* 로그 우도: 곱셈형 우도를 덧셈으로 바꾸어 안정화
$$\ell(\theta) = \sum_{i=1}^N \log P(x_i\mid\theta).$$
* MLE: $\ell(\theta)$를 최대화하는 $\theta$ 선택
* 정규분포 평균 예시: 우도 곡선이 종모양, 최댓값이 표본평균
* 크로스엔트로피 손실과 MLE
$$-\frac1N\sum_{i=1}^N\log Q(x_i;\theta)= H(\hat P,\,Q(\cdot;\theta))\quad\Longleftrightarrow\quad\text{MLE} \;\equiv\;\min D_{\mathrm{KL}}(\hat P\parallel Q).$$
핵심 흐름
- 1. 정보량 → 엔트로피: 개별 사건의 정보 → 분포 전체의 불확실성
- 2. 엔트로피 → 교차 엔트로피: 실제 분포 vs. 모델 분포 간 평균 정보량
- 3. 교차 엔트로피 → KL 다이버전스: 순수한 분포 간 거리 측정
- 4. 우도 → 로그 우도 → MLE: 데이터 생성 확률을 최대화하는 파라미터 추정
- 5. MLE와 KL 최소화 동치: 모델 학습 시 크로스 엔트로피 손실 최소화는 KL 다이버전스 최소화이자 우도 최대화
이로써 정보이론의 기본 개념에서 출발해, 머신러닝 모델 학습의 핵심인 우도 최대화(MLE) 와 크로스엔트로피 손실의 통합된 관점을 얻을 수 있다.