课程:吴恩达机器学习
更深入的理解代价函数的作用
两个参数的代价函数
这次我们对代价函数图形化时,保留全部参数\theta_0和\theta_1。
这是关于房价的训练集
当我们设置\theta_0=50,\theta_1=0.06,就得到了
h\theta图像:
J(\theta_0,\theta_1)的图像:上一个例子中,我们只有一个参数\theta_1得到的是这样的图像:
现在,当我们有两个参数,实际上也是一个碗状的图像,而且与训练集有关。图像如下:
- 这是一个3D曲面图,轴标为\theta_0和\theta_1。
- 当改变\theta_0和\theta_1的值的时候,就会得到不同的代价函数J(\theta_0,\theta_1)的值。
- 曲面的高度就是J(\theta_0,\theta_1)的值:
为了在接下来更好地展现图像, 不用使用三位图像来展示代价函数J ,我们要使用等高线图(contour plots OR contour figures)来展示这些曲面。
一个等高线线图的例子
- 其中的轴为\theta_0和\theta_1,每个椭圆形显示了一系列J(\theta_0,\theta_1)值相等的点,例如:
- 以红色这点为例:
\theta_0大概等于800, \theta_1大概等于-0.15,红色这一定对应了一组(\theta_0,\theta_1)的值:
这条线没有很好地拟合数据,\theta_0=800,\theta_1=-0.15,没有很好地拟合函数,你会发现代价值J(\theta_0,\theta_1)离最小值相当远,这是一个相当高的代价,因为拟合得并不好。 -
其他例子:
这是一个不同的假设函数,同样拟合得不是特别好
但可能会比上一个略好一点。
-
\theta_0大概等于360,\theta_1=0
这组参数对应着一条水平线:
这就是假设函数,这个假设函数仍然具有一定的代价,这个代价即在J函数中该点的高度。 -
而取其他的点:
仍然不能拟合,甚至离最小值更远。
- 最后一个例子
总结
通过以上的图像,更好的去理解代价函数J的意义,如何对应不同的假设函数,以及接近代价函数J最小值的点,对应这更好的假设函数。
我们真正想要的是一个高效的算法,一个软件的高效组成部分来自动寻找代价函数J最小值对应的\theta_0和\theta_1。我们不希望编写出一个软件只能画出这个点,然后再尝试手动读取参数,这不是很好的方法,事实上,我们会在之后看到当我们面对更复杂的例子时涉及到更多的参数,更高的维的图形,碰到一些没有办法绘制的图,我们需要利用软件找到使函数J最小的\theta_0和\theta_1,我们之后将会讨论一个可以自动找到使函数J最小的\theta_0和\theta_1的算法。