이 단원 목차
1. 가중치를 합해 변수를 제거하기
조대화는 남길 자유도를 선택하는 데서 시작합니다. 남긴 배치의 주변 가중치는 그 배치와 양립하는 모든 미시 배치의 가중치를 합한 값입니다. 그 값에 음의 로그를 취하면 유효 작용이 됩니다. 남긴 배치 전체에 대해 가중치를 더하면 원래 분배함수를 얻습니다. 유효 작용의 가산 상수는 분배함수에 영향을 주고 정규화한 확률에서는 상쇄됩니다.
2. 고리에서 한 칸씩 건너 스핀 제거하기
길이가 짝수이고 외부장이 0인 강자성 이징 고리에서 무차원 결합을 , 가중치를 로 둡니다. 짝수 번째 스핀을 남깁니다. 남긴 두 스핀 사이에서 제거할 스핀 를 합합니다.
인 두 배치의 국소 가중치는 이고 인 배치의 가중치는 입니다. 두 가중치의 비율이 를 정하고 기하평균이 를 정합니다. 제거된 스핀마다 인자 하나가 생깁니다. 유한한 고리에서도 이 항등식으로 정확한 주변분포를 구합니다.
스핀 개인 고리에서 전달 행렬의 고윳값은 와 입니다. 따라서
한 단계 뒤에는 로 정규화를 복원합니다. 실험에서 복원한 는 유한 고리의 값입니다. 는 격자 간격 에서 대응하는 무한 사슬의 상관 길이입니다.
3. 길이와 고정점 추적하기
이므로 원래 두 칸 떨어진 상관을 새 격자의 한 칸 상관으로 읽을 수 있습니다. 무한 사슬에서 일 때 격자 간격을 단위로 잰 상관 길이는 입니다. 한 단계에서 이 수는 절반이 되고 격자 간격은 두 배가 됩니다. 두 값을 곱한 물리적 길이는 유지됩니다.
임의의 유한한 양의 에서 반복하면 는 0에 접근합니다. 완전히 정렬된 도 고정점입니다. 로 쓰면 이므로 완전 정렬 근처에서 작은 는 선형 수준에서 두 배가 됩니다. 길이 단위도 두 배입니다. 미분 가능한 다변수 변환의 선형화에서 고윳값의 절댓값이 1보다 크면 해당 교란이 증가하고 1보다 작으면 감소합니다. 절댓값이 1이면 고차항을 확인합니다. Tong, Statistical Field Theory §3.1
4. 선택한 결합 항만으로 표현 가능한지 점검하기
남긴 이웃 스핀 네 개와 결합한 중심 스핀을 제거하면 국소 로그 가중치는 이고 입니다. 네 부호의 곱들은 모든 부호 배치에서 균등 평균을 취할 때 직교하는 기저를 이룹니다. 의 계수는 다음과 같습니다.
에서 약 입니다. 원래 모든 결합이 두 스핀 사이에 있었지만 중심 스핀을 합하면 네 스핀 항이 생깁니다. 이 항을 버리면 유효 상호작용을 더 작은 결합 집합에 투영하고 주변분포를 바꾸게 됩니다. 버린 계수의 크기와 관심 관측량의 변화를 모두 확인할 수 있습니다.
5. 정확한 가중치와 절단한 가중치 비교하기
from itertools import product
from math import cosh, exp, log, prod, sqrt, tanh
def ring(length, coupling):
return sum(exp(coupling * sum(s[i] * s[(i+1) % length] for i in range(length)))
for s in product((-1, 1), repeat=length))
K = 0.4
K_new = 0.5 * log(cosh(2*K))
A = 2 * sqrt(cosh(2*K))
assert abs(ring(8, K) - A**4 * ring(4, K_new)) < 1e-10
assert abs(tanh(K_new) - tanh(K)**2) < 1e-14
def log_weight(x):
return log(2*cosh(x))
states = list(product((-1, 1), repeat=4))
c4 = sum(prod(s) * log_weight(K*sum(s)) for s in states) / 16
closed_form = (log_weight(4*K) - 4*log_weight(2*K) + 3*log_weight(0))/8
assert abs(c4 - closed_form) < 1e-14
exact = [exp(log_weight(K*sum(s))) for s in states]
truncated = [exp(log_weight(K*sum(s)) - c4*prod(s)) for s in states]
z, z_truncated = sum(exact), sum(truncated)
tv = 0.5 * sum(abs(p/z - q/z_truncated) for p, q in zip(exact, truncated))
assert tv > 0
print(K_new, c4, tv)
6. 블록 변수, 척도 변환과 투영
한 칸씩 제거할 때는 기존 스핀의 일부를 남깁니다. 블록 스핀 변환은 블록 전체에 새 변수를 부여합니다. 예를 들어 블록 전체 자화의 부호를 쓸 때는 자화가 0인 경우의 규칙도 정한 뒤 주변분포를 구합니다. 푸리에 좌표에서는 낮은 운동량을 남기고 높은 운동량 띠를 적분할 수 있습니다. 두 경우 모두 유효 모형을 같은 격자에서 비교하려면 길이 척도를 맞춰야 합니다. 선택한 항의 계수를 고정하기 위해 장의 정규화도 바꿀 수 있습니다.
정확한 흐름은 모형의 대칭이 허용하는 모든 결합을 다룹니다. 네 스핀 예제는 수치 흐름에서 항을 절단할 때 오차가 생김을 보여 줍니다. 투영을 반복하기 전에 그 선택이 제어할 관측량이나 확률 차이를 확인하세요. Tong, Statistical Field Theory §§3.1–3.3
7. 확인할 항목
- 약한 결합에서 를 전개하고 한 단계 뒤 가 얼마나 줄어드는지 예측하세요.
- 한 결합 양 끝의 스핀이 같은 경우와 다른 경우를 비교하고 가 국소 가중치를 어떻게 복원하는지 확인하세요.
- 네 이웃 예제에서 네 스핀 계수를 제거하고 16개 배치 모두에서 국소 로그 가중치 차이를 확인하세요.
- 통계·머신러닝 모형의 유효 상호작용을 근사하기 전에 주변화 뒤에도 보존할 관측량을 정하세요.
설명할 수 있나요?
실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.
선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.