Shared MLP的作用是什么

MLP是多层感知机的简写,在三维点云处理网络中经常能看到一层Shared MLP .
个人理解,MLP的forward结构可以简单看成:
Output=Input×Weights+biases

其中:
Input:N×C1
Weights:C1×C2
biases:C2×1
Output:N×C2

Input一共N行,每行C1个Feature,MLP能够实现将C1维转换为C2维。这C2维中每一维都整合了原来全部C1维的信息,但不同维度对这些信息的侧重点不同。换一个形象的说法,经过了MLP,相当于把原来整行的信息揉成一团,再揉成了C2个不同形状,代表原来那行信息的C2个不同特征。

而所谓Shared,是指Input矩阵的每一行都利用相同的Weights的信息。这是MLP的自带属性。因为根据矩阵运算规则,Input矩阵中的每一行都会乘以Weight矩阵中的每一列。我们可以把Weight矩阵的一列看成一个工人,一共C2个工人,每个工人都接受Input行的C1个零件,但不同工人对零件的使用不同,造出不一样的模型,也就是得到C2个的特征。这样Input中的行无论怎么排序都不影响结果。在点云处理领域,就解决了点云的无序性问题。

除了上面的公式之外,MLP一般还会加上ReLU、Sigmoid等非线性的激活函数,以及Drop Out层等。

你可能感兴趣的:(Shared MLP的作用是什么)