디노이징: 낮은 차원으로 끌어당기기

자주 하는 실수와 요약

자주 하는 실수

실수 나온 문제 바로잡는 법
자료가 사는 곳을 알면 노이즈를 다 지울 수 있다고 봄 1 지울 수 있는 것은 자료가 사는 곳에서 벗어난 법선 성분뿐이다. 자료를 따라 밀린 접선 성분은 남는다
큰 노이즈에서 접선 오차가 줄어든 것을 「더 잘 알아본 것」으로 읽음 2 조건부 평균이 후보들 한가운데로 움츠러든 결과다. 출력이 자료 안쪽으로 들어가 법선 오차가 생긴다
오차 ÷ σ² 을 아무 σ 에서나 내재 차원으로 읽음 3 σ 를 바꿔도 값이 잘 안 변하는 작은 σ 쪽에서 읽는다. 학습한 디노이저는 오차가 부풀어 차원을 크게 읽는다
한 번 받은 점수를 그대로 실력으로 봄 4 신호 분산 ÷ (신호 분산 + 노이즈 분산) 만큼만 믿고 평균 쪽으로 당긴다
디노이저는 늘 사영 행렬이라고 봄 5 노이즈 분산이 가장 작은 축의 분산보다 훨씬 작을 때만 사영에 가깝다. 노이즈가 크면 평면 위에서도 움츠러든다
노이즈 분산이 25배면 고친 뒤 오차도 25배라고 봄 6 디노이저는 노이즈가 클수록 남기는 방향(유효 차원)을 줄여, 오차가 노이즈 분산보다 느리게 는다
같은 디노이저를 거듭 쓰면 더 깨끗해진다고 봄 7 디노이저는 입력에 그 세기의 노이즈가 섞였다고 믿는다. 이미 고친 것을 또 고치면 평균 쪽으로 끌려간다
고정점을 구하면 거기로 간다고 봄 8 원점 근처 배율 1/(2σ²) 로 고정점 원이 살아남는지 따로 본다. 경계는 σ ≈ 0.707
생성에는 작은 노이즈의 디노이저만 있으면 된다고 봄 9 큰 노이즈 단계가 거친 결정을, 작은 노이즈 단계가 세밀한 결정을 맡는다. 출발점과 디노이저가 믿는 노이즈 세기가 맞아야 한다

요약

노이즈 낀 점 x = x₀ + σε 에서 원래 점을 제곱 오차가 가장 작게 짐작하는 디노이저는 조건부 평균 E[x₀ ∣ x]다. 노이즈가 작으면 이 디노이저는 자료가 사는 곳에 수직인 법선 성분을 지우고, 자료를 따라가는 접선 성분은 남긴다. 그래서 d칸 공간의 노이즈 dσ² 가운데 내재 차원 k 만큼인 kσ² 만 남고, 실제로 원을 2, 10, 100칸에 넣어도 디노이저 뒤의 오차 ÷ σ² 은 1 근처였다. 디노이저의 출력은 자료가 사는 k차원 곳 위의 자리 k개로 적히므로, 디노이저는 법선 성분을 버리는 손실 압축기처럼 움직인다.

자료가 평평한 면 위에 있으면 가장 좋은 디노이저는 축마다 λᵢ/(λᵢ + σ²) 를 곱하는 행렬이고, 노이즈가 작으면 주성분 분석의 축으로 만든 사영 행렬 P = UUᵀ 가 된다. 샘플 200,000쌍으로 회귀해 얻은 행렬도 σ = 0.1 에서 고윳값 0.998, 0.990 과 0 여덟 개를 냈다. 디노이저의 자코비안 대각합은 남기는 방향의 수를 세고, 가장 좋은 디노이저의 오차는 σ² 곱하기 그 대각합의 평균이다. 굽은 자료에서 자코비안은 점마다 그 근처의 곧은 조각 위로 사영한다. 같은 디노이저를 되풀이하면 작은 σ 에서는 자료 위의 자리만 남고, σ 가 1/√2 를 넘으면 모든 점이 평균 한 곳으로 모인다. 노이즈 세기를 큰 쪽에서 작은 쪽으로 줄이며 되풀이하면 거친 요약부터 세밀한 요약까지 차례로 정해져 자료가 사는 곳 그대로에 닿는다. 디퓨전 모델의 생성은 이렇게 읽으면 노이즈 레벨별 디노이저로 하는 압축 풀기다.

flowchart LR
  A["노이즈 낀 점<br/>d칸이 모두 흔들림"] -- "가장 좋은 디노이저<br/>E[x₀ ∣ x]" --> B["법선 성분을 지움<br/>남는 오차 ≈ kσ²"]
  B -- "평평한 자료" --> C["사영 행렬 P = UUᵀ<br/>주성분 분석의 축"]
  B -- "같은 σ 로 되풀이" --> D["고정점<br/>작은 σ: 자료 위 자리 / 큰 σ: 평균 한 점"]
  D -- "σ 를 큰 쪽에서 작은 쪽으로" --> E["거친 요약부터 풀기<br/>디퓨전의 생성"]

막힌 곳

이 장의 디노이저는 모두 식으로 계산한 가장 좋은 디노이저였다. 그 디노이저는 원 위 점 20,000개로 낸 표본 평균과 가장 커도 0.0074밖에 다르지 않았다. 그런데 원 위의 점이 20,000개가 아니라 4개뿐이라면, 표본 평균으로 만든 「가장 좋은」 디노이저는 원과 그 4개의 점 가운데 어디로 끌어당길까? 학습 자료 위에서 오차를 가장 작게 만드는 일과 자료가 사는 곳 전체를 찾는 일은 언제 같고 언제 갈라질까? 짧게 적은 것이 학습 자료를 외운 것인지, 처음 보는 자료에도 통하는 규칙인지 무엇으로 가릴 수 있을까?