深度学习 – 多层神经网络

单层网络

先回顾一下单层网络,即一个神经元(自适应线性单元),如下图所示。

图

可以使用梯度下降法训练模型,确定权重与偏置。

多层神经网络历史

深度学习涉及训练多层神经网络,也称为深度神经网络。

在20世纪50年代Rosenblatt感知器被开发出来之后,直到1986年hinton博士和他的同事开发了反向传播算法来训练多层神经网络,人们才重新对神经网络产生了兴趣。

现在,深度神经网络是一个热门技术,许多大公司,如百度,阿里,腾讯,谷歌,Facebook和微软,都在深度神经网络项目上投入巨资。

多层神经网络

神经网络其实就是按照一定规则连接起来的多个神经元。

图

上图展示了一个全连接(full connected, FC)神经网络,它的规则包括:

  • 神经元按照层来布局。最左边的输入层,负责接收输入数据;最右边的输出层,负责输出数据。
  • 中间是隐藏层,对于外部不可见。隐藏层可以包含多层,大于一层的就被称为深度神经网络,层次越多数据处理能力越强。
  • 同一层的神经元之间没有连接。
  • 前后两层的所有神经元相连(这就是full connected的含义),前层神经元的输出就是后层神经元的输入。
  • 每个连接都有一个权值。

上面这些规则定义了全连接神经网络的结构。事实上还存在很多其它结构的神经网络,比如卷积神经网络(CNN)、循环神经网络(RNN),它们都具有不同的连接规则。

多层感知器(MLP)

一个完全连接的多层神经网络被称为多层感知器(MLP),或深度前馈网络(deepfeedforwardnetwork)、前馈神经网络(feedforward neural network),是典型的深度学习模型。

层数和每层的神经元数被称为神经网络的超参数,由开发人员根据经验预先设置。

权重的调整训练还是通过梯度下降法来进行,但梯度的求取使用反向传播法。

多层神经网络的训练过程

多层神经网络的训练过程,按如下步骤进行:

  1. 从输入层开始,将数据经过神经网络传输到输出层,这一步是前向传播。
  2. 根据输出,计算误差(预测结果和已知结果之间的差异),得到代价函数。利用梯度下降法最小化误差。
  3. 梯度下降法需要计算每个权重的梯度,使用反向传播算法计算梯度,根据梯度调整权重值。

重复以上3个步骤训练权重。

与单层网络的区别

从大的方面来说,两者都是通过梯度下降法,求取代价函数的最小值,来训练权重。

区别在于,多层神经网络引入了反向传播算法来计算梯度。

单层网络中,权重的梯度计算是直接求代价函数对某个权重的偏导数,单层网络的代价函数相对简单,可以这样做。

但是多层神经网络中,越靠近输入层的权重,其代价函数越复杂,计算量非常大。而反向传播算法是一种高效简单的梯度算法。



浙ICP备17015664号联系我们网站地图  
@2019 qikegu.com 版权所有,禁止转载