人工智能TensorFlow工作笔记011---前向传播算法简介

 技术交流QQ群【JAVA,C,.NET,BigData,AI】:170933152  

# 在3.4.1 节中简单地介绍了神经网络可以将输入的特征向量经过层层推导得到最后的
# 输出,并通过这些输出解决分类或者回归问题。那么神经网络的输出是如何得到的?在这
# 一节中将详细介绍解决这个问题的算法一一前向传播算法。不同的神经网络结构前向传播的
# 方式也不一样,本节将介绍最简单的全连接网络结构的前向传播算法,并且将展示如何通
# 过TensorFlow 实现这个算法。为了介绍神经网络的前向传播算法, 需要先了解神经元的结构。
# 神经元是构成一个神经网络的最小单元,图3-4 显示了一个最简单的神经元结构。
# 从图3-4 可以看出, 一个神经元有多个输入和一个输出。每个神经元的输入既可以是
# 其他神经元的输出,也可以是整个神经网络的输入。所谓神经网络的结构指的就是不同神
# 经元之间的连接结构。如图3-4 所示, 一个最简单的神经元结构的输出就是所有输入的加
# 权和① ,而不同输入的权重就是神经元的参数。神经网络的优化过程就是优化神经元中参数
# 取值的过程,在后面的章节中将具体介绍。本节将重点介绍神经网络的前向传播过程。
# 图3-5 给出了一个简单的判断零件是否合格的三层全连接神经网络。之所以称之为全连接
# 神经网络是因为相邻两层之间任意两个节点之间都有连接。这也是为了将这样的网络结构
# 和后面章节中将要介绍的卷积层、LSTM 结构区分开来。图3-5 中除输入层之外的所有节
# 点都代表了一个神经元的结构。本节将通过这个样例来解释前向传播的整个过程。

 

人工智能TensorFlow工作笔记011---前向传播算法简介

 

人工智能TensorFlow工作笔记011---前向传播算法简介

# 计算神经网络的前向传播结果需要三部分信息。第一个部分是神经网络的输入,这个
# 输入就是从实体中提取的特征向量。比如在图3 -5 中有两个输入, 一个是零件的长度Xt ’
# 一个是零件的质量X2 。第二个部分为神经网络的连接结构。神经网络是由神经元构成的,
# 神经网络的结构给出不同神经元之间输入输出的连接关系。神经网络中的神经元也可以称
# 之为节点, 在本书之后的章节中将统一使用节点来指代神经网络中的神经元。在图3-5 中,
# αII 节点有两个输入,他们分别是X t 和X2 的输出。而a ,, 的输出则是节点y 的输入。最后一
# 个部分是每个神经元中的参数。在图3-5 中用W 来表示神经元中的参数。W 的上标表明了
# 神经网络的层数,比如以I )表示第一层节点的参数,而以2 )表示第二层节点的参数。W 的
# 下标表明了连接节点编号,比如W 1 '.~>表示连接X 1 和α 12 节点的边上的权重。如何优化每一
# 条边的权重将在下面的章节中介绍,这一节假设这些权重是己知的。给定神经网络的输入、
# 神经网络的结构以及边上权重,就可以通过前向传播算法来计算出神经网络的输出。图3-6
# 展示了这个神经网络前向传播的过程。

人工智能TensorFlow工作笔记011---前向传播算法简介

# 图3-6 给出了输入层的取值x, =0 .7 和X2=0.9 。从输入层开始一层一层地使用向前传播算
# 法。首先隐藏层中有三个节点, 每一个节点的取值都是输入层取值的加权和。下面给出了
# a ,, 取值的详细计算过程:
# a11 = w8>x1+W2(1?x2=0.7 × 0.2 + 0 .9 × 0 .3 = 0 . 14 + 0 .27 = 0.41

人工智能TensorFlow工作笔记011---前向传播算法简介

# 其中tf.matmul 实现了矩阵乘法的功能。到此为止己经详细地介绍了神经网络的前向传
# 播算法,并且给出了TensorFlow 程序来实现这个过程。在之后的章节中会继续介绍偏置
# ( bias )、**函数( activation 缸nction )等更加复杂的神经元结构。也会介绍卷积神经网络,
# LSTM 结构等更加复杂的神经网络结构。对于这些更加复杂的神经网络, TensorFlow 也提
# 供了很好的支持,后面的章节中再详细介绍。