[딥러닝 모델] AutoEncoder

박나연·2022년 5월 27일
0

딥러닝을 위한 공부

목록 보기
10/11
post-thumbnail

https://deepinsight.tistory.com/126

오토인코더

오토인코더(Autoencoder)는 단순히 입력을 출력으로 복사하는 신경망이다.

이 때 hidden layter의 뉴런수를 input layer보다 작게 해서 데이터를 압축하거나 노이즈를 추가해 원본 입력을 복원할 수 있도록 하는 등의 다양한 오토인코더가 존재한다.

수식

  • Input data를 encoder network에 통과시켜 압축된 z값을 얻는다.
  • 압축된 z vector로부터 Input Data와 같은 크기의 출력 값을 생성한다.
  • 이때 Loss값은 입력값x와 Decoder를 통과한 y값의 차이이다.

학습방법

  • Decoder Network를 통과한 output layer의 출력 값은 input값의 크기와 같아야 한다.
  • 학습을 위해서 출력값과 입력값이 같아져야 한다.

다시 말해, 입력데이터를 압출시켜 압축 시킨 데이터로 축소한 후에 다시 확장하여 결과 데이터를 입력 데이터와 동일하도록 만드는 과정이며, Unsupervised Learning으로 분류된다.
이때 압출시키는 부분은 Encoder라고 하며, 확장시키는 부분은 Decoder라고 한다.

Stacked Auto Encoder

AutoEncoder는 보통 Stacked Auto Encoder구조로 많이 활용되며, 대칭적 구조이다.

input layer의 입력데이터를 압축시켜 가장 대표적인 특성을 추출하 층이 Encoded Layer에 있는 노드들이다. 이 층이 압축된 데이터를 갖고 있는 layer이며, 결과 데이터가 입력 데이터와 얼마나 동일하게 출력할 것인가를 결정하는 역할이다.

Denoising Auto Encoder (DAE)

DAE는 임의의 데이터인 노이즈 데이터를 제거하거나, 노이즈를 일부러 추가해 중요한 특징을 추출하도록 하는 Auto Encoder이다.

가우시안 노이즈를 통해 노이즈를 추가하거나 dropout을 통해 이미지를 예로 든다면 이미지의 픽셀 일부를 사라지게 하는 것이다. > Regularization 효과

Variational Auto Encoder (VAE)

노이즈를 추가하는 역할을 주로 하며, hidden layer에서의 노드 값들 중 한번의 샘플링을 통해 대표 특성들의 또 대표 특성들을 추출한다. 여기에 가우시안 노이즈를 더해주어 노이즈가 첨가된 대표특성들을 생성하며, 이를 기반으로 확장하여 출력데이터를 도출하게 된다.

오토인코더의 예시들

profile
Data Science / Computer Vision

0개의 댓글