목차
1. VAE(Variational Autoencoder) 이해
2. Variational Autoencoder의 특정 프로세스
Pytorch 프레임워크(AutoEncoder)를 사용한 Autoencoder 원리 및 구현
1. VAE(Variational Autoencoder) 이해
기본 인코더는 입력 x와 숨겨진 변수 z 사이의 매핑 관계를 본질적으로 학습합니다.제너레이터 모델(Generator Model)이 아닌 판별 모델(Discriminator Model)입니다 . 오토인코더의 기본 원리에 대해서는 위 링크의 내용을 읽어보시기 바랍니다.
- 숨겨진 변수 분포 p(z)가 주어지면 조건부 확률 분포 p(x | z)를 학습할 수 있으면 결합 확률 분포 p(x, z) = p(x | z), p(z) 샘플링 학습 , 다른 샘플을 생성합니다.
- Variational autoencoder는 위에 주어진 요구 사항을 충족할 수 있습니다.
-
변형 자동 인코더에는 인코더와 디코더도 있습니다. 인코더는 입력 x를 받고 숨겨진 변수 z를 출력하고, 디코더는 숨겨진 변수 z를 받고 x에 근사하는 변수 x'를 출력합니다.
-
VAE 모델은 숨겨진 변수 z의 분포에 대한 명시적 제약을 가지며 숨겨진 변수 z가 미리 설정된 사전 분포 p(z)를 준수하기를 희망합니다.
2. Variational Autoencoder의 특정 프로세스
(1) 특정 프로세스
- Variational Autoencoder의 인코더(Encoder)와 디코더(Decoder)는 데이터 스트림에 연결되어 있지 않으며 인코더의 결과 출력은 디코더의 입력으로 직접 전달되지 않습니다.
(2) 구체적인 내용에 주의를 기울인다.
3. 변이 오토인코더 모델 구조
(1) 인코더(인코더)
batchSize = b로 설정하고 각 샘플이 평균과 표준 편차를 생성한다고 가정하면 인코더 프로세스는 아래 그림과 같습니다.
(2) 디코더(디코더)
인코더 출력의 평균 및 표준 편차는 가우시안 분포를 따르고 디코더는 해당 가우시안 분포에서 z를 무작위로 샘플링합니다.
4. Reparameterization 트릭
팁: 변형 자동 인코더의 인코더(Encoder)와 디코더(Decoder)는 데이터 스트림에 연결되어 있지 않으며 인코더의 결과 출력은 디코더의 입력으로 직접 전달되지 않습니다. 이 문제를 해결하기 위해 Reparameterization Trick이라는 지속적으로 접근 가능한 솔루션을 제안합니다.
Reparameterization Trick 솔루션은 다음과 같습니다.
5. 변이 오토인코더 손실 함수
6. VAE 코드 구현
Github 코드 구현: GitHub - KeepTryingTo/Pytorch-GAN: Pytorch를 사용하여 GAN을 구현하는 과정