机器学习:模型训练的一般过程(在试错中学习)

时间:2024-06-02 13:31:47

损失(Loss)

损失是一个数值 表示对于单个样本而言模型预测的准确程度。

如果模型的预测完全准确,则损失为零,否则损失会较大。

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

机器学习:模型训练的一般过程(在试错中学习)
如图 红色箭头表示损失,蓝线表示预测。明显左侧模型的损失较大;右侧模型的损失较小

要确定loss,模型必须定义损失函数 loss function。例如,线性回归模型通常将均方误差用作损失函数,而逻辑回归模型则使用对数损失函数。

模型训练的一般过程

机器学习中训练模型Traning 表示通过有标签样本来学习(确定)所有权重Weights和偏差Bias的理想值。

机器学习算法在训练过程中,做的就是:检查多个样本并尝试找出可最大限度地减少损失的模型;目标就是将损失(Loss)最小化机器学习:模型训练的一般过程(在试错中学习)
上图就是一般模型训练的一般过程(试错过程),其中

  • “模型: 将一个或多个特征作为输入,然后返回一个预测 (y’) 作为输出。为了进行简化,不妨考虑一种采用一个特征并返回一个预测的模型,如下公式(其中b为 bias,w为weight)
    机器学习:模型训练的一般过程(在试错中学习)
  • 计算损失:通过损失函数,计算该次参数(bias、weight)下的loss。
  • 计算参数更新:检测损失函数的值,并为参数如bias、weight生成新值,以降低损失为最小。
    例如:使用梯度下降法,因为通过计算整个数据集中w每个可能值的损失函数来找到收敛点这种方法效率太低。所以通过梯度能找到损失更小的方向,并迭代。

梯度下降法(Gradient Descent)

凸形问题只有一个最低点;即只存在一个斜率正好为 0 的位置。这个最小值就是损失函数收敛之处。

机器学习:模型训练的一般过程(在试错中学习)
通过计算整个数据集中 每个可能值的损失函数来找到收敛点这种方法效率太低。我们来研究一种更好的机制,这种机制在机器学习领域非常热门,称为梯度下降法。

梯度下降法的第一个阶段是为 选择一个起始值(起点)。起点并不重要;因此很多算法就直接将 设为 0 或随机选择一个值。下图显示的是我们选择了一个稍大于 0 的起点:

机器学习:模型训练的一般过程(在试错中学习)

然后,梯度下降法算法会计算损失曲线在起点处的梯度。简而言之,梯度是偏导数的矢量;它可以让您了解哪个方向距离目标“更近”或“更远”。请注意,损失相对于单个权重的梯度(如图 所示)就等于导数。

请注意,梯度是一个矢量,因此具有以下两个特征:

  • 方向
  • 大小

梯度始终指向损失函数中增长最为迅猛的方向。梯度下降法算法会沿着负梯度的方向走一步,以便尽快降低损失
为了确定损失函数曲线上的下一个点,梯度下降法算法会将梯度大小的一部分与起点相加
机器学习:模型训练的一般过程(在试错中学习)

然后,梯度下降法会重复此过程,逐渐接近最低点。(找到了方向)

  • 随机梯度下降法SGD:解决数据过大,既一个Batch过大问题,每次迭代只是用一个样本(Batch为1),随机表示各个batch的一个样本都是随机选择。

学习速率(learning rate)

梯度矢量具有方向和大小。梯度下降法算法用梯度乘以一个称为学习速率(有时也称为步长)的标量,以确定下一个点的位置。这是超参数,用来调整AI算法速率

例如,如果梯度大小为 2.5,学习速率为 0.01,则梯度下降法算法会选择距离前一个点 0.025 的位置作为下一个点。

超参数是编程人员在机器学习算法中用于调整的旋钮。大多数机器学习编程人员会花费相当多的时间来调整学习速率。如果您选择的学习速率过小,就会花费太长的学习时间:

机器学习:模型训练的一般过程(在试错中学习)

相关文章