深度学习基础--不同网络种类--多层感知机MLP

多层感知机MLP

  BP算法的方面掀起了基于统计模型的机器学习热潮,那时候人工神经网络被叫做“多层感知机”
  可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。对,这货就是我们现在所说的神经网络NN。多层感知机给我们带来的启示是,神经网络的层数直接决定了它对现实的刻画能力——利用每层更少的神经元拟合更加复杂的函数。

问题与解决

  1)随着神经网络层数的加深,优化函数越来越容易陷入局部最优解,并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。
  解决:预训练方法缓解了局部最优解问题,将隐含层推动到了7层,由此揭开了深度学习的热潮。

  2)另一个不可忽略的问题是随着网络层数增加,“梯度消失”现象更加严重。具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。
  解决:为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。值得一提的是,今年出现的高速公路网络(highway network)和深度残差学习(deep residual learning)进一步避免了梯度消失,网络层数达到了前所未有的一百多层。

MLP与CNN的区别

  经典的多层感知机(Multi-Layer Perceptron)形式上是全连接(fully-connected)的邻接网络(adjacent network)。
  最大的区别是Local receptive fields。
  全连接的多层感知机中,输入视为(或者需转化为)一个列向量。而在卷积神经网络中,以手写字符识别为例,输入不再 reshape 为 (28*28, 1) 的列向量,而是作为 28×28 的像素灰度矩阵。

猜你喜欢

转载自blog.csdn.net/wydbyxr/article/details/83859699