자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 작게 기록된 신호를 크게 키우면 되살아난다고 봄 | 1 | 키우면 잡음도 같은 배율로 커진다. 기록할 때 잡음보다 컸던 것만 살아난다 |
| 해가 하나로 정해지니 열 방정식을 거꾸로 풀 수 있다고 봄 | 2 | 촘촘한 무늬가 e^(Dk²t)배로 커진다. 반올림 오차 아래로 가라앉은 무늬는 끝 분포에서 되찾을 수 없고, 그 경계 파수는 √(36/(Dt))로 잡음을 짙게 섞을수록 낮아진다 |
| 흐린 사진에서 되살아난 가는 결이 사진 안에 남아 있던 정보라고 봄 | 3 | 저장할 때 오차보다 작아진 무늬는 사라졌다. 되살아난 결은 데이터 분포에 대한 앎으로 채운 것이다 |
| 흐름의 양이 같으면 걷는 빠르기도 같다고 봄 | 4 | 빠르기는 흐름 ÷ 밀도다. 확률 한 몫의 속도는 ∇p/p = ∇ log p 가 정한다 |
| 시간을 거꾸로 가면서 속도의 부호를 그대로 둠 | 5, 7 | t 가 줄어드는 쪽으로 걸으면 −v, 곧 +D·s 쪽으로 옮긴다 |
| 같은 길을 같은 규칙으로 가면 간격도 그대로라고 봄 | 6 | 지키는 것은 순서와 시간 차다. 간격은 빠른 곳에서 늘고, 밀도는 그만큼 준다 |
| 오래 퍼뜨린 분포는 흐름으로도 되돌릴 수 없다고 봄 | 7 | 처음 모양의 정보는 끝 분포가 아니라 모든 시간의 스코어에 남아 있다 |
| 평균과 분산이 맞는 스코어면 충분하다고 봄 | 7 | 봉우리 구조는 스코어의 모양에 있다. 가우시안 스코어로는 한 봉우리만 나온다 |
| 스코어가 정확하면 출발 분포는 아무래도 된다고 봄 | 8 | 흐름은 출발점마다 도착점을 정한다. 가장 짙은 잡음이 봉우리 구조를 지울 만큼 커야 가우시안에서 출발해도 된다 |
| 두 봉우리 한가운데서는 바늘이 멈춘다고 봄 | 10 | 책임도에 혼합 비중이 들어간다. 합의 로그를 미분하므로 비중이 큰 쪽으로 기운다 |
| 밀도를 먼저 계산한 뒤 로그를 씌움 | 10 | 먼 곳에서 밀도가 0으로 뭉개진다. 로그 가중치에서 가장 큰 값을 빼고 계산한다 |
| 에너지 기반 모델의 스코어를 +E′으로 씀 | 11 | log p = −E − log Z 라 스코어는 −E′ 이다. 바늘은 에너지의 내리막을 가리킨다 |
| 관측 점수를 그대로 참값의 짐작으로 씀 | 12 | 운의 몫만큼 평균 쪽으로 당긴다. 실력 분산 ÷ 전체 분산만 믿는다 |
| 트위디 공식에 데이터 분포의 스코어를 넣음 | 13 | 넣는 것은 잡음 섞인 분포 pt의 스코어다 |
| 원래 점의 평균으로 한 번에 뛰면 표본이 나온다고 봄 | 14 | 짙은 잡음에서 평균은 봉우리 사이 빈 땅이다. 여러 걸음으로 나눠 걷는다 |
요약
잡음을 섞어 가는 과정은 열 방정식이고, 파수 k인 무늬를 e^(−Dk²t)배로 줄인다. 거꾸로 가는 열 방정식은 같은 무늬를 e^(+Dk²t)배로 키우는 불안정한 문제라, 반올림 오차 아래로 가라앉은 촘촘한 무늬는 끝 분포에서 되찾을 수 없다. 열 방정식을 확률의 흐름으로 읽으면, 각 자리의 확률은 속도 v = −D∇ log pt로 움직인다. 로그 밀도의 위치 기울기 s = ∇ₓ log pt가 스코어, 드래곤볼 레이더의 바늘이다. 시간을 1에서 0으로 거꾸로 걸으며 점을 +D·s 쪽으로 옮기면 퍼지기 전의 분포로 돌아오고, 점들은 서로 앞지르지 않는다. 이 길에는 모든 시간의 스코어가 필요하다. 스코어는 정규화 상수 Z를 몰라도 계산되고, 밀도가 0에 붙는 벌판에서도 꺼지지 않는다. 트위디 공식 E[x₀ ∣ xt] = xt + σt² s는 바늘이 「잡음을 걷어 낸 원래 점의 평균」을 가리킨다고 말하며, 잡음 걷어 내기와 스코어가 같은 정보임을 보여 준다.
flowchart LR A["잡음 섞기<br/>열 방정식: 무늬가 e^(−Dk²t)로 준다"] --> B["밀도를 거꾸로<br/>무늬가 e^(+Dk²t)로 폭발<br/>(불안정한 문제)"] A --> C["흐름으로 읽기<br/>속도 v = −D·s"] C --> D["스코어 s = ∇ log pₜ<br/>레이더 바늘, Z 를 몰라도 된다"] D --> E["거꾸로 흐르기<br/>+D·s 쪽으로 걸으면<br/>데이터로 돌아온다"] D --> F["트위디 공식<br/>x + σ²·s = 원래 점의 평균"] F --> G["한 번에 뛰면 흐릿한 평균<br/>여러 걸음이 필요"]
막힌 곳
이제 퍼진 분포를 되돌리는 길을 안다. 모든 잡음 수준에서 스코어를 알면, 점 하나하나를 바늘 쪽으로 옮겨 데이터로 돌아올 수 있다. 바늘은 정규화 상수를 몰라도 읽히고, 잡음을 걷어 낸 원래 점의 평균을 가리킨다.
그런데 이 장의 장난감에서는 데이터 분포를 식으로 알았기 때문에 스코어를 정확히 계산할 수 있었다. 실제로 가진 것은 그림 몇만 장뿐이고, 잡음 섞인 그림들의 분포는 모른다. 모르는 분포의 기울기를, 그림만 가지고 어떻게 배울 수 있을까? 또 걸음마다 바늘을 다시 읽어야 한다는 것은 알았지만, 잡음 없이 매끄럽게 걷는 것만이 길일까? 걸음마다 잡음을 조금씩 다시 넣으면 무엇이 달라질까?