-
Auto Encoderdeep learning/generative model 2024. 2. 7. 23:23
1. 개념
- 입력을 출력으로 복사하는 신경망으로,
- Encoder를 통해 데이터를 암호화하고, Decoder를 통해 암호화된 데이터를 재출력하는 역할을 수행하는 비지도 학습 모델
2. Auto Encoder 설계 아이디어
- PCA(Principal Component Analysis)의 아이디어를 차용한 것으로,
더보기* PCA
- 상관관계가 있는 고차원의 자료를 자료의 변동을 최대한 보존하는 고유값과 고유 벡터를 이용하여 저차원의 자료로 변환시키는 분석 기법으로,
- 차원의 수는 줄이면서 자료의 핵심 attribute만 계승함으로써
- 데이터의 복잡도를 줄여 computing cost를 절약하고,
- 데이터의 가장 중요한 변동성을 나타냄으로서 데이터의 탐색과 해석에 도움을 주는 데이터 분석 기법
- input data를 x, output data를 y라고 할 때,
- encoding 신경망은 x를 encoding하여 차원 축소된 코드로서 latent vector z를 생성하고,
- decoding 신경망은 z를 decoding하여 원본에 가까원 결과물 y를 출력
- Auto Encoder의 목적 함수는 x와 y의 손실값을 최소화하는 것
3. Auto Encoder의 활용 목적
- 주요 목적은 Encoder를 통해 Decoding 과정에서 원본 데이터를 복원할 수 있는 Latent vector를 생성하는 것으로, input data의 manifold를 생성하는 것에 있다.
- input data를 효과적으로 재생산할 수 있는 암호화된 code를 출력하기 위한 encoder를 학습시키기 위해 설계
- 고차원의 데이터를 저차원의 잠재공간으로 mapping : input data의 latent vector로의 표현
더보기* Manifold Learning (다양체 학습)
- 고차원 데이터의 내재된 구조를 이해하고 표현하는 방법 중 하나로,
- 고차원 자료의 저차원 구조를 찾아내거나 보존하여 데이터를 더 효율적으로 표현하려고 시도하는 학습 유형
- 크기를 무조건적으로 줄이는 것이 아니라, 주어진 조건 하에서 정보의 손실을 최소화하는 동시에 불필요한 정보를 제거한 저차원의 다양체를 만드는 것이 목적
4. Auto Encoder의 의의와 한계점
- Generative model의 관점에서 Auto Encoder는 input data인 training dataset에 있는 모든 데이터들의 attribute를 반영한 새로운 data를 생성하기 위한 밑비탕으로, Latent vector에 대한 수정 혹은 학습을 통해 특정의 새로운 데이터를 만들 수 없을까 하는 질문에서 시작되었다. 결과적으로 Latent Vector에 대한 수정을 통해 새로운 데이터를 생성할 수 있다는 점을 증명한 것으로 보인다.
- 이는 VAE와 UNET, Diffusion model 등 Generative model의 backborne idea로 참고되어 사용되고 있다.
- 다만 Generative model의 근본적인 한계로서, Latent Vector로부터 Decoding을 통해 생성된 데이터 y는 x의 attribute에 대한 확률 분포와 유의미하게 일치하는 data라는 점에서, 과연 Auto Encoder 신경망을 통해 '새로운' 데이터를 생성할 수 있는가에 대한 의문이 여전히 존재하는 것으로 보인다.
- 즉, Generative model의 경우 새로운 데이터를 생성하기 위함이지만, 결과적으로 학습 데이터의 attribute에 대한 확률분포와의 일치 여부를 기준으로 한다는 점에서, 데이터의 단순 복제 혹은 복원에 불과하다는 한계점이 존재한다고 생각한다.
'deep learning > generative model' 카테고리의 다른 글
VAE (0) 2024.02.07 U-NET (0) 2024.02.07