Multiplicative Fourier Level of Detail 리뷰

신희준·2023년 9월 8일
0

Paper Review

목록 보기
11/30

Paper : Multiplicative Fourier Level of Detail (Yishun Dou, Zhong Zheng, Qiaoqiao Jin, Bingbing Ni / CVPR 2023, Highlight)

  • Motivation : Instant-NGP를 공부하다가 더 최근에 나온 연구로, Multiresolution hash encoding에 fourier feature transformation 및 combination을 더하여 더 좋은 성능을 보여줬다. Implicit Neural Representation는 Neural network 자체에 하나의 정보를 저장하는 방법으로, 이러한 정보를 어떠한 형태?로 저장하느냐에 따라 표현할 수 있는 정보의 질과 양이 천차만별인 것 같다. 글 자체를 잘 써줘서 INR의 역사를 공부하기가 참 좋았다.

Short Summary

  1. Feature volume based INR을 새로운 방식으로 정의
  2. Multi-level feature의 linear combination을 이용한 sum of sines으로 신호를 표현
  3. Fourier analysis가 가능했고, 더욱 나은 성능 달성

Introduction

computer graphics에서 기존의 gemertric modeliing은 signal을 grid-based format의 discrete sample에 저장하는 방식을 택했다.

그런데 이런 방식은 미분이 불가능하기 때문에 learning-based framework에 적용하기가 힘들었는데, Neural implict function (INR)이 등장하면서 이를 해결해주었다.

이러한 INR은 기본적으로 아래와 같이 좌표 xx를 받아 해당 좌표의 정보를 저장하는 방식을 택했는데,

(나는 INR의 "implicit"을 어떠한 정보를 표현함에 있어서 각 좌표 xx의 값을 모두 저장하는 방식이 아니라, 어떤 함수를 통해 간접적으로 표현 (f(x)f(x))한다는 의미로 이해했다.)

이전에 계속 언급했던 것처럼 (On the Spectral Bias of Neural Networks (Nasim Rahaman, Aristide Baratin, Devansh Arpit, Felix Draxler, Min Lin, Fred A. Hamprecht, Yoshua Bengio, Aaron Courville / PMLR 2019)) INR은 low frequency spectral bias로 인해 high frequency detail을 recover하기 어렵기 때문에 NeRF 처럼 positional encoding 등을 사용하곤 했다.

γ(p)=(sin(20πp),cos(20πp),...,sin(2L1πp),,cos(2L1πp))\gamma(p) = (sin(2^0\pi p),cos(2^0\pi p),...,sin(2^{L-1}\pi p),,cos(2^{L-1}\pi p))

NeRF 말고도 비슷한 관점으로 접근한 몇 연구들이 있는데 (SIREN, FFN, MFN, 등), 이러한 연구들은 모두 아래와 같은 비슷한 concept를 가지게 된다.

ww는 학습 가능한 parameter (N\sim \mathcal N), xx는 point coordinate \to sinusoidal bases로 이루어진 fourier feature를 생성. (서로 다른 input coordinate가 orthogonal한 sin 함수를 만들어내고 있음)

이 feature가 MLP weight α\alpha를 통해 선형 결합되면서 output f(x)f(x)을 출력하는 것

저자들은 이러한 approach는 다음의 문제를 가지고 있다고 지적한다.

1) 여기서 training은 sinusoidal bases의 coefficient α\alpha를 배우는 것이 되는데, 이러한 basis coefficient를 모두 학습하는데는 너무 큰 network를 필요로 한다.

2) Fourier bases가 infinite global support를 가지기 때문에 overfitting되기가 쉽다. infinite global support를 가진다는 것은 각각의 base function (ex. sin(wx+ϕ)sin(wx+\phi))가 space 전체의 value에 영향을 끼친다는 것인데, 이렇게 되면 local detail change가 전체 fourier coefficient에 영향을 미치게 된다는 것이고, local small changes에 sensitive 해지면서 high-frequency noise 등에 overfitting 되기가 쉬워진다는 것이다.

이러한 문제를 해결하기 위해서 최근에는 local-detail을 잘 학습하기 위해 multi-level feature를 사용하는 hybrid representation이 많이 사용되게 되었다. (이전 리뷰 Instant Neural Graphics Primitives with a Multiresolution Hash Encoding)

Hybrid representation은 다양한 resolution에서 정의된 feature를 query한 결과를 합쳐서 같이 input으로 사용하는 방법을 택했고, 이를 통해 overall/local detail을 같이 잘 학습할 수 있었고, 이로 인해 더 작은 MLP를 decoder로 사용할 수 있었으므로 빠른 학습이 가능했다.

하지만 이 방법같은 경우에 이러한 multi-scale feature에 대한 정보가 내부적으로 어떻게 합쳐져서 최종적인 output을 내는지 해석하기가 쉽지 않다.

이 논문은 Hybrid representation의 장점을 모두 취하면서도, 한 단계 더 나아가 fourier basis function을 이용하여 각 LOD (Level of Detail)에 대해 frequency bandwidth의 control이 가능한 framework를 제안하였다.

즉, fourier feature를 사용하는데 있어서, 그 coordinate에 대한 표현 자체도 multi-scale feature의 interpolation으로 사용한다는 것.

이 구조는 coarse level의 smooth overall shape과 fine level의 high-fidelity detail을 아주 잘 표현할 수 있게 해준다고 한다.

  • Level of Detail이란 computer graphic에서 카메라와 mesh사이의 거리 (중요도)에 따라서 mesh grid의 정밀도를 조정하는 기법을 말한다. 즉, 여기서는 frequency band limitation을 이용해 coarse level에서는 smooth하게 표현하여 computational cost를 낮추고, fine level에서는 더 detail을 집중할 수 있도록 해주는 것으로 볼 수도 있겠다.
  • Random Fourier Feature는 random fourier bases를 이용해 input data를 더 높은 차원의 space로 mapping하는 정도로 이해할 수 있을 것 같다. 여러 frequency를 random sampling해가면서 kernel function의 feature space를 approximate한다. Kernel machine 공부

Method

Multiplicative Fourier Level of Detail

아래의 그림은 MFLOD method를 도식화한 것이다.

(1) Query Multilevel Feature Volume

MFLOD는 먼저 feature volume을 base로 하며, 이는 Instant-NGP랑 비슷한 방식으로 tree-structured multi-level feature grid (feature volume Z\mathcal Z)를 정의한다.

각 Voxel은 mm-dimension의 learnable parameter를 갖는 8개의 corner를 포함하게 된다.

그리고 feature-volume Z\mathcal Z의 각 level ll은 하나의 LOD를 의미하게 된다.

위 그림처럼 하나의 xR3x \in \mathbb R^3과 LOD level LL이 주어지면, 가장 큰 level 1부터 LL까지 xx를 포함하는 모든 voxel V1:L={V1,...,VL}V_{1:L}=\{V_1,...,V_L\}을 찾고, 각 level에서 voxel의 8개의 corner에 대해 trilinear interpolation을 해서 per-voxel shape vector zl=ψ(x;l,Z)z_l=\psi(x;l,\mathcal Z)를 계산한다.

(2) Transformation and Combination

Multi-resolution feature를 뽑은 후에는 이를 합쳐줘야 하는데, 이전의 방법들은 이를 합치거나 concat해서 MLP와 non-linear activation으로 decode했다.

하지만 이 연구에서는 이전의 "aggregate-decode" paradigm을 "transform-combine"으로 대체하여 Fourier analysis에 대한 LOD representation의 강점을 부각시키려 하였다.

먼저, grid interpolation 후에 layer normalization을 해주고, 각 level의 feature는 learnable filter parameter를 이용해 sinusoidal transformation을 해준다. (Random Fourier Feature)

z^l=LayerNorm(zl)\hat z_l=LayerNorm(z_l)
gl(zl)=sin(wlz^l+ϕl)g_l(z_l)=sin(w_l\hat z_l+\phi_l)
θlfilter={wlRdm,ϕlRd}\theta_l^{filter}=\{w_l \in\mathbb R^{d*m},\phi_l \in \mathbb R^d \}

여기서 mm는 grid feature dimension이고, dd은 mapping dimension

  • Layernorm은 아래 그림과 같이 각 instance (input)의 feature를 모든 channel에 대해 normalize하는 방식으로 spectral manipulation을 더 잘하기 위해 사용한다고 한다.

저자들은 이런 sinusoidal filter가 자연스럽게 Random Fourier Feature representation과 연결되기 때문에 이렇게 변환된 representation을 Fourier LOD로 부른다고 한다.

그 후 각 level의 Fourier LOD를 elementwise multiplication (\odot)과 FC layer로 이루어진 network를 통해 layer to layer로 recursive하게 combine된다.

t1=g1(z1)t_1=g_1(z_1)
tl=gl(zl)(Wltl1+bl),  1<lLt_l=g_l(z_l) \odot (W_lt_{l-1}+b_l), \;1<l \leq L
yl=Wlouttl+blouty_l=W_l^{out}t_l+b_l^{out}

Network의 parameter는 θlnet={WlRd×d,blRd,WloutRc×d,bloutRc}\theta_l^{net}=\{W_l \in \mathbb R^{d \times d}, b_l \in \mathbb R^d, W_l^{out}\in \mathbb R^{c \times d}, b_l^{out} \in \mathbb R^c \}가 된다.

결과적으로는 각 level에 대한 output을 해당 level 전의 모든 feature를 사용하는 sum of sines로 표현할 수 있다. (coefficient α\alpha, ww, ϕ\phi는 filter parameter와 network parameter로 정해지는 값)

yl=j=0Nsinel1αˉjsin(wˉ1jz1+wˉ2jz2+...+wˉljzl+ϕˉj)y_l=\sum_{j=0}^{N^l_{sine}-1}\bar \alpha^jsin(\bar w_1^jz_1+\bar w_2^jz_2+...+\bar w_l^jz_l+\bar \phi^j)

위 식을 보면 각 level에서 NsinelN^l_{sine}개 만큼의 sine term의 합으로 표현이 되는 것을 알 수 있는데, 이는 Wltl1W_lt_{l-1}항을 통해 tl1t_{l-1}의 sine terms의 수가 exponential하게 늘어나고, elementwise multiplication과 bias (blb_l)를 통해 sine term이 두 배 더 늘어난 것이다.

각 sine term이 저런식으로 표현된 것은 간단한 삼각법 계산으로 증명될 수 있다. (product of two sines can be transformed to the sum of two sines.)

sin(τ1z1+ϕ1)sin(τ1z1+ϕ1)=12[sin(τ1z1+τ2z2+ϕ1+ϕ2π2)+sin(τ1z1τ2z2+ϕ1ϕ2+π2)]sin(\tau_1z_1+\phi_1)\odot sin(\tau_1z_1+\phi_1)=\frac{1}{2}[sin(\tau_1z_1 +\tau_2z_2+\phi_1+\phi_2-\frac{\pi}{2}) + sin(\tau_1z_1 -\tau_2z_2+\phi_1-\phi_2+\frac{\pi}{2})]

즉, LOD level ll의 sine term의 수는 Nsinel=i=0l2idi+1N^l_{sine}=\sum^l_{i=0}2^id^{i+1}

결론적으로, ll번째 level의 fourier feature가 주어지면, 이 feature는 이전의 coarse feature들과 모든 sinusoidal term에 대해 선형적으로 결합된다. 이러한 feature는 각각 multi resolution feature를 기반으로 만들어졌으므로, fine level에서는 모든 function을 활용해서 local high-frequency detail을 잘 reconstruct할 수 있게된다.

Spectrum Analysis

MFLOD에서는 initialization이 매우 중요하다고 한다.

먼저 feature volume Z\mathcal Z는 아주 작은 randomness를 가지는 uniform distribution으로 initialize한다.

Zu(104,104)\mathcal Z\sim u(-10^{-4},10^{-4})

Sinusoidal filter는 각 level마다 다른 bandwidth를 갖도록 initialize한다. (BlB_l은 hyperparameter)

wlu(Bl,Bl)w_l \sim u(-B_l,B_l)
ϕlu(π,π)\phi_l \sim u(-\pi, \pi)

순서대로 보면, sin함수에 들어가기전에 zz는 uniform distribution이고, X=wx+ϕX=wx+\phi라고 하면 m=1m=1일 대 XX의 확률밀도함수는 아래와 같다고 한다. (Bacon: Band-limited coordinate networks for multiscale scene representation <- 이거를 또 공부해야할거같다.)

fX(x)123Blog(Bmin(x/3,B))f_X(x) \approx\frac{1}{2\sqrt3B}log(\frac{B}{min(|x/\sqrt3|,B)})

그런데 여기서 mm이 늘어나면, 확률 밀도가 위 분포에서 independent random variable를 추출해서 더하는 것이 되기 때문에, 중심 극한 정리에 의해 gaussian distribution이 된다. (이 논문에서는 모든 실험에 m=8m=8, d=32d=32를 사용했다고 한다.)

그리고 그 XX를 sinusoidal function에 넣어주면 gl(zl)g_l(z_l)variance 0.5의 arcsine 분포로 근사된다. (그림에서 After RFF)

이제 Bacon 논문을 따라 아래와 같이 initialize하면

Wlu(6/d,6/d)W_l \sim u(-\sqrt{6/d}, \sqrt{6/d})

dd가 늘어남에 따라 Wltl1+blW_lt_{l-1}+b_lstandard normal distribution에 근사하고, 최종 elementwise multiplication은 arcsine 분포와 standard normal 분포의 product이다.

그렇게 계속해서 linear layer를 지나면서 또 다른 standard normal distribution을 얻게 된다.

Linear transformation을 통과한 arcsine distribution의 random variable이 gaussian distribution을 가지게 되는 것이 살짝 이해가 잘 안간다. 베이컨 논문을 나중에 공부해야 잘 이해하려나

Spectrum Coverage and Inductive Bias

INR의 관점에서 inductive bias는 주로 spectrum coverage에 관련되어있다.

FFN과 같은 pure mlp 방법들은 어떤 frequency mapping γ(x)\gamma(x)를 통해 아래 함수의 frequency support를 결정하는 등의 방법을 사용하여, target signal의 spectrum을 cover하고자 하였다.

y=j=0Nsineαjsin(wjx+ϕj)y=\sum^{N_{sine}}_{j=0}\alpha^jsin(w^jx+\phi^j)

하지만 결론적으로 low frequency initial mapping γ(x)\gamma(x)는 underfitting을 야기할 것이고, high-frequency initial mapping은 over-fitting과 noisy interpolation을 야기할 것이다.

예를 들어, target signal의 spike를 matching하기 위해서는 위 식에서 high-frequency 성분에 큰 weight를 주어야할 것이고 결과적으로 aliased reconstruction결과를 얻게 될 것이다. (periodicity of Fourier bases)

반면에 Instant-NGP같은 feature volume 방법들은 사실 spectrum의 관점에서 이해하기는 어렵지만, 직관적으로 fine level에서 local signal에 overfitting되는 단점을 가지고 있다고 볼 수 있다.

NTK for Generalization Analysis

MFLOD가 generalization 측면에서 우수한 이유를 설명하기 위해 이 논문에서는 neural tangent kernel (NTK)를 도입했다. 아래 논문에서 잘 설명되어 있는 것 같다. (나는 이해 잘 못했다.)

Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains (Matthew Tancik, Pratul P. Srinivasan, Ben Mildenhall, Sara Fridovich-Keil, Nithin Raghavan, Utkarsh Singhal, Ravi Ramamoorthi, Jonathan T. Barron, Ren Ng / Neurips 2020)

간단하게 설명하자면, NTK는 neural network의 학습 과정이 neural tangent kernel (ϕ(x)=wf(x)\phi(x)=\nabla_w f(x))을 사용한 kernel regression과 같다는 데서 나온 개념으로,

이 내적인 어떤 kernel trick function k(xi,xj)=<ϕ(xi),ϕ(xj)>k(x_i, x_j)=<\phi(x_i), \phi(x_j)>을 정의하면 내 모델의 예측 값 y^\hat y의 trajectory를 아래와 같이 표현할 수 있다.

dy^dt=k(y^y)\frac{d\hat y}{dt}=-k(\hat y -y)

이때, u=y^yu=\hat y-y로 정의하고 미분 방정식을 풀어주면, (tt\to \infty일 때, training loss가 0으로 수렴하는 것도 볼 수 있다.)

dudt=ku\frac{du}{dt}=-ku
u(t)=u(0)ektu(t)=u(0)e^{-kt}

Kernel kk는 대부분의 overparameter case에서 positive definite 행렬이므로, 아래와 같이 표현할 수 있다. (eigenvalue decomposition하고, eigenvector의 matrix가 orthogonal하므로 VTV=VVT=IV^TV=VV^T=I)

k=inλiviviTk=\sum_i^n \lambda_iv_iv_i^T
u(t)=u(0)eλiviviTtu(t)=u(0)e^{-\lambda_iv_iv_i^Tt}

이때, λi\lambda_i가 rate of convergence로 해당 eigenvector 방향으로 얼마나 빠르게 수렴하는지를 나타내준다.

즉, eigenvalue가 큰 쪽으로는 빠르게 수렴하고, 작은 쪽으로는 느리게 수렴하게 된다.

보통 이미지 상에서는 eigenvalue가 큰 쪽이 바로 low frequency 영역이기 때문에, low frequency를 더 잘 배우고, high frequency를 못 배우는 것이다.

이 논문에서는 아래 그림에서 NTK의 eigenfunction이 서로 high-frequency를 가질수록 overfitting tendency를 증명하는 것이라고 한다. (의미를 연결시키는게 잘 안된다.)

Experiments and Results

이 논문에서는 3D shape representation, image fitting, novel view synthesis를 통해 MFLOD를 검증하였고, 아래의 장점을 부각시켰다.

1) Fast training & evaluation,
2) Superior quality
3) Frequency control
4) Less tendency to overfit

아래는 NeRF에서의 convergence rate와 qualitative result이다.

Discussion

공부할 내용이 많고, 좋은 분석을 한 논문.

논문의 내용을 다 담지는 못해서 아쉽지만 나중에 더 공부해서 정리할 예정

code release가 아직 안됬는데, 코드 보면 더 이해가 쉬울 것 같음

profile
공부하고 싶은 사람

0개의 댓글