2.1监督学习概述
在监督学习中,我们的目标是建立一个模型,该模型接受输入x并输出预测y。为了简单起见,在汽车示例中,输入x总是按照这个顺序包含汽车的车龄和里程。这被称为结构化或表格数据。
为了进行预测,我们需要一个模型f[],它接受输入x并返回y。
当我们从输入x计算预测y时,我们称之为推理。
模型只是一个固定形式的数学方程。它代表了输入和输出之间一系列不同的关系。该模型还包含参数ϕ。参数的选择决定了输入和输出之间的特定关系:
我们使用i对输入和输出示例{,
)的训练数据集来学习这些参数。我们的目标是选择将每个训练输入尽可能紧密地映射到相关输出的参数。我们量化了这个映射与损失L的不匹配程度。这是一个标量值,它总结了模型从参数φ的相应输入预测训练输出的糟糕程度。
我们可以把损失看成是这些参数的函数L[d]。当我们训练模型时,我们在寻找使损失函数最小化的参数φ:
如果在最小化之后损失很小,我们已经找到了从训练输入准确预测训练输出
的模型参数。之后我们必须评估它的性能;我们在测试数据上运行模型,看看它在训练期间没有观察到的例子中泛化得如何。如果性能足够好,那么我们就可以部署模型了。
2.2线性回归示例
我们考虑一个模型y = f[x,Ф],它从单个输入x预测单个输出y。然后我们开发一个损失函数,最后我们讨论模型训练。
2.2.1一维线性回归模型
一维线性回归模型将输入x与输出之间的关系描述为一条直线:
该模型有两个参数Ф = [Ф0,Ф1 ],其中Фo为直线的y截距, Ф1为斜率。y截距和斜率的不同选择导致输入和输出的关系不同(图2.1)。因此,公式2.4定义了一个可能的投入产出关系族(所有可能的直线),参数的选择决定了这个族的成员(特定的直线)。
图2.1线性回归模型。y截距Фo和斜率Ф1的不同选择会改变这些预测(青色、橙色和灰色线)
2.2.2损失
图2.2b-d显示了由三组参数定义的三条线。图2.2d中的绿线比其他两条更准确地描述了数据,因为它更接近数据点。我们需要一种方法来决定哪些参数比其他参数更好。为此我们为每种情况分配一个数值,以量化模型和数据之间的不匹配程度。我们称这个值为损失;更低的损失意味着更好的匹配。
我们将总训练误差或损失量化为所有i对训练的这些偏差的平方和:
由于最佳参数使这个表达式最小,我们称之为最小二乘损失。平方运算意味着偏差的方向(即直线是在数据之上还是之下)是不重要的。
损失L是参数Ф的函数;当模型拟合较差时(图2.2b,c),模型拟合较好时(图2.2d),模型拟合较小。从这个角度考虑,我们称L[Ф]为损失函数或成本函数。我们的目标是找到使这个数量最小化的参数Ф:
图2.3中只有两个参数(y截距фo和斜率ф1),因此我们可以计算每个值组合的损失,并将损失函数可视化为一个曲面。“最佳”参数位于该曲面的最小值。
a)参数的每一个组合[Фo,Ф1]都有一个相关的损失。得到的损失函数L[Ф]可以可视化为一个曲面。三个圆代表图2.2b-d中的直线。
b)损失也可以可视化为热图,其中较亮的区域表示较大的损失;在这里,我们从上方直接向下看(a)中的表面,灰色椭圆表示等高线。最佳拟合线的参数损失最小(绿圈)。
2.2.3训练
寻找使损失最小的参数的过程称为模型拟合、训练或学习。其基本方法是随机选择初始参数,然后通过损失函数“向下走”的方法进行改进,直到到达底部(图2.4)。一种方法是测量当前位置的表面坡度,然后朝最陡的方向迈出一步。然后我们重复这个过程,直到渐变是平坦的,我们不能再改进,也就是梯度下降算法。
图2.4线性回归训练。目标是找到对应于最小损失的y轴截距和斜率参数。
a)迭代训练算法随机初始化参数,然后通过“走下坡”的方式进行改进,直到不能再改进为止。在这里,我们从位置0开始,向下移动一定距离(垂直于等高线)到位置1。然后重新计算下坡方向,移动到位置2。最终,我们达到函数的最小值(位置4)。
b)左图中的每个位置0-4对应不同的y轴截距和斜率,因此表示不同的直线。随着损耗的减小,曲线与数据的拟合更加接近。
2.2.4测试
在训练了模型之后,我们通过计算一组单独的测试数据的损失来判断训练的成果。一条线这样的简单模型可能无法捕捉输入和输出之间的真正关系。这被称为欠拟合。相反,一个非常有表现力的模型可能描述训练数据的统计特性,这些特性是非典型的,并导致不寻常的预测。这就是所谓的过拟合。
2.3总结
首先,1D线性回归有一个明显的缺点,它只能将输入和输出之间的关系描述为一条直线。浅神经网络(第3章)只比线性回归稍微复杂一点,但描述了一个更大的输入/输出关系家族。深度神经网络(第4章)同样具有表现力,但可以用更少的参数描述复杂的函数,并且在实践中工作得更好。