单变量线性回归
代价函数(cost function):用来衡量假设函数对数据集拟合的完美程度,一般来说,代价函数越小表示拟合的越好
为了减少极个别极端的数据,我们把误差平方和再乘以1/2m. 另外注意h(x)是关于x的函数,cost function是关于参数θ的函数
从这个最简单的函数(θ0=0)我们来看cost function是如何变化
给出数据集(1,1),(2,2),(3,3)
假设函数:
损失函数:
令θ0=0
我们用肉眼可以看出θ1=1时拟合的是最完美的
下图是cost function J(θ1) 随着θ1变化而变化
我们要用某种方法使得无论θ1是多少,都要尽可能使得θ1=1
我们的目标就是通过改变参数θ来最小化cost function J(θ0,θ1,θ2…θn)
方法之一就是使用梯度下降算法(gradient descent):
1.这里:=表示赋值
=表示判断
2.要保证θ0和θ1同时更新
3.α表示学习速率:即以多快的速率下降,通常在0-1之间 (这是人为控制的)
令θ0=0
可以直观的发现都会向局部最优解移动
若要拟合cost function的变化过程,会发现下降过程会越来越慢,因为导数(即曲线的斜率)会越来越小,J(θ)会逐渐降低到局部最优解
若α选择过大则可能导致训练结果来回震荡
Q:用梯度下降无法下降到全局最优解怎么办?
对于线性回归方程来说,使用梯度下降不会导致这个问题,线性回归中只有一个最优解。,单变量线性回归如果两个参数都不为0,cost function应该是这样的形状
梯度下降每次要遍历当前所有数据集,我们称这种算法为"Batch" gradient descent