SIREN에서 Add & Norm(정규화)을 사용하지 못하는 이유
Transformer나 ResNet 같은 최신 딥러닝 모델들은 데이터 값의 폭주를 막기 위해 Add & Norm (잔차 연결 및 정규화) 기법을 필수적으로 사용한다.
하지만 PINN, 특히 SIREN 아키텍처에서는 이러한 기법을 적용하기 어렵다.
그 이유는 크게 세 가지다.
1. 물리 법칙의 국소성(Locality) 위배
가장 보편적인 배치 정규화(Batch Norm)는 학습 데이터 묶음(Batch) 전체의 평균과 분산을 구하여 데이터를 조절한다.
일반 비전 모델 : 이미지 데이터끼리 통계적 특성을 공유해도 문제가 없으며 오히려 학습에 도움이 된다.
PINN : 물리 법칙은 국소적(Local)이다. 특정 좌표($x_1$)에서의 물리적 상태는, 함께 배치에 들어온 다른 좌표($x_2$)의 존재 여부와 무관하게 결정되어야 한다. 만약 정규화를 사용하면 ‘배치에 어떤 좌표들이 섞여 들어왔느냐’에 따라 내 위치의 물리량 예측값이 달라지는 모순이 발생한다. 이는 물리적으로 타당하지 않다.
2. 고계 도함수(Higher-order Derivatives) 연산의 폭발
PINN의 핵심은 신경망의 출력($u$)을 입력($x$)으로 두 번 미분($\nabla^2 u$)하여 편미분방정식(PDE) 잔차를 계산하는 것이다.
- 정규화를 적용하면 수식 내에 평균($\mu$)과 분산($\sigma$) 항이 추가된다.
- 이 평균과 분산 역시 입력 $x$에 의존하는 함수이므로, 이를 포함하여 미분을 수행해야 한다.
- 단순 값 예측(Forward)은 문제없으나, 이를 미분하여 역전파(Backward)하거나 PDE에 대입할 때 연쇄 법칙(Chain Rule)에 의해 계산 그래프가 기하급수적으로 복잡해진다. 이는 메모리 부족과 연산 속도의 치명적인 저하를 초래한다.
3. SIREN의 위상(Phase) 왜곡 문제
이는 SIREN의 활성화 함수인 Sine의 고유한 특성 때문이다.
- ReLU와 같은 함수는 값의 이동(Shift)이 단순히 그래프의 위치 변화로 끝나지만, 주기 함수인 Sine은 입력값에 상수가 더해지면 위상(Phase) 자체가 변한다.
- 정규화는 데이터의 중심을 0으로 맞추기 위해 필연적으로 값을 더하거나 빼는 연산(Shift)을 수행한다.
- SIREN은 파동들의 간섭을 통해 신호를 표현하는데, 정규화가 각 레이어마다 파동의 위상을 제멋대로 비틀어버리면 정확한 신호 합성이 불가능해진다.
결론
초기화(Initialization)가 유일한 해법이다
중간 단계에서 값을 강제로 제어하는 안전장치(Add & Norm)를 사용할 수 없기 때문에, 애초에 가중치가 생성되는 시점(초기화)부터 값이 발산하지 않도록 통제해야 한다.
이것이 SIREN 논문에서 $\sqrt{6/n} / \omega_0$라는 특수한 초기화 공식을 그토록 강조하며 필수적으로 사용하는 이유다.
학습 중간에 건드릴 수 없으니, 시작할 때부터 완벽한 비율로 설정하는 것이다.