Autoencoder(오토인코더)란, Input과 Output이 동일한 인공신경망을 이용해 Unsupervised Learning으로 feature를 추출하는 방법입니다. Input을 입력받아 저차원의 hidden layer를 통과하고, 다시 원래 Input을 출력하도록 모델을 학습합니다. 따라서 hidden layer에는 input 데이터가 압축되어 저장된다고 볼 수 있습니다. 즉, hidden layer의 값은 원본 데이터에서 추출된 feature입니다.
예를 들어 Word2Vec과 같이 One-hot encoding(어느 벡터에서 각각의 단어가 하나의 차원을 가지도록 인코딩) 수만~수십만 개의 단어를 200차원의 vector로 만들 때 Autoencoder를 사용할 수 있습니다.
1. AutoEncoder의 구조

AutoEncoder는 encoder와 decoder 두 부분으로 이루어져 있습니다. 이 모델은 encode된 값을 다시 decode하면 원래 input이 나오도록 학습하는 것입니다.
- encoder 부분: input을 차원 축소하여 feature를 추출 (code layer)
- decoder 부분: encoding된 feature를 이용하여 다시 원래 input을 출력
Code layer는 input에서 추출된 feature가 저장되는 layer인데, input/output layer보다 차원 수가 적어야 합니다. Code layer의 차원 수가 더 많으면, input layer를 그대로 복사해서 code layer를 거친 뒤, 그대로 output layer로 출력할 수 있습니다. 이렇게 되면 고차원의 데이터를 저차원의 feature로 압축할 수 없습니다.
- 비지도 학습 - 오토인코더(Autoencoder): Autoencoder 소개 및 MNIST 예제
- 인공 신경망에 관한 설명. 스탠포드 대학 앤드류 응 교수의 sparse autoencoder 정리 노트로 인공신경망 이해하기
- 오토 인코더를 이용한 비정상 거래 검출 모델의 구현: Autoencoder의 decoder가 학습되지 않은 데이터에 대해서 잘 동작하지 않는다는 점을 이용해 비정상 거래 검출 모델을 만들었음
- hidden layer의 수가 더 많을 때, 사용하는 sparsity를 수학적으로 이해하기
'Model > Network' 카테고리의 다른 글
Transformer (0) | 2020.04.12 |
---|---|
Attention Network, Attention Model (0) | 2020.04.12 |
GAN(Generative Adversarial Network), 적대적 생성 신경망 (0) | 2020.04.12 |
Autoencoder / VAE (0) | 2020.04.12 |