老饼讲解:一步一步上手深度学习
好了,这节开始我们来玩MLP吧!
MLP(MultiLayer Perceptron)多层感知机是一种前馈型神经网络,三层MLP是其中应用较广的形式,这节我们先来玩玩三层MLP~
下面我们先来看看三层MLP的结构长什么样。
先来看一个三层的MLP模型结构,它也称为单隐层MLP。

如图所示,它包含了输入层、隐层和输出层,这里只有一个隐层,所以模型共有三层。
它是一种前馈模型,即逐层向前计算,最后得到输出结果。它层与层之间各个神经元都由权重w连接,并且每个神经元都有阈值b与激活函数,具体结合下面的运算例子来理解它的结构吧!
设模型中隐层的权重W、隐层的阈值b、输出层权重、输出层的阈值分别为:
代表第j个隐节点与第i个输入的连接权重,代表第j个隐节点的阈值
代表第j个输出节点与第i个隐节点的连接权重,代表第j个输出节点的阈值
不妨设现在的输入,隐层使用的是sigmoid激活函数,则模型的隐层输出值如下:
设输出层的激活函数为恒等函数(也可以认为它没有激活函数),则输出层的输出值(也就是模型最终的输出值)为:
好了,赶紧来总结一下
其实MLP就是一个前馈的模型,逐步向前计算,它每个节点的计算如下:

如图,每个节点接收到的值为前层各个节点的加权和,加上它自身的阈值,再经过激活函数进行激活后就是它的输出值了。
从生物意义来说,就是神经元层层连接,每个神经元接收了前层神经元的输入,输入值取决于输入神经元的值与连接权重。而神经元自身有一个阈值,经过激活后,就传递给与它连接的下一层神经元了。最终输出层的神经元就是模型的输出值。
我们知道,MLP的每个节点都有自己的激活函数,一般来说,同一层的神经元的激活函数一般都是相同的。
其中,隐层的激活函数一般取为sigmoid或tanh:

从公式或图像都可以看到,tanh函数其实就是sigmoid函数平移到y轴中心后,再拉伸到-1,1之间。它们在本质上没有太大的区别,刚提出时一般用sigmoid函数,但后来就一般使用tanh函数了。我们这里先不急,等我们理解深入一些之后,再来探讨隐层为啥取这两个家伙作为激活函数,以及为什么偏好使用tanh函数。
输出层的激活函数则取为恒等函数y=x或sigmoid:

输出层激活函数取为恒等函数y=x时,其实就跟没有激活函数一样,之所以要多此一举搞个恒等函数,这是为了保持每个神经元都有激活函数、也就是为了保持结构的一致性。
输出层激活函数取为恒等函数identity,目的是为了不限制它的输出范围,而同理的,取为sgimoid则是为了限制它的取值范围,所以就看目标输出是不是有范围限制,如果有,激活函数就取sigmoid函数,如果没,就取恒等函数。
当然,特别地,应用于多分类时,也可以设为softmax函数,这时就不再是神经元的激活函数了,而是整层的激活函数,因为softmax函数的计算依赖于层内所有神经元。
好了,三层MLP有什么用呢?一般我们可以用它来学习x和y之间的关系。
假设,我现在不知道x和y是什么关系,那么我可以采集一些x和y的样本回来让MLP学习这一个关系。

我们只需通过调整w,b,来使得模型的输出值y与样本真实值y尽量一致就可以了。例如数值预测,我们一般以MSE(最小均方误差)作为损失函数,训练模型的w,b就可以了。在训练好模型之后,也就称模型学习到x,y的关系了,就可以将模型投入新样本的预测。
简单来说,就是MLP神经网络可以用于学习样本背后的关系。
三层MLP最大的特色就是它具有学习任意未知关系的能力!这个已经被证明了,我们先不急着讲为什么,就先知道它的这个特色好了。
比较特别的是,一般的模型都是具有业务背景意义的,例如逻辑回归模型,有信息学作为背景意义解释,softmax回归,则有热力学作为背景解释。这些模型只要符合x、y的关系假设,经过数据训练就能得到x和y具体可解释的关系,例如线性回归,假设x和y是线性关系,通过数据确定系数后,就知道x变化1单位时y相应线性变化多少。

而MLP则是盲盒拟合,它完全不知道x和y是个啥关系,然后纯粹去靠拟合数据点来得到这一关系。这与传统一些模型不同,传统一些模型仅仅是为了确定关系中的参数,例如线性回归,x与y已经知道是线性关系,只是系数不知道而已,用数据来求得模型的系数。而MLP则是任何关系都不知道,纯粹通过调整参数来拟合数据点,从而确定x和y的关系。因此,MLP也称为黑箱的、在业务上是不可解释的。
这节简单了解了三层MLP的模型结构,以及它的用途。
总的来说,它由输入层、隐层、输出层构成,输出值为:
它的用途和特点是:
1.MLP可以学习任意关系。
2.MLP面向的是黑箱学习,所学到的关系在业务上是不可解释的。
评论