인공지능

[논문요약]An Introduction to Autoencoders–Umberto Michelucci(2022)

VirtualJin 2025. 6. 23. 23:44

본 블로그 포스트에서 사용된 표, 이미지 및 기타 관련 자료는 해당 논문에서 발췌한 것입니다. 이 자료들은 논문의 내용을 요약하고 이해를 돕기 위한 참고용으로 제공됩니다. 또한, 해석 과정에서 일부 오류가 있을 수 있으니 원 논문을 참고하여 확인하시기 바랍니다.

 

* 오토(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)

 


[우도, 로그우도, 최대우도]

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) 와 크로스엔트로피 손실의 통합된 관점을 얻을 수 있다.