instant-ngp
instant-ngp
instant-ngp是今年NVIDIA在SIGGRAPH 2022中的項目,由于其"5s訓(xùn)練一個Nerf"的傳奇速度,受到研究人員的關(guān)注。下面對其做簡單介紹,也作為自己學(xué)習(xí)的記錄。
背景
傳統(tǒng)基于全連接的神經(jīng)網(wǎng)絡(luò)已經(jīng)能解決很多問題,比如MLP結(jié)構(gòu)(PointNet、Nerf等),但是這種全連接的神經(jīng)網(wǎng)絡(luò)在訓(xùn)練和評估中代價很大。同時在基于深度學(xué)習(xí)的圖形學(xué)任務(wù)中,每個工作都針對自己特定的task,設(shè)計不同的網(wǎng)絡(luò)結(jié)構(gòu),這樣的缺點是這些方法只限制在特定的任務(wù)上,同時這些工作在優(yōu)化整個網(wǎng)絡(luò)的過程中,需要對整個網(wǎng)絡(luò)進(jìn)行優(yōu)化,這加大了網(wǎng)絡(luò)的花費。
方案
作者提出一種基于多分辨率的哈希編碼方案,這個方案與task無關(guān),是一種通用的方案(改方案能用在多種不同任務(wù)中),改方案只由參數(shù)T和期望的分辨率Nmak配置,實驗結(jié)果表明該方案在多項任務(wù)上達(dá)到了不錯的效果。該方案與任務(wù)無關(guān)的自適應(yīng)性和效率的關(guān)鍵是哈希表的多分辨率層次結(jié)構(gòu)。
Adaptivity
作者將網(wǎng)格級聯(lián)的映射到相應(yīng)的固定大小的特征向量數(shù)組。在粗分辨率下,從網(wǎng)格點到數(shù)組條目有一個1:1的映射。在精細(xì)分辨率下,數(shù)組被視為一個哈希表,并使用空間哈希函數(shù)進(jìn)行索引,其中多個網(wǎng)格點為每個數(shù)組條目起別名。
這種哈希碰撞將導(dǎo)致訓(xùn)練梯度達(dá)到平均水平,這意味著最大的梯度(與損失函數(shù)最相關(guān)的梯度)將占主導(dǎo)地位,因此哈希表將自動對最重要且細(xì)節(jié)最豐富的部分做優(yōu)先考慮。同時與之前的工作不同,在instant-ngp的訓(xùn)練期間不需要對數(shù)據(jù)結(jié)構(gòu)進(jìn)行系統(tǒng)性更新。
Efficiency
哈希表的查找是O(1),同時哈希表可以并行的查找。
MultiResolution Hash Encoding
Hash_encoding_parameters table Illustration of the multiresolution hash encoding in 2D一個全連接網(wǎng)絡(luò) m(y;?\phi?),對輸入的y進(jìn)行編碼y=enc(x;θ\thetaθ),因此在instant-ngp中,既有可訓(xùn)練的權(quán)值參數(shù)?\phi?,也有可訓(xùn)練的編碼參數(shù)θ\thetaθ。這些參數(shù)被分布為L個層,每層中包含T個維度為F的特征向量。上面的表1為哈希編碼參數(shù),只有哈希表的大小T和期望的分辨率Nmak需要被設(shè)置(作為超參數(shù) )。
在這個過程中,每個層是獨立的(如上圖中的紅藍(lán)兩層,分別代表不同層級。紅色代表分辨率較高的體素網(wǎng)格、藍(lán)色代表分辨率較低的體素網(wǎng)格),同時存儲網(wǎng)格頂點所代表的特征向量,每一層的分辨率是最糙分辨率與最佳分辨率之間的幾何級數(shù)。[Nmin,Nmak]。Nmak代表了數(shù)據(jù)中的最好細(xì)節(jié)。
由上面的陳述我們知道參數(shù)被分為L個層,按照表1給出的超參數(shù)可知L被設(shè)置為16,即體素的分辨率有16個等級,那么分辨率層級從低到高的變化公式為:
其中b被認(rèn)為是成長參數(shù),作者將其設(shè)置為1.38到2之間。對于L層中的某個層l,輸入的坐標(biāo)點對應(yīng)的分辨率為
對于較粗糙的網(wǎng)格,不需要T個參數(shù),它的參數(shù)量應(yīng)該為(N𝑙)d≤T,這樣以來映射就可以保證一對一的關(guān)系,對于精細(xì)網(wǎng)格,使用空間哈希函數(shù)h:Zd→ZT將網(wǎng)格索引到數(shù)組。本文中空間哈希函數(shù)的定義為
運算符?\bigoplus?表示異或運算,π\(zhòng)piπi表示獨一無二大小的大素數(shù),改計算在每一維產(chǎn)生線性同余排列,以解除維度對哈希值的影響。最后根據(jù)x在體素中的相對位置,實現(xiàn)體素內(nèi)角點特征向量的線性插值,插值的權(quán)重為(我猜這里應(yīng)該代表可視化圖中,線性插值的部分,但還是有些不理解)。
根據(jù)以上對哈希編碼的陳述,可以理解這個過程在L層中可以獨立的執(zhí)行,不會相互干擾。這樣的話每一層的插值向量以及輔助輸入(位置+視角方向)被串聯(lián)以產(chǎn)生y,y是由輸入的enc(x;𝜃)到MLP m(y;Φ)。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)
為了優(yōu)化GPU的緩存,作者逐級的處理對應(yīng)的哈希表,當(dāng)處理一批輸入時,首先計算多分辨率哈希編碼的第一級,接著是第二級,依次類推。所以在整個過程中,只有少量的哈希表需要駐留在GPU緩存中,節(jié)省了GPU的內(nèi)存。
問題
- Q1:什么是計算機(jī)圖形基元
我的理解就是計算機(jī)圖形中的基本元素:像素、線條、特征點等。
- Q2:多個網(wǎng)格點為每條數(shù)組條目起別名
我理解這步就是,將多個網(wǎng)格點組成的特征向量,通過哈希函數(shù),映射到對應(yīng)的哈希表中。
- Q3:下圖的紅藍(lán)代表不同尺度,換句話說是將坐標(biāo)進(jìn)行縮放,它是怎么縮放的?
我猜測可能的步驟有兩種:
1.將坐標(biāo)點轉(zhuǎn)換為一個特征向量,然后在將特征向量簡化
2. 整個空間用體素分隔開,那么對于三維空間中一點用多級的體素塊去表達(dá)。用粗糙的體素塊去表達(dá)整個空間,學(xué)習(xí)整個場景的宏觀特征。用精細(xì)的體素塊去表達(dá)整個空間,學(xué)習(xí)到場景的精細(xì)細(xì)節(jié)。
- Q4: ? 為什么使用作者提出的空間哈希函數(shù),在每一維產(chǎn)生線性同余排列(可理解),為什么可以解除維度對散列值的影響呢?
- Q5:根據(jù)x在體素網(wǎng)格中的相對位置,實現(xiàn)對體素內(nèi)角點的特征向量線性插值,插值的權(quán)重為
那這個權(quán)重是怎么計算到的Xl指的是什么?Xl向下取整又指的什么?
- Q6:哈希表這塊怎么訓(xùn)練,所謂的θ參數(shù)是什么
我的理解是,將對應(yīng)的值先用對應(yīng)的哈希函數(shù)處理,然后再用MLP結(jié)構(gòu)將哈希值映射為一個特征向量。所謂的參數(shù)θ就是對哈希值映射的MLP層的權(quán)重,與做Nerf處理的MLP結(jié)構(gòu)的權(quán)重Φ區(qū)分開。
我對這里的理解是:
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)都是將輸入映射到高維空間,通過神經(jīng)網(wǎng)絡(luò)從數(shù)據(jù)中擬合特點的規(guī)律,實現(xiàn)我們的任務(wù)。
神經(jīng)網(wǎng)絡(luò)從根據(jù)特定的任務(wù),可以像搭積木一樣,增加或者刪除特定的模塊,去適應(yīng)對應(yīng)的任務(wù)。但是這種方法的缺陷就是,構(gòu)建出的特定框架,只能適合特定的任務(wù)。
第一句話中,將級聯(lián)的網(wǎng)格映射到相應(yīng)大小的特征向量數(shù)組上,在粗分辨率下網(wǎng)格到數(shù)組條目的映射是1:1。怎么從網(wǎng)格映射到數(shù)組?網(wǎng)格是怎么來的?Nerf中的網(wǎng)格是啥?
第二句話中,在精細(xì)分辨率下,數(shù)組被視為一個哈希表,并使用空間哈希函數(shù)進(jìn)行索引,其中多個網(wǎng)格點為每個數(shù)組條目起別名。多個網(wǎng)格映射到同一個數(shù)組理解,但是網(wǎng)格點怎么作為值映射成哈希值?
第三句話,這種哈希碰撞導(dǎo)致碰撞訓(xùn)練梯度達(dá)到平均水平,這意味著最大的梯度——那些與損失函數(shù)最相關(guān)的梯度——將占主導(dǎo)地位。
第四句話,因此,哈希表自動對具有最重要精細(xì)細(xì)節(jié)的稀疏區(qū)域進(jìn)行優(yōu)先級。與之前的工作不同,在training期間的任何時候都不需要對數(shù)據(jù)結(jié)構(gòu)進(jìn)行結(jié)構(gòu)性更新。這里能理解。
中間劃線的話,怎么把這些參數(shù)劃分為L個級別,就是用不同層級分辨率嗎?
怎么對輸入的坐標(biāo)點X進(jìn)行縮放
總結(jié)
以上是生活随笔為你收集整理的instant-ngp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十九个国内外主流的三维GIS软件
- 下一篇: (转)三维GIS软件十九重唱