Implicit Neural Representations with Periodic Activation Functions
概
本文提出用\(\sin\)作為啟用函式, 並分析該型別的網路應該如何初始化.
主要內容
本文研究如下的網路結構:
\[\Phi(x) = W_n (\phi_{n-1} \circ \phi_{n-2}\circ \cdots \circ \phi_0)(x), x_i \rightarrow \phi_i(x_i) = \sin (W_i x_i + b_i). \]即一個用sin作為啟用函式的MLP.
為了說明使用sin作為啟用函式的好處, 作者首先利用一個簡單的例子作為說明, 設想如下的任務:
- \(\Phi\) 以位置座標\((i, j)\)為輸入, 輸出\(\Phi(i, j) \in \mathbb{R}^3\)表示該畫素點圖片的r, g, b;
- \(\Phi\)以一個圖片作為訓練集, 假設該圖片為\(f(i, j) \in \mathbb{R}^3, i = 1,2,\cdots, j = 1,2,\cdots, W\), 則訓練集為\(\{(i, j, f(i, j))\}\), 共\(HW\)個座標點及其對應的目標;
- 通過平方損失\(\tilde{\mathcal{L}} = \sum_i \sum_j \|\Phi(i, j) - f(i, j)\|^2\)
上圖給了一個例子(既然是灰度圖, 我想這時\(\Phi(i, j) \in \mathbb{R}\)), 展示了用不同啟用函式得到的\(\Phi(i, j)\)的圖, 顯然圖和原圖越接近, 說明擬合能力越強.
特別的, 作者還展示了\(\nabla f(x)\)和\(\Delta f(x)\) (分別用sobel運算元和laplacian運算元得到的) 和各自網路關於\((i, j)\)的梯度和二階梯度的比較. 發現只有SIREN是高度一致的(一個很重要的原因是ReLU等分段連續函式二階導為0).
初始化策略
作者希望每一層(除了第一層)的輸入輸出的分佈是一致的, 這能夠讓堆疊網路層數變得容易, 加快收斂.
其策略是:
其中\(n\)是輸入\(x \in \mathbb{R}^n\)的維度.
但是, 因為\(\sin (wx+b)\)中的\(w\)可以看成是取樣頻率, 為了保證第一層的取樣頻率足夠高(取樣定理), 作者乘上了一個額外的係數:
文中說\(w_0=30\)是一個不錯的選擇.
同時作者還發現, 該技巧應用於別的層一樣有效, 所以乾脆所有層都長上面那個樣, 同時
作者認為這麼做有效是因為關於\(W\)的梯度也乘上了一個因子\(w_0\), 但同時分佈不變.
其它的好處
SIREN對於包含梯度問題的處理尤為出色, 這或許應該歸功於其導數依然是一個SIREN網路, 而如ReLU的一階導為常數, 二階導為0自然無法勝任.
類似的結構, 但是這一次, 假設只知道圖片的\(\nabla f(i, j)\)或者\(\Delta f(i, j)\),由此通過
\[\|\nabla \Phi(i, j) - \nabla f(i, j)\|^2, \]或者
\[\|\Delta \Phi(i, j) - \Delta f(i, j)\|^2, \]來擬合, 則\(\Phi(i, j)\)依然輸出和\(f(i, j)\)相近的結果(如上圖左所示).
上圖右則是逼近\(\alpha \nabla f_1 (i, j) + ( 1- \alpha) f_2 (i, j)\)
對兩張圖片進行混合, 得到的\(\Phi(i, j)\)恰為兩張圖片的融合.
SIREN的強大之處可見一斑.