看《PRML》一段时间后,消除了很多统计疑惑。误差函数和损失函数就是其中之一。这两个家伙,形式蛮像的,都是平方和的形式,而且都是求极小值点。那么,它们的区别在哪呢?
从功能上说,误差函数和损失函数就不一样。误差函数是用来做估计的,属于估计理论范畴。误差函数的最小化常常又称为最小二乘法,是一种参数估计方法。最初的最小二乘法并没有统计理论基础,只是一种数值计算方法。一般只求使∑(ti−y(xi,θ))2最小的ˆθ,也不考虑t的具体模型假设是什么。当我们学习最小二乘的时候,我们总是会问,问什么我们取差的平方和,而不取差的绝对值,或者四次方的和呢?很多老师回答,是因为数学上操作简便!我以为,这种回答是不负责任的!难道为了图简便,我们就乐此不疲的使用一种没有任何科学依据的方法吗?答案是否定的。最小二乘法为人们所熟知所运用,最根本的原因是,它与高斯模型下的极大似然估计的结果是一致的!因此,我们使用最小二乘而不使用最小一乘或四乘是有道理的。
损失函数是用来做预测的,属于决策理论的范畴。在一个估计好的模型t=f(x,ˆθ)+ϵ下,我们如何对一个预测变量x′的输出t′进行预测呢?用ˆt′=f(x′)作预测呗。有没有想过其原因呢?其实,这时t′是一个随机变量,这个随机变量可能会取各种各样的值,用f(x′)作为t′的预测值,在ϵ服从0均值正态分布假设下,意味着用一个随机变量的均值对一个随机变量做预测。显然,预测不可能准确,也就是说t′−ˆt′不可能为0。但是,在使(t′−ˆt′)2最小的情况下,用均值做预测是最好的选择。而(t′−ˆt′)2就是平方损失函数,即预测可能发生的损失。在其他损失函数下,比如‖t′−f(x′)‖,这时用均值做预测,就不会让这个损失函数最小,反而用中位数会更好。