参考学习书目:Understanding Deeplearning
记录一下学习该书的过程。
监督学习:监督学习模型是将一个或多个出入转化为一个或多个输出的方式。
这个模型可以理解为一个数学公式,把输入放在公式里进行计算,得到的结果就是推理,而公式中包含一些参数,改变参数会改变计算的结果。
而我们在训练或者学习模型的过程中,其实是寻找真实反应输入和输出关系的参数,即收集输入/输出对,调整参数,使输入数据尽可能准确预测其相应输出。
2.1 监督学习介绍
在监督学习中,我们希望建立一个模型,接收输入x并给出预测结果y,即,但模型理解为包含参数的数学方程,所以准确而言我们的模型表示为
,我们常说的学习或训练模型其实表示我们试图寻找能根据输入合理预测输出的参数k。
比如我们通过一组m对输入和输出样本的训练数据集学习参数k,那么参数学习的好坏(即映射的准确程度)通过损失函数Loss function来衡量。损失函数是一个标量值,概括模型基于当前参数k预测训练数据的输出与实际输出的不匹配程度。
对于损失函数的定义可以理解为L(k),我们是需要寻找一组参数k,使得损失函数值最小:
如果在最小化的过程之后,损失很小,则说明我们找到了合适的模型参数。
训练模型之后则需要评估性能,这时再找一组独立的测试数据上运行模型,以评估训练过程中未见到过的例子的泛化能力,如果这时模型的性能也能达到预期效果,则可以开始部署模型了。
2.2 线性回归示例
首先用大家耳熟能详的实例具像化概念。
有一个模型,能根据某个输出x预测单一输出y,接着我们构建一个损失函数并讨论该模型的训练。
对于一维线性模型,
有两个参数分别表示直线的截距和斜率,不同的截距斜率可以得到不同的输入输出映射关系。
对于该模型,我们假设有三组参数得到的三条线,我们需要有一种系统的方法来判断哪一组参数k比其他参数更优。这时,我们给每一组参数赋予一个数值,这个数值就是表示模型和数据的不匹配程度,即损失。损失越低,模型拟合越好。
这种不匹配是通过预测值和真实值
之间的差异,通过所有的训练集数据对中差异的平方和来量化总不匹配、训练误差和损失:
最佳参数是使得该表达式最小化的参数,称为最小二乘损失。
我们知道损失L是参数k的函数,模型拟合越好,损失越小,Lk也被称为损失函数或成本函数,我们的目标则是找到最小化这个量的参数:
由于模型只有两个参数,对每一组参数值的组合计算损失,“最佳”参数位于表面的最低点。
在训练过程的部分,我们首先随机选择初始参数,然后通过不断“下降”损失函数,直到找出最低点。
做法:测算当前损失函数表面的梯度,然后朝着最陡峭的下坡方向迈出一步,不断重复直到梯度变平,无法再进一步优化。
对于测试阶段,如果简单的模型可能无法完全捕捉输入和输出之间的真实关系,这就是欠拟合;相反,如果表达能力过强的模型可能会描述训练数据中一些不典型的统计特性,导致不正常的预测结果,这便是过拟合。
2.3 总结
监督学习模型是一个函数,由参数k能反应输入x和输出y的映射关系。为了训练模型,我们在训练数据集上
定义损失函数
,量化预测值
与实际输出值
的不匹配程度,然后寻找能最小化这个损失的参数。通过在新的测试集数据上评估模型来检查新输入的泛化能力。