Implicit Neural Representations with Periodic Activation Functions
概要
- 画像, ビデオ, 点群, 音声等のシグナルの写像 \(\Phi\)をニューラルネットで記述する手法が提案されている
- 例えば画像ピクセルの座標を入力したときに各ピクセルのRGB値を返す関数 \(\Phi\)をニューラルネットでモデル化
- このような \(\Phi\)のパラメータを本稿では画像のimplicit representationと呼ぶ
- この場合, 各ピクセル \({\bf X}_i\)のRGB \(f({\bf X}_i)\)と\(\Phi({\bf X}_i)\)の二乗誤差が最小になるような\(\Phi\)のパラメータを学習する
- このような手法は画像を直接読み込むCNN等の手法と違ってグリッドの解像度に依存しない, メモリがシグナルの複雑さにスケールする, priorを考慮できる等のメリットがある
- しかしReLU, tanh等の一般的なactivation functionを用いたMLPでは表現力に限界がある (位置普遍性の原則を満たさないのが一因)
- また, ReLUを使ったimplicit representationは1階微分がpiecewise constantに, 2階微分が0になる
- 2階微分に意味がある場合これを利用することができない
- 2階微分の非線形性を捉えることができない
- 提案手法はニューラルネット \(\Phi\)のactivation functionとしてsin関数を使い
- sin関数の特徴はその微分がcos関数 (すなわち位相をずらしたsin関数)で表せること
- この特徴を利用することでニューラルネットの出力そのものだけでなく入力 (画像の場合ピクセル座標)の1階微分, 2階微分についての学習もできるようになる
提案手法
- 以下の制約を満たしながら \(\Phi\)のパラメータを最適化するタスクを考える
\(\mathcal{C}( {\bf x}, \Phi, \nabla_{\bf x}\Phi, \nabla^2_{\bf x}\Phi, ... )=0\)- ここで\({\bf x}\)は座標, \(\Phi\)はニューラルネット
- 本稿ではこのような表現 \(\Phi\)をimplicit neural representationと呼ぶ
- このようなタスクは科学の幅広い分野で重要である
- 符号付き距離関数を用いた三次元点群のモデル化, より一般的にはヘルムホルツ方程式, ポアソン方程式, 波動方程式などの境界値問題
- MLPのactivation functionを単純にsin関数で置き換え, それに合わせた初期化手法を提案する
- 具体的にはニューラルネット \(\Phi\)の $i$層目の変換を次式でモデル化
\(\phi_i({\bf x}_i)=\text{sin}({\bf W}_i{\bf x}_i+{\bf b}_i)\)- ここで \({\bf W}_i\)は重み行列, \({\bf b}_i\)はバイアスパラメータ
- このような定式化により, 提案手法の微分はそれ自身が提案手法の複合関数になる
- sin関数の特徴はその微分がcos関数 (すなわち位相をずらしたsin関数)になるため
- 従ってニューラルネットの出力そのものだけでなくその微分についての学習も可能になる
- 図1は微分を使わないシンプルな画像系列へのfittingについて学習した例
- ピクセルの座標 \({\bf x}_i\)に対してRGB \(f({\bf x}_i)\)を回帰
- 一番上の列を見ると提案手法はReLU等を使った既存手法よりうまく詳細を再構築できている
- さらに (学習の際は利用していないが)画像の微分を取れるというメリットもある
- 図1の下2列にニューラルネットの1階微分, 2階微分を取った結果を示す
- 前述の通り, ReLUを使ったニューラルネットについては2階微分が0になっている
- 提案手法は (学習の際は使っていないにも関わらず)画像のRGBそのものだけでなく1階微分, 2階微分についてもうまく再現できている
- さらにsin関数を用いたMLPのパラメータ初期化のための手法を提案
- sin関数は周期性を持ち原点から一度立ち上がって再び下がる
- これはactivation functionの性質として望ましくない
- そこでパラメータの初期値を振る際, 重みパラメータを一様分布からサンプル
- これはsin関数が分散1のガウス分布に従うことを保証する
- これにより重みが\(\pi\)を超えるケースが少なくなり周期性が効かなくなる
実験
- 4.1節: ポアソン方程式の学習
- 画像のRGBそのものを使わず\(f({\bf x})\)の微分 \(\nabla_{\bf x}f({\bf x})\)をうまく再現するよう\(\nabla_{\bf x}\Phi({\bf x})\)を学習する
- あるいはラプラシアン (2階微分)をうまく再現するよう \(\nabla\cdot\nabla\Phi({\bf x})\)を学習
- このような最適化を行う (ポアソン方程式を解く)ことで元の画像を再構成できる
- 目的関数に含まれる \(\int_{\Omega}\)は画像の場合全ピクセルについての和
- 図3左上の左から二番目が微分を用いて学習した \(\Phi\)から再構成した元画像, 左から三番目がラプラシアンを用いた再構成
- 学習では微分あるいはラプラシアンのみを使っているにも関わらず, 元画像のRGBがうまく再構成できている
- さらに画像は微分空間においてseamlessに結合できる
- 図3右に微分領域で結合した画像の例を示す
- 微分を用いることでseamlessな複合画像の生成が可能になる
- 4.2節: 符号付き距離関数を用いた点群の表現学習
- 符号付き距離関数 (SDF)を点群にfitさせる
- SDFは点と境界面の距離を表す関数
- 各点についてのSDFの符号はその点が境界面のどちら側にあるかを示す
- このような関数は例えばとあるシーン (室内など)において物体の形をレーザー等で計測するといった応用で用いられる
- レーザー等で計測した点群から物体の境界面を再構成したい
- 本実験では物体の境界面を直接学習代わりに3次元空間の点の座標を入力とし境界面からの距離を出力するニューラルネット=符号付き距離関数 (SDF)を学習する
- 3次元空間上の各点を \({\bf x}\), 境界面を \(\Omega\)と置く
- このタスクは空間的微分 \(\vert \nabla_{\bf x}\Phi \vert\)が1という制約の下でEikonalの境界値問題を解くことに等しい
- 目的関数は3つの積分で書き下せる
- 全ての点集合 \(\Omega\)について\(\vert \nabla_{\bf x}\Phi \vert =1\)
- SDFは最寄りの点への距離なのでその微分はその点の逆方向を示す
- ある点を1空間単位ずらしたらSDFは1大きくなる\(\rightarrow\)微分は1になっているはず
- 境界面上の点の集合 \(\Omega_0\)についてSDFが0に近づくような制約+SDFの微分と境界面の微分が平行になるような制約
- 境界面以外の点集合 (\(\Omega\backslash\Omega_0\))が0から離れるような制約
- 全ての点集合 \(\Omega\)について\(\vert \nabla_{\bf x}\Phi \vert =1\)
- ReLUを用いたMLPと提案手法をこの目的関数を用いて学習 (1つの室内のシーンの点群に対してSDFをfit)
- 図4を見ると提案手法は既存のReLUを用いたMLPよりも詳細で複雑なシーンの再現が可能
- 符号付き距離関数 (SDF)を点群にfitさせる
- 4.4節: Implicit functionの空間を学習
- CNNの学習空間にpriorを課す手法が提案されている
- CNNの\(i\)層目のパラメータを \({\bf \theta}_i\)とおく
- CNNの全てのパラメータ \({\bf \theta}_i\)の集合が \(k\)次元の部分空間に存在すると仮定する
- 具体的にはパラメータ \({\bf \theta}_i\)を別のニューラルネット (MLP)の出力 \({\bf z}_j\)で記述する
- MLPはシグナル (の一部) \(O_j\) (例えば画像の一部分)を入力とする
- 図6は入力時に用いるピクセルの数を色々変えて元の画像を再構成したもの