PS: 我发现 每天翻译一节在上传比较合适, 这样对于我而言工作量不大,而且也有能保证质量。 临时就这样决定了。 以后会按章节4.1 4.2 的标号来上传
Chapter 4. Machine Learning Basics
本章我们会涉及tensorflow工作的基础概念,机器学习是tensorflow的主要应用领域。
我们将呈现基本机器学习主题的高级概念以及代码片段,同时会展示如何在tensorflow中使用他们。
4.1 Supervised learning introduction
在本书中,我们关注的是有监督学习的问题。在拥有了输入数据集以后训练推演模型以及每个例子的实际输出和期望输出。模型会覆盖整个数据集合,当一个原来的数据集合中不存在的新输入进来的时候,能够输出预测值。
所谓的预测模型( inference model )是应用于我们的数据中的系列数学操作。这些数学操作的步骤取决于我们模型解决的问题。这些操作的组合是固定的。操作内部的值是随意的,比如“乘以3”,”加上2“。这些值(value)被称为模型的参数(parameters),而且可以通过训练被改变。训练是为了让模型学习并且调节模型的输出。
虽然预测模型可能会使用不同的操作和大量的参数,但是我们会使用同样的结构去训练,如下图所示:
循环训练(Training loop)的过程如下:
1l首先初始化模型的参数。通常情况下是随机的初始化,但是很多简单的模型可以直接设置为0
l读取每一个样本的训练和期望输出的数据。常见的操作步骤可能也是随机的排列数据的顺序,以便于每次加载模型的时候feeding的数据都有所不同。
l在训练数据上使用预测模型,这样他会根据当前模型的参数为每一个样本的输入去计算输出。
l计算损失(loss),损失值是一个单一的值。这个值可以指示我们的模型计算出的输出距离期望值还有多远。你可以使用不同的损失函数去计算loss,本书中也会介绍到。
l调整模型的参数。这就是学习所真正的意义。给出损失函数以后,学习就是通过一定量的训练步奏来促进参数值的改变使得loss最小化。通常情况下你可以使用梯度下降算法(gradient descent algorithm),后面的章节中会讲到。
这个过程会重复有限个周期,这取决于我们的学习率(learning rate)、模型(model)、以及输入的数据(data we input to it)。
训练完毕之后,进入评估阶段(evaluation phase),其中我们会执行与推论(inference)不同的数据集合(这些数据中有期望的输出),然后评估在该数据集合下的loss.
该数据集合中所包含的样本是模型未曾见过的,评估会告诉你在超出训练数据范围外的模型效果如何。(PS泛化能力)。通常的实践经验是将原始的数据集集合是随机选取70%样本用来训练和30%的用来验证。
我们使用这个结构来定义一些模型代码的通用框架:
2这是一个预测模型的基本代码。(PS:代码实现部分没有写出来,只是写出注释)首先是初始化模型的参数;然后定义训练中的每个循环操作:读取训练的输入数据(inputs方法),计算预测模型(inference方法),计算loss (loss方法),调节参数(train方法),评估结果模型(evaluate方法)。最后的样板(boilerplate)代码是用来开启会话和运行训练循环的。在下一节中我我们将为每种类型的推理模型填写这些模板方法与必需的代码。
一旦你对模型的反馈中感到快乐,你会专注于研究它并提供服务来对你需要处理的数据进行推理。
下一节:
Saving training checkpoints(保存训练节点)
网友评论