[GAN] VAE(Variational Auto-Encoder)

2024. 1. 5. 14:34·공부정리/Computer Vision
728x90
반응형

VAE

  • 목표:  Input image X를 잘 설명하는 feature를 추출하여 Latent vector z에 담고, 이 Latent vector z를 통해 X와 유사하지만 완전히 새로운 데이터를 생성하는 것
  • 각 feature가 가우시안 분포를 따른다고 가정하고 latent z는각 feature의 평균과 분산값을 나타냄

 

 

수식을 약간 곁들여 이를 표현하면 아래와 같이 나타낼 수 있다.

  • p(z): latent vector z의 확률밀도함수. 가우시안 분포를 따른다고 가정
  • p(x|z): 주어진 z에서 특정 x가 나올 조건부 확률에 대한 확률밀도함수
  • θ: 모델의 파라미터

 


 

VAE의 구조

Input image X를 Encoder에 통과시켜 Latent vector z를 구하고, Latent vector z를 다시 Decoder에 통과시켜 기존 input image X와 비슷하지만 새로운 이미지 X를 찾아내는 구조입니다.

VAE는 input image가 들어오면 그 이미지에서의 다양한 특징들이 각각의 확률 변수가 되는 어떤 확률 분포를 만들게 됩니다. 이런 확률 분포를 잘 찾아내고, 확률값이 높은 부분을 이용하면 실제에 있을법한 이미지를 새롭게 만들 수 있을 것입니다.

 

 

 

VAE의 수식적 증명

모델의 파라미터θ가 주어졌을 때 우리가 원하는 정답인 x가 나올 확률이 pθ(x) 높을 수록 좋은 모델이라고 할 수 있습니다. 즉 pθ(X)를 최대화 하는 방향으로 VAE의 파라미터θ를 학습시키게 됩니다.

VAE는 Intractable Density를 구할 수 있으며, 여러 수식을 전개하여 Lower Bound 값을 구할 수 있다. 

VAE 장단점

  • 장점 : 확률 모델을 기반으로 했기 때문에, 잠재 코드를 더 유연하게 계산할 수 있다.
  • 단점 : Density를 직접적으로 구한것이 아니기 때문에 Pixel RNN/CNN 과 같이 직접적으로 Density를 구한 모델보다는 성능이 떨어진다.

Reference

  • https://wikidocs.net/152474
  • Idea Factor KAIST | AutoEncoder and Variational AutoEncoder - 딥러닝 홀로서기
  • Auto-Encoding Variational Bayes 논문 정리
  • NAVER D2 | 이활석 - 오토인코더의 모든 것
  • 김태유's blog | VAE(Auto-Encoding Variational Bayes) 직관적 이해 2018, DEC 20
  • VAE (Variational Auto Encoder)를 사용한 생성 모델링
728x90
반응형

'공부정리 > Computer Vision' 카테고리의 다른 글

[GAN] GAN 모델 안정화를 위한 기법 - LSGAN  (0) 2024.01.08
[GAN] GAN이란?  (0) 2024.01.08
[GAN] 확률 밀도의 추정과 샘플링  (1) 2024.01.05
[Vision] albumentations라이브러리와 CutMix를 통한 이미지 증강  (0) 2023.02.15
[Vision] timm 으로 이미지 사전학습 모델 (ImageNet) 불러오기 / Python 파이썬  (0) 2023.02.14
'공부정리/Computer Vision' 카테고리의 다른 글
  • [GAN] GAN 모델 안정화를 위한 기법 - LSGAN
  • [GAN] GAN이란?
  • [GAN] 확률 밀도의 추정과 샘플링
  • [Vision] albumentations라이브러리와 CutMix를 통한 이미지 증강
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (614)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (301)
        • Programmers (166)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (5)
        • Programmers (4)
        • 백준 (1)
        • 기본기문제 (0)
      • 공부정리 (5)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (2)
      • HCI (23)
        • Haptics (7)
        • Graphics (11)
        • Arduino (4)
      • Project (21)
        • Web Project (1)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (8)
        • Git (2)
        • Docker (1)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (0)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    소수
    Python
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
[GAN] VAE(Variational Auto-Encoder)
상단으로

티스토리툴바