美文网首页
Google机器学习速成课-01

Google机器学习速成课-01

作者: 一杯玄米茶 | 来源:发表于2019-03-03 19:09 被阅读0次

    这里主要涉及监督式机器学习,(监督式)机器学习系统通过学习如何组合输入信息来对从未见过的数据做出有用的预测。

    一.机器学习主要术语

    (1)特征与标签

    特征是输入变量,即简单线性回归中的 x 变量。在复杂的机器学习系统中,特征一般表示为向量的形式。如:X=x_{1} ,x_{2} ,x_{3} ,x_{4}

    标签是我们要预测的事物,即简单线性回归中的 y 变量。可以是小麦未来的价格、图片中显示的动物品种、音频剪辑的含义或任何事物。

    (2)样本

    样本是指数据的特定实例,又分为有标签样本无标签样本。其中,有标签样本同时包含特征和标签,用于训练模型。

    (3)模型与训练

    模型定义了特征与标签之间的关系。

    训练是指创建或学习模型。也就是说,向模型展示有标签样本,让模型逐渐学习特征与标签之间的关系。

    推断是指将训练后的模型应用于无标签样本。也就是说,使用经过训练的模型做出有用的预测 (y')。

    (4)回归与分类

    回归模型可预测连续值;分类模型可预测离散值。

    二、训练与损失

    在监督式学习中,通过检查多个样本并尝试找出可最大限度地减少损失的模型。这一过程称为经验风险最小化

    损失是对糟糕预测的惩罚。也就是说,损失是一个数值,表示对于单个样本而言模型预测的准确程度。

    训练的目标是从所有样本中找到一组平均损失“较小”的权重和偏差(以线性模型为例)。

    (1)平方损失(又称为 L2损失)

    L_{2}  = \sum_{(x,y)\in D} (y-prediction(x))^2

    (2)均方误差 (MSE), 即每个样本的平均平方损失

    MSE =\frac{1}{N} \sum_{(x,y)\in D} (y-prediction(x))^2

    三、降低损失

    (1)迭代法

    迭代策略在机器学习中的应用非常普遍,这主要是因为它们可以很好地扩展到大型数据集。

    图 3.1  用于训练模型的迭代方法

    “模型”部分将一个或多个特征作为输入,然后返回一个预测 (y') 作为输出。“计算损失”部分是模型将要使用的损失函数。在“计算参数更新”部分,机器学习系统检查损失函数的值,并为 模型参数生成新值。然后机器学习系统将根据所有标签重新评估所有特征,为损失函数生成一个新值,而该值又产生新的参数值。这种学习过程会持续迭代,直到该算法发现损失可能最低的模型参数。

    (2)梯度下降法

    凸形问题只有一个最低点;即只存在一个斜率正好为 0 的位置。

    梯度下降法

    图3.2  一个梯度步长将我们移动到损失曲线上的下一个点

    第一个阶段是为参数 w1 选择一个起始值(起点)。通常设为 0 或随机选择一个值。

    第二个阶段会计算损失曲线在起点处的梯度梯度是偏导数的矢量(损失相对于单个权重的梯度就等于导数。)

    梯度始终指向损失函数中增长最为迅猛的方向。

    梯度下降法算法用梯度乘以一个称为学习速率(有时也称为步长)的标量,以确定下一个点的位置。

    超参数是编程人员在机器学习算法中用于调整的旋钮,这里的学习速率就是一个超参数。

    注意:在实践中,成功的模型训练并不意味着要找到“完美”(或接近完美)的学习速率。我们的目标是找到一个足够高的学习速率,该速率要能够使梯度下降过程高效收敛,但又不会高到使该过程永远无法收敛。

    (3)随机梯度下降法(SGD)

    在梯度下降法中,批量指的是用于在单次迭代中计算梯度的样本总数,一个批量可能相当巨大。如果是超大批量,则单次迭代就可能要花费很长时间进行计算。

    随机梯度下降法在每次迭代时只使用一个样本(批量大小为 1)。如果进行足够的迭代,SGD 也可以发挥作用,但过程会非常杂乱。“随机”这一术语表示构成各个批量的一个样本都是随机选择的。

    小批量随机梯度下降法小批量 SGD)是介于全批量迭代与 SGD 之间的折衷方案。小批量通常包含 10-1000 个随机选择的样本。小批量 SGD 可以减少 SGD 中的杂乱样本数量,但仍然比全批量更高效。

    四、泛化

    (1)过拟合

    过拟合模型在训练过程中产生的损失很低,但在预测新数据方面的表现却非常糟糕。过拟合是由于模型的复杂程度超出所需程度而造成的。机器学习的基本冲突是适当拟合我们的数据,但也要尽可能简单地拟合数据。

    奥卡姆剃刀定律:机器学习应该优先采用更简单的模型。

    (2)泛化

    即统计化描述模型根据以下因素泛化到新数据的能力:

    -模型的复杂程度;

    -模型在处理训练数据方面的表现;

    以下三项基本假设阐明了泛化:

    -我们从分布中随机抽取独立同分布(i.i.d) 的样本。

    -分布是平稳的;即分布在数据集内不会发生变化。

    -我们从同一分布的数据划分中抽取样本。

    五、拆分数据集

    (1)训练集和测试集

    将数据集划分为训练集和测试集。借助这种划分,可以对一个样本集进行训练,然后使用测试集测试模型。工作流程如下所示:

    “调整模型”指的是调整可以想到的关于模型的任何方面,从更改学习速率、添加或移除特征,到从头开始设计全新模型。

    图5.1 拆分为训练集和测试集

    (2)划分验证集

    使用验证集评估训练集的效果。然后,在模型“通过”验证集之后,使用测试集再次检查评估结果。下图展示了这一新工作流程:

    图5.2 更好的工作流程

    不断使用测试集和验证集会使其逐渐失去效果。也就是说,使用相同数据来决定超参数设置或其他模型改进的次数越多,对于这些结果能够真正泛化到未见过的新数据的信心就越低。

    如果可能的话,建议收集更多数据来“刷新”测试集和验证集。重新开始是一种很好的重置方式。

    相关文章

      网友评论

          本文标题:Google机器学习速成课-01

          本文链接:https://www.haomeiwen.com/subject/ewkmuqtx.html