机器学习模型在训练过程中必须有一个明确目标。算法需要知道预测结果与真实结果相差多少,才能调整模型参数。
描述这种差异的函数称为损失函数。
但损失函数只是模型训练时实际优化的数学对象。它不一定等于研究者评价模型时使用的指标,更不一定完全对应工程应用真正关心的目标。
因此,理解机器学习模型时,需要区分三个层次:
损失函数:训练过程中优化什么
评价指标:训练完成后怎样衡量模型
工程目标:实际应用真正关心什么
三者有时一致,但不能默认它们是同一件事。
一、损失函数决定模型如何调整参数
模型训练时,会根据预测值与真实值计算损失,然后调整参数,使损失尽量减小。
以回归问题为例,常见损失函数是均方误差:
MSE = 所有样本预测误差平方的平均值
平方会放大较大的误差,因此均方误差会比较重视误差较大的样本。
如果模型预测谐振频率,某些样本偏差很大,它们会对MSE产生较强影响。
损失函数实际上在告诉模型:
哪些错误更重要,应该优先减少什么。
不同损失函数对应不同训练偏好。
例如:
- 平方误差更重视大误差;
- 绝对误差对异常值相对不那么敏感;
- 相对误差更关注误差占真实值的比例;
- 分类交叉熵用于衡量预测概率与标签之间的差异。
因此,损失函数不是一个中性的技术细节,而是任务定义的一部分。
二、损失函数与评价指标不一定相同
模型可以使用一种损失函数训练,同时使用多种指标评价。
例如,用均方误差训练谐振频率预测模型,训练完成后可以同时报告:
- 平均绝对误差;
- 平均相对误差;
- 最大绝对误差;
- 最大相对误差;
- 不同参数区间的误差;
- 谐振点附近的误差分布。
原因是训练过程通常需要一个稳定、可优化的数学函数,而工程评价需要从多个角度理解模型表现。
某个指标可能非常适合评价,却不适合作为训练损失;反之,一个便于优化的损失,也未必能够完整表达工程要求。
因此,不应仅根据“训练损失很低”判断模型已经满足应用需求。
三、平均误差可能掩盖最坏情况
平均指标容易给出一个简洁结论,但也容易隐藏少数严重错误。
假设模型预测一百个样本,其中九十五个误差很小,五个误差很大。平均误差可能仍然不高。
但如果这五个样本对应:
- 参数边界;
- 关键工作频率;
- 特殊结构;
- 极端材料条件;
- 工程设计的主要候选方案;
那么模型在实际应用中仍然可能不可接受。
因此,评价模型时不能只报告平均值。
至少还应关注:
- 最大误差;
- 误差分布;
- 不同参数区域的误差;
- 失败样本;
- 边界样本;
- 是否存在系统性偏差。
对于可靠性要求较高的应用,最坏情况可能比平均性能更重要。
四、相对误差并不总是合适
相对误差可以比较不同量级样本的预测质量。
例如,绝对误差同样是0.1 GHz:
- 对真实值1 GHz而言,相对误差为10%;
- 对真实值10 GHz而言,相对误差为1%。
因此,相对误差有助于反映误差相对于真实值的大小。
但相对误差也存在问题。
当真实值接近零时,很小的绝对误差也可能产生极大的相对误差,甚至失去稳定意义。
例如,某些场分量、散射零点或深衰减区域的真实值非常小,直接使用相对误差可能导致评价被少数接近零的样本主导。
因此,选择相对误差时应检查:
- 真实值是否可能接近零;
- 是否需要设置合理尺度;
- 是否应同时报告绝对误差;
- 是否需要分区评价。
任何指标都有适用条件。
五、工程目标可能是特定物理特征
很多工程问题真正关心的不是整个输出曲线的平均误差,而是某些关键物理特征。
例如,在天线设计中,可能更关心:
- 谐振频率;
- 带宽;
- 最大增益;
- 波束方向;
- 旁瓣电平;
- 阻抗匹配是否达标。
一个模型对整条响应曲线的MSE很小,不代表这些关键特征都预测准确。
例如,模型预测的S参数曲线整体非常接近真实曲线,但谐振谷值位置发生了明显偏移。整体均方误差可能仍然不大,但工程设计判断会受到直接影响。
因此,评价指标应当与实际任务连接。
如果目标是预测谐振频率,就应明确报告:
- 平均频率偏差;
- 最大频率偏差;
- 不同结构区域的偏差;
- 是否超过设计允许误差。
不能仅用一个整体曲线误差替代真正关心的工程量。
六、一个指标不能证明模型全面可靠
不同评价指标反映模型的不同方面。
例如:
- MSE强调较大误差;
- MAE反映平均绝对偏差;
- 相对误差反映比例关系;
- 最大误差反映最坏情况;
- 决定系数反映整体拟合趋势;
- 分类准确率反映正确样本比例。
单一指标很难完整描述模型。
尤其应警惕只选择最有利于展示结果的指标。
一个严谨的评价方案应当回答:
- 整体表现怎样;
- 最坏情况怎样;
- 不同区域是否稳定;
- 是否存在系统偏差;
- 指标是否对应工程目标;
- 模型失败时会出现什么结果。
评价不是为了证明模型优秀,而是为了暴露模型真实能力和边界。
七、训练目标与工程目标不一致会带来什么问题
如果损失函数与工程目标差异很大,模型可能把能力用在错误方向。
例如,训练目标是降低所有频率采样点的平均平方误差,但工程目标只关心谐振频率位置。
模型可能通过改善大量平缓区域的拟合,使总体MSE下降,却没有显著改善谐振点预测。
此时训练过程是成功的,但工程目标没有真正实现。
解决方法可以包括:
- 调整损失函数;
- 对关键区域赋予更高权重;
- 直接预测目标物理量;
- 使用多任务学习;
- 同时优化曲线误差和关键特征误差;
- 分别报告训练指标和工程指标。
但增加复杂损失也有风险。权重设置不合理时,不同目标可能相互冲突。
因此,优化目标应尽量直接、清楚,并有明确物理含义。
八、学习者认识的修正
初步认识: 如果均方误差很小,就说明模型预测得很好。
这个判断不充分。
均方误差只能反映一种平均意义下的平方偏差。它不能单独说明:
- 最大误差是否可接受;
- 关键物理特征是否准确;
- 边界样本是否失效;
- 相对误差是否合理;
- 工程设计是否会作出错误判断。
更准确的认识是:
模型评价必须围绕真实任务选择指标,并同时关注平均表现、最坏情况和关键物理量。
对于谐振频率等工程目标,可以同时报告平均偏差和最大偏差,而不能只展示一个总体MSE。
九、本节小结
损失函数、评价指标和工程目标承担不同作用:
- 损失函数决定模型训练时优化什么;
- 评价指标用于从不同角度衡量模型表现;
- 工程目标决定哪些误差真正重要;
- 平均误差可能掩盖少数严重失败;
- 指标选择必须服从应用,而不是服从结果展示。
下一节将从更基础的角度收束本章:
神经网络作为一种参数化模型,本质上究竟学习了什么?