0%

TensorFlow实现神经网络

神经网络可视化示例-TensorFlow游乐场
一个最简单的神经元的结构的输出就是所有输入的加权和,而不同输入的权重就是神经元的参数。神经网络的优化过程就是优化神经元中参数的取值过程。


神经网络数据结构

第一层是输入层,代表特征向量中每一个特征的取值;
在输入层和输出层之间的神经网络叫隐藏层;
一般一个神经网络的隐藏层越多,这个神经网络就越’深’;

判断零件是否合格的三层神经网络结构图

神经网络解决分类问题的步骤:

神经网络解决分类问题主要分为以下4个步骤:

  1. 提取问题中实体的特征向量作为神经网络的输入。
  2. 定义神经网络的结构,并定义如何从神经网络的输入得到输出;
  3. 通过训练数据来调整神经网络中参数的取值,这就是训练神经网络的过程。
  4. 使用训练好的神经网络来预测未知数据;

前向传播算法

神经元

神经元是构成一个神经网络的最小单元。

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

前向传播算法(forward-propagation)

计算神经网络的前向传播算法需3部分信息:

  1. 神经网络的输入,即从实体中提取的特征向量;
  2. 神经网络的连接结构
  3. 神经元中的参数;

给定神经网络的输入,神经网络的结构以及边上权重,就可以通过前向传播算法来计算神经网络的输出。
神经网络前向传播算法示意图
在TensorFlow中实现

1
2
3
# matmul为矩阵乘法函数
a= tf.matmul(x1 , w1)
y= tf.matmul(a , w2)

前向传播算法可以表示为矩阵乘法,将输入x1,x2组织成一个1x2的矩阵x=[x1,x2],而W(1)组织成一个2x3的矩阵:
前向传播算法计算公式

神经网络参数与TensorFlow变量

通过TensorFlow训练神经网络模型

完整神经网络示例程序