一个神经元有多个输入和输出。每个神经元的输入既可以是其他神经元的输出,也可以是整个神经网络的输入,所谓神经网络的结构指的就是不同神经元之间的连接结构。如下图所示,一个最简单的神经元结构的输出就是所有输入的加权和,而不同权重就是神经元的参数,神经网络的优化过程就是优化神经元中参数取值的过程。
计算神经网络的前向传播结果需要三部分信息,如下图所示:
(1)第一部分是神经网络的输入,这个输入就是从实体中提取的特征向量。
(2)第二部分是神经网络的连接结构。神经网络是时由神经元构成的,神经网络的结构给出不同神经元之间输入和输出的连接关系,神经元也可以称为节点。
(3)最后一部分给出了神经元的参数。
下图给出神经元前向传播算法的示意图:
输入层的取值x1 = 0.7和x2 = 0.9.从输入层开始一层一层地使用前向传播算法。首先隐藏层中有三个节点,每一个节点的取值都是输入层取值的加权和。下面给出a11取值的详细计算过程:
a12和a13也可以通过类似的方法计算得到,上图给出了具体的计算公式。在得到第一层节点的取值之后,可以进一步推导得到输出层的取值。类似地,输出层中节点的取值就是第一层的加权和:
将输入x_1,x_2组织成一个1*2的矩阵x=[x_1,x_2],而W^{(1)} 组织成一个2*3的矩阵
类似的输出层可以表示为:
在tensorflow中可以用矩阵乘法来实现神经网络的前向传播算法:
a = tf.matmul(x ,w1)
y = tf.matmul(a ,w2)