MLP-多层感知机

MLP-多层感知机

也称为 人工神经网络,是感知机的一个推广。主要解决的是线性不可分对于数据识别的弱点。比如异或运算
MLP除了输入层和输出层还有隐藏层,隐藏层可以是多层也可以是一层。我们以最简单的为例:

每一层都全链接到下一层,全链接这里每个值都与下一层的每个值连接,得到f(wi*xi+b),f为激活函数,激活函数主要作用是根据输出的计算可以发现,其实隐藏层的每个神经元是由输入特征x的线性组合构成。然而如果仅仅是线性组合,那么不管这个神经网络有多少层,结果都将与特征线性相关。于是我们在每个神经元之后,添加一个激活函数(Activation Function),改变线性规则。常用的激活函数有:sigmoid,relu等。

这样,从隐藏层到输入层我们得到了一个输入到输出的关系。在多层感知机的前向传播中,我们由于 特征xi与权重wi之间做矩阵运算,无论特征的位置如何排序,都不会影响到结果。在点云处理的领域,就解决了点云无序性的问题,pointnet 使用了max函数。

我们通过损失函数来判断模型的好坏,常用的损失函数有均方,这里的xi为真实值,yi为预测值,N为batch_size的损失函数的个数。
在这里插入图片描述

而在分类问题中我们经常使用的是交叉函数,y hat代表模型得到的预测值,y为真实值,也是我们训练时给出的值。
在这里插入图片描述

为了找处最好的模型,我们需要找到使损失函数最小的wi和bi,一般常用的优化方法有
BD算法 (反向传播)来训练模型。
BD算法主要分为两个部分,一部分是前面所说的前向传播,另一部分是反向传播,核心是链式法则。
根据BP算法来确定梯度,之后不断的对模型进行优化。得到最佳模型

你可能感兴趣的:(机器学习,人工智能,深度学习)