深度学习之反向传播算法

目录

神经元与感知器

神经网络

神经网络的训练


神经元与感知器

两者本质上是一致的,但感知器的**函数是阶跃函数,神经元的**函数往往选择Sigmoid函数或tanh函数。如下图所示:

深度学习之反向传播算法

Sigmoid函数的定义为:

深度学习之反向传播算法

其导数为:

深度学习之反向传播算法

sigmoid函数的导数可以用sigmoid函数自身来表示。这样,计算出sigmoid函数的值,计算它的导数的值就非常方便。

神经网络

深度学习之反向传播算法

神经网络其实就是按照一定规则连接起来的多个神经元。上图是一个全连接(full connected, FC)神经网络,由上图可知,它有以下特征:

  • 神经元按来布局。最左边的层叫做输入层,负责接收输入数据;最右边的层叫输出层,我们可以从这层获取神经网络输出数据。输入层和输出层之间的层叫做隐藏层,因为它们对于外部来说是不可见的。
  • 同一层的神经元之间没有连接。
  • 第N层的每个神经元和第N-1层的所有神经元相连(这就是FC的含义),第N-1层神经元的输出就是第N层神经元的输入。
  • 每个连接都有一个权值

通过矩阵的方式来表示神经网络的计算:

由图所示,隐藏层的4个节点的计算依次为:

深度学习之反向传播算法

将输入和隐藏节点的权值用向量表示:

深度学习之反向传播算法

所以:

深度学习之反向传播算法

进一步,写成矩阵的方式:

 深度学习之反向传播算法

所以,

深度学习之反向传播算法

深度学习之反向传播算法是**函数,在本例中是Sigmoid函数;深度学习之反向传播算法是某一层的权重矩阵;深度学习之反向传播算法是某层的输入向量;深度学习之反向传播算法是某层的输出向量。

上式说明神经网络的每一层的作用实际上就是先将输入向量左乘一个数组进行线性变换,得到一个新的向量,然后再对这个向量逐元素应用一个**函数。

对于多层网络

深度学习之反向传播算法

每一层的输出向量的计算可以表示为:

深度学习之反向传播算法

神经网络的训练

反向传播算法

深度学习之反向传播算法

深度学习之反向传播算法

公式推导:

      深度学习之反向传播算法

深度学习之反向传播算法

参考:https://www.zybuluo.com/hanbingtao/note/476663#an1