Create Opportunities

[데이터 애널리틱스] Auto Encoder 본문

데이터 애널리틱스

[데이터 애널리틱스] Auto Encoder

kimjaeyoon 2022. 12. 1. 14:57

Auto Encoder를 활용하는 데 있어서 두 가지 측면을 고려해볼 수 있다.

 

첫 번째로는 Dimension reduction. 차원이 축소되는 부분,

두 번째로는 Generative model. Input 으로 돌아가는 부분 이라고 할 수 있다.


일단 Dimension reduction과 관련된 문제 상황을 예로 들어보자.

NLP에서의 Embedding을 생각해볼 수 있는데,

음, 먼저 RNN은 input을 Encoding하여 RNN계열의 모델이 학습하고, 다시 output을 Decoding하게 되는데, 이 때 Word2Vec과 같은 Embedding 기법은 차원을 축소하여 Encoding한다. 이 과정을 Dimension reduction이라고 할 수 있겠다.

Word2Vec

Dimension reduction은 Unsupervised learning의 대표적인 하나의 카테고리라고 할 수 있다.

차원 축소에는 정보의 손실이 불가피한데 이러한 손실을 최소화할 수 있어야 한다. 차원에 따른 Loss의 변화를 바탕으로 적절한 Dimension을 찾을 수 있어야한다.

 

Dimension reduction 왜 쓰냐?

- 차원의 저주 피하려고

- 잠재 정보를 가지고 Generative models를 만들어보려고 (Ex. Data Augmentation) 


그래서 Auto Encoder는 Dimension reduction의 딥러닝 Version이라고 보면된다.

https://towardsdatascience.com/applied-deep-learning-part-3-autoencoders1c083af4d798

 

목적이 뭐냐 : input을 잘 copy하여 이것과 동일하게 output이 나올 수 있도록 하는 것이다. x = g(f(x)) !!!

3 components : encoder / latent code / decoder

 

 

 

latent code를 잘 만들어야 하고, 이를 바탕으로 generative modeling이 가능하다.

Auto Encoder의 Generative model 측면에서는 minimize_Loss (x, g(z)) 를 잘하면 되는 것인데,

이러한 Auto Encoder에 기반한 Generative modeling의 Tabular data이외의 data에 대해서는 성능이 좋지 않은 경우가 많다. 

 

따라서 CAE, GAN 등의 Framework가 탄생했다.