Bootstrap

PointNet的证明过程最全详解

PointNet补充材料中对网络构造的证明过程详解

  1. 要看懂作者的证明过程,首先需要知道连续函数的定义。
    ∀ \forall ε > 0 \varepsilon>0 ε>0,总 ∃ \exists δ > 0 \delta >0 δ>0如果 ∣ x − a ∣ < δ \left | x-a \right |<\delta xa<δ,则有 ∣ f ( x ) − f ( a ) ) ) ∣ < ε \left | f(x)-f(a))) \right |<\varepsilon f(x)f(a)))<ε

  2. 接下来看PointNet中相关证明的理解:
    f是一个连续的集合函数,它的输入应该为一个点云集合,输出可以是用于分类的多个得分数,f可以理解为一个多输入多输出的函数。f其实就是我们要完成识别或分割任务需要找到的函数。
    文中指出PointNet网络结构对连续函数具有普遍的近似能力,其实就是PointNet可以近似实现f这个多输入多输出函数,类比上面提到的函数连续的等价条件,在点集S上有:
    ∀ \forall ε > 0 \varepsilon>0 ε>0 ∃ \exists δ > 0 \delta >0 δ>0如果 d h ( S , S ′ ) < δ , S , S ′ ϵ χ , ( χ d_{h}(S,S^{'})<\delta,S,S^{'}\epsilon\chi,(\chi dh(S,S)<δ,S,Sϵχ,(χ视为高度抽象、归一化的全局特征向量集合,后面会说到为什么是这样的定义, d h d_{h} dh视为霍斯多夫距离),那么:
    ∣ f ( s ) − f ( s ′ ) ) ) ∣ < ε \left | f(s)-f(s^{'}))) \right |<\varepsilon f(s)f(s)))<ε
    到这里因为f是连续集合函数,上式也是理所当然的,那么作者在补充材料里究竟在证明什么?
    这里先给出结论(后面皆以PointNet分类任务为准):作者证明了通过自己搭建的网络结构对点云中的n个点分别进行了升维操作、池化,获得了一个新的向量(或者点集)就是上面提到的 S ′ S^{'} S,再对 S ′ S^{'} S这个向量通过卷积(也就是去近似后文提到的函数 γ \gamma γ)获得用于分类的多个得分数,完成分类任务。
    这里的 S ′ S^{'} S是需要证明和S之间满足 d h ( S , S ′ ) < δ d_{h}(S,S^{'})<\delta dh(S,S)<δ,其中 δ > 0 \delta>0 δ>0,这里是作者的证明中最想说明的东西,因为说明了这一点,就证明了分类网络中前半部分是准确提取出来了原始点云数据中蕴含的真正的全局特征信息。

  3. 下面给出我自己理解的证明过程:
    首先要明确一些基本概念性的东西:点云中蕴含着表示物体类别的全局特征信息,这个特征可以包含坐标、RGB值、反射率等很多局部的特征,一个点的维度越多就越能更全面地对物体进行理解。
    论文中可以看到 χ = { S : S ⫅ [ 0 , 1 ] m a n d ∣ S ∣ = n } \chi=\left \{ S:S\subseteqq [0,1]^{m}and \left | S \right |=n \right \} χ={S:S[0,1]mandS=n},作者是把全局特征单位化为0到1之间,全局特征是由K个局部特征构成的,那么将[0,1]均分为K份,每一个间隔即[ k − 1 K , k K \frac{k-1}{K},\frac{k}{K} Kk1,Kk],(k=1,2,3 ⋯ \cdots K)代表一种局部特征空间,每个局部特征中的取值也同样归一化为0到1,分别对应区间端点,即 k − 1 K \frac{k-1}{K} Kk1对应0, k K \frac{k}{K} Kk对应1,点云中每一个点经过多层卷积升维后,每一个点应该对应有K个不同维度的值,这K个值应该分别对应K个局部特征空间,这里用 h k ( x ) = e − d ( x , [ k − 1 K , k K ] ) ) h_{k}(x)=e^{-d(x,[\frac{k-1}{K},\frac{k}{K}]))} hk(x)=ed(x,[Kk1,Kk]))来指示点x的第k维数据与第k个特征空间的霍斯多夫距离,也映射为0到1,(k=1,2,3 ⋯ \cdots K,距离越小,指示值越大,即更接近1), V k ( x 1 , x 2 , ⋯ x n ) = m a x { h k ( x 1 ) , h k ( x 2 ) ⋯ h k ( x n ) } V_{k}(x_{1},x_{2},\cdots x_{n})=max\left \{ h_{k}(x_{1}),h_{k}(x_{2})\cdots h_{k}(x_{n}) \right \} Vk(x1,x2,xn)=max{hk(x1),hk(x2)hk(xn)}(k=1,2,3 ⋯ \cdots K,原文取j,都一样便于理解取k)代表第k个特征空间中,点云中所有点最接近该特征空间的指示值,这里max函数就对应网络中的Maxpooling层,这也是该网络解决点云无序性所采用的的办法,后文称之为均衡函数。那么 V = [ v 1 , v 2 , ⋯ v k ] V=[v_{1},v_{2},\cdots v_{k}] V=[v1,v2,vk]就代表全局特征向量。
    文中指出h是由一个多层感知机网络构成,我们知道神经网络可以近似任意连续函数,这里多层感知机就是在近似K个 h k ( x n ) h_{k}(x_{n}) hk(xn)函数,(k=1,2,3 ⋯ \cdots K),h函数也将原本的n个三维数据映射到n个K维数据。
    下面作者引入了一个函数 τ ( v ) = { k − 1 k : v k ≤ 1 } ( 0 < v k ≤ 1 ) \tau (v)=\left \{ \frac{k-1}{k}:v_{k}\leq 1 \right \}(0< v_{k}\leq 1) τ(v)={kk1:vk1}(0<vk1)(原文是大于等于1,我认为是小于等于1),这个函数的作用是将 V = [ v 1 , v 1 , ⋯ v k ] V=[v_{1},v_{1},\cdots v_{k}] V=[v1,v1,vk]中的每一个元素都映射为其所属局部特征空间的左端点值即 τ ( v ) = [ 0 , 1 K , 2 K , ⋯ K − 1 K ] \tau (v)=[0,\frac{1}{K},\frac{2}{K},\cdots\frac{K-1}{K}] τ(v)=[0,K1,K2,KK1],当K越大, τ ( v ) \tau (v) τ(v)这个向量的维数也就越大,也就更能铺满[0,1]这个区间,而 S ϵ χ = { S : S ⫅ [ 0 , 1 ] m a n d ∣ S ∣ = n } S\epsilon \chi=\left \{ S:S\subseteqq [0,1]^{m}and \left | S \right |=n \right \} Sϵχ={S:S[0,1]mandS=n},S是原始点集真实的全局特征映射,本来就应该铺满[0,1]区间,这也就是说 τ ( V ) = S ~ \tau (V)=\tilde{S} τ(V)=S~,使得 d h ( S , S ′ ) < δ d_{h}(S,S^{'})<\delta dh(S,S)<δ
    到这里证明完毕。

  4. 作者证明了网络从开始到Maxpooling层的设置都是合理的,因为 d h ( S , S ′ ) < δ d_{h}(S,S^{'})<\delta dh(S,S)<δ,此时得到的K维向量可以无限逼近于原始点集的全局特征映射,条件是K足够大。从这里看,作者似乎做了这么多卷积又回到了刚开始,这样做的意义何在?
    我认为PointNet中从开始到Maxpooling的这部分网络可以全部看做一种数据编码过程,证明过程说明了数据的维度虽然变化,但仍与原始点集中蕴含一样的信息,即获得了原始数据中蕴含的那种高度抽象的可以用于分类任务的全局特征,后半部分网络再对这个全局特征进行全连接,完成识别任务。
    由前文可知,下面式子必然成立:
    ∣ f ( τ ( V ( x 1 , x 2 , ⋯ x n ) ) ) − f ( S ) ∣ = ∣ f ( S ~ ) − f ( S ) ∣ < ε \left | f(\tau (V(x_{1},x_{2},\cdots x_{n})))-f(S) \right |=\left | f(\tilde{S})-f(S) \right |< \varepsilon f(τ(V(x1,x2,xn)))f(S)=f(S~)f(S)<ε
    而f则是由maxpooling后的网络近似出的, f ( τ ( V ) f(\tau(V) f(τ(V)中f和 τ \tau τ都是由两个可以用卷积网络逼近的函数,复合后的函数记为 γ \gamma γ,则变为 γ ( V ) \gamma(V) γ(V),进一步展开得 γ ( m a x { h k ( x 1 ) , h k ( x 2 ) ⋯ h k ( x n ) } ) \gamma(max\left \{ h_{k}(x_{1}),h_{k}(x_{2})\cdots h_{k}(x_{n}) \right \}) γ(max{hk(x1),hk(x2)hk(xn)})即( γ o    m a x ) { h k ( x 1 ) , h k ( x 2 ) ⋯ h k ( x n ) } \gamma o\; max)\left \{ h_{k}(x_{1}),h_{k}(x_{2})\cdots h_{k}(x_{n}) \right \} γomax){hk(x1),hk(x2)hk(xn)}, ( γ o    m a x ) (\gamma o\; max) (γomax)称为均衡函数。

    欢迎大家分享转载,注明出处即可

;