TensorFlow 入门
TensorFlow实现神经网络
通过 TensorFlow 训练神经网络模型
-
设置神经网络参数的过程就是神经网络的训练过程。只有经过有效训练的神经网络模型才可以真正地解决分类或者回归问题。
-
使用监督学习的方式设置神经网络参数需要有一个标注好的训练数据集。
-
在 Tensorflow 游乐场有两种颜色,一种黄色,一种蓝色。任意一种颜色越深,都代表判断的信心越大。
-
监督学习最重要的思想就是,在己知答案的标注数据集上,模型给出的预测结果要尽量接近真实的答案。通过调整神经网络中的参数对训练数据进行拟合,可以使得模型对未知的样本提供预测的能力。
-
在神经网络优化算法中,最常用的方法是反向传播算法(backpropagation)。
-
神经网络反向传播优化流程图
-
反向传播算法实现了 一个迭代的过程。
- 在每次迭代的开始,首先需要选取一小部分训练数据,这一小部分数据叫做一个 batch 。
- 然后,这个 batch 的样例会通过前向传播算法得到神经网络模型的预测结果。
- 因为训练数据都是有正确答案标注的,所以可以计算出当前神经网络模型的预测答案与正确答案之间的差距。
- 最后,基于预测值和真实值之间的差距,反向传播算法会相应更新神经网络参数的取值,使得在这个 batch 上神经网络模型的预测结果和真实答案更加接近。
-
通过 TensorFlow 实现反向传播算法的第一步是使用 TensorFlow 表达一个 batch 的数据。
- 如果每轮迭代中选取的数据都要通过常量来表示,那么 TensorFlow 的计算图将会太大。
- 因为每生成一个常量,TensorFlow 都会在计算图中增加一个节点。
- 一般来说, 一个神经网络的训练过程会需要经过几百万轮甚至几亿轮的迭代,这样计算图就会非常大,而且利用率很低。
- 为了避免这个问题,TensorFlow 提供了 placeholder 机制用于提供输入数据。
- placeholder 相当于定义了 一个位置,这个位置中的数据在程序运行时再指定。
- 这样在程序中就不需要生成大量常量来提供输入数据