오토인코더

오토인코더란?

Autoencoder는 입력 데이터 복제를 위해 훈련되는 일종의 딥러닝 신경망입니다. Autoencoder는 이상 감지, 텍스트 생성, 영상 생성, 영상 잡음 제거디지털 통신 등의 여러 응용 사례에서 전통적 엔지니어링 기법을 능가하는 정확도와 성능을 자랑합니다.

아래에 소개되는 다양한 autoencoder 응용 사례에서 MATLAB Deep Learning Toolbox™를 사용할 수 있습니다.

Autoencoder는 어떻게 작동하나요?

Autoencoder는 입력값을 재구성하여 출력합니다. Autoencoder는 인코더와 디코더라는 2개의 더 작은 신경망으로 구성됩니다. 훈련 중에 인코더는 입력 데이터로부터 잠재 표현이라고 하는 일련의 특징을 학습합니다. 이와 동시에 디코더는 그러한 특징을 토대로 데이터를 재구성하도록 훈련됩니다. 그러면 autoencoder는 이전에 본 적이 없는 입력값을 예측하는 데 적용할 수 있습니다. Autoencoder는 일반화가 매우 용이하며 영상, 시계열, 텍스트 등 다양한 데이터형에 사용할 수 있습니다.

그림 1: Autoencoder는 인코더와 디코더로 구성됩니다.

어떤 응용 사례에서 autoencoder를 사용하나요?

Autoencoder는 인코더가 훈련될 때 입력값의 모든 잡음을 자연적으로 무시합니다. 이 기능은 입력값과 출력값이 비교될 때 잡음을 제거하거나 이상을 감지하는 데 이상적입니다. (그림 2 및 3 참조)

그림 2: 영상에서 잡음 제거.

그림 3: 영상 기반 이상 감지.

잠재 표현은 합성 데이터 생성에 사용할 수도 있습니다. 예를 들면 실제 같아 보이는 손글씨나 텍스트 문구를 자동으로 작성할 수 있습니다. (그림 4)

그림 4: 기존 텍스트로부터 새 텍스트 문구 생성하기.

시계열 기반 autoencoder는 신호 데이터의 이상을 감지하는 데 사용할 수도 있습니다. 예를 들어 예측 정비에서는 산업 기계에서 수집한 정상 동작 데이터로 autoencoder를 훈련시킬 수 있습니다. (그림 5)

그림 5: 예측 정비를 위해 정상 동작 데이터로 훈련시키기.

이렇게 훈련된 autoencoder는 이후에 새로운 수신 데이터로 테스트를 거칩니다. Autoencoder 출력값으로부터의 변동이 크면 이상 동작임을 가리키는 것이며, 이렇게 되면 조사가 필요할 수 있습니다. (그림 6)

그림 6: 입력 데이터의 이상을 표시하는 커다란 오차. (정비가 필요하다는 신호일 수 있음)

요점

  • Autoencoder는 비지도 학습이므로 레이블 지정 입력 데이터가 훈련에 불필요합니다.
  • Autoencoder에는 다음과 같이 다양한 엔지니어링 작업에 알맞은 다양한 종류가 있습니다.
    • 컨벌루션 Autoencoder - 디코더 출력값이 인코더 입력값 모방을 시도하며 잡음 제거에 유용함
    • 변분 Autoencoder - 생성적 모델을 만들며, 이상 감지에 유용함
    • LSTM Autoencoder - 시계열 응용 사례를 위한 생성적 모델을 만듦

참조: 딥러닝이란?, 장단기 기억 신경망, 컨벌루션 신경망이란?, 이상 감지