机器学习入门——cost function

2018-03-01  本文已影响401人  space0o0

跟随吴恩达的coursear课程学习。
入门第一课是理解最简单的线性回归问题。

先上问题:通过房子的大小(living area -> x)来预测房价(house price -> y)。
同时,给予m个案例,这里的m就是样本(training set)个数。

QQ20180228-211719@2x.png

为了生动形象,这里的行数就是样本数(m)
左边一列是房子大小(x)
右边一列是对应的价格(y)

现在我们可以得出一个假设函数(hypothesis function):
hθ(xi) = θ0 + θ1*x,该函数就是假设的面积对应的房价。
hθ(xi) 代表了房价,x就是房子面积。

现在需要求出θ0和θ1的值来求出房价,而hθ(xi) 的值需要接近样本的房价,我们可以用 hθ(xi) 和 样本中的房价做比较,用最小二乘法来计算。
可以得出(cost function):


20170224091950219.png

现在我们考虑单变量的情况,即θ0=0,这样可以更简单的理解J(θ0,θ1)函数。
hθ(xi) = θ1*x

下图就可以更加直观的理解cost function的推导。

R2YF5Lj3EeajLxLfjQiSjg_110c901f58043f995a35b31431935290_Screen-Shot-2016-12-02-at-5.23.31-PM.png

坐标系中的蓝线就是假设函数,现在计算假设的房价和样本的房价的差距,就是(hθ(xi)-yi)^2,现在我们有m个样本,即需要求和,再除以m是取平均,除以2暂时还没理解,在以后发现用处后再来补充。

现在,我们画出hθ(x)和J(θ0,θ1)的图像

_B8TJZtREea33w76dwnDIg_3e3d4433e32478f8df446d0b6da26c27_Screenshot-2016-10-26-00.57.56.png

左图是假设函数,右图是代价函数
在最理想的状态下,我们的假设函数刚好在样本上,那么J(θ)的值计算得出=0
但是,我们不可能一开始就能从样本数据直接得出θ1的值,所以,正常情况下我们会有这样的函数,如下图:

8guexptSEeanbxIMvDC87g_3d86874dfd37b8e3c53c9f6cfa94676c_Screenshot-2016-10-26-01.03.07.png

我们把θ1猜测成0.5,那么,现在需要计算J(θ1)的值为每个样本距离函数的距离的平方/(2m)。
J(θ1)=(0.25+1+2.25)/(2
3)=0.583333333
那么在右图就是对应的蓝色叉叉的位置

现在,我们就同理,切换不同的θ1的值,计算出J(θ)的值
如图:


J(θ).png

咦,可以看出是类似一个2次函数的图像,从图像上看,θ1=1时,是假设的房价最接近样本的时候,那么现在,我们可以认为假设函数得出的值是最靠谱的。

双变量情况
上面考虑的只是单变量情况,现在,我们来求出双变量θ0,θ1的值


QQ20180301-110254@2x.png

因为是两个变量,所以J(θ0,θ1)的函数不是一个平面图可以表达的,他是一个三维图

双变量.png

我们现在把J函数“压扁”,就得到一个θ0和θ1的图像,上图右边的
在右图随机取一个点,看到左图hθ(x)的值。

我们慢慢向圆心靠近


20170224092414003.png

函数与样本的拟合慢慢开始接近
当θ0,θ1在圆心的时候


20170224092444275.png
假设函数和样本值的拟合度最高。可是现在我们是用肉眼来寻找θ0,θ1的值,而且在实际问题上,可能无法画出代价函数J(θ0,θ1),下一篇将寻找求出θ0,θ1的方法。
上一篇下一篇

猜你喜欢

热点阅读