什么是有监督学习
有监督学习(Supervised Learning)是机器学习中最常见的一个分支。在有监督学习中,模型需要从 包含输入特征(Features)和预期输出标签(Labels) 的训练数据集中进行学习,以此来预测未来未知数据的标签。
打个比方,这就像是“老师给学生题目和标准答案,学生通过大量练习来总结解题规律”。
核心概念
要理解有监督学习,我们需要掌握以下几个非常关键的抽象概念:
1. 损失函数 (Loss Function)
在有监督学习中,你需要定义一个评判“模型表现好坏”的标准,这也就是损失函数。对于模型给出的预测输出,我们要使用损失函数来衡量它与真实标签之间的差距有多大(即“有多对”或“错得有多离谱”)。损失函数的值越小,说明模型的预测越准确。
- 例子 1(回归任务):假设你在预测房价,常用的损失函数是均方误差 (MSE)。如果模型预测某套房子的价格为 100 万,但实际售价为 120 万,误差就是
。优化器的目标就是让所有房屋预测的这个误差总和尽可能小。 - 例子 2(分类任务):如果你在判断一封邮件是否为垃圾邮件,常用的损失函数是交叉熵损失 (Cross-Entropy Loss)。它通过概率来衡量模型的自信程度——如果模型以 99% 的概率认定这是一封正常邮件,结果却是一封垃圾邮件,那么交叉熵损失就会非常大,以此严厉惩罚模型的“过度自信”。
- 例子 3(方向预测任务):假设你的模型需要输出一个描述方向的向量。由于我们只关心方向是否正确,你可以将损失函数定义为
(即余弦相似度的变形)。当预测方向与实际方向完全一致时,点乘结果为 1,损失为 ;当方向完全相反时,点乘结果为 -1,损失最大,为 。这样就能很好地引导模型学习正确的方向。这个例子也很好地说明了,在实际工程中,我们完全可以且应该根据具体任务的物理或几何意义,专门定制最合适的损失函数。
2. 优化器 (Optimizer)
在通过损失函数知道了模型目前的预测“有多错”之后,你需要一种方法来减小这个误差。优化器就是用来指导模型如何更新内部参数(如神经网络的权重和偏置)的算法,以达到最小化损失函数的目的。
- 例子 1(梯度下降 Gradient Descent):这是最基础也是最经典的优化算法。想象你在一座山上,被蒙住了眼睛,你的目标是走到谷底(损失最小的地方)。你会用脚去感受周围的坡度,然后沿着坡度最陡(梯度最大)的方向往下走一步。不断重复这个过程,最终就有希望到达谷底。
- 例子 2(Adam):这是目前深度学习中最常用的高级优化器之一。比起盲目地下山,Adam 就像是一个有经验的登山者,它会记录之前走过的路况(动量),自适应地调整每一步的步长(学习率),让你更快、更稳地收敛到最优解,并且不容易卡在半山腰的“坑”里(局部最优)。
学习范式
因此,有监督学习的本质可以归结为一个不断反馈的循环:
- 输入:接收输入数据。
- 预测:模型进行前向传播,输出预测值。
- 评估:损失函数计算预测值与真实标签的误差。
- 优化:优化器根据误差进行反向传播,更新模型参数。
- 迭代:不断重复以上步骤,直到损失降至可接受的范围。