一、代价函数

1.1 经验风险最小化

  1. 机器学习通常是间接的,需要优化的是测试集上的某个性能度量 一、代价函数 - 图1 。这个度量 一、代价函数 - 图2 通常很难直接求解,甚至难以直接建模优化。如:在图像目标检测问题中,常见的 一、代价函数 - 图3 就是mAP:mean average precision

    普遍的做法是:希望通过降低代价函数 一、代价函数 - 图4 来提高 一、代价函数 - 图5。这不同于纯粹的最小化 一、代价函数 - 图6 本身,因为最终目标是提高 一、代价函数 - 图7

    当代价函数 一、代价函数 - 图8 最小时是否 一、代价函数 - 图9 最大?这一结论是未知的。

  2. 实际任务中,可以采用训练集上的损失函数均值作为代价函数:

    一、代价函数 - 图10

    其中:一、代价函数 - 图11 为每个样本的损失函数,一、代价函数 - 图12 为对输入 一、代价函数 - 图13 的预测输出,一、代价函数 - 图14 是经验分布, 一、代价函数 - 图15 为标记信息。

  3. 理论上,代价函数中的期望最好取自真实的数据生成分布 一、代价函数 - 图16 ,而不是有限个训练集上对应的经验分布 一、代价函数 - 图17 。即:一、代价函数 - 图18一、代价函数 - 图19 称作泛化误差。

    问题是对于绝大多数问题,样本的真实分布 一、代价函数 - 图20 是未知的,仅能提供训练集中的样本的分布 一、代价函数 - 图21

    实际应用中,使用经验分布 一、代价函数 - 图22 来代替真实分布 一、代价函数 - 图23 。这就是为什么使用 一、代价函数 - 图24 作为代价函数的原因。

  4. 最小化训练集上的期望损失称作最小化经验风险empirical risk 。其缺点是:

    • 很容易过拟合 。

    • 某些类型的损失函数没有导数,无法使用基于梯度下降的优化算法来优化。

      如 :0-1 损失函数,导数要么为零,要么没有定义。

1.2 替代损失函数

  1. 有时候真正的代价函数无法有效优化,此时可以考虑使用替代损失函数 来代替真实的损失函数。

    如:将正类的负对数似然函数作为 0-1 损失函数的替代。

  2. 一般的优化和机器学习优化的一个重要不同:机器学习算法通常并不收敛于代价函数的局部极小值。因为:

    • 机器学习算法通常使用替代损失函数

      算法终止时,可能出现:采用 替代损失函数的代价函数的导数较小,而采用真实损失函数的代价函数的导数仍然较大(相比较于0值)。

    • 机器学习算法可能会基于早停策略而提前终止。

      早停发生时,可能出现:训练集上的代价函数的导数值仍然较大(相比较于0值)。

      因为早停的规则是基于验证集上代价函数的值不再下降,它并不关心训练集上代价函数的导数值。