TensorFlow与自然语言处理应用
上QQ阅读APP看书,第一时间看更新

2.5 两层神经网络(多层感知器)

2.5.1 简述

两层神经网络是本文的重点,因为正是从两层结构为起点神经网络才开始了大范围的推广与使用。

大家知道,单层神经网络无法解决异或问题,但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。不过,两层神经网络的计算则是一个问题,因为没有一个较好的解法。

1986年,Rumelhar和Hinton等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量的问题,从而带动了业界使用两层神经网络研究的热潮。目前,大量讲解神经网络的教材之内容基本都是以介绍两层(带一个隐藏层)神经网络为重点。

当时的Hinton还很年轻,30年以后,正是他重新定义了神经网络,带来了神经网络复苏的又一波发展浪潮。

2.5.2 两层神经网络结构

两层神经网络除了包含一个输入层和一个输出层以外,还增加了一个中间层。此时,中间层和输出层都是计算层。我们扩展上节的单层神经网络,在右边新加一个层次。

现在,我们的权重值矩阵增加到了两个,我们用上标来区分不同层次之间的变量。

例如,代表第y层中的第x个节点。z1,z2变成了。图2-9给出了的计算公式。

图2-9 两层神经网络(中间层计算)

计算最终输出z的方式是利用了中间层的和第二个权值矩阵计算得到的,如图2-10所示。

图2-10 两层神经网络(输出层计算)

假设我们的预测目标是一个向量,那么与前面类似,只需要在“输出层”再增加节点即可。