Shared MLP的作用是什么?

MLP是多层感知机的缩写,在三维点云处理网络中经常能看到一层Shared MLP,下面是我关于其作用的分析。
先从感知机的一层说起,其结构如下。
Output=f(Input×Weights+biases)
其中:
Input:N×C1
Weights:C1×C2
biases:N×1×C2
Output:N×C2
f(·):激活函数,逐元素映射
在这里插入图片描述
注:

  1. 有些地方Input维度是C1×N,这个问题不大,Input和Weights乘的时候调换一下位置,后面的矩阵各自转置就好。
  2. N指的是样本数量,感知器模型与N值无关,因为从输入到输出每一个样本的处理过程是完全一样的。
  3. 激活函数的作用是在输出与输入之间引入非线性因素。
    在这里插入图片描述
    Input 的每行有C1个Feature,感知机的一层能够实现将C1维转换为C2维(对应输入层和第1层的C1、C2个神经元)。这C2维中每一维都整合了原来全部C1维的信息,但这C2维中不同维度利用这些信息的侧重点不同。换一个形象的说法,相当于把原来整行的信息揉成一团,再揉了C2次,得到C2个不同形状的团,成为C2个新的特征。也就是说,MLP可以实现特征转换,信息重组。再者,由于激活函数会放大一些值,抑制一些值,因此MLP可以实现特征提取。
    以上说的是MLP的功能,而所谓shared mlp,只是在点云处理网络中的一个说法。强调对点云中的每一个点都采取相同的特征转换。
    我们对PointNet中的shared mlp和mlp进行对比。

由于点云中的每一个点不是独立的,因此不应看作独立的样本。在shared mlp中,输入为包含多点的点云,我们对每一个点乘以相同的权重,这就叫做shared weights。而**在mlp中,输入为单个向量,**因此不需要共享权重。
我查看了PointNet的网络源码,参考了这位博主的解析:点云处理网络中的Shared MLP

下面对其源码中shared mlp 的实现进行解析。证明其与前面介绍的MLP本质上相同。
在这里插入图片描述
PointNet使用二维卷积网络来实现Shared MLP。左上图为PointNet中第一个Shared MLP模块示意图。

网络首先将点云看成一幅Nx3的单通道图片输入,然后通过1x3x1的卷积核将这幅点云的宽度变为1。通过定义卷积核的数量,可以任意定义该层输出的通道数。对应到右侧的神经元结构图,就是将3个输入神经元的信息整合后传到下层神经元的过程,64个神经元对应64个卷积核。

再往后,只需要使用 1x1xOutputChannel 的卷积核,就可以对点云特征进行任意维度的转换。所需的参数数量,都是InputChannel×OutputChannel,其作用都是特征提取。
结论
Shared MLP 是点云处理网络中的一种说法,强调对点云中的每一个点都采取相同的操作。其本质上与普通MLP没什么不同,其在网络中的作用即为MLP的作用:特征转换、特征提取。

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值