Motivation : Coordinate-based network에 관한 연구에서는 다양한 positional encoding이 제안되곤 하는데, 이때 당연시 여기는 것이 Neural Network는 high frequency detail을 학습하기 어렵다는 것이다. 위 논문에서 설명하는 방향에 맞춰 이해하려고 노력했다. method나 experimental result 등은 기술하지 않았다.
Introduction
위의 그림과 같이 low-dimensional coordinates를 input으로 받고, 그 input 위치에 대한 shape, density, color 등을 출력하도록 학습하는 network를 coordinate-based network라고 한다.
이런 coordinate-based network는 implicit neural representation (INR)으로도 생각할 수 있는데, 어떤 continuos signal을 neural network에 encoding한다는 의미에서 그렇다.
즉, 데이터를 저장하는 하나의 방법으로 생각할 수 있고, "implicit"이라는 단어에 집중해보면 아래와 같이 "explicit"과 구분해볼 수도 있겠다.
INR은 기존의 방식에 비해 여러 장점을 가지는데, 아래 정도로 정리할 수 있을 것 같다.
1) Continous representation & resolution agnostic
2) Memory Efficiency
3) Differentiable Rendering
아무튼 이것이 중요한 것은 아니고, 우리가 여기서 다룰 내용은 저 MLP에 들어가게 되는 coordinate input의 형태에 관한 것이다.
이미 여러 literature에서 neural network의 spectral bias에 대해서 다루고 , neural network가 low-dimensional input을 통한 학습에 취약하다는 것에 대해 다루었다.
이에 대해 많은 연구들은 잘 설계된 positional encoding을 통해 이러한 문제를 극복하고자 한다.
특히 이 논문에서는 Fourier feature를 사용한 input coordinate (v)의 mapping을 통해 이러한 문제를 해결한다.
여기서 중요한 점은 linear regression 문제를 풀기 위해서는 각 input feature의 내적 값만 있으면 된다는 것이다. 심지어 만약에 우리가 아래와 같이 두 feature의 내적값을 내어주는 어떤 function을 정의할 수 있다면, feature mapping ϕ도 몰라도 된다.
K(x,x~)=<ϕ(x),ϕ(x~)>
이 함수가 바로 kernel function이고, 이러한 kernel을 이용한 linear regression을 kernel regression이라고 한다 (kernel trick).
Kernel regression을 생각하기 위해 다시 위에서 구한 loss function을 가지고 오면,
L(w)=21i=1∑n(yi−j=1∑nαjϕ(xj)Tϕ(xi))2
여기서 ∑j=1nαjϕ(xj)Tϕ(xi)=αK라고도 쓸 수 있으므로, loss를 matrix form으로 쓰면
L(α)=∣∣y−αK^∣∣2
즉, 우리는 y=αK^라는 n개의 variable이 있는 linear system을 푸는 것과 같고, particular solution을 아래와 같이 구해질 수 있을 것이다.
Neural tangent kernel은 neural network training이 NTK를 사용한 kernel regression로 approximate할 수 있다라는 이론으로, deep wide neural network의 lazy training을 가정한다.
아래와 같은 1-layer MLP를 생각해보자.
y=f(x;θ)=i=1∑mbiσ(aiTx)
여기서 weight a,b를 학습하기 위해 위에서와 똑같이 regression loss를 사용할 수 있다.
L(θ)=21∑(f^(xi;θ)−yi)2
Gradient descent based training을 하면
θ(t+1)=θ(t)−ηi=1∑n(f(xi;θ)−yi)∇θf(xi;θ)
여기서 weight를 update한다는 것은 initial weight θ∼N가 시간 t에 따라 학습된다는 것이다.
이때, neural network가 충분히 wide하다면 (i.e., m>>1), weight들이 거의 static하다고 하는데, 그러한 경우 weight θ에 대해서 θ0에서 1st order taylor approximation를 생각해볼 수 있다.
f(x;θ)≈f(x;θ0)+∇θf(x;θ0)(θ−θ0)+...
즉, neural network model을 initialization point주변에서 linearization할 수 있게 있게 되는데, ∇θf(x;θ0)를 mapping function의 관점에서 본다면, 이를 kernel regression과 비슷하게 생각해볼 수 있다.
여기서, 추가적으로 gradient descent 분석을 하기 위해 η→0으로 보내 gradient flow dynamics를 구해보자.
θ(t+1)=θ(t)−η∇θL(θ)
ηθ(t+1)−θ(t)=−∇θL(θ)
dtdθ=−∇θL(θ)
여기서 L(θ)=21∑(f(xi;θ)−yi)2 이므로
∇θL(θ)=∇f(x;θ)(f(x;θ)−y)
dtdθ=−∇f(x;θ)(f(x;θ)−y):gradientflowdynamics
그리고, gradient trajectory를 따라 변하는 estimated output의 값을 추적해보면, (gradient flow dynamics 대입)
dtdf=∇θf(x;θ)Tdtdθ:chainrule
=−∇θf(x;θ)T∇θf(x;θ)(f(x;θ)−y)
=−kNTK(f(x;θ)−y)
위와 같이 gradient-descent based neural network training을 NTK를 이용한 kernel regression으로 나타낼 수 있다.
Spectral Bias when training neural networks
Training error e=y^−y=f(x;θ)−y를 정의해보자.
그러면
dtde=−kNTKe(t)
e(t)=e−kNTKte(0)
이제 time t에서 network의 output을 network 초기 output과 error를 통해 나타낼 수 있다.
f(x;θt)=y+e(t)=y+e−kNTKt(f(x;θ0)−y)
논문 equation (3)에서는 초기 f(x;θ0)를 그냥 0으로 가정하고 아래와 같이 기술한 것 같다. (이상적인 training과정에서는 Ktest=K이다.)(η도 사실 그냥 상수 곱해준 것으로 크게 중요하진 않음)
y^t≈KtestK−1(I−e−ηKt)y
이때, kernel matrix k는 positive semi definite하기 때문에 eigendecomposition (k=QΛQT)이 가능하고 e−kt=Qe−ΛtQT와 같이 쓸 수 있다. 그러면
e(t)=y^t−y=−Qe−ΛtQTy
QTe(t)=QT(y^t−y)=−e−ΛtQTy
위 식을 보면, error가 NTK의 eigenvalue 값에 따라서 decay되는 것을 알 수 있고, target function의 component 중에서 larger eigenvalue를 갖는 kernel eigenvector가 더 빠르게 학습한다는 것을 의미한다.
그런데 여기서 k의 eigenfunction (columnsofQ=qi)은 서로 orthogonal하기 때문에 fourier analysis에서 basis function의 역할을 할 수 있고, 이때 eigenvalue들은 각 eigenfunction의 amplitude, coefficient로 생각할 수 있다.
k=i=1∑nλiqiqiT
이러한 kernel들은 대부분 smoothing function인데, smoothing function의 경우 low frequency components가 energy가 집중되어있기 때문에 (거의 모든 정보가 low-frequency regime에 몰려있음), fourier coefficient가 더 크다. 즉, 더 큰 eigenvalue를 가진다. 반면에 high frequency components는 작은 eigenvalue.
작은 eigenvalue는 convergence가 잘 되지 않는다고 했으므로,
neural network는 high-frequency를 잘 학습하지 못한다는 것을 증명해 냈다.