感知机

单层感知机

1958 年,罗森布拉特( Roseblatt )提出了感知器,与 M-P 模型需 要人为确定参数不同,感知器能够通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。

下面给出感知器模型的训练过程

MLP多层感知器pytorch代码例子 多层感知器模型第一层_机器学习

多层感知机

单层感知器只能解决线性可分问题,而不能解决线性不可分问题;为了解决线性不可分问题,我们需要使用多层感知器。

MLP多层感知器pytorch代码例子 多层感知器模型第一层_激活函数_02

多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。

以三层结构的多层感知器为例,它由输入层、中间层及输出层组成

与M-P模型相同,中间层的感知器通过权重与输入层的各单元相连接,通过阈值函数计算中间层各单元的输出值
中间层与输出层之间同样是通过权重相连接

MLP多层感知器pytorch代码例子 多层感知器模型第一层_深度学习_03

BP算法

BP算法的基本过程

前向传播计算:由输入层经过隐含层向输出层的计算网络输出
误差反向逐层传递:网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层向输入层传递
由“前向传播计算”与“误差反向逐层传递”的反复进行的网络训练 过程
BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信 号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要使用梯度下降法:

激活函数

通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数:

  • M-P 模型中使用阶跃函数作为激活函数,只能输出 0或 1,不连续所以 不可导
  • 为了使误差能够传播,鲁梅尔哈特等人提出使用可导函数Sigmoid作为激活函数

MLP多层感知器pytorch代码例子 多层感知器模型第一层_感知器_04

MLP多层感知器pytorch代码例子 多层感知器模型第一层_机器学习_05

其他常见的激活函数:ReLU (Rectified Linear Unit,修正线性单元)和tanh等

MLP多层感知器pytorch代码例子 多层感知器模型第一层_机器学习_06