一个神经元有多个输入和输出。每个神经元的输入既可以是其他神经元的输出,也可以是整个神经网络的输入,所谓神经网络的结构指的就是不同神经元之间的连接结构。如下图所示,一个最简单的神经元结构的输出就是所有输入的加权和,而不同权重就是神经元的参数,神经网络的优化过程就是优化神经元中参数取值的过程。
计算神经网络的前向传播结果需要三部分信息,如下图所示:
上图中节点有两个输入,它们分别是和的输出,而的输出则是节点y的输入。上图用W来表示神经网络中的神经元。W的上标表明了神经网络的层数,比如表示第一层节点的参数,而表示第二层节点的参数。W的下标表明了连接节点的编号,比如表示连接和节点的边上的权重。给定神经网络的输入、神经网络的结构以及边上的权重,就可以通过前向传播算法来计算出神经网络的输出。下图给出神经元前向传播算法的示意图:
输入层的取值x1 = 0.7 和 x2 = 0.9。从输入层开始一层一层地使用前向传播算法。首先隐藏层中有三个节点,每一个节点的取值都是输入层取值的加权和。下面给出a11取值的详细计算过程:
a12和a13也可以通过类似的方法计算得到,上图给出了具体的计算公式。在得到第一层节点的取值之后,可以进一步推导得到输出层的取值。类似地,输出层中节点的取值就是第一层的加权和:
将输入x1,x2组织成一个1*2的矩阵x=[x1,x2],而 组织成一个2*3的矩阵:
类似的输出层可以表示为:
在tensorflow中可以用矩阵乘法来实现神经网络的前向传播算法:
登录后复制
a = tf.matmul(x ,w1)
y = tf.matmul(a ,w2)
其中tf.matmul()实现了矩阵乘法的功能。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删