Shared MLP的作用是什么

Shared MLP的作用是什么MLP是多层感知机的简写,在三维点云处理网络中经常能看到一层SharedMLP.MLP的结构可以简单看成:Output=Input×Weights+biases其中:Input:N×C1Weights:C1×C2biases:C2×1Output:N×C2Input一共N行,每行C1个Feature,MLP能够实现将C1维转换为C2维。这C2维中每一维都整合了原来全部C1维的信…

大家好,又见面了,我是你们的朋友全栈君。

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

注:

  • 有些地方Input维度是C1×N,这个问题不大,Input和Weights乘的时候调换一下位置,后面的矩阵各自转置就好。
  • N指的是样本数量,感知器模型与N值无关,因为从输入到输出每一个样本的处理过程是完全一样的。
  • 激活函数的作用是在输出与输入之间引入非线性因素。

在这里插入图片描述
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的作用:特征转换、特征提取。
——————————————————

以上为2021/03/27更新

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151707.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab函数之间传递变量_matlab中value函数

    matlab函数之间传递变量_matlab中value函数imfinfo有关图形文件的信息在页面中全部折叠句法info= imfinfo(filename)info= imfinfo(filename,fmt)info= imfinfo(URL)描述例info = imfinfo(filename)返回一个

    2022年10月5日
    3
  • 如何查看linux操作系统版本号_如何查看centos版本

    如何查看linux操作系统版本号_如何查看centos版本Linux系统自问世后,产生了各种分支,目前主流的操作系统版本有reahat,Centos,Ubuntu,debian,Suselinux等,不同操作系统命令上也稍有区别,那么在linux主机上,我们怎么查看操作系统的版本号呢?工具/原料 xshell6 Centos7 方法/步骤 方式一:通过命令cat/etc/redhat-release,主要针对redhat系列,redhat,centos都可以通过此命令查看。 方式二:如下方法即可查看操作系统版本,

    2022年9月15日
    2
  • maven详细教程_maven的安装与配置

    maven详细教程_maven的安装与配置学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)2007-08-2814:01:04标签:maven职场休闲一、前言早就知道maven在java项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java的大腕,大多都是站在掌握了一定maven基础的角度上进行介绍,让我这初学者看的云里雾里不…

    2025年10月7日
    3
  • matlab灰度化处理函数_matlab中imfinfo的用法

    matlab灰度化处理函数_matlab中imfinfo的用法Matlabinfl()依次使用函数IM=imreconstruct(marker,mask)有关算法的详细信息,请参见Soille,P.,《形态图像分析:原理和应用》,SpringerVerlag,1999年,第208-209页。第6.3.7节“填充孔”部分importnumpyasnpfromskimage.morphologyimportreconstructionimpor…

    2022年9月13日
    2
  • worldpress怎么增加登录注册按钮

    worldpress怎么增加登录注册按钮1 首先登上你的 worldpress 后台 2 搜索 wechatsocial 安装在插件里点击启用 或安装 一路点击即可一直点蓝色的按钮即可其他的设置看你的需求了 3 开启注册按钮

    2025年9月15日
    2
  • Oracle 11g Rac搭建「建议收藏」

    Oracle 11g Rac搭建「建议收藏」Oracle11gRac搭建(RedHat6.9+Oracle11.2.0.4)系统安装规划网络规划用户组规划存储规划配置yum源,网络规划,hosts文件等(双节点执行)如果是64bit,需要检查以下的Packages。以下重复包名称的部分是64bit,注明32bit的是32bitpackages。如果是32bitOS,那么重复包名的只需要32…

    2022年9月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号