13장 — 열 방정식과 확산

자주 하는 실수와 요약

자주 하는 실수

실수 나온 문제 바로잡는 법
2차원 격자의 퍼진 거리 √n을 한 줄로 반 칸씩 움직이는 구슬에 그대로 씀 1 한 번에 늘어나는 거리 제곱은 한 걸음 크기의 제곱이다. 반 칸이면 1/4씩 쌓인다
가운데 몫이 2차원처럼 되풀이 횟수에 반비례한다고 봄 1 1차원에서는 퍼진 폭에, 2차원에서는 퍼진 넓이에 반비례한다
거리 제곱이 쌓이는 것을 거리가 쌓이는 것으로 읽음 2 쌓이는 것은 거리의 제곱이다. 퍼진 거리는 그 제곱근이다
자기 몫을 조금이라도 남기면 출렁임이 사라진다고 봄 2 두 색 칸의 차이는 한 번에 1 − 2α배가 된다. 반을 넘게 나눠 주면 부호를 바꾸며 출렁인다
블러를 두 번 걸면 표준편차가 더해진다고 봄 3 더해지는 것은 시간, 곧 분산 2Dt다. σ = 3을 두 번 걸면 √18 = 4.24다
퍼진 폭이 시간에 비례한다고 봄 4 쌓이는 것은 거리의 제곱이다. σ² = 2Dt라서 짧은 시간에는 비례로 셈한 것보다 멀리, 먼 거리는 훨씬 오래 걸린다
모든 무늬가 같은 빠르기로 흐려진다고 봄 5 파수 k인 무늬는 e^(−Dk²t)로 준다. 무늬를 지우는 시간은 파장의 제곱에 비례한다
흐린 이미지를 되살릴 때 가는 무늬부터 돌아온다고 봄 5 거꾸로 가면 순서도 거꾸로다. 마지막까지 남았던 굵은 무늬가 먼저 돌아온다
이웃끼리 평균을 되풀이하면 단순 평균으로 모인다고 봄 6 (이웃 수 + 1)을 곱한 합이 보존된다. 이웃이 많은 쪽의 몫이 크다
이웃 평균을 한꺼번에 되풀이하면 늘 고르게 된다고 봄 7 짝수 고리나 바둑판 격자에는 배율이 −1인 무늬가 있다. 자기 값을 남기는 게으른 평균이나 자기 연결로 없앤다
자기 연결이 과평활화를 늦추는 장치라고 봄 8 자기 연결은 −1 근처의 배율을 없애 진동을 막는다. 고윳값 1인 무늬만 남는 것은 그대로라, 처음 특징을 되먹이거나 층을 얕게 둔다
해가 하나로 정해지니 열 방정식을 거꾸로 풀 수 있다고 봄 9 촘촘한 무늬가 e^(Dk²t)배로 커진다. 반올림 오차 아래로 가라앉은 정보는 끝 모양에서 되찾을 수 없고, 그 경계는 오래 퍼뜨릴수록 낮아진다
오래 퍼뜨린 분포는 흐름으로도 되돌릴 수 없다고 봄 10 처음 모양의 정보는 끝 모양이 아니라 모든 시간의 스코어에 남아 있다
흐름을 거꾸로 따라갈 때 속도의 부호를 그대로 둠 10 시간을 거꾸로 가면 +D∇ln ρ 쪽으로 옮긴다
평균과 분산이 맞는 스코어면 충분하다고 봄 10 봉우리 구조는 스코어의 모양에 있다. 가우시안 스코어로는 한 봉우리만 나온다
분산 폭발형 확산의 잡음과 이미지 블러를 같은 공간의 열 방정식으로 봄 — 앞은 데이터 공간의 분포가, 뒤는 픽셀 평면의 이미지 한 장이 퍼진다

요약

이웃끼리 평균을 내는 규칙은 값의 합을 지키면서, 평균 이동이 0이므로 처음 모양과 상관없이 거리의 제곱을 매번 같은 만큼 늘린다. 그래서 퍼진 거리는 되풀이 횟수의 제곱근을 따르고 모양은 가우시안이 된다. 칸 간격 a와 시간 간격 τ를 0으로 보내면 이 규칙은 열 방정식 ∂u/∂t = D∇²u가 되고(격자에서 D = a²/4τ = 1/4), 한 점에서 출발한 해는 한 축 분산이 σ² = 2Dt인 가우시안, 곧 열핵이다. 파수 k인 푸리에 모드는 모양을 지킨 채 e^(−Dk²t)로 줄어 촘촘한 무늬부터 사라진다. 격자에서는 바둑판 무늬의 배율이 −1이라 동시 갱신이 진동할 수 있고, 자기 값을 남기면 이 진동이 사라진다. 거꾸로 가는 열 방정식은 촘촘한 무늬를 e^(Dk²t)배로 키우는 불안정한 문제다. 연속 방정식으로 읽으면 열 방정식은 속도가 v = −D∇ln ρ인 흐름이고, 모든 시간의 스코어를 알면 +D∇ln ρ를 따라 흐름을 거슬러 퍼지기 전의 분포를 되찾을 수 있다. GCN의 전파는 그래프 위의 열 방정식이라 층을 쌓으면 과평활화가 일어나고, 분산 폭발형 확산의 앞으로 가는 과정(forward process)은 데이터 공간 위의 열 방정식이며, 열 퍼짐을 되돌리는 생성 모델은 픽셀 평면 위의 열 방정식을 거꾸로 돌린다.

열 방정식은 ML에서 세 공간에 나타난다. 그래프 위에서는 노드 특징이, 데이터 공간에서는 데이터 분포가, 픽셀 평면에서는 이미지 한 장의 픽셀 값이 퍼진다. 무엇이 어느 공간에서 퍼지는지를 구별하면 세 현상이 같은 방정식으로 읽힌다.

flowchart LR
  H["열 방정식<br/>이웃 평균을 되풀이"] --> G["그래프 위<br/>노드 특징이 퍼짐"]
  H --> S["데이터 공간<br/>데이터 분포가 퍼짐"]
  H --> P["픽셀 평면<br/>이미지 한 장이 퍼짐"]
  G --> G2["GCN 과평활화<br/>층 하나 = 시간 한 걸음"]
  S --> S2["분산 폭발형 확산<br/>D = ½ dσ²/dt"]
  P --> P2["열 퍼짐을 되돌리는 생성 모델<br/>굵은 윤곽부터"]

막힌 곳

이제 고르지 않던 것이 고르게 되어 가는 과정을 적을 수 있다. 이웃끼리 평균을 내는 규칙은 열 방정식이 되고, 퍼진 폭은 √(2Dt)로 자라며, 촘촘한 무늬부터 사라진다. 같은 과정을 흐름으로 읽으면 속도는 −D∇ln ρ이고, 스코어를 알면 그 흐름을 거슬러 올라갈 수 있다.

그런데 열 방정식은 퍼뜨리기만 한다. 끝없는 공간에서는 분산이 한없이 커지고, 닫힌 그래프에서는 완전히 평평해져야 멈춘다. 에너지가 낮은 골짜기에 확률이 모인 볼츠만 분포처럼 평평하지 않은 평형으로 가는 시간 변화는 이 방정식으로 적을 수 없다. 분산을 1로 묶어 두는 확산 모델이 잡음을 더하면서 매 단계 샘플을 원점 쪽으로 조금씩 줄이는 것도 열 방정식에는 없는 일이다. 퍼지는 흐름 −D∇ln ρ에 에너지의 내리막으로 끌어당기는 흐름을 더하면, 두 흐름이 비겨 더는 아무것도 움직이지 않는 분포는 무엇일까? 또 이 장의 흐름은 밀도가 매끄럽게 움직이는 이야기였지만, 잡음을 조금씩 더해 가는 샘플 하나는 매끄럽게 움직이지 않는다. 그 샘플 하나는 어떤 길을 걷고, 그런 길들을 모으면 왜 열 방정식이 나오는가?