机器学习--代价函数
1 代价函数
在线性回归中我们有一个像这样的训练集,m代表了训练样本的数量,比如 m = 47。而我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x。
接下来我们会引入一些术语我们现在要做的便是为我们的模型选择合适的参数(parameters)θ0θ0 和 θ1θ1,在房价问题这个例子中便是直线的斜率和在 y 轴上的截距。
我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)
我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数 J(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))2J(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))2最小。
我们绘制一个等高线图,三个坐标分别为θ0θ0和θ1θ1 和J(θ0,θ1)J(θ0,θ1):
则可以看出在三维空间中存在一个使得J(θ0,θ1)J(θ0,θ1)最小的点。
代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了。
在后续课程中,我们还会谈论其他的代价函数,但我们刚刚讲的选择是对于大多数线性回归问题非常合理的。
也许这个函数J(θ0,θ1)J(θ0,θ1)有点抽象,可能你仍然不知道它的内涵,在接下来的几个视频里,我们要更进一步解释代价函数J的工作原理,并尝试更直观地解释它在计算什么,以及我们使用它的目的。2
2 代价函数的直观理解I
在上一个视频中,我们给了代价函数一个数学上的定义。在这个视频里,让我们通过一些例子来获取一些直观的感受,看看代价函数到底是在干什么
这里讨论的是只有θ1的情况,在 下面的代价函数2里面在讨论两个值的情况
3代价函数的直观理解II
代价函数的样子,等高线图,则可以看出在三维空间中存在一个使得J(θ0,θ1)J(θ0,θ1)最小的点。
通过这些图形,我希望你能更好地理解这些代价函数 J所表达的值是什么样的,它们对应的假设是什么样的,以及什么样的假设对应的点,更接近于代价函数J的最小值。
当然,我们真正需要的是一种有效的算法,能够自动地找出这些使代价函数J取最小值的参数θ0θ0和θ1θ1来。
我们也不希望编个程序把这些点画出来,然后人工的方法来读出这些点的数值,这很明显不是一个好办法。我们会遇到更复杂、更高维度、更多参数的情况,而这些情况是很难画出图的,因此更无法将其可视化,因此我们真正需要的是编写程序来找出这些最小化代价函数的θ0θ0和θ1θ1的值,在下一节视频中,我们将介绍一种算法,能够自动地找出能使代价函数J最小化的参数θ0θ0和θ1θ1的值。
通过这些图形,我希望你能更好地理解这些代价函数 J所表达的值是什么样的,它们对应的假设是什么样的,以及什么样的假设对应的点,更接近于代价函数J的最小值。
当然,我们真正需要的是一种有效的算法,能够自动地找出这些使代价函数J取最小值的参数θ0θ0和θ1θ1来。
我们也不希望编个程序把这些点画出来,然后人工的方法来读出这些点的数值,这很明显不是一个好办法。我们会遇到更复杂、更高维度、更多参数的情况,而这些情况是很难画出图的,因此更无法将其可视化,因此我们真正需要的是编写程序来找出这些最小化代价函数的θ0θ0和θ1θ1的值,在下一节视频中,我们将介绍一种算法,能够自动地找出能使代价函数J最小化的参数θ0θ0和θ1θ1的值。