机器学习——代价函数
一、模型描述
我们通过一个例子来开始:这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方说,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约220000(美元)左右的价格卖掉这个房子。这就是监督学习算法的一个例子。上面所描述的问题称为回归问题。监督学习和无监督学习区别见这篇文章
假使我们回归问题的训练集(Training Set)如下表所示:
我们将要用来描述这个回归问题的标记如下:
m 代表训练集中实例的数量
x 代表特征/输入变量
y 代表目标变量/输出变量
(x,y) 代表训练集中的实例
(𝑥(𝑖), 𝑦(𝑖)) 代表第i 个观察实例
h 代表学习算法的解决方案或函数也称为假设(hypothesis)
对于房价预测问题,假设得一种可能的表达方式为:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥,因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。
二、代价函数
我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥。如何选择𝜃0 和 𝜃1决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)。
我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数:
最小。
我们绘制一个等高线图,三个坐标分别为 θ0 和 θ1 和J( θ0,θ1 ):
则可以看出在三维空间中存在一个使得J( θ0,θ1 )最小的点。
代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了。
我们真正需要的是一种有效的算法,能够自动地找出这些使代价函数J取最小值的参数 θ0 和 θ1 来。这种方法就是梯度下降算法