神经网络可以通过输入的特征向量经过层层推导得到最终输出,并通过这些输出结果来解决分类或者回归问题。实际上,神经网络是采用前向传播算法实现层层推导的。
神经网络的前向传播结果需要三部分信息。第一,神经网络的输入,即从实体中提取的特征向量;第二,神经网络的连接结构,其会给出不同神经元之间输入输出的连接关系,神经网络结构中每一个神经元代表一个节点;第三,每个神经元中的参数,包含权重 (表示第l-1层i节点与l层j节点边上的权重参数)和偏置值(表示第l层第j个节点偏置)。
假设我们判断一个电子产品合格的标准是外观无损和电性能指标合格。用0到1内的数值对这两个特征进行量化,值越大表示特征指标越好。在此基础上,建立一个三层神经网络来判断该电子产品是否合格?神经网络结构如下:
我们对神经网络的参数进行初始化,假设所有神经元的偏置值都为0,第一层和第二层的激活函数都为一次线性函数y=x,且第一、第二层权重矩阵和输入向量X初始化如下:
可根据最终的输出值来判别电子产品是否合格;而实际中我们需要较大量的数据来训练神经网络的参数,使其当一个输入到来时,能准确判断产品是否合格。
Tensorflow中实现矩阵算法非常容易,直接调用tensorflow.matmul()函数即可,用语言实现上述神经网络的前向传播过程:
a=tf.matmul(X,W1)
y=tf.matmul(a,W2)