오토인코더

오토인코더란?

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

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

Autoencoder는 어떻게 작동하나요?

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

오토인코더 신경망의 아키텍처. 인코더는 입력의 잠재 표현을 생성합니다. 이후, 해당 표현이 디코더로 입력됩니다.

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

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

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

오토인코더는 영상(빨간색 r이 있는 점이 찍힌 배경)에서 잡음(빨간색 r)을 제거합니다.

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

오토인코더는 영상(빨간색 r이 있는 점이 찍힌 배경)에서 이상(빨간색 r)을 검출합니다.

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

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

오토인코더의 입력 텍스트로 셰익스피어의 소네트를 사용했습니다. 출력 텍스트는 생성된 소네트입니다.

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

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

오토인코더는 산업 기계의 정상 동작 데이터(시계열 신호)에서 오차를 검출하여 제거합니다.

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

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

오토인코더는 산업 기계의 비정상 동작 데이터(시계열 신호)에서 큰 오류를 검출하여 제거합니다.

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

요점

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

오토인코더 FAQ

오토인코더는 입력 데이터를 복제하도록 학습된 딥러닝 신경망의 한 유형으로, 특징을 학습하는 인코더와 데이터를 재구성하는 디코더로 구성됩니다.

오토인코더는 인코더와 디코더라는 두 개의 작은 네트워크로 구성됩니다. 학습 과정에서 인코더는 입력 데이터로부터 잠재 표현을 학습하고, 디코더는 이러한 특징을 바탕으로 데이터를 재구성하여 이전에 보지 못한 입력도 복원할 수 있도록 합니다.

오토인코더는 이상 감지, 텍스트 생성, 영상 생성, 영상 잡음 제거, 디지털 통신 및 예측 정비에 사용됩니다.

오토인코더는 비지도 학습 방식이며 학습을 위해 레이블이 지정된 입력 데이터가 필요하지 않습니다.

인코더는 입력 데이터의 잠재 표현을 생성하는 오토인코더의 한 구성요소인 반면, 오토인코더는 인코더와 디코더 모두로 구성된 완전한 네트워크입니다.

일반적으로 잡음 제거용 컨벌루션 오토인코더, 생성 모델링 및 이상 감지을 위한 변분 오토인코더, 시계열 응용을 위한 LSTM 오토인코더 등이 있습니다.

오토인코더는 학습 과정에서 입력의 잡음을 자연스럽게 무시하므로 입력과 출력 비교 시 잡음을 제거하는 데 적합합니다.

예. 시계열 기반 오토인코더는 정상 동작 데이터로 학습하여 신호 데이터에서 이상 감지을 수행할 수 있으며, 새로 들어오는 데이터에서 큰 변동을 식별하면 비정상 동작을 감지할 수 있습니다.

예. Deep Learning Toolbox를 사용하여 이상 감지, 텍스트 생성, 영상 잡음 제거 등 다양한 오토인코더 응용을 구현할 수 있습니다.


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