機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

SampleNet: Differentiable Point Cloud Samplingを読んだのでメモ

はじめに

SampleNet: Differentiable Point Cloud Samplingを読んだのでメモ. Neural Netに組み込んでend-to-endで学習可能な点群のサンプリングを提案.

Method

全体の構造はFig. 3の通り. 課題としてn点の三次元入力P\in\mathbb{R}^{n\times3}からm\lt nR^\ast\in\mathbb{R}^{m\times 3}をサンプリングする.

提案するSampleNetはPを入力とし,PointNet構造でPより小さい点群集合Qを生成する(これはサンプリングではなく生成). 生成されたQと元の点群Pを使って,Pに対して尤もらしい点群を得るsoft projectionという演算からなる.

目的関数としては以下を最小化する.

\displaystyle
\mathcal{L}^{samp}_{total}=\mathcal{L}_{tesk}(R)+\alpha\mathcal{L}_{simplify}(Q,P)+\lambda\mathcal{L}_{project}

\mathcal{L}_{task}(R)はサンプリングとは関係のない,真に解きたい課題(分類やセグメンテーション)の損失,\mathcal{L}_{simplify}(Q,P)は生成された点群QPの距離,\mathcal{L}_{project}は前述のsoft projectionの損失を表す.

Simplify

点群P\in\mathbb{R}^{n\times3}から次を満たす部分集合R^\ast\in\mathbb{R}^{m\times 3}を選び出すというのがここでのサンプリングの気持ち.

\displaystyle
R^\ast=\underset{R}{\mathrm{arg}\min}\mathcal{F}(T(R)),R\subseteq P,|R|=m\leq n

Tはあるタスクに対するモデルを表しており,\mathcal{F}はタスクの目的関数. 要は解きたい課題に対する損失を最小化する部分集合を見つけたいということ.

ここではPointNet構造のニューラルネットR^\astの代わりに適当な部分集合Qを生成する. 尤もらしいQを生成するため,まず次のneareest neighbor lossを定義する.

\displaystyle
\mathcal{L}_{a}(Q,P)=\frac{1}{|Q|}\sum_{\mathbf{q}\in Q}\min_{\mathbf{p}\in P}\|\mathbf{q}-\mathbf{p}\|^2_2

さらに,次のmaximal nearest neighbor lossを定義.

\displaystyle
\mathcal{L}_m(Q,P)=\max_{\mathbf{q}\in Q}\min_{\mathbf{p}\in P}\|\mathbf{q}-\mathbf{p}\|_2^2

これらを使って\mathcal{L}_{simplify}(Q,P)を次のように定義する.

\displaystyle
\mathcal{L}_{simplify}(Q,P)=\mathcal{L}_a(Q,P)+\beta\mathcal{L}_m(Q,P)+(\gamma+\delta|Q|)\mathcal{L}_a(P,Q)

これによりQQ\subseteq Pという関係を満たすことを期待する. さらに,タスクに対する損失最小化の気持ちを入れるため,Qを生成するモデル(simplification network)は次の損失により学習される.

\displaystyle
\mathcal{L}_s(Q,P)=\mathcal{L}_{task}(Q)+\alpha\mathcal{L}_{simplify}(Q,P)

Project

Qはどうしても生成された点なのでPからのサンプルになることはできないため,少しでもQ\subseteq Pに近づけるため,soft projectionを行う.

やり方は非常に単純で\mathbf{q}\in Qの各点に対しPにおけるk nearest neighborを計算.それらk nearest neighborの点群の線形和\mathbf{r}=\sum_{i\in\mathcal{N}_P(\mathbf{q})}w_i\mathbf{p}_iで新たな点\mathbf{r}を生成する. 重みw_iは次のように計算する.

\displaystyle
w_i=\frac{\exp(-d^2_i/t^2)}{\sum_{j\in\mathcal{N}_P(\mathbf{q})}\exp(-d^2_j/t^2)}

d_i=\|\mathbf{q}-\mathbf{p}_i\|_2tは学習可能な温度パラメータ(二乗は非負にするため). これは温度が0に近づけば,最近傍の点を選ぶことになるため,極限においてはPの部分集合をサンプリングすることに等しい. そのため,soft projectionに関する損失は\mathcal{L}_{projection}=t^2となる.

まとめ

simplifyの部分は2019年のCVPRで提案されたものなので,本質的にはそっちの論文が重要.