1 损失、代价、目标函数比较

  1. 损失函数 深度学习 - 图1 ,一般是针对单个样本 i
  2. 代价函数 深度学习 - 图2 , 一般是针对总体
  3. 目标函数 深度学习 - 图3

首先给出结论:损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function)。

深度学习 - 图4

结合上面的例子来分析:最左面的

深度学习 - 图5

结构风险最小(模型结构最简单),但是经验风险最大(对历史数据拟合的最差);最右面的

深度学习 - 图6

经验风险最小(对历史数据拟合的最好),但是结构风险最大(模型结构最复杂);而

深度学习 - 图7

达到了二者的良好平衡,最适合用来预测未知数据集。

1.损失函数

损失函数用来评价模型的预测值真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

损失函数分为经验风险损失函数结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。

常见的损失函数以及其优缺点如下:

  1. 0-1损失函数(zero-one loss)

0-1损失是指预测值和目标值不相等为1, 否则为0:

深度学习 - 图8

特点:

(1)0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用.

(2)感知机就是用的这种损失函数。但是相等这个条件太过严格,因此可以放宽条件,即满足 深度学习 - 图9 时认为相等,

深度学习 - 图10

\2. 绝对值损失函数

绝对值损失函数是计算预测值与目标值的差的绝对值:

深度学习 - 图11

\3. log对数损失函数

log对数损失函数的标准形式如下:

深度学习 - 图12

特点:

(1) log对数损失函数能非常好的表征概率分布,在很多场景尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。

(2)健壮性不强,相比于hinge loss对噪声更敏感。

(3)逻辑回归的损失函数就是log对数损失函数。

极大似然和梯度下降

最大似然(MLE),最大后验(MAP)都是构造目标函数的方法,
构造出这个目标函数后,我们可以用各种优化方法来找到它的极值,

这些优化方法中,有一类是使用函数的梯度信息,包括一阶的方法,例如梯度下降,以及二阶的方法,例如牛顿法等。当然,还有和梯度无关的方法,例如 fixed point iteration,坐标下降等等。

[^]:

对于线性回归问题,它的模型深度学习 - 图13,我们采用最大似然来构造一个目标函数,最后用梯度下降来找到目标函数的最值。当然,对于这个问题,我们也可以不用梯度下降,直接用向量的投影来直接算出最优解的表达式。我猜这个表达式就是你所说的“最小二乘法”

为什么 Logistic regression 不存在所谓的 “最小二乘法” 呢,它的模型深度学习 - 图14,Ber是伯努利分布,sigm是logistic sigmoid函数,我们采用最大似然来构造一个目标函数,与之前的问题不同,这个目标函数比较复杂,是无法像线性回归那样一步直接算出最终的解的,但是,这个目标函数是的,所以我们依然能用梯度下降或者牛顿法来来找到它的最优解。

如果我们给参数 w 加上一个高斯的先验分布,并用最大后验来构造目标函数,那么,这就相当于给目标函数加上一个L2正则项,这时的线性回归,也叫做岭回归(Ridge regression),这时的 logistic regression,叫做。。呃,L2 regularized logistic regression(= =),如果我们给参数 w 加上一个拉普拉斯的先验分布,那么我们可以让 w 变得更加稀疏。我们还可以接着往下走,利用后验分布来进行模型平均(model averaging),得到更加完整的贝叶斯方法,不过我觉得这样已经够了。


引用: