1. 代价函数(Cost function)
代价函数,有时也称为平方误差函数、平方误差代价函数。
我们想要尽量的减少预测值和实际值的方差,即使得代价平方误差代价函数的值最小。 平方误差代价函数可能是解决回归问题最常用的手段。
假设θ 0 =0,h θ (x)、J(θ 1 )只与θ 1 有关。
现在我们使用两个参数θ 0 和θ 1 ,分别变化θ 0 和θ 1 可以得出代价函数图像如下:
下面我们将使用轮廓图(contour plots or contour figures)来表示:
每个圈代表在J(θ 0 , θ 1 )相同的情况下θ 0 和θ 1 不同的取值。
取θ 0 和θ 1 越接近最小点,直线拟合效果越好。如下面的拟合效果就好得多了。
2. 代价函数
而最优解即为代价函数的最小值,根据以上公式多次计算可得到
代价函数的图像:
可以看到该代价函数的确有最小值,这里恰好是横坐标为1的时候。
如果更多参数的话,就会更为复杂,两个参数的时候就已经是三维图像了:
高度即为代价函数的值,可以看到它仍然有着最小值的,而到达更多的参数的时候就无法像这样可视化了,但是原理都是相似的。
因此,对于回归问题,我们就可以归结为得到代价函数的最小值:
3、为什么代价函数是这个呢
首先思考:什么是代价?
简单理解代价就是预测值和实际值之间的差距,那对于多个样本来说,就是差距之和。
如果我们直接使用
,这个公式看起来就是表示假设值和实际值只差,再将每一个样本的这个差值加起来不就是代价了吗,但是想一下,如果使用这个公式,那么就单个样本而言,代价有正有负,全部样本的代价加起来有可能正负相抵,所以这并不是一个合适的代价函数。
所以为了解决有正有负的问题,我们使用这里写图片描述,即绝对值函数来表示代价,为了方便计算最小代价(计算最小代价可能用到最小二乘法),我们直接使用平方来衡量代价,即使用这里写图片描述来表示单个样本的代价,那么一个数据集的代价为:这里写图片描述。
那么是否使用平方之和就没有什么问题了?
仔细想想,其实很容易想到,代价函数应该与样本的数量有关,否则一个样本和n个样本的差距平方和之间的比较也没有多少意义,所以将这里写图片描述乘以这里写图片描述,即代价函数为:这里写图片描述,这里取2m而非m,是为了方便计算。