Machine Learning

Autoencoder

Y30L 2023. 9. 28. 20:50

1. Autoencoder 란?

Autoencoder(오토인코더)는 대표적인 비지도 학습 중 하나로 Input Layer, Hidden Layer, Output Layer로 구성되어 있으며, EncoderDecoder 과정으로 나뉘어진다.

 

[그림 1] Autoencoder

Encoder 과정은 Input Layer에서 Hidden Layer로 이어지는 구간에서 데이터 압축이 이루어지는 구간을 의미하고 Decoder 과정은 Hidden Layer에서 Output Layer로 이어지는 구간에서 이터 복원이 이루어지는 구간을 의미한다. 이때 Encoder 과정에서 추출한 의미있는 데이터(정보)를 Z로 표시하며 Latent Vector, Latent Variable, Feature 등 다양한 단어로 불린다.

 

구체적인 동작 과정은 다음과 같다.

[그림 2] Autoencoder 동작 과정

 

 

2. 왜 Autoencoder라고 할까?

Autoencoder라는 단어에서 "자동으로 인코딩하는 알고리즘?" 과 비슷한 정도로 유추할 수 있다. 대체 왜 Auto라는 단어가 붙게 되었을까? [그림 3]는 Autoencoder의 결과(Output Data)인 [그림 3]를 자세히 본다면 X축, Y축을 기준으로 일정한 변화는 아니지만 두께 및 모양에 변화가 존재하는 것을 확인할 수 있다.

[그림 3] Autoencoder 결과

 

이러한 변화는 Z에 해당하는 Letent Vector로 인해 이루어지게 되는데 Latent Vector은 우리가 임의로 정하는 것이 아니라 모델 자체에서 Input Data의 차원 축소를진행하고 중요한 값(의미있는 정보)을 찾은 과정에서 정하게 된다. 즉, 자동으로 모델 자체에서 Latent Vector을 찾기 때문에 Autoencoder라고 부른다.

 

 

 

추후 LSTM Autoencoder, Autoencoder Python 에 대해서 포스팅할 예정이다.🤣

 

 

3. Reference

1. https://pebpung.github.io/autoencoder/2021/09/11/Auto-Encoder-1.html
2. https://excelsior-cjh.tistory.com/187
3. https://velog.io/@jaehyeong/Autoencoder%EC%99%80-LSTM-Autoencoder
4. https://www.safwan.xyz/Variational-Auto-Encoder