机器学习优化问题-损失函数,风险

损失函数

  针对单个具体样本,表示模型预测值与真实样本值之间的差距。损失函数越小,说明模型对于该样本预测越准确。常见损失函数有0-1损失函数、平方损失函数、绝对损失函数、对数损失函数(对数似然损失函数)。

  • 0-1损失函数
  • 平方损失函数(欧式损失函数)适用场景:实数值回归问题
    Tips:欧式损失前可以增加Sigmoid操作进行归一化,相应的输出标签也归一化到[0,1]。
  • 绝对损失函数

  • 对数损失函数(logistic回归/神经网络/期望极大算法)

    其中:$y_i$为二值指标

经验风险

  对所有训练样本都求一次损失函数,再累加求平均。即,模型f(x)对训练样本中所有样本的预测能力。

  所谓经验风险最小化即对训练集中的所有样本点损失函数的平均最小化。经验风险越小说明模型f(x)对训练集的拟合程度越好。

期望风险

  对所有样本(包含未知样本和已知的训练样本)的预测能力,是全局概念。(经验风险则是局部概念,仅仅表示决策函数对训练数据集里的样本的预测能力。)

  理想的模型(决策)函数应该是让所有的样本的损失函数最小(即期望风险最小化)。但是期望风险函数往往不可得,所以用局部最优代替全局最优。这就是经验风险最小化的理论基础。
总结经验风险和期望风险之间的关系:
经验风险是局部的,基于训练集所有样本点损失函数最小化。经验风险是局部最优,是现实的可求的。
期望风险是全局的,基于所有样本点损失函数最小化。期望风险是全局最优,是理想化的不可求的。
缺点:只考虑经验风险的话,会出现过拟合现象,即模型f(x)对训练集中所有的样本点都有最好的预测能力,但是对于非训练集中的样本数据,模型的预测能力非常不好。怎么办?这就需要结构风险。

结构风险

  对经验风险和期望风险的折中,在经验风险函数后面加一个正则化项(惩罚项),是一个大于0的系数lamada。J(f)表示的是模型的复杂度。

  经验风险越小,模型决策函数越复杂,其包含的参数越多,当经验风险函数小到一定程度就出现了过拟合现象。也可以理解为模型决策函数的复杂程度是过拟合的必要条件,那么我们要想防止过拟合现象的方式,就要破坏这个必要条件,即降低决策函数的复杂度。也即,让惩罚项J(f)最小化,现在出现两个需要最小化的函数了。我们需要同时保证经验风险函数和模型决策函数的复杂度都达到最小化,一个简单的办法把两个式子融合成一个式子得到结构风险函数然后对这个结构风险函数进行最小化。

过拟合和欠拟合(过学习和欠学习)

  • 过拟合 经验风险小,期望风险大(训练数据表现好,测试数据表现不好)
  • 欠拟合 经验风险大,期望风险小(训练数据表现不好,测试数据表现好)
  • 泛化能力好 经验风险小,期望风险小(训练数据表现好,测试数据表现好)