Neural Tangent Kernel과 Fourier Features를 사용한 Positional Encoding (1) - Kernel Method
- -
Positional encoding은 AI 모델링 분야에서 많이 쓰이는 기법 중 하나이다. 대표적으로 transformer에서도 데이터를 병렬 처리하여 학습하는 단점을 보완하여 데이터를 구성하는 각 token에 위치 정보를 부여하고자 input을 sinusoidal 등 어떠한 함수에 통과시켜 모델에 넣는 과정을 positional encoding이라고 한다. 컴퓨터 비전에서는 목적은 다르지만 이와 유사하게 사용되는 Fourier feature를 이용한 positional encoding이 존재하는데, 좀 더 high frequency 정보를 잘 학습할 수 있도록 하기 위함이다. 그러나 개인적으로 여태까지 이를 여과없이 단지 "적용하면 좋다"라는 '카더라' 식의 얘기로만 이해했지, 구체적으로 왜 그런 건지 그 근거는 모르고 있었다. 막연하게 '그렇더라'고 여기기 보다는 좀 더 깊게 파 볼 필요가 있어서 현재 근무 중인 연구실의 세미나 발표 주제로 준비하기로 했다. 하지만 수학적 논리와 지식이 부족한 나에게는 그 기저에 있는 내용들이 많이 어렵게 느껴졌고, 아직도 완전히 이해했다고 절대 말할 수 없다. 다행히 여러 사람들이 좋은 자료를 남겨줘서 이를 참고하면서 학부생 수준으로서 조금씩 이해해 보려고 노력했고, 이 글도 그러한 관점에서 논문의 흐름대로 수학적으로 완벽히 증명하기 보다는 그러한 개념이 등장하게 된 배경과 이를 증명하는 과정에서의 사고 흐름에 집중하고자 한다. 엄밀한 증명보다는 직관적인 이해를 목적으로 정리하는 글이므로 흐름을 좇아가는 데 주목해 보자.
이 글은 'Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains' 논문과 이를 이해하는 데 필요한 선수 내용을 소개한 'Neural Tangent Kernel: Convergence and Generalization in Neural Networks' 논문을 기반으로 한다. 글의 내용이 너무 길어질 것 같아서 '(1) Kernel Method', '(2) Neural Tangent Kernel', 그리고 '(3) Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains'의 세 부분으로 나눠서 작성하고자 한다.
Introduction

컴퓨터 비전에서 NeRF를 필두로 하여 Mip-NeRF, GRAF 등 3D-aware synthesis를 수행할 수 있는 neural network과 결합된 다양한 모델이 등장했는데, 적지 않은 논문들에서 모델의 input에 관해 Fourier feature로서의 positional encoding을 수행하는 것을 볼 수 있다. 이는 본 논문에서 input을 neural network에 넣기 전에 Fourier feature를 적용하는 것이 high frequency의 데이터 정보를 더 잘 잡아낼 수 있다는 사실을 보인 이유이다. 그런데 과연 왜 positional encoding을 하는 게 높은 주파수에 대응되는 데이터를 잘 학습할 수 있는 걸까? 이를 이해하려면 먼저 kernel method를 알아야 하고, neural network와 kernel이 어떠한 관계가 있어서 NTK(Neural Tangent Kernel)이라는 개념이 나온 것인지, NTK를 통해 왜 positional encoding 없이는 high frequency 데이터를 잘 학습하지 못하는 건지의 순서로 알아볼 필요가 있다.

그래서 앞서 preliminary로서 linear regression, mapping function, kernel method, 그리고 NTK에 관해 소개하고, 그 이후에 Fourier Feature에 관한 내용을 자세히 다루고자 한다.
Linear Regression
Linear Regression이란?

Linear regression은 실제 데이터에 잘 근사할 수 있는 함수

GD를 수행하려면 실제 값과 예측 값 간의 차이를 정의하는 loss function이 존재해야 하는데, 간단하게 loss function을 MSE(Mean squared error)로 정의할 수 있고, 수식으로 정의하면 다음과 같다.
이러한 loss function을 최소화할 수 있는 파라미터

다시 앞으로 와서 파라미터를 업데이트 하는 식인
여기서 확인할 수 있는 사실은 xi에 관하여
Linear Regression의 한계

앞서 linear function
예를 들어 보자. 위의 왼쪽 사진에서 노란색과 파란색으로 칠해진 두 group의 데이터에 관해 classification을 수행한다고 가정한다. 두 group을 구분지을 수 있는 boundary를 찾아야 하는데, 평면 상에서는 그러한 경계가 곡선의 형태를 띠고 있어서 linear function으로는 적절히 분류할 수가 없으며, 이를 'linearly inseparable'이라고 한다. 이를 해결하기 위한 한 가지 방법으로는 위의 오른쪽 사진에서처럼 데이터들을 고차원으로 보낸 후, 그 고차원 feature space 상에서 classifcation의 boundary를 결정지을 linear hyperplane을 찾는 것이다. 즉, 데이터들을 고차원으로 끌어 올림(lifting)으로써 저차원에서 linearly inseparable 했던 상태를 separable 하게 바꿀 수 있다는 것이다.
Mapping Function
Mapping Function이란?

데이터를 고차원으로 mapping 시켜서 non-linearity를 부여할 수 있도록 해야 하는데, 그러한 함수를 mapping function이라고 부르고, 여기서는
Linear regression과는 달리 찾으려고 하는 함수
Mapping Function의 한계

Mapping function을 사용한 함수
그러나 단순히 mapping function을 사용하는 건 바람직하지 않을 수 있는데, 크게 두 가지의 한계가 존재해서다.
첫 번째는 feature map
두 번째는 데이터

만약에
Kernel
Polynomial Kernel

Polynomial kernel은

위의 영상에서 나오는 polynomial의 과정과 그 의미를 한 장의 그림으로 요약하면 위의 사진과 같다.
즉,
Kernel Function and Kernel Method

앞서 polynomial kernel의 특징을 통해 kernel이 어떠한 역할을 하는지 조금씩 감이 잡혔을 것이다. Kernel function은 mapping function으로 데이터를 고차원으로 보내지 않고도 고차원 공간에서의 데이터 간의 관계를 output으로 내 보내는 함수이며, kernel function을 사용하는 방법을 kernel method 또는 kernel trick이라고 한다. 좀 더 수학적으로 kernel을 정의하면 다음과 같다.
위의 수학적인 표현을 해석하면
Kernel Method 사용 이유
그러면 이러한 kernel method가 mapping function에 비해 어떠한 장점을 지니고 있는지를 정리해 보자.

Kernel function은 수학적으로 데이터의 고차원 공간에서 두 데이터 간의 내적으로 해석할 수 있는데, 대부분의 ML algorithm에서는 내적만 알아도 되는 경우가 많다고 한다. 사실 이 부분이 크게 와닿지는 않았는데, 실제로 AI 모델링을 하면서 모델이 어떠한 feature를 학습하는 데 있어서 concatenation도 있지만 inner product로 처리하는 경우가 많다. 그러한 맥락에서 나오는 성질인지는 확실치는 모르겠지만, 여하튼 자명하다고 생각하고 넘어가면서 kernel function의 내적 표현이 결과적으로 ML algorithm에 잘 적용될 수 있다고 받아들였다. (나중에 기회가 되면 그 근거를 찾아 좀 더 확실하게 작성해 보겠다.) Kernel method의 장점이라고 하면 mapping function
그런데 여기서 의문이 드는 게, 도대체 neural network와 kernel이 어떠한 관계에 있기에 Neural Tangent Kernel이라는 말이 나왔냐는 것이다. 이에 관해서는 한 가지 짚고 넘어가야 할 점이 있는데, 바로 어떤 한 neural network에 관해 estimated function을 학습하는 과정은 결과적으로 kernel regression과 같다는 것이다. 단, 전제는 그 neural network가 infinite-width 또는 데이터에 관해 sufficiently large width를 지니고 있어야 한다는 것이다. 이러한 사실을 어떻게 받아들일 수 있는지는 다음 글에서 Neural Tangent Kernel을 설명하면서 이어가고자 한다.
[다음 글]
Neural Tangent Kernel과 Fourier Features를 사용한 Positional Encoding (2) - Neural Tangent Kernel
이 글 시리즈는 'Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains' 논문과 이를 이해하는 데 필요한 선수 내용을 소개한 'Neural Tangent Kernel: Convergence and Generalization in Neural Networks'
glanceyes.com
Neural Tangent Kernel과 Fourier Features를 사용한 Positional Encoding (3) - Fourier Features
이 글 시리즈는 'Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains' 논문과 이를 이해하는 데 필요한 선수 내용을 소개한 'Neural Tangent Kernel: Convergence and Generalization in Neural Networks'
glanceyes.com
출처
이 내용을 공부하고 글로 정리하는 데 있어서 큰 도움이 된 영상과 자료들이다.
1. https://youtu.be/9Jx2ulS1sAk, PR-374: Fourier Features Let Networks Learn High-Frequency Functions in Low Dimensional Domains
2. http://jnwoo.com/archive/6, Neural Tangent Kernel
3. https://rajatvd.github.io/NTK, Understanding the Neural Tangent Kernel
당신이 좋아할만한 콘텐츠
-
GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis 2023.03.08
-
Neural Tangent Kernel과 Fourier Features를 사용한 Positional Encoding (2) - Neural Tangent Kernel 2023.03.02
-
StyleGAN: Style transfer와 mapping network를 사용하여 disentanglement를 향상시킨 generative Model 2023.02.16
-
HoloGAN: Natural 이미지로부터 3D representation에 관해 unsupervised learning 할 수 있는 생성 모델 2023.02.05
소중한 공감 감사합니다.