前向传播算法

一个神经元有多个输入和一个输出,每个神经元的输入既可以是其他神经元的输出也可以是整个神经网络的输入。所谓神经网络的结构就是指的是不同的神经元之间的连接结构。前向传播算法
如图所示,一个最简单的神经元结构的输出就是所有输入的加权和,而不同的输入的权重就是神经元的参数。神经网络的优化过程就是优化神经元中参数的取值的过程。

前向传播算法
如图 是一个简单的判断是否合格的三层全连接神经网络。全连接神经网络是指相邻两层之间的任意两个节点之间都有连接。这样的神经网络除了输入层以外,每一个节点都代表一个神经元的结构。

计算神经网络的前向传播结果需要三部分信息。
第一个是神经网络的输入,这个输入就是从实体中提取的特征向量。比如在图中,就有两个输入,一个是零件的长度x1,另一个是零件的质量x2。
第二个部分是神经网络的连接结构。神经网络是由神经元构成的,神经网络的结构给出不同神经元之间输入输出的连接关系。神经网络中的神经元也可以称为节点。
在图中,a11节点有两个输入,他们分别是x1和x2的输出.而a11的输出则是节点y的输入。
最后一个部分是每个神经元中的参数。在图中,用W表示神经元中的参数。W的上标表示了神经网络的层数,例如W(1)表示第一层节点的参数,而W(2)表示第二层节点的参数。W的下标表示连接节点的编号,例如W1,2(1)表示连接x1和a12节点的边上的权重。
假设权重是已知的,给定神经网络的输入,神经网络的结构以及边上权重,就可以通过前向传播算法计算出神经网络的输出。

前向传播算法可以表示为矩阵乘法。将输入的x1,x2组织成一个1X2的矩阵x=[x1,x2],而W(1)组织成一个2X3的矩阵:
前向传播算法
这样通过矩阵乘法可以得到隐藏层三个节点所组成的向量取值:
前向传播算法
类似的输出层可以表示为:
前向传播算法
这样就将前向传播算法通过矩阵乘法的方式表达出来了。
在Tensorflow中矩阵乘法是
a=tf.matmul(x,w1) 这样的形式