MLP理解

一直不理解MLP的作用,今天细看了下几篇博客,记录下自己心得:

MLP实质

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层等。

参考博客:
1,[https://blog.csdn.net/qq_29762941/article/details/93980656?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase)]
2,(https://www.cnblogs.com/subconscious/p/5058741.html#fourth)
3,https://blog.csdn.net/Passersby__/article/details/104941591

你可能感兴趣的:(机器学习)