一、什么是多层感知机?

多层感知机MLP,结构为:输入层——(1或n层)隐含层——输出层,层与层之间全连接(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。

多层感知机最底层是输入层,中间是隐藏层,最后是输出层。最简单的MLP只有一层隐含层hidden layer如下图:

多层感知器与BP神经网络 多层感知机网络_机器学习

二、为甚么要用多层感知机

单个感知器能够完成线性可分数据的分类问题,是一种最简单的可以“学习”的机器。但他无法解决非线性问题。比如下图中的XOR问题:即(1,1)(-1,-1)属于同一类,而(1,-1)(-1,1)属于第二类的问题,不能由单个感知器正确分类。

多层感知器与BP神经网络 多层感知机网络_多层感知器与BP神经网络_02

即在Minsky和Papert的专著《感知器》所分析的:感知器只能解决所谓一阶谓词逻辑问题:与(AND),或(OR)等,而不能解决异或(XOR)等高阶谓词逻辑问题。

多层感知机实现非线性分类问题

三、公式解读和学习过程

以3层MLP为例:

多层感知器与BP神经网络 多层感知机网络_最优化_03

W为权重;b为偏置;下标表示层数;softmax即softmax回归;函数f是激活函数,可以是常用的sigmoid函数或者tanh函数。

输入层:如一个n维向量X

隐藏层:输出

多层感知器与BP神经网络 多层感知机网络_感知器_04

输出层:隐藏层到输出层可以看成是一个多类别的逻辑回归

多层感知器与BP神经网络 多层感知机网络_多层感知器与BP神经网络_05


多层感知器与BP神经网络 多层感知机网络_多层感知器与BP神经网络_06

表示

多层感知器与BP神经网络 多层感知机网络_感知器_04

因此,MLP所有的参数就是各个层之间的连接权重以及偏置

多层感知器与BP神经网络 多层感知机网络_多层感知器与BP神经网络_08

,多层感知机的训练学习目的就是确定最佳的参数。

 求解最佳的参数是一个最优化问题,解决最优化问题,最简单的就是梯度下降法了(SGD):首先随机初始化所有参数,然后迭代地训练,不断地计算梯度和更新参数,直到满足某个条件为止(比如误差足够小、迭代次数足够多时)。这个过程涉及到代价函数、规则化(Regularization)、学习速率(learning rate)、梯度计算等。

 

多层感知器与BP神经网络 多层感知机网络_最优化_09