Stable Diffusion 같은 이미지 생성 모델은 순수한 노이즈에서 시작해 한 단계씩 노이즈를 걷어 냅니다. 여기서 그림은 평면 위의 점 구름이라 모든 단계를 눈으로 볼 수 있습니다. 모양을 고르거나 직접 그리고, 작은 신경망을 브라우저에서 학습시켜 노이즈가 그 모양으로 바뀌는 것을 보세요.
학습은 데이터를 일부러 망가뜨리는 데서 시작합니다. t단계에서 각 점을 가운데 쪽으로 줄이고 무작위 가우시안 노이즈를 섞습니다. t = 100이 되면 모양은 하나도 남지 않습니다. 이 방향은 배울 것이 없는 고정된 식입니다.
이 페이지는 100단계 코사인 일정을 씁니다. 신호가 처음엔 천천히, 중간에는 빠르게 줄어듭니다.
봉우리 셋인 1차원 장난감 자료입니다. 가우시안 혼합이라 모든 단계의 밀도를 식으로 정확히 쓸 수 있고, 가장 좋은 잡음 제거기도 정확히 알 수 있습니다. 다음 탭들이 이것을 씁니다.
신경망은 노이즈 섞인 점과 단계 t를 받아, 섞여 들어간 노이즈 ε를 맞혀야 합니다. 손실은 그 추측의 제곱 오차입니다. 노이즈를 맞힐 수 있으면 어느 쪽이 모양 쪽인지 압니다. 아래 화살표는 격자 위 각 자리에서 신경망이 점을 옮길 방향(−ε)입니다.
t가 작으면 화살표가 모양 위를 정확히 가리킵니다. t가 크면 대략 가운데 쪽만 가리킵니다. 남은 모양 정보가 거의 없기 때문입니다.
학습은 x_t를 보고 ε를 맞히라고 시킵니다. 1차원 장난감에서는 가장 좋은 추측(사후 평균)을 정확히 압니다. 점 하나가 학습 예 하나이고, 참 ε와 가장 좋은 추측을 견줍니다. t가 크면 x_t가 거의 노이즈라 ε를 맞히기 쉽고, t가 작으면 노이즈가 작아 자료 자체의 퍼짐 속에 숨습니다.
만들 때는 t = 100의 새 노이즈에서 시작합니다. 단계마다 신경망이 예측한 노이즈를 빼고, 새 무작위성을 조금 다시 더합니다(DDPM). 100단계 뒤 점들이 모양 위에 내려앉습니다. 아래 선은 점 40개가 지나온 길입니다.
경로는 옅은 점(노이즈)에서 시작해 산호색 점에서 끝납니다. 노이즈가 많은 초반에는 이리저리 헤매다가 끝에 가서 자리를 잡습니다.
입자 60개를 순수 노이즈에서 출발시켜, 1차원 장난감의 정확한 잡음 제거기로 역과정을 돌립니다. DDPM은 단계마다 새 노이즈를 더해 길이 흔들리고 늦게까지 봉우리를 바꿀 수 있고, DDIM은 결정적이라 출발점 하나가 끝점 하나로 갑니다.
그림 하나에 신경망을 100번 부르는 건 느립니다. DDIM은 같은 신경망으로 여러 단계를 한 번에 건너뛰고, 중간에 무작위성을 더하지 않습니다. 단계가 적을수록 빠르지만 거칩니다. 아래는 같은 신경망이 설정마다 점 500개를 그린 결과입니다.
| 학습 2,000단계, 시드 1, Node 22 | DDIM 5 | DDIM 10 | DDIM 25 | DDPM 100 | 가우시안 하나 | 노이즈 그대로 | 모양의 새 표본 |
|---|
같은 모양에서 새로 뽑은 점 1,000개까지의 거리, 그린 점 1,000개 기준입니다. 마지막 열이 바닥값입니다. 같은 모양에서 정직하게 뽑은 두 표본도 이만큼은 떨어져 있습니다.
각 2,000개, 정확한 잡음 제거기를 써서 단계 수만 다릅니다. 오차는 참 표본 2,000개와의 1차원 바서슈타인 거리(작을수록 좋음).
조리법은 같습니다. 일정에 따라 노이즈를 더하고, 그것을 예측하도록 신경망을 학습시키고, 한 단계씩 걷어 냅니다. 이미지는 2차원 대신 아주 많은 차원을 가진 공간의 점 하나일 뿐입니다.
| 이 페이지 | DDPM (2020) | Stable Diffusion v1 (2022) | |
|---|---|---|---|
| 표본 하나 | 점 하나, 숫자 2개 | 32×32 컬러 이미지, 숫자 3,072개 | 64×64×4 잠재, 숫자 16,384개 |
| 신경망 | MLP, 파라미터 약 3.6만 | U-Net, 3,570만 | U-Net, 약 8.6억 |
| 노이즈 단계 | 100 | 1,000 | 1,000 |
| 무엇을 그릴지 | 없음 | 없음 | 글 지시(CLIP) |
글→그림 모델은 조건이 있는 예측('고양이')과 조건 없는 예측을 섞어 조건 쪽으로 더 밉니다. ε = (1 + w)·ε(x | c) − w·ε(x). 1차원 장난감에서 조건은 '오른쪽 봉우리들'입니다. w가 클수록 조건에 더 맞지만 덜 퍼집니다.
교육용 장난감입니다. 거리는 이 페이지의 점에서만 잰 값이며, 실제 이미지 모델의 품질 평가가 아닙니다.