AI Study

AutoEncoder

애둥 2022. 3. 24. 18:12

AutoEncoder란? 

  • 입력을 받아서 압축한 것을 압축 해제하여 복원하는 것을 학습하는 모델로, 
    비지도 학습을 지도학습 문제로 바꾸어 해결한 예이다. 
  • 정답 데이터가 따로 필요하지 않기때문에 Unsupervised Learning
  • encoder로 입력 데이터의 정보를 최대한 보존하도록 압축을 실행하고, 
    decoder로 중간결과물 z의 정보를 입력데이터 x 와 같아지도록 복원을 실행하는 
    encoder와 decoder 가 합쳐진 모델
  • 학습하면서, AE(AutoEncoder)는 입력 x의 특징(feature)를 잘 추출하도록 자동으로 학습된다. 
  • 중간 결과물 z는 Bottleneck Hiddenlayer 라고도 하며, Latent Variable, Feature, Hidden representation, latent vector 등 다양하게 불리운다. 
  • AE가 학습이 잘 되고 있다 <=> 입력 데이터 x 의 특징을 잘 추출하고 있다. 

 

 

학습 과정

  1. Input Data x를 Encoder Network 에 통과시켜 압축된 z값을 얻음.
  2. 압축된 z vector로부터 Input Data와 같은 크기의 출력값 y를 생성.
  3. 입력값 x와 Decoder를 통과한 출력 값 y의 차이로 Loss 구함.

 

AutoEncoder가 쓰이는 곳

  • 데이터의 Feature를 추출할 때 많이 씀
  • 차원축소에 사용됨.
  • Batch-Norm, Xavier Initialization 과 같은 가중치 초기화 기법들이 없었을 때 Network parmeter 초기화에 사용되었다고 함. 

 

기타

  • Activation Function 없이 사용하는 AutoEncoder를 Linear AutoEncoder라고 부른다.
  • Linear AutoEncoder를 사용하면 PCA와 같은 manifold를 배운다. (1990년대 논문에서 증명 - 무슨 논문이지?)

 

 

Reference 

Fastcampus 김기현의 딥러닝을 활용한 자연어 생성 패키지