如何用tensorflow实现简单的全连接神经网络

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

计算神经网络的前向传播结果需要三部分信息,如下图所示:

(1)第一部分是神经网络的输入,这个输入就是从实体中提取的特征向量。

(2)第二部分是神经网络的连接结构。神经网络是时由神经元构成的,神经网络的结构给出不同神经元之间输入和输出的连接关系,神经元也可以称为节点。 

(3)最后一部分给出了神经元的参数。

 下图给出神经元前向传播算法的示意图:

输入层的取值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)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券