카카오 계정과 연동하여 게시글에 달린
댓글 알람, 소식등을 빠르게 받아보세요

가장 핫한 댓글은?

본문이 수정되지 않는 박제글입니다.

diffusion model 모르는게 있는데 제발 알려주세요 ㅠㅠㅠ

재치있는 유클리드*

2023.05.27

10

1665

diffusion model 공부중인 학부생인데 이해가 안가는 부분이 있어서 알려주셨으면 좋겠습니다 ㅠ

forward process(Noise를 주입시키는 과정)에서 q(x_t | x_t-1)의 분포를 N(평균, 표준편차^2)으로 나타낼때 평균이
sqrt(1-B) * x_t-1로 나타나지는데 여기서 질문이 있습니다.
x_t-1은 이미지인데 도대체 정규분포의 평균을 x_t-1 * sqrt(1-B)라고 하면 (이미지 * 숫자값이 평균...?)
x_t-1의 평균값에 sqrt(1-B)를 곱한 게 평균이 되야 되지 않나 라는 생각이 드는데 이게 뭔뜻인지 전혀 모르겠어서 질문드립니다.

카카오 계정과 연동하여 게시글에 달린
댓글 알람, 소식등을 빠르게 받아보세요

댓글 10개

2023.05.27

이미지라기 보다는 픽셀 값이 더 맞는 말인 것 같아요. 각 픽셀별로 정규분포를 하나씩 두고 정규분포의 평균값을 각각 계산하는 것입니다.

대댓글 3개

재치있는 유클리드작성자*

2023.05.27

그럼 평균은 이전 스텝 이미지 픽셀들의 평균과 루트 1-b를 곱한값이라고 이해하는게 맞을까요?

2023.05.27

픽셀들의 평균은 왜 나오는지 잘 모르겠어요. 각 픽셀별 정규분포마다 그 위치의 이전 시점 이미지의 픽셀 값에 루트 1-b를 곱한 값을 평균으로 가진다고 이해하시면 될 것 같아요.

2023.05.28

마르코프 체인과 연관지어서 생각해보시면 좋을것 같아요

2023.05.28

일단 q(x_t | x{t-1})은 Conditional probability이기때문에 "평균"이라 하심은 E[x_t] 가 아니라 E[x_t|x_{t-1}] 를 필요로 하는 것 같습니다.
매 스텝마다 noise를 더해서 image분포가 N(0,1)에 가까워질때까지 noising을 진행하니까 평균은 점점 0에 가까워져지고 variance는 1에 가까워져요.
첫 forward step에서는 B=0, t=1; sqrt(1-0)*(x_{1-1}) = 1*x_0 = 원래 이미지
for t in range (1,T): x_t = sqrt(1-B)*x_{t-1} + sqrt(B)*noise = weighted x_{t-1} + weighted noise
마지막 step에서는 B=1, t=T; sqrt(1-1)*(x_{T-1}) = 0 AND x_{T} ~ N(0,1)

그리고 평균이 이미지 평균값 (H,W평균)이 아니라 윗분 말씀대로 각 픽셀별로 어떤 distribution의 값 (결국 평균)이 들어와야 마지막 update step 이후에 target image랑 아주 가까워질 수 있는지를 학습하는 방법 같습니다.

대댓글 5개

2023.05.28

Reverse process는 N(0,1)에서는 반대로 정해진 step동안 noise를 원래 이미지로 돌려가며 다음 step엔 이 픽셀에 무슨 숫자가 와야될까, 다음 step에 넣어야 할 이 이미지 픽셀의 "평균"(혹은 분포)이 뭘까 학습해요. q(x_{t-1} | x_t)
처음에는 N(0,1)에서 뭔 짓을 해야 이미지에 가까워 질지 전혀 모르고 아무거나 내뱉겠지만 training을 거칠수록 점점 정확도가 올라가고, 이 과정을 통해서 pure Gaussian noise에서부터 원래 이미지로의 mapping을 배운다 생각하시면 편할 수 있을 것 같아요.
재치있는 유클리드작성자*

2023.05.28

그러면 예를들어 픽셀 100개로 이루어진 이미지에서 각각 픽셀들에 대한 확률분포 100가지를 다 고려해서 reverse process가 이루어진다고 생각하면 될까요?

2023.05.30

네. 굳이 100픽셀 아니고 1픽셀로 예를 들어도 될 것 같아요. max step이 1000스텝이라 치면 그 픽셀이 매스텝마다 가지는 1000개의 값 (noised pixels)의 분포가 중요한것 같아요. 100픽셀이면 그 분포가 100개.

혹시나 틀린 정보가 있다면 죄송합니다.
재치있는 유클리드작성자*

2023.05.31

예를들어 픽셀값(평균)이 이전 스텝에 a와 같을 때 다음 스텝 b(평균)에 대해 예측한것이 아래 같이 되는게 맞는건가요 그럼?
평균만 고려했다고 가정하면요!
이 평균들과 (나타내지못한 분산)을 이용해서 확률분포로 표현할 수 있는 거구요

a: 112 204 ------> b: 100 195
105 117 95. 108
재치있는 유클리드작성자*

2023.05.31

(112 204 105 117) -> (100 195 95 108) 2*2로 픽셀값들 나타낸건데 띄어쓰기 하니까 이상하게 값이 써졌네요 !!

댓글쓰기

게시판 목록으로 돌아가기

김박사넷의 새로운 거인, 인공지능 김GPT가 추천하는 게시물로 더 멀리 바라보세요.