一、代价函数
1.1 经验风险最小化
机器学习通常是间接的,需要优化的是测试集上的某个性能度量 。这个度量 通常很难直接求解,甚至难以直接建模优化。如:在图像目标检测问题中,常见的 就是
mAP:mean average precision
。普遍的做法是:希望通过降低代价函数 来提高 。这不同于纯粹的最小化 本身,因为最终目标是提高 。
当代价函数 最小时是否 最大?这一结论是未知的。
实际任务中,可以采用训练集上的损失函数均值作为代价函数:
其中: 为每个样本的损失函数, 为对输入 的预测输出, 是经验分布, 为标记信息。
理论上,代价函数中的期望最好取自真实的数据生成分布 ,而不是有限个训练集上对应的经验分布 。即: , 称作泛化误差。
问题是对于绝大多数问题,样本的真实分布 是未知的,仅能提供训练集中的样本的分布 。
实际应用中,使用经验分布 来代替真实分布 。这就是为什么使用 作为代价函数的原因。
最小化训练集上的期望损失称作最小化经验风险
empirical risk
。其缺点是:很容易过拟合 。
某些类型的损失函数没有导数,无法使用基于梯度下降的优化算法来优化。
如 :
0-1
损失函数,导数要么为零,要么没有定义。
1.2 替代损失函数
有时候真正的代价函数无法有效优化,此时可以考虑使用
替代损失函数
来代替真实的损失函数。如:将正类的负对数似然函数作为
0-1
损失函数的替代。一般的优化和机器学习优化的一个重要不同:机器学习算法通常并不收敛于代价函数的局部极小值。因为:
机器学习算法通常使用
替代损失函数
。算法终止时,可能出现:采用
替代损失函数
的代价函数的导数较小,而采用真实损失函数的代价函数的导数仍然较大(相比较于0值)。机器学习算法可能会基于早停策略而提前终止。
早停发生时,可能出现:训练集上的代价函数的导数值仍然较大(相比较于0值)。
因为早停的规则是基于验证集上代价函数的值不再下降,它并不关心训练集上代价函数的导数值。