一、什么是多层感知机?
多层感知机MLP,结构为:输入层——(1或n层)隐含层——输出层,层与层之间全连接(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。
多层感知机最底层是输入层,中间是隐藏层,最后是输出层。最简单的MLP只有一层隐含层hidden layer如下图:
二、为甚么要用多层感知机
单个感知器能够完成线性可分数据的分类问题,是一种最简单的可以“学习”的机器。但他无法解决非线性问题。比如下图中的XOR问题:即(1,1)(-1,-1)属于同一类,而(1,-1)(-1,1)属于第二类的问题,不能由单个感知器正确分类。
即在Minsky和Papert的专著《感知器》所分析的:感知器只能解决所谓一阶谓词逻辑问题:与(AND),或(OR)等,而不能解决异或(XOR)等高阶谓词逻辑问题。
多层感知机实现非线性分类问题
三、公式解读和学习过程
以3层MLP为例:
W为权重;b为偏置;下标表示层数;softmax即softmax回归;函数f是激活函数,可以是常用的sigmoid函数或者tanh函数。
输入层:如一个n维向量X
隐藏层:输出
输出层:隐藏层到输出层可以看成是一个多类别的逻辑回归
,
表示
因此,MLP所有的参数就是各个层之间的连接权重以及偏置,多层感知机的训练学习目的就是确定最佳的参数。
求解最佳的参数是一个最优化问题,解决最优化问题,最简单的就是梯度下降法了(SGD):首先随机初始化所有参数,然后迭代地训练,不断地计算梯度和更新参数,直到满足某个条件为止(比如误差足够小、迭代次数足够多时)。这个过程涉及到代价函数、规则化(Regularization)、学习速率(learning rate)、梯度计算等。