콘텐츠로 이동

개요

레이블이 없는 데이터의 효율적인 인코딩을 학습하는 데 사용되는 인공 신경망의 한 유형으로, 비지도 학습에 사용된다. 입력 데이터를 변환하는 인코딩 함수와 인코딩된 표현에서 입력 데이터를 재생성하는 디코딩 함수, 두 가지 함수를 학습한다.

아키텍처 구조

1. 인코더(Encoder)

차원을 줄여서 중요한 특성들을 포착하여 입력 데이터를 더 작고 관리하기 쉬운 형태로 압축한다.

2. 잠재 공간(Latent Space) / 병목 (Bottleneck)

병목은 입력의 가장 압축된 표현을 포함하며, 인코더 네트워크의 출력 레이어이자 디코더 네트워크의 입력 레이어이다.

3. 디코더(Decoder)

압축된 표현에서 데이터를 재구축함

학습 원리

입력과 출력이 동일한 신경망을 훈련시키며, 재구성 오류를 최소화하여 훈련된다. 이는 원래 입력과 재구성된 출력 간의 차이를 측정한다.

역전파를 적용하고 목표값을 입력과 동일하게 설정하는 비지도 학습 알고리즘이다, 즉 항등 함수에 대한 근사를 학습하려고 시도한다

주요 특징

1. 차원 축소

오토인코더는 차원 축소 기법으로도 간주될 수 있으며, PCA와 같은 전통적인 기법과 비교하여 비선형 변환을 사용하여 데이터를 낮은 차원 공간에 투영할 수 있다.

2. 비선형성

오토인코더의 잠재력은 비선형성에 있으며, 이를 통해 모델이 PCA에 비해 더 강력한 일반화를 학습하고 훨씬 낮은 정보 손실로 입력을 재구성 할 수 있다.

3. 특성 추출

신경망은 비선형 관계를 학습할 수 있기 때문에, 이는 PCA의 더 강력한 일반화로 생각할 수 있다. PCA가 원본 데이터를 설명하는 저차원 초평면을 발견하려고 시도하는 반면, 오토 인코더는 비선형 매니폴드를 학습할 수 있다.

오토 인코더 유형

1. Undercomplete Autoencoder

가장 간단한 유형의 오토인코더 중 하나로, 이미지를 입력으로 받아 압축된 병목 영역에서 동일한 이미지를 출력으로 예측하려고 시도하여 이미지를 재구성합니다.

2. Sparse Autoencoder

입력 특성보다 더 많은 은닉 유닛을 포함하지만 동시에 활성화되는 뉴런은 몇 개만 허용합니다. 이 희소성은 일부 은닉 유닛을 0으로 만들거나 활성화 함수를 조정하거나 손실 함수에 희소성 페널티를 추가하여 제어됩니다.

3. Denoising Autoencoder

입력 데이터를 약간 손상시키지만 손상되지 않은 데이터를 목표 출력으로 유지하는 접근법입니다. 이 접근법을 사용하면 모델이 훈련 데이터를 기억하는 매핑을 단순히 개발할 수 없으며, 대신 입력 데이터를 저차원 매니폴드 방향으로 매핑하는 벡터 필드를 학습합니다.

4. Variational Autoencoder (VAE)

데이터의 확률 분포에 대한 가정을 만들고 더 나은 근사를 학습하려고 시도합니다. 확률적 경사 하강법을 사용하여 잠재 변수의 분포를 최적화하고 학습하며, 현실적인 이미지나 텍스트 생성과 같은 새로운 데이터 생성에 사용됩니다.

5. Convolutional Autoencoder

이미지 처리를 위해 설계된 합성곱 신경망(CNN)을 사용하는 오토인코더입니다.

주요 활용 분야

1. 이미지 처리

  • 노이즈 제거 : 이미지, 오디오, 문서에서 노이즈 제거
  • 이미지 압축
  • 얼굴 인지

2. 이상 탐지

상관 관계가 있는 입력 데이터가 있는 경우 오토 인코더 방법이 매우 잘 작동하는데, 이는 인코딩 작업이 상관관계가 있는 특성에 의존하여 데이터를 압축하기 때문이다.

3. 차원 축소와 특성 추출

원시 데이터의 압축된 표현을 학습하는 데 사용할 수 있는 신경망 모델이다. 훈련 후 인코더 모델이 저장되고 디코더는 폐기된다. 그런 다음 인코더를 다른 기계학습 모델을 훈련하는 데 사용할 수 있는 원시 데이터에서 특성 추출을 수행하는 데이터 준비 기법으로 사용할 수 있다.

4. 기타

  • 자연어 처리에서 기계 번역(신경망 기계 번역, NMT)
  • 의미론적 해싱
  • 생성 모델

장단점

장점

  • 비지도 학습으로 레이블 없는 데이터에서 학습 가능
  • 비선형 특성 추출 가능
  • 다양한 도메인에 적용 가능
  • 효율적인 데이터 압축

단점

  • 의미 있는 입력 표현을 학습하게 만드는 것은 상당히 어려움
  • gzip과 같은 표준 데이터 압축 알고리즘과 비교하여 범용 압축 알고리즘으로 사용할 수 없으며, 훈련된 유사한 데이터에서만 최적으로 작동하도록 맞춤 제작됨
  • 과적합 가능성
  • 적절한 병목 크기 설정의 어려움