[Lab #4] DDIM: Denoising Diffusion Implicit Models (ICLR, 2021)

누렁이·2023년 5월 9일
0

DSAIL-LAB

목록 보기
5/5

paper: https://arxiv.org/pdf/2010.02502.pdf


Introduction

  • background
    • generative model
      • diffusion model
        • 1) 이미지가 주어지면 노이지를 줄여가는 diffusion process
        • 2) noise 가지고 생성하는 sampling process
        • 변분추론?
        • Gan 은 둘다 학습인데, difussion은 sampling만 학습. 마르코브 체인 활용
    • Diffusion (2015,NIPS)
      • 노이즈를 점차 주입해가고, 그다음에 노이즈를 복구해가는 리버스
      • 미리 정의된 가우시안 노이즈 쪼끔씩 주입해나감. 고정해놔서 복원이 쉬운거구나!
      • 스텝마다 천번 진행 오호
      • objective: vae랑 다른 점은, difussion에서 denoising term이 추가되었다. 오호
    • DDPM (2020, NIPS)
      • diffusion이랑 비슷한데, loss만 간단하게 해서 성능 향상을 한다.
      • mse term이랑 비슷하다.
      • 분산을 상수화해서 평균함수만 예측하도록 재구성
      • 생략을 하는데, 저게 어떻게 간단하게 생략하는거지??? MSE loss 형태로 simplification을 했다? 우리도 그럼 task를 간단하게 하면 이런식으로 바꿀 수 있는건가?

DDIM

  • key idea:
    • DDPM 원하는 이미지를 생성하기 위해서 천번 스텝을 진행해야하는데 시간이 너무 많이 소요.
    • 이미지 질은 똑같지만, 시간은 줄이고 싶다! minor modification으로!
  • Approach
    • DDPM: 마르코브 체인
    • DDIM: non-마르코브 체인! 이전 스텝에만 의존하는 것이 아니라서 초기화도 같이 보기때문에 non-마르코브다. 오??? 우리도 이렇게 해볼 수 있지 않을까??? 처음 내용을 계속 유지하면서.... 새로운 것만 업데이트 하는 것...!!!!!!!!!!!
    • 주변 분포에는 의존하는데 joint에는 영향을 미치 X. 근처에서 유사한 joint 정의하자??????? 1. DDPM의 일반화! 이게 왜 영향 미치고 안미치고 이게 어떤 의미인가????
      1. 초기 값을 계속 같이 주는 건가! 이게 얼마나 차이가 있는거지..!!!!!!그래도 여전히 전단계를 보긴 본다는 거 아니얌?
    • 내가 실제로 알고 싶은 분포하고, 근사하는 분포 차이간을 학습한다. 그래서 대입만 한다. 그래서 joint를 정의를 한건가???
    • 시그마 조절해서 DDPM인지, DDIM인지
    • sampling
      • 노이즈 복원 작업인거겠지?
        1. 둘차이는 non-markov. 일일이 할 필요가 없어서 가속화 할 수 있다? 모든 스텝을 정의하는게 아니라 첫번째랑 세번째만 한다. 어째서?? 왜???? 갑자기 이게 왜??????
      • DDIM 값을 인코딩해서 사용할 수 있다. 확률적으로 이미지 생성하니까, DDIM은 deteministic 하니까 인코딩이 가능하다. 이미 정의되어 있으니까.... 아하아하아하앟아하아하
  • gan 보다 vae보다 퀄리티있는 결과물
  • 장점은 학습을 안해도 되서 그러는거 아냥?

DDPM은 그 전단계를 기반으로 계속 업데이트를 하기 때문에 새로운 학습이 필요한데, DDIM은 기존에 있던거를 기반으로 다음단계가 얼마나 차이가 있냐 이것만 보기 때문에 모든 스텝 학습할 필요가 없다!!!! 오키도키

실험결과

profile
왈왈

0개의 댓글