单层神经网络叫感知机,故MLP是多层感知机。
1.MLP神经网络的结构和原理
理解神经网络主要包括两大内容,一是神经网络的结构,其次则是神经网络的训练和学习,其就好比我们的大脑结构是怎么构成的,而基于该组成我们又是怎样去学习和识别不同事物的,这次楼主主要讲解第一部分,而训练和学习则放到后续更新中。
神经网络其实是对生物神经元的模拟和简化,生物神经元由树突、细胞体、轴突等部分组成。树突是细胞体的输入端,其接受四周的神经冲动;轴突是细胞体的输出端,其发挥传递神经冲动给其他神经元的作用,生物神经元具有兴奋和抑制两种状态,当接受的刺激高于一定阈值时,则会进入兴奋状态并将神经冲动由轴突传出,反之则没有神经冲动。
我们基于生物神经元模型可得到多层感知器MLP的基本结构,最典型的MLP包括包括三层:输入层、隐层和输出层,MLP神经网络不同层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。
由此可知,神经网络主要有三个基本要素:权重、偏置和激活函数
权重:神经元之间的连接强度由权重表示,权重的大小表示可能性的大小
偏置:偏置的设置是为了正确分类样本,是模型中一个重要的参数,即保证通过输入算出的输出值不能随便激活。
激活函数:起非线性映射的作用,其可将神经元的输出幅度限制在一定范围内,一般限制在(-1~1)或(0~1)之间。最常用的激活函数是Sigmoid函数,其可将(-∞,+∞)的数映射到(0~1)的范围内。
激活函数还有tanh和ReLU等函数,tanh是Sigmoid函数的变形,tanh的均值是0,在实际应用中有比Sigmoid更好的效果;ReLU是近来比较流行的激活函数,当输入信号小于0时,输出为0;当输入信号大于0时,输出等于输入;具体采用哪种激活函数需视具体情况定。
MLP是一个多层感知机,可以由多个线性变换和激活函数组成,比如说一个两层的 MLP 可以表示为:
其中 W1和 W2是两个权重矩阵,b1和 b2 是两个偏置向量,ReLU是激活函数。
MLP的最经典例子就是数字识别,即我们随便给出一张上面写有数字的图片并作为输入,由它最终给出图片上的数字到底是几。
对于一张写有数字的图片,我们可将其分解为由28*28=784个像素点构成,每个像素点的值在(0~1)之间,其表示灰度值,值越大该像素点则越亮,越低则越暗,以此表达图片上的数字并将这786个像素点作为神经网络的输入。
具体的例子的过程在:神经网络1:多层感知器-MLP - 知乎 (zhihu.com)
这部分内容主要参考:神经网络1:多层感知器-MLP - 知乎 (zhihu.com)
在训练过程中,通过不断调整各层之间的权重和偏差,使得MLP可以从输入数据中学习到特征,最终得出一个预测结果。
MLP是一种广泛应用于分类、回归、聚类等机器学习任务中的模型,也是深度学习中最基础的模型之一。它的优点在于可以自动从数据中学习到特征,并可以处理非线性问题。
2.消息传递聚合方案中,MLP的作用(有待改进)
(1)在消息传递聚合方案中,MLP(多层感知器)通常用于对节点或边的特征进行转换(进行非线性的变换)和映射,以更好地表征节点或边的属性。
- 一个是,MLP在消息传递聚合方案中的作用是将不同类型的特征向量映射到相同的向量空间中,以便进行比较和聚合。这有助于提高图神经网络等模型的性能和表现力。
- 一个是,每个节点接收到来自邻居节点传递的信息后,可以将这些信息通过一个MLP进行聚合,从而得到一个表示节点状态的向量。这个向量可以被用来更新节点的特征表示,以便更好地进行下一轮迭代。
- 在这个过程中,MLP主要扮演了一个非线性映射的作用,可以帮助节点更好地捕获来自邻居节点的信息,并且可以处理非线性的关系。
例如,在图神经网络中,MLP可以用于对节点的特征向量进行映射,以便将它们与相邻节点的特征向量组合在一起,从而计算出节点的聚合表示。同样,MLP也可以用于对边的特征向量进行映射,以便将它们与连接的两个节点的特征向量组合在一起,从而计算出边的聚合表示。
总之,MLP在消息传递聚合方案中的作用是将不同类型的特征向量映射到相同的向量空间中,以便进行比较和聚合。这有助于提高图神经网络等模型的性能和表现力。
(2)在GIN(Graph Isomorphism Network)中,MLP被用于对节点的特征进行变换,以便更好地捕捉节点之间的相对关系。
具体来说,在GIN中,每个节点的特征向量首先被传递到一个多层感知器(MLP)中,这个MLP将原始的节点特征向量映射到一个新的表示空间中。然后,对节点进行聚合操作,将每个节点的特征与其相邻节点的特征进行组合,从而生成每个节点的新特征表示。这个聚合操作的输出又被送回到另一个MLP中,进行下一轮变换。
整个过程可以表示为以下公式:
MLP(t+1)表示第t+1层的MLP。
通过在每一轮中使用MLP对节点特征进行变换,GIN可以更好地捕捉图中节点之间的相对关系,提高模型的表现力和性能。