单层网络
先回顾一下单层网络,即一个神经元(自适应线性单元),如下图所示。
可以使用梯度下降法训练模型,确定权重与偏置。
多层神经网络历史
深度学习涉及训练多层神经网络,也称为深度神经网络。
在20世纪50年代Rosenblatt感知器被开发出来之后,直到1986年hinton博士和他的同事开发了反向传播算法来训练多层神经网络,人们才重新对神经网络产生了兴趣。
现在,深度神经网络是一个热门技术,许多大公司,如百度,阿里,腾讯,谷歌,Facebook和微软,都在深度神经网络项目上投入巨资。
多层神经网络
神经网络其实就是按照一定规则连接起来的多个神经元。
上图展示了一个全连接(full connected, FC)神经网络,它的规则包括:
- 神经元按照层来布局。最左边的输入层,负责接收输入数据;最右边的输出层,负责输出数据。
- 中间是隐藏层,对于外部不可见。隐藏层可以包含多层,大于一层的就被称为深度神经网络,层次越多数据处理能力越强。
- 同一层的神经元之间没有连接。
- 前后两层的所有神经元相连(这就是full connected的含义),前层神经元的输出就是后层神经元的输入。
- 每个连接都有一个权值。
上面这些规则定义了全连接神经网络的结构。事实上还存在很多其它结构的神经网络,比如卷积神经网络(CNN)、循环神经网络(RNN),它们都具有不同的连接规则。
多层感知器(MLP)
一个完全连接的多层神经网络被称为多层感知器(MLP),或深度前馈网络(deepfeedforwardnetwork)、前馈神经网络(feedforward neural network),是典型的深度学习模型。
层数和每层的神经元数被称为神经网络的超参数,由开发人员根据经验预先设置。
权重的调整训练还是通过梯度下降法来进行,但梯度的求取使用反向传播法。
多层神经网络的训练过程
多层神经网络的训练过程,按如下步骤进行:
- 从输入层开始,将数据经过神经网络传输到输出层,这一步是前向传播。
- 根据输出,计算误差(预测结果和已知结果之间的差异),得到代价函数。利用梯度下降法最小化误差。
- 梯度下降法需要计算每个权重的梯度,使用反向传播算法计算梯度,根据梯度调整权重值。
重复以上3个步骤训练权重。
与单层网络的区别
从大的方面来说,两者都是通过梯度下降法,求取代价函数的最小值,来训练权重。
区别在于,多层神经网络引入了反向传播算法来计算梯度。
单层网络中,权重的梯度计算是直接求代价函数对某个权重的偏导数,单层网络的代价函数相对简单,可以这样做。
但是多层神经网络中,越靠近输入层的权重,其代价函数越复杂,计算量非常大。而反向传播算法是一种高效简单的梯度算法。