본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
카테고리 없음

[2025-1] 임재열 - Instant Neural Graphics Primitives with a Multiresolution Hash Encoding (Instant NGP)

by limlimlim1109 2025. 3. 22.

Instant NGP는 2022년 NVIDIA에서 발표한 신경망 입력 인코딩 방식에 대한 논문입니다.

 

[Instant NGP]

https://arxiv.org/abs/2201.05989

 

Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

Neural graphics primitives, parameterized by fully connected neural networks, can be costly to train and evaluate. We reduce this cost with a versatile new input encoding that permits the use of a smaller network without sacrificing quality, thus significa

arxiv.org

<Instant NGP>

* Abstract

1. 완전연결 신경망(fully connected neural networks)으로 파라미터화된 신경 그래픽 프리미티브(neural graphics primitives)는 학습과 평가에 많은 비용이 들 수 있다.

 

2. 우리는 이러한 비용을 줄이기 위해 품질을 희생하지 않으면서 더 작은 신경망을 사용할 수 있게 해주는, 다용도의 새로운 입력 인코딩 방식을 제안한다.

 

3. 작은 신경망에 확률적 경사 하강법(stochastic gradient descent)으로 최적화되는 학습 가능한 feature vector들로 구성된 다중 해상도 해시 테이블(multiresolution hash table)을 추가하는 구조이다.

 

4. 이 다중 해상도 구조(multiresolution structure)는 신경망이 해시 충돌(hash collisions)을 구분할 수 있도록 해주며, 전체 아키텍처를 단순하게 만들고, 현대 GPU 상에서 병렬화하기 쉽게 만든다.

 

5. 우리는 이러한 병렬성을 활용하기 위해 낭비되는 대역폭과 연산을 최소화하는 데 초점을 맞춰, 전체 시스템을 완전 융합형 CUDA 커널(fully-fused CUDA kernels)로 구현하였다.

 

6. 그 결과 우리는 수십 배에서 수백 배에 이르는 속도 향상을 이루었고, 고품질의 신경 그래픽 프리미티브를 단 몇 초 내에 학습하며, 1920×1080 해상도에서 수십 밀리초 내에 렌더링하는 것이 가능해졌다.

* Introduction

[previous approach]

* 프리미티브(primitive): 외형을 수학적으로 매개하는 함수로 표현 →  함수 표현의 품질과 성능은 시각적 정밀도에 결정적인 영향

* MLP(다층 퍼셉트론)을 활용한 신경 그래픽 프리미티브(neural graphics primitives): 형상 표현이나 방사 필드 표현에서 빠르고 압축적이면서도 고주파(local detail) 정보를 잘 포착

 

* 이를 위해 신경망의 입력을 고차원 공간으로 매핑하는 인코딩 방식 사용

  * 작고 효율적인 모델에서도 높은 근사 가능

  * but, 기존 인코딩 방식의 문제점

    1. 휴리스틱에 기반한 구조 수정(가지치기, 분할, 병합 등)에 의존해 학습 과정이 복잡

    2. 특정 과제에만 적용 가능

    3. GPU에서 성능이 낮아지는 한계

[다중 해상도 해시 인코딩(multiresolution hash encoding)]

* 과제에 독립적이면서도 효율적인 구조

* 단 두 개의 하이퍼파라미터: 해시 테이블의 크기 T, 가장 미세한 해상도 N_max만으로 구성

* 짧은 시간의 학습만으로도 다양한 작업에서 최고 수준의 품질 달성

[Key Idea]

  * 서로 다른 해상도의 해시 테이블들을 계층적으로 구성 → 낮은 해상도에서는 격자점과 배열 항목이 1:1로 매핑되고, 높은 해상도에서는 공간 해시 함수를 통해 해시 테이블을 인덱싱

  * 해시 충돌 → 충돌된 학습 gradient들이 평균 처리되며, 가장 큰 gradient가 학습을 주도하게 되어 네트워크가 중요한 세부 정보를 중심으로 자동으로 집중

  * 학습 중 데이터 구조를 갱신할 필요 X, 해시 테이블 조회는 제어 흐름 X → GPU에 매우 적합

* Multiresolution Hash Encoding

* 완전연결 신경망 m(y;Φ)가 주어졌을 때, 다양한 응용 과제 전반에서 성능 저하 없이 근사 품질과 학습 속도를 개선할 수 있는 입력 인코딩 y=enc(x;θ)에 관심

* 인코딩 파라미터 θ: L개의 레벨, 각 레벨에는 최대 T개의 F-차원 feature vector 저장

[Multiresolution Hash Encoding 처리 과정]

  1. 그림에서 빨간색과 파란색으로 표시된 두 개의 레벨처럼, 각 레벨은 서로 독립적이며, 격자의 꼭짓점마다 feature vector를 저장 (각 레벨의 해상도는 [Nmin, Nmax] 범위 내에서 기하급수적으로 증가, N_max: 학습 데이터의 가장 미세한 디테일 수준에 맞춰 설정, b: 성장 계수)

  2. 레벨 l에 대하여, 입력 좌표 x∈R^d가 해당 레벨의 해상도 N_l 따라 스케일 조정 → 정수 좌표 두 개 계산하여 하나의 voxel 정의 (⌊x_l⌋:=⌊x⋅N_l⌋,⌈x_l⌉:=⌈x⋅N_l⌉)

 

  3. feature vector들은 크기 T의 고정 배열에 저장

    → coarse한 레벨에서 (N_l+1)^d ≤ T라면, 1:1 매핑이 가능

    → but, 더 고해상도 레벨에서는 이 배열을 해시 테이블처럼 사용 (⊕: 비트 단위 XOR, π_i: 서로 다른 큰 소수)

  4. 각 voxel의 꼭짓점에 저장된 feature vector들을 해당 voxel 내에서의 상대 위치를 이용해 -차원 선형 보간(d-linear interpolation) 방식으로 결합 (개의 모든 레벨에 대해 독립적으로 동시에 수행)

 

  5. 각 레벨의 보간된 feature vector들과 보조 입력 ξ∈R^E(예: 뷰 방향, 텍스처 등)을 함께 concatenate하여
최종 인코딩 y∈R^{L⋅F+E} 출력

[Performance vs Quality]

* 해시 테이블 크기 T

  * T가 커질수록 품질은 좋아지지만, 성능은 저하

  * 메모리 사용량은 T에 대해 선형 증가하지만, 품질과 성능은 sub-linear적으로 증가

* 레벨 수 L, feature 차원 F

  * F=2, L=16 조합이 모든 작업에서 가장 효율적인 파레토 최적(Pareto optimum)

* Implicit hash collision resolution

  * 서로 다른 해상도의 레벨들이 서로 보완적인 강점 보유 → 해시 충돌에도 불구하고 장면 재구성 가능

    * coarse 해상도 레벨: 충돌이 전혀 발생 X, but 격자 간 간격이 넓어 장면을 저해상도로만 표현 가능

    * fine 해상도 레벨: 더 정밀한 격자 해상도를 통해 세부적인 구조 포착, but 해시 충돌 발생

 

  * 해시 충돌은 공간 전체에 의사무작위(pseudo-random)하게 퍼져 있으며, 두 점이 모든 해상도에서 동시에 충돌할 확률은 매우 낮다.

 

  * 학습 샘플 충돌 → gradient 평균 처리

    * but, 샘플이 최종 재구성에 끼치는 중요도는 일반적으로 서로 다름

    * 중요도가 다른 점들이 같은 테이블 항목을 공유하더라도 gradient 차이 존재 → 더 중요한 샘플의 gradient가 충돌된 평균값을 지배 → 공유된 테이블 항목은 그 중요도가 높은 점의 특성에 맞춰 최적화

* Experiments

1. Gigapixel Image Approximation: 2D 이미지 좌표에서 RGB 색상으로의 매핑

  * ACORN: 36.9시간 학습 후 PSNR 38.59 dB를 달성

  * Instant NGP: *비슷한 파라미터 수(T = 2²⁴)로 단 2.5분 만에 같은 PSNR(38.59 dB)에 도달, 4분 학습 후에는 최고 41.9 dB 도달

 

2. Signed Distance Functions(SDF): 3D 좌표를 표먼 거리로 매핑

  * NGLOD: 형상에 최적화된 데이터 구조 활용 → 가시적 품질 측면에서는 가장 뛰어난 결과

  * Instant NGP: 전용 데이터 구조 없이도 우리 인코딩은 유사한 IoU 성능과 비슷한 메모리/속도 효율을 달성

3. Neural Radiance Caching(NRC): 5D 광장 학습

  * 삼각파(triangle wave) 인코딩과 비교했을 때, Instant NGP가 더 선명한(sharper) 재구성 결과를 보여줌

  * 그에 따른 성능 오버헤드는 단 0.7ms, 1920 × 1080 해상도에서 프레임 속도는 147 FPS → 133 FPS로만 감소

4. Neural Radiance and Density Fields(NeRF): 3D 밀도와 5D 광장 동시에 학습

* Conclusion

1. 다중 해상도 해시 인코딩(multiresolution hash encoding)은 과제에 독립적이면서도 관련된 세부 정보에 자동으로 집중하는 실용적인 학습 기반 대안

 

2. 오버헤드가 매우 작기 때문에, 온라인 학습이나 실시간 추론처럼 시간에 민감한 상황에서도 쉽게 사용 가능

 

3. 이 방식은 기존 인코딩을 간단히 대체할 수 있는 drop-in replacement이며, 예를 들어 NeRF를 수십~수백 배 가속하면서도 동시대의 비신경망 기반 3D 재구성 기술들과 견줄 수 있는 성능

 

4. 단일 GPU에서 몇 초 내 학습이 가능한 수준의 고속성을 달성할 수 있음을 보임 → 기존에는 현실성이 떨어진다고 여겨졌던 신경망 기반 접근법들을 그래픽스 분야의 다양한 응용에 실용적으로 적용 가능