课程地址:
https://www.coursera.org/learn/machine-learning/lecture/rkTp3/cost-function
Cost Function
在学习线性回归之前,我们有必要补充代价函数的知识,来帮助我们弄清楚如何把最有可能的直线和我们的数据相拟合。
还是上节课的数据集,而假设函数也是这样的一个最基本的线性函数形式
我们把θi称为模型参数,而且我们将讨论如何选择不同的θ0和θ1
我们想要选择合适θ0和θ1来使直线最好的拟合图中的数据点。
所以这里有一个最小化的概念就是使假设函数与训练样本之间的误差最小
- 图中右上角的式子,求取训练集中每一个样例的假设值与真实值的差的平方,再进行求和,平均,最终得到平均误差。我们要做的就是尽量最小化这个平均误差
- 将式子改写代价函数的形式就是右下角的式子,意为求出使代价函数J(θ0, θ1)最小的θ0和θ1,所以代价函数也成为平方误差代价函数。
- 平方误差代价函数可能是解决回归问题最常用的一种代价函数
Cost Function Intuition1:
下面我们通过一些例子来获取一些直观的感受:
为了更好的理解代价函数,
我们使用更为简化的一个例子h(x) = θ1x
两个重要函数h(x) and J(x)
假设函数h(x)是对于固定的θ1,这是一个关于x的函数,θ1控制斜率
代价函数J(x)是关于参数θ1的函数
假设我们训练样本包含三个点(1 , 1),(2 , 2),(3 , 3)
假设θ1 = 1,我们算出θ1 = 1 时候的代价函数为0+0+0=0
并且我们在J(θ)上找到θ1= 1时候对应的点(1 , 0)
所以如果θ1=0.5的时候会发生什么呢
从图中我们也可以看出h(θ)和y之间的差值其实就是特征点与直线之间的距离
如过θ为0呢?
假设函数直接和x轴重合,当然θ值也可以为负,不过相应的代价函数点可能会非常的大。计算更多的值我们可以看到J(θ1)的样子了
- J(θ)中任何一个点都对应着代价函数的一条拟合直线。
- 所以θ1=1时可以获得最佳拟合的直线。
Cost Function Intuition2:
两个参数
上面为了更好的可视化代价函数,将θ0设为了0.
而下面我们将使用两个值来计算代价函数。
先假设一个假设函数,但并不是很好的拟合数据。
根据给出的θ0和θ1的值。我们在右边画出代价函数的图像,但是我们现在有两个参数,不好画出,但是仍会呈现出弓形:
下面两个轴代表θ0和θ1,纵轴代表某个特定的点(θ0 , θ1)代价函数的大小
轮廓图表示代价函数
这里列出了不同值情况下的代价函数图像
这里每一圈代表表示J(θ0 , θ1)相同的所有点的集合,左边就是相应的假设函数,比如上图中的(800,-0.15)点离中心圆很远,就代表还远没有达到最佳的拟合效果。
从图中看出有的点和离中心比较近,相应的假设函数也看起来能更好的划分数据。
但是画出这些图相当麻烦,所以我们要寻找一种方法能自动找出是这些代价函数J取最小值的参数θ0和θ1。