Deep Learning

Autoencoders

뉴욕킴 2024. 5. 25. 12:38

Undercomplete Autoencoder

**Undercomplete Autoencoder(언더컴플리트 오토인코더)**는 입력 데이터의 중요한 특징을 추출하기 위해 인코더 부분에서 차원을 축소하는 오토인코더입니다. 이 모델의 목표는 입력 데이터(𝑥)를 더 작은 은닉 표현(ℎ)으로 인코딩한 후, 이를 디코더를 통해 다시 원래의 입력 데이터(𝑥′)로 복원하는 것입니다.

  • 목적: 입력 데이터의 중요한 특징을 압축하여 표현하는 데 있습니다. 이 과정에서 중요한 정보는 유지하면서 불필요한 정보는 제거됩니다.
  • 구조: 인코더와 디코더로 구성되며, 인코더는 입력 데이터를 더 작은 차원으로 압축하고, 디코더는 이를 다시 복원합니다.

Usage of Autoencoders

오토인코더의 사용 사례는 다양하며, 특히 다음 두 가지가 중요합니다:

  1. Feature Extraction (특징 추출)
    • 설명: 오토인코더는 입력 데이터를 인코딩하여 중요한 특징을 추출할 수 있습니다. 인코더를 통해 생성된 코드 벡터(ℎ)는 입력 데이터의 중요한 정보를 압축하여 표현한 것입니다.
    • 이점: 차원 축소, 데이터 시각화, 그리고 다른 머신러닝 모델의 입력으로 사용될 수 있는 중요한 특징을 제공함으로써 성능을 향상시킬 수 있습니다.
  2. Novelty Detection (이상 탐지)
    • 설명: 오토인코더는 학습되지 않은 패턴을 탐지하는 데 사용할 수 있습니다. 학습된 오토인코더는 정상 패턴을 학습하고, 테스트 데이터에서 이상 패턴(즉, 학습되지 않은 새로운 패턴)이 나타날 때 이를 감지할 수 있습니다.
    • 방법: 입력 데이터를 인코더를 통해 압축하고, 디코더를 통해 복원된 데이터와 원래 데이터를 비교하여 복원 오류가 큰 경우 이를 이상으로 간주합니다.
    • 응용 분야: 제조 공정에서의 결함 탐지, 금융 사기 탐지, 네트워크 보안 등 다양한 분야에서 활용될 수 있습니다.

이 두 가지 주요 사용 사례를 통해 오토인코더는 데이터의 중요한 특징을 추출하고, 새로운 또는 이상한 패턴을 탐지하는 데 효과적으로 사용될 수 있습니다.

 

 

Stacked (Deep) Autoencoders

Stacked Autoencoders는 여러 개의 오토인코더를 층층이 쌓아서 깊은 신경망을 구성하는 방법입니다. 이는 일반적인 심층 전방향 신경망(deep feedforward neural networks)과 유사한 이점을 가집니다.

주요 개념

  1. 입력 및 출력 레이어:
    • 입력 레이어: 𝑥1,𝑥2,𝑥3,𝑥4,𝑥5
    • 출력 레이어: 𝑥^1,𝑥^2,𝑥^3,𝑥^4,𝑥^5
  2. 은닉 레이어:
    • 첫 번째 은닉 레이어: ℎ1,ℎ2
    • 두 번째 은닉 레이어: ℎ3,ℎ4
  3. 가중치 행렬:
    • 𝑊𝑒1,𝑊𝑒2,𝑊𝑒3,𝑊𝑒4: 인코딩 가중치
    • 𝑊𝑑1,𝑊𝑑2,𝑊𝑑3,𝑊𝑑4: 디코딩 가중치

장점

  1. 특징 추출: 데이터의 중요한 특징을 추출하여 더 간결한 표현을 제공합니다.
  2. 노이즈 제거: 입력 데이터에 노이즈가 포함되어 있을 때 이를 제거하여 더 깨끗한 데이터를 복원할 수 있습니다.
  3. 학습 효율성: 깊은 네트워크 구조를 통해 더 복잡한 데이터 패턴을 학습할 수 있습니다.

구조 설명

  1. 입력 레이어: 원본 데이터를 입력합니다.
  2. 인코더 레이어: 데이터를 점차 압축하여 더 작은 은닉 표현(ℎ1,ℎ2)을 생성합니다.
  3. 디코더 레이어: 압축된 은닉 표현을 원래 데이터와 유사한 출력(𝑥^1,𝑥^2,𝑥^3,𝑥^4,𝑥^5)으로 복원합니다.

이를 통해 모델은 입력 데이터의 중요한 특징을 학습하고, 이를 기반으로 데이터를 재구성할 수 있습니다. Stacked Autoencoders는 특히 특징 추출과 차원 축소, 노이즈 제거 등의 작업에 유용합니다.

 

Denoising Autoencoders (DAE)

**Denoising Autoencoders (DAE)**는 입력 데이터에 노이즈를 추가한 후, 이를 제거하여 원래의 깨끗한 데이터를 복원하는 오토인코더입니다. 이는 모델이 데이터의 중요한 패턴을 학습하도록 도와주며, 더 강건한 표현을 학습할 수 있게 합니다.

  1. 목적: 입력 데이터에 노이즈를 추가한 후, 원래의 깨끗한 데이터를 복원하도록 학습합니다. 이를 통해 모델은 노이즈에 강한 특징을 학습하게 됩니다.
  2. 구조:
    • 인코더: 노이즈가 추가된 입력 데이터를 압축하여 은닉 표현(ℎ)으로 변환합니다.
    • 디코더: 은닉 표현을 사용하여 노이즈가 제거된 깨끗한 데이터를 복원합니다.
  3. 학습 과정:
    • 노이즈 추가: 입력 데이터(𝑥)에 노이즈(𝑛)를 추가하여 𝑥+𝑛을 만듭니다.
    • 복원: 인코더와 디코더를 통해 𝑥+𝑛을 원래의 𝑥로 복원하도록 학습합니다.

이 모델은 입력 데이터의 중요한 패턴을 유지하면서 노이즈를 제거하는 데 효과적입니다.

Convolutional Autoencoders (CAE)

**Convolutional Autoencoders (CAE)**는 이미지 데이터를 처리하기 위해 설계된 오토인코더입니다. CNN(Convolutional Neural Network)의 구조를 사용하여 이미지의 공간적 패턴을 학습합니다.

  1. 목적: 이미지 데이터의 압축 및 복원을 통해 중요한 특징을 추출하고, 원래 이미지를 재구성합니다.
  2. 구조:
    • 인코더: CNN 레이어를 사용하여 입력 이미지를 압축합니다.
      • 컨볼루션 레이어: 이미지의 국소적 특징을 추출합니다.
      • 풀링 레이어: 특징 맵의 크기를 줄이고 중요한 정보를 유지합니다.
    • 디코더: 압축된 특징 맵을 원래 이미지 크기로 복원합니다.
      • 업샘플링: 풀링 레이어에서 줄인 크기를 다시 원래 크기로 복원합니다.
      • 컨볼루션 트랜스포즈 레이어: 압축된 정보를 원래 이미지로 복원합니다.
  3. 주요 기술:
    • Unpooling: 풀링 과정에서 잃어버린 정보를 복원합니다.
    • Transpose Convolution: 컨볼루션 연산의 역연산으로 이미지 크기를 복원합니다.

주요 차이점 및 용도

  • DAE: 주로 노이즈가 있는 데이터의 복원에 사용됩니다. 강건한 특징을 학습하며, 노이즈 제거, 이상 탐지 등 다양한 응용 분야에 활용될 수 있습니다.
  • CAE: 이미지 데이터에 특화된 오토인코더로, 이미지의 중요한 특징을 학습하고 복원하는 데 사용됩니다. 이미지 압축, 복원, 이상 탐지 등에 효과적입니다.

이 두 가지 오토인코더는 각각의 목적에 맞게 데이터의 중요한 특징을 추출하고, 원래의 데이터를 복원하는 데 강력한 도구가 됩니다.

 

Variational Autoencoders (VAE)

**Variational Autoencoders (VAE)**는 오토인코더의 한 종류로, 데이터를 생성하는 능력을 가진 모델입니다. 일반적인 오토인코더와 달리, VAE는 잠재 공간(latent space)에서 확률 분포를 학습하고 새로운 데이터를 생성할 수 있는 특징을 가지고 있습니다. 이는 데이터 생성(generative) 모델의 특성을 가지므로 "Generative version of AE"라고 불립니다.

주요 개념

  1. 확률 모델: VAE는 입력 데이터의 분포를 모델링하기 위해 확률적 접근 방식을 사용합니다.
    • 인코더는 입력 데이터를 잠재 변수(latent variable)의 분포로 변환합니다.
    • 디코더는 이 잠재 변수로부터 데이터를 샘플링하여 원래 데이터와 유사한 출력을 생성합니다.
  2. 잠재 공간(latent space): 입력 데이터를 잠재 변수 공간으로 매핑하여, 이 공간에서 샘플링된 변수로부터 데이터를 생성합니다.
    • 잠재 변수 𝑧는 정규 분포를 따르도록 학습됩니다.
    • 인코더는 입력 데이터 𝑥를 잠재 변수 𝑧의 평균과 분산으로 변환합니다.
  3. 변분 추론(Variational Inference): VAE는 변분 추론을 사용하여 학습합니다.
    • 손실 함수는 재구성 손실(reconstruction loss)과 정규화 손실(regularization loss)로 구성됩니다.
    • 재구성 손실: 원래 입력 데이터와 재구성된 데이터 간의 차이를 최소화합니다.
    • 정규화 손실: 잠재 변수 𝑧가 정규 분포를 따르도록 유도합니다.

수학적 표현

  • 인코더: 입력 데이터 𝑥를 잠재 변수 𝑧의 분포로 매핑합니다.여기서 𝜇(𝑥)와 𝜎2(𝑥)는 인코더 신경망에 의해 학습된 평균과 분산입니다.
  • 𝑞(𝑧∣𝑥)=𝑁(𝑧;𝜇(𝑥),𝜎2(𝑥))
  • 디코더: 잠재 변수 𝑧로부터 데이터를 생성합니다.
  • 𝑝(𝑥∣𝑧)=𝑁(𝑥;Decoder(𝑧))
  • 손실 함수: 재구성 손실과 정규화 손실의 합으로 구성됩니다.여기서 KL은 Kullback-Leibler 발산으로, 잠재 변수의 분포 𝑞(𝑧∣𝑥)와 정규 분포 𝑝(𝑧) 간의 차이를 측정합니다.
  • 𝐿=𝐸𝑞(𝑧∣𝑥)[log⁡𝑝(𝑥∣𝑧)]−KL(𝑞(𝑧∣𝑥)∣∣𝑝(𝑧))

VAE의 특징

  1. 데이터 생성: 학습된 잠재 공간에서 새로운 데이터를 샘플링하여 생성할 수 있습니다.
  2. 잠재 공간 탐색: 잠재 변수 공간에서의 조작을 통해 데이터의 다양한 변형을 탐구할 수 있습니다.
  3. 데이터 재구성: 입력 데이터를 효과적으로 압축하고 복원할 수 있습니다.

VAE는 이미지 생성, 텍스트 생성, 음악 생성 등 다양한 생성 모델 분야에서 활용될 수 있으며, 데이터의 잠재 구조를 학습하고 이를 바탕으로 새로운 데이터를 생성하는 능력을 가지고 있습니다.